Design Problem 3 Solutions

Size: px
Start display at page:

Download "Design Problem 3 Solutions"

Transcription

1 CSE 260 Digital Computers: Organization and Logical Design Jon Turner Design Problem 3 Solutions In this problem, you are to design, simulate and implement a sequential pattern spotter, using VHDL. This circuit compares an input bit vector against a four bit pattern, where the pattern can specify a 0, 1 or don t care in each of the four positions. Whenever the circuit detects four bits in the input that match the pattern, it raises the output high. Note the pattern may appear at overlapping positions in the input string, in which case, the circuit should detect all occurrences. So for example, if the pattern is 0xx1 and the input bit sequence is , the output bit sequence should be Implement the pattern spotter as a VHDL module called seqpatternspotter, with a clock input, clk, a reset input, a single bit data input, din, a data valid input, valid, and a pattern input, pattern (please use exactly these names). Valid is used by the client circuit to indicate those clock ticks during which there is a new data bit present on din. Your circuit should ignore input bits during clock ticks when valid is low. Equipping the circuit with a valid bit allows it to be used in the S3 board (we ll get to this later). Pattern is an eight bit value, which you are to interpret as four pattern specifications, which are each compared against an input bit. There is a single synchronous output, matchout, which should go high following each rising clock edge when valid is high and the last bit of a matching pattern is detected and matchout should go low following each rising clock edge when valid is high and the input bit does not result in a match of the pattern. Whenever valid is low while matchout should not change. For the first part of the problem, create a project containing just seqpatternspotter and perform a functional simulation to verify its correctness. Your design notes should include a discussion of the state that your circuit keeps track of, a block diagram, and a brief explanation of how the state is maintained and how it is used to generate the output. Your notes should also include a discussion of your test strategy for the circuit. In addition, print out the Device Utilization Summary from the synthesis report produced by the tools, and the timing analysis section. Does the number of LUTs and flip flops reported match what you expect? Justify your answer. How many logic levels are reported in the clock period analysis? What is the resulting maximum clock frequency? Make sure you turn in a copy of your VHDL and the functional simulation output showing that your circuit works correctly (with appropriate notes). For the second part of the problem, you are to embed seqpatternspotter within a larger circuit that can be used on the S3 board. Define an entity-architecture pair called top that has inputs for the switches (swt(7..0)), the push buttons (btn(3..0)), a clock (mclk) and the LEDs (led(7..0)). We won t use the seven segment display on this problem. Use structural VHDL to define an instance of your seqpatternspotter component within the architecture of top and connect mclk to its clk input, the switches to its pattern input and its output signal to led(0). We ll use push buttons for the reset input, the din input and the valid input

2 However, to use the push buttons in this circuit, we first need to debounce the buttons. Mechanical push buttons vibrate when pressed, causing them to make many momentary contacts when we press or release them. If we want to use a button push to be interpreted as a single event, we need to filter out all these transient connections and disconnections. That s what debouncing does. You will find a VHDL module that implements a debouncing circuit on the web site. This module connects to the push buttons and provides debounced versions of the buttons (dbtn(3..0)). Instantiate the debouncing module in your circuit and use the debounced signals it provides for reset, din and valid. In particular, use dbtn(3) for reset, use dbtn(0) for din and use dbtn(1) for valid. When you study the VHDL code for debounce, you will notice that it makes use of a constant called operationmode, which you should define in a package along with other constants that you may want to use in your project. The value of operationmode controls the time period used for debouncing the input switches. Normally, operationmode is set to 1, causing the debouncing period to be one million clock ticks (which equals 20 ms). However, when simulating the circuit, we don t really want to wait for the full debouncing period. Therefore, when synthesizing your circuit in preparation for synthesis, make operationmode equal to 0. There is one additional thing you will need to do in your top circuit. Since it s not possible for us to press the push button controlling valid for just one clock tick at a time, we need to add a small circuit that converts each press of the valid button into a one clock tick pulse. Specifically, when this circuit sees dbtn(1) go from 0 to 1, it should generate a single pulse on the valid signal, allowing us to input a single data bit into seqpatternspotter for each press of valid. The final part of the problem is to implement your design on one of the S3 boards in the Urbauer lab. You may use the same user constraints file you used in design problem 2. Once you have your design on the S3 board, verify that it works as expected by trying a few different patterns and supplying input strings that match them. When you are satisfied, have one of the TAs come into the lab and check it. Be sure to the file containing your VHDL code (please send it as a single file) as an attachment to jon.turner@wustl.edu. Please name your attachment dp3-yourname.vhd, where yourname is your first and last names (e.g. jonturner). Also, a copy of your MCS file, as a second attachment. Note that the last page of this handout is a grading template for the design problem. This should stapled to the front of the assignment when you turn it in, with your name filled in the blank space. When you demonstrate the running design to the TA, make sure he assigns a score and signs in the comment space

3 Design notes for Sequential Pattern Spotter. This circuit implements a sequential pattern matcher. The sequential input stream is compared against a four bit pattern, and the synchronous output matchout is high following each clock tick when a matching pattern is detected. The pattern includes don t cares, so there are eight pattern bits allowing us to encode the three options (01 to match an input 0, 10 to match an input 1 and 11 to match either one). The data input is ignored during all clock ticks when the valid input is low. The first thing to decide is what information the circuit needs to remember. One possible choice is to remember the last few bits we have seen. However, since when the circuit first starts operating, no input bits have been seen yet, we need to be a little careful to avoid false matches in these first few bit times. One way to address this problem is to store the last few bits in encoded form in a history vector. The history vector can have two bits for each actual data bit, using 01 to represent a 0, 10 to represent a 1 and 00 to represent nothing. If we initialize the history vector to 0, we can then keep it up-to-date by shifting it to the left two bit positions and inserting a new bit pair into the low order bits. Representing the history in this way also leads to simple logic for detecting a match against the pattern. This approach leads to the block diagram shown below. Note that the block diagram does not show the valid input. The shifting of the history and the generation of the output are only enabled when valid is high. din history matchout pattern Given the structure of the circuit, a fairly simple testing strategy is sufficient. We need to make sure that each of the history bit pairs can hold any value and that the matching circuitry works correctly. Given the regularity of the circuit, it suffices to use a single pattern that includes all the allowed values 01, 10 and 11. The input bits should include portions that match the don t care bits of the pattern using either a 0 or a

4 VHDL Source Code. Stand-alone version of circuit. Sequential Pattern Spotter Jon Turner - 1/9/2007 This circuit looks for an n bit pattern in an input string. It raises its output high whenever the previous n bits matches the pattern. The pattern to be matched can include zeros, ones or wildcards. - library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; use IEEE.std_logic_unsigned.all; package commondefs is constant patlength: integer := 4; end package commondefs; library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; use work.commondefs.all; entity seqpatternspotter is port( clk, reset: in std_logic; din: in std_logic; input data bit valid: in std_logic; high on clock ticks where new data bit on din pattern: in std_logic_vector(2*patlength-1 downto 0); pattern to match against input stream matchout: out std_logic high whenever end of a pattern is seen ); end seqpatternspotter; architecture spsarch of seqpatternspotter is history(2i+1,2i) represent i-th previous input bit 01 stands for input 0, 10 stands for input 1, 00 stands for no valid input bit signal history: std_logic_vector(2*patlength-1 downto 2); pmatch(i)=1 if current input bit plus previous i bits match pattern signal pmatch: std_logic_vector(patlength-1 downto 0); begin process(clk, pattern, history, din, pmatch) begin compare history and din against pattern if din = '0' then pmatch(0) <= pattern(0); else pmatch(0) <= pattern(1); for i in 1 to patlength-1 loop if (history(2*i+1) = '1' and pattern(2*i+1) = '1') or (history(2*i) = '1' and pattern(2*i) = '1') then pmatch(i) <= pmatch(i-1); else pmatch(i) <= '0'; end loop; update history and generate output if rising_edge(clk) then if reset = '1' then matchout <= '0'; - 4 -

5 history <= (history'range => '0'); elsif valid = '1' then history(2*patlength-1 downto 4) <= history(2*patlength-3 downto 2); if din = '0' then history(3 downto 2) <= "01"; else history(3 downto 2) <= "10"; matchout <= pmatch(patlength-1); end process; end spsarch; - 5 -

6 Simulation of Stand-alone Version of Circuit. The simulation result is shown below. Note that the input values are correctly encoded and propagated through the history vector. Also, note that when valid is low, the input is ignored and no output is generated. Finally, note that the matching logic correctly matches the 0 case, the 1 case and the don t care case. pattern 0xx1 no change to history when valid=0 updating history when valid=1 match on 0001 and on 0011 matchout stable when valid=0 match on

7 Synthesis Report. We expect this design to use seven flip flops, since the history information requires six and since the synchronous output matchout requires one more. We also expect six LUTs. Each of the AND-OR groupings requires one LUT, anding these together to produce matchout requires a fifth and we need one more to generate the complement of din. The device utilization section of the simulation report is shown below. It confirms the estimate for flip flops but reports one more LUT. ========================================================================= Device utilization summary: - Selected Device : 3s200ft256-5 Number of Slices: 4 out of % Number of Slice Flip Flops: 7 out of % Number of 4 input LUTs: 7 out of % Number of IOs: 13 Number of bonded IOBs: 13 out of 173 7% Number of GCLKs: 1 out of 8 12% The timing report section of the synthesis report appears below. It reports a maximum clock frequency of 302MHz, based on a worst-case delay between flip flops of 3.3 ns. This delay is based on the fact that the worst-case flip flop to flip flop path has two LUTs. This matches what we would expect based on the block diagram of the circuit. The path from each of the history flip flops to the matchout flip flop will have two LUTs. ========================================================================= Timing constraint: Default period analysis for Clock 'clk' Clock period: 3.304ns (frequency: MHz) Total number of paths / destination ports: 10 / 5 - Delay: 3.304ns (Levels of Logic = 2) Source: history_5 (FF) Destination: matchout (FF) Source Clock: clk rising Destination Clock: clk rising Data Path: history_5 to matchout Gate Net Cell:in->out fanout Delay Delay Logical Name (Net Name) FDRE:C->Q history_5 (history_5) LUT4:I2->O _mux (_mux0009_map25) LUT4:I2->O _mux (pmatch<3>) FDR:D matchout Total 3.304ns (1.760ns logic, 1.544ns route) (53.3% logic, 46.7% route) ========================================================================= Timing constraint: Default OFFSET IN BEFORE for Clock 'clk' Total number of paths / destination ports: 25 / 16 - Offset: 3.968ns (Levels of Logic = 2) Source: valid (PAD) Destination: matchout (FF) Destination Clock: clk rising Data Path: valid to matchout Gate Net Cell:in->out fanout Delay Delay Logical Name (Net Name) IBUF:I->O valid_ibuf (valid_ibuf) - 7 -

8 LUT2:I0->O _or00001 (_or0000) FDR:R matchout Total 3.968ns (2.086ns logic, 1.882ns route) (52.6% logic, 47.4% route) ========================================================================= Timing constraint: Default OFFSET OUT AFTER for Clock 'clk' Total number of paths / destination ports: 1 / 1 - Offset: 6.216ns (Levels of Logic = 1) Source: matchout (FF) Destination: matchout (PAD) Source Clock: clk rising Data Path: matchout to matchout Gate Net Cell:in->out fanout Delay Delay Logical Name (Net Name) FDR:C->Q matchout (matchout_obuf) OBUF:I->O matchout_obuf (matchout) Total 6.216ns (5.535ns logic, 0.681ns route) (89.0% logic, 11.0% route) - 8 -

9 Design notes for S3 version. This circuit embeds the sequential pattern spotter in a circuit suitable for use on the S3 board. To use the push buttons on the S3 board, we need to use a debouncing module, so the top module of this circuit instantiates seqpatternspotter and debounce and wires them to each other and to the external pins. The top module also includes circuitry to convert a push of btn(1) into a one clock tick pulse that can be connected to the valid input of seqpatternspotter. The block diagram at right shows how the components are used and connected to the external signals. btn debouncer dbtn(3) dbtn(0) dbtn(1) D >C mclk To test the circuit we need to verify that the various signals reach seqpatternspotter as expected and that the overall behavior is correct. Using the simulator to allow us to examine the internal signals, we ll verify that the external signals reach seqpatternspotter as expected. In particular, we ll check that the switches control the pattern input, that the reset and din signals respond to the button pushes as expected, and that the valid signal is generated correctly. Then, we ll verify that seqpatternspotter can detect an input pattern correctly. swt pattern reset din valid seqpatternspotter matchout clk led(0) - 9 -

10 VHDL for S3 version. Sequential Pattern Spotter Jon Turner - 1/9/2007 This circuit looks for an n bit pattern in an input string. It raises its output high whenever the previous n bits matches the pattern. The pattern to be matched can include zeros, ones or wildcards. On the S3 board, the pattern matches four bits and is specified using the switches. More details below - library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; use work.commondefs.all; entity seqpatternspotter is port( clk, reset: in std_logic; din: in std_logic; input data bit valid: in std_logic; high on clock ticks where new data bit on din pattern: in std_logic_vector(2*patlength-1 downto 0); pattern to match against input stream matchout: out std_logic high whenever end of a pattern is seen ); end seqpatternspotter; architecture spsarch of seqpatternspotter is history(2i+1,2i) represent i-th previous input bit signal history: std_logic_vector(2*patlength-1 downto 2); pmatch(i)=1 if current input bit plus previous i bits match pattern signal pmatch: std_logic_vector(patlength-1 downto 0); begin process(clk, pattern, history, din, pmatch) begin compare history and din against pattern if din = '0' then pmatch(0) <= pattern(0); else pmatch(0) <= pattern(1); for i in 1 to patlength-1 loop if (history(2*i+1) = '1' and pattern(2*i+1) = '1') or (history(2*i) = '1' and pattern(2*i) = '1') then pmatch(i) <= pmatch(i-1); else pmatch(i) <= '0'; end loop; update history and generate output if rising_edge(clk) then if reset = '1' then matchout <= '0'; history <= (history'range => '0'); elsif valid = '1' then history(2*patlength-1 downto 4) <= history(2*patlength-3 downto 2); if din = '0' then history(3 downto 2) <= "01"; else history(3 downto 2) <= "10";

11 matchout <= pmatch(patlength-1); end process; end spsarch; - Debouncer Synchronize and de-bounce the push buttons. dbtn is de-bounced version of btn. To use this module, connect the push buttons on the S3 board to the btn input. For all uses of the buttons by the circuit, use dbtn(i) in place of btn(i). Note that when running on the S3 board, the time period for debouncing is 20 ms or 1 million clock cycles. When simulating the circuit, you need to reduce this to just a few clock ticks, to keep the simulation of reasonable length. The easy way to do this is to change the operationmode constant (defined in commondefs.vhd) to 0. Make sure you change it back to 1 when synthesizing for the S3 board. library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; use IEEE.std_logic_unsigned.all; use work.commondefs.all; entity debouncer is port( clk: in std_logic; btn: in std_logic_vector(nbtn-1 downto 0); dbtn: out std_logic_vector(nbtn-1 downto 0) ); end debouncer; architecture debarch of debouncer is constant debounceperiod: integer := 3 + operationmode*999997; signal s1btn, s2btn, s3btn: std_logic_vector(nbtn-1 downto 0); signal count: std_logic_vector(31 downto 0); begin process(clk) begin if rising_edge(clk) then first synchronize buttons to reduce likelihood of synchronizer failure s1btn <= btn; s2btn <= s1btn; s3btn <= s2btn; transfer new value to dbtn after it has been stable for duration of the de-bounce period if s3btn /= s2btn then count <= (count'range => '0'); elsif count < debounceperiod then count <= count + 1; elsif count = debounceperiod then dbtn <= s3btn; count <= count + 1; end process; end debarch;

12 Top embeds seqpatternspotter in the S3 board and uses debounced versions of the buttons. The pattern is presented on the switches. The buttons are used for several different purposes. Specifically, btn(3) is the reset button btn(0) is used to specify the next input bit btn(1) is used to indicate the presence of a new input bit in particular, when btn(1) is pressed, the value on btn(0) is input to the pattern spotter circuit btn(2) is not used - library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; use IEEE.std_logic_unsigned.all; use work.commondefs.all; entity top is port( mclk: in STD_LOGIC; btn: in std_logic_vector(nbtn-1 downto 0); swt : in std_logic_vector(nswt-1 downto 0); led : out std_logic_vector(nled-1 downto 0); an: out std_logic_vector(ndig-1 downto 0) ); end top; architecture toparch of top is component seqpatternspotter port( clk, reset: in std_logic; din: in std_logic; valid: in std_logic; pattern: in std_logic_vector(2*patlength-1 downto 0); matchout: out std_logic ); end component; component debouncer port( clk: in std_logic; btn: in std_logic_vector(nbtn-1 downto 0); dbtn: out std_logic_vector(nbtn-1 downto 0) ); end component; signal reset: STD_LOGIC; signal dbtn: std_logic_vector(nbtn-1 downto 0); signal prevbtn1: std_logic; signal din, valid, result: std_logic; begin Process for converting 01 transition on btn(1) to a valid signal lasting for one clock tick. Also, associate switches with pat. process (mclk, prevbtn1, dbtn) begin if rising_edge(mclk) then prevbtn1 <= dbtn(1); valid <= (not prevbtn1) and dbtn(1);

13 end process; reset <= dbtn(3); din <= dbtn(0); debc: debouncer port map(mclk, btn, dbtn); spsc: seqpatternspotter port map(mclk, reset, din, valid, swt, result); led(0) <= result; an <= "1111"; end toparch;

14 Simulation Results for S3 Version. The simulation output below shows the results for the version configured for the S3 board. The first section shows that reset is asserted after btn(3) is pressed. Notice that dbtn(3) changes six clock ticks after btn(3). This first section also demonstrates that the external switches control the internal pattern signal. The next section shows that the valid pulse is generated in response to a button push on btn(1), that din follows btn(0) and that the history signal correctly stores the last few input bits. In the final section, we see the specified pattern being detected and the signals controlling the LEDs being properly asserted. btn(3) press makes dbtn(3) go high after 6 ticks, which asserts reset verify that pattern controlled by switches correct generation of valid pulse history correctly tracking valid input bits spotting pattern and turning on led

Design Problem 4 Solution

Design Problem 4 Solution CSE 260 Digital Computers: Organization and Logical Design Design Problem 4 Solution Jon Turner Due 4/13/06 1. (125 points). In this problem, you will design a packet FIFO, which is a circuit that temporarily

More information

CSE 260 Introduction to Digital Logic and Computer Design. Exam 1. Your name 2/13/2014

CSE 260 Introduction to Digital Logic and Computer Design. Exam 1. Your name 2/13/2014 CSE 260 Introduction to Digital Logic and Computer Design Jonathan Turner Exam 1 Your name 2/13/2014 1. (10 points) Draw a logic diagram that implements the expression A(B+C)(C +D)(B+D ) directly (do not

More information

CSE 260 Digital Computers: Organization and Logical Design. Exam 2. Jon Turner 3/28/2012

CSE 260 Digital Computers: Organization and Logical Design. Exam 2. Jon Turner 3/28/2012 CSE 260 Digital Computers: Organization and Logical Design Exam 2 Jon Turner 3/28/2012 1. (15 points). Draw a diagram for a circuit that implements the VHDL module shown below. Your diagram may include

More information

Problem Set 10 Solutions

Problem Set 10 Solutions CSE 260 Digital Computers: Organization and Logical Design Problem Set 10 Solutions Jon Turner thru 6.20 1. The diagram below shows a memory array containing 32 words of 2 bits each. Label each memory

More information

CSE 260 Introduction to Digital Logic and Computer Design. Exam 1 Solutions

CSE 260 Introduction to Digital Logic and Computer Design. Exam 1 Solutions CSE 6 Introduction to igital Logic and Computer esign Exam Solutions Jonathan Turner /3/4. ( points) raw a logic diagram that implements the expression (B+C)(C +)(B+ ) directly (do not simplify first),

More information

In our case Dr. Johnson is setting the best practices

In our case Dr. Johnson is setting the best practices VHDL Best Practices Best Practices??? Best practices are often defined by company, toolset or device In our case Dr. Johnson is setting the best practices These rules are for Class/Lab purposes. Industry

More information

Control and Datapath 8

Control and Datapath 8 Control and Datapath 8 Engineering attempts to develop design methods that break a problem up into separate steps to simplify the design and increase the likelihood of a correct solution. Digital system

More information

Lecture 12 VHDL Synthesis

Lecture 12 VHDL Synthesis CPE 487: Digital System Design Spring 2018 Lecture 12 VHDL Synthesis Bryan Ackland Department of Electrical and Computer Engineering Stevens Institute of Technology Hoboken, NJ 07030 1 What is Synthesis?

More information

Design Problem 4 Solutions

Design Problem 4 Solutions CSE 260 Digital Computers: Organization and Logical Design Design Problem 4 Solutions Jon Turner The block diagram appears below. The controller includes a state machine with three states (normal, movecursor,

More information

ECE 448 Lecture 4. Sequential-Circuit Building Blocks. Mixing Description Styles

ECE 448 Lecture 4. Sequential-Circuit Building Blocks. Mixing Description Styles ECE 448 Lecture 4 Sequential-Circuit Building Blocks Mixing Description Styles George Mason University Reading Required P. Chu, FPGA Prototyping by VHDL Examples Chapter 4, Regular Sequential Circuit Recommended

More information

Contents. Chapter 9 Datapaths Page 1 of 28

Contents. Chapter 9 Datapaths Page 1 of 28 Chapter 9 Datapaths Page of 2 Contents Contents... 9 Datapaths... 2 9. General Datapath... 3 9.2 Using a General Datapath... 5 9.3 Timing Issues... 7 9.4 A More Complex General Datapath... 9 9.5 VHDL for

More information

Lecture 7. Standard ICs FPGA (Field Programmable Gate Array) VHDL (Very-high-speed integrated circuits. Hardware Description Language)

Lecture 7. Standard ICs FPGA (Field Programmable Gate Array) VHDL (Very-high-speed integrated circuits. Hardware Description Language) Standard ICs FPGA (Field Programmable Gate Array) VHDL (Very-high-speed integrated circuits Hardware Description Language) 1 Standard ICs PLD: Programmable Logic Device CPLD: Complex PLD FPGA: Field Programmable

More information

[VARIABLE declaration] BEGIN. sequential statements

[VARIABLE declaration] BEGIN. sequential statements PROCESS statement (contains sequential statements) Simple signal assignment statement

More information

Sequential Statement

Sequential Statement Sequential Statement Sequential Logic Output depends not only on current input values but also on previous input values. Are building blocks of; Counters Shift registers Memories Flip flops are basic sequential

More information

ENGG3380: Computer Organization and Design Lab4: Buses and Peripheral Devices

ENGG3380: Computer Organization and Design Lab4: Buses and Peripheral Devices ENGG3380: Computer Organization and Design Lab4: Buses and Peripheral Devices School of Engineering, University of Guelph Winter 2017 1 Objectives: The purpose of this lab is : Learn basic bus design techniques.

More information

CS/EE Homework 7 Solutions

CS/EE Homework 7 Solutions CS/EE 260 - Homework 7 Solutions 4/2/2001 1. (20 points) A 4 bit twisted ring counter is a sequential circuit which produces the following sequence of output values: 0000, 1000, 1100, 1110, 1111, 0111,

More information

VHDL for Modeling - Module 10

VHDL for Modeling - Module 10 VHDL for Modeling Module 10 Jim Duckworth, WPI 1 Overview General examples AND model Flip-flop model SRAM Model Generics DDR SDRAM Model Constraints Metastability Block Statements Just for reference Jim

More information

VHDL: RTL Synthesis Basics. 1 of 59

VHDL: RTL Synthesis Basics. 1 of 59 VHDL: RTL Synthesis Basics 1 of 59 Goals To learn the basics of RTL synthesis. To be able to synthesize a digital system, given its VHDL model. To be able to relate VHDL code to its synthesized output.

More information

VHDL And Synthesis Review

VHDL And Synthesis Review VHDL And Synthesis Review VHDL In Detail Things that we will look at: Port and Types Arithmetic Operators Design styles for Synthesis VHDL Ports Four Different Types of Ports in: signal values are read-only

More information

EEL 4712 Digital Design Test 1 Spring Semester 2007

EEL 4712 Digital Design Test 1 Spring Semester 2007 IMPORTANT: Please be neat and write (or draw) carefully. If we cannot read it with a reasonable effort, it is assumed wrong. COVER SHEET: Problem: Points: 1 (15 pts) 2 (20 pts) Total 3 (15 pts) 4 (18 pts)

More information

VHDL Examples Mohamed Zaky

VHDL Examples Mohamed Zaky VHDL Examples By Mohamed Zaky (mz_rasmy@yahoo.co.uk) 1 Half Adder The Half Adder simply adds 2 input bits, to produce a sum & carry output. Here we want to add A + B to produce Sum (S) and carry (C). A

More information

Design Problem 5 Solution

Design Problem 5 Solution CSE 260 Digital Computers: Organization and Logical Design Design Problem 5 Solution Jon Turner Due 5/3/05 1. (150 points) In this problem, you are to extend the design of the basic processor to implement

More information

Inferring Storage Elements

Inferring Storage Elements Inferring Storage Elements In our designs, we usually use flip-flops as our storage elements. Sometimes we use latches, but not often. Latches are smaller in size, but create special, often difficult situations

More information

ECE 545 Lecture 6. Behavioral Modeling of Sequential-Circuit Building Blocks. George Mason University

ECE 545 Lecture 6. Behavioral Modeling of Sequential-Circuit Building Blocks. George Mason University ECE 545 Lecture 6 Behavioral Modeling of Sequential-Circuit Building Blocks George Mason University Required reading P. Chu, RTL Hardware Design using VHDL Chapter 5.1, VHDL Process Chapter 8, Sequential

More information

Part 4: VHDL for sequential circuits. Introduction to Modeling and Verification of Digital Systems. Memory elements. Sequential circuits

Part 4: VHDL for sequential circuits. Introduction to Modeling and Verification of Digital Systems. Memory elements. Sequential circuits M1 Informatique / MOSIG Introduction to Modeling and erification of Digital Systems Part 4: HDL for sequential circuits Laurence PIERRE http://users-tima.imag.fr/amfors/lpierre/m1arc 2017/2018 81 Sequential

More information

CCE 3202 Advanced Digital System Design

CCE 3202 Advanced Digital System Design CCE 3202 Advanced Digital System Design Lab Exercise #2 This lab exercise will show you how to create, synthesize, and test a 3-bit ripple counter. A ripple counter is simply a circuit that outputs the

More information

FSM Components. FSM Description. HDL Coding Methods. Chapter 7: HDL Coding Techniques

FSM Components. FSM Description. HDL Coding Methods. Chapter 7: HDL Coding Techniques FSM Components XST features: Specific inference capabilities for synchronous Finite State Machine (FSM) components. Built-in FSM encoding strategies to accommodate your optimization goals. You may also

More information

Test Benches - Module 8

Test Benches - Module 8 Test Benches Module 8 Jim Duckworth, WPI 1 Overview We have concentrated on VHDL for synthesis Can also use VHDL as a test language Very important to conduct comprehensive verification on your design To

More information

Design Problem 5 Solutions

Design Problem 5 Solutions CS/EE 260 Digital Computers: Organization and Logical Design Design Problem 5 Solutions Jon Turner Due 5/4/04 1. (100 points) In this problem, you will implement a simple shared memory multiprocessor system

More information

DIGITAL LOGIC WITH VHDL (Fall 2013) Unit 6

DIGITAL LOGIC WITH VHDL (Fall 2013) Unit 6 DIGITAL LOGIC WITH VHDL (Fall 2013) Unit 6 FINITE STATE MACHINES (FSMs) Moore Machines Mealy Machines FINITE STATE MACHINES (FSMs) Classification: Moore Machine: Outputs depend only on the current state

More information

CprE 583 Reconfigurable Computing

CprE 583 Reconfigurable Computing Recap Moore FSM Example CprE / ComS 583 Reconfigurable Computing Moore FSM that recognizes sequence 10 0 1 0 1 S0 / 0 S1 / 0 1 S2 / 1 Prof. Joseph Zambreno Department of Electrical and Computer Engineering

More information

Summary of FPGA & VHDL

Summary of FPGA & VHDL FYS4220/9220 Summary of FPGA & VHDL Lecture #6 Jan Kenneth Bekkeng, University of Oslo - Department of Physics 16.11.2011 Curriculum (VHDL & FPGA part) Curriculum (Syllabus) defined by: Lectures Lecture6:

More information

CSE 260 Digital Computers: Organization and Logical Design. Exam 2 Solutions

CSE 260 Digital Computers: Organization and Logical Design. Exam 2 Solutions CSE 260 Digital Computers: Organization and Logical Design Exam 2 Solutions Jon Turner 1. (10 points). The table at right shows a table with 5 rows and three columns with each column having a heading.

More information

Sequential Logic - Module 5

Sequential Logic - Module 5 Sequential Logic Module 5 Jim Duckworth, WPI 1 Latches and Flip-Flops Implemented by using signals in IF statements that are not completely specified Necessary latches or registers are inferred by the

More information

The University of Alabama in Huntsville ECE Department CPE Midterm Exam February 26, 2003

The University of Alabama in Huntsville ECE Department CPE Midterm Exam February 26, 2003 The University of Alabama in Huntsville ECE Department CPE 526 01 Midterm Exam February 26, 2003 1. (20 points) Describe the following logic expression (A B D) + (A B C) + (B C ) with a structural VHDL

More information

Assignment. Last time. Last time. ECE 4514 Digital Design II. Back to the big picture. Back to the big picture

Assignment. Last time. Last time. ECE 4514 Digital Design II. Back to the big picture. Back to the big picture Assignment Last time Project 4: Using synthesis tools Synplify Pro and Webpack Due 11/11 ning of class Generics Used to parameterize models E.g., Delay, bit width Configurations Configuration specification

More information

VHDL: Modeling RAM and Register Files. Textbook Chapters: 6.6.1, 8.7, 8.8, 9.5.2, 11.2

VHDL: Modeling RAM and Register Files. Textbook Chapters: 6.6.1, 8.7, 8.8, 9.5.2, 11.2 VHDL: Modeling RAM and Register Files Textbook Chapters: 6.6.1, 8.7, 8.8, 9.5.2, 11.2 Memory Synthesis Approaches: Random logic using flip-flops or latches Register files in datapaths RAM standard components

More information

VHDL. VHDL History. Why VHDL? Introduction to Structured VLSI Design. Very High Speed Integrated Circuit (VHSIC) Hardware Description Language

VHDL. VHDL History. Why VHDL? Introduction to Structured VLSI Design. Very High Speed Integrated Circuit (VHSIC) Hardware Description Language VHDL Introduction to Structured VLSI Design VHDL I Very High Speed Integrated Circuit (VHSIC) Hardware Description Language Joachim Rodrigues A Technology Independent, Standard Hardware description Language

More information

Nanosistemų programavimo kalbos 5 paskaita. Sekvencinių schemų projektavimas

Nanosistemų programavimo kalbos 5 paskaita. Sekvencinių schemų projektavimas Nanosistemų programavimo kalbos 5 paskaita Sekvencinių schemų projektavimas Terminai Combinational circuit kombinacinė schema (be atminties elementų) Sequential circuit nuosekli (trigerinė, sekvencinė)

More information

VHDL. ELEC 418 Advanced Digital Systems Dr. Ron Hayne. Images Courtesy of Cengage Learning

VHDL. ELEC 418 Advanced Digital Systems Dr. Ron Hayne. Images Courtesy of Cengage Learning VHDL ELEC 418 Advanced Digital Systems Dr. Ron Hayne Images Courtesy of Cengage Learning Design Flow 418_02 2 VHDL Modules 418_02 3 VHDL Libraries library IEEE; use IEEE.std_logic_1164.all; std_logic Single-bit

More information

Hardware Description Language VHDL (1) Introduction

Hardware Description Language VHDL (1) Introduction Hardware Description Language VHDL (1) Introduction Digital Radiation Measurement and Spectroscopy NE/RHP 537 Introduction Hardware description language (HDL) Intended to describe circuits textually, for

More information

Abi Farsoni, Department of Nuclear Engineering and Radiation Health Physics, Oregon State University

Abi Farsoni, Department of Nuclear Engineering and Radiation Health Physics, Oregon State University Hardware description language (HDL) Intended to describe circuits textually, for a computer to read Evolved starting in the 1970s and 1980s Popular languages today include: VHDL Defined in 1980s by U.S.

More information

Computer-Aided Digital System Design VHDL

Computer-Aided Digital System Design VHDL بس م اهلل الر حم ن الر حی م Iran University of Science and Technology Department of Computer Engineering Computer-Aided Digital System Design VHDL Ramin Rajaei ramin_rajaei@ee.sharif.edu Modeling Styles

More information

VHDL Modeling Behavior from Synthesis Perspective -Part B - EL 310 Erkay Savaş Sabancı University

VHDL Modeling Behavior from Synthesis Perspective -Part B - EL 310 Erkay Savaş Sabancı University VHDL Modeling Behavior from Synthesis Perspective -Part B - EL 310 Erkay Savaş Sabancı University 1 The Wait Statement Syntax wait until condition; Different forms wait until(clk event and clk = 1 ); wait

More information

DIGITAL LOGIC DESIGN VHDL Coding for FPGAs Unit 6

DIGITAL LOGIC DESIGN VHDL Coding for FPGAs Unit 6 DIGITAL LOGIC DESIGN VHDL Coding for FPGAs Unit 6 FINITE STATE MACHINES (FSMs) Moore Machines Mealy Machines Algorithmic State Machine (ASM) charts FINITE STATE MACHINES (FSMs) Classification: Moore Machine:

More information

Luleå University of Technology Kurskod SMD152 Datum Skrivtid

Luleå University of Technology Kurskod SMD152 Datum Skrivtid Luleå University of Technology Kurskod SMD152 Datum 2003-10-24 Skrivtid 9.00 13.00 1 Manual synthesis (10 p, 2 p each) Here you are given five different VHDL models. Your task is to draw the schematics

More information

Lecture 4: Modeling in VHDL (Continued ) EE 3610 Digital Systems

Lecture 4: Modeling in VHDL (Continued ) EE 3610 Digital Systems EE 3610: Digital Systems 1 Lecture 4: Modeling in VHDL (Continued ) Sequential Statements Use Process process (sensitivity list) variable/constant declarations Sequential Statements end process; 2 Sequential

More information

Lecture 3: Modeling in VHDL. EE 3610 Digital Systems

Lecture 3: Modeling in VHDL. EE 3610 Digital Systems EE 3610: Digital Systems 1 Lecture 3: Modeling in VHDL VHDL: Overview 2 VHDL VHSIC Hardware Description Language VHSIC=Very High Speed Integrated Circuit Programming language for modelling of hardware

More information

Field Programmable Gate Array

Field Programmable Gate Array Field Programmable Gate Array System Arch 27 (Fire Tom Wada) What is FPGA? System Arch 27 (Fire Tom Wada) 2 FPGA Programmable (= reconfigurable) Digital System Component Basic components Combinational

More information

Schedule. ECE U530 Digital Hardware Synthesis. Rest of Semester. Midterm Question 1a

Schedule. ECE U530 Digital Hardware Synthesis. Rest of Semester. Midterm Question 1a ECE U530 Digital Hardware Synthesis Prof. Miriam Leeser mel@coe.neu.edu November 8, 2006 Midterm Average: 70 Lecture 16: Midterm Solutions Homework 6: Calculator Handshaking HW 6: Due Wednesday, November

More information

Design Examples. ELEC 418 Advanced Digital Systems Dr. Ron Hayne. Images Courtesy of Cengage Learning

Design Examples. ELEC 418 Advanced Digital Systems Dr. Ron Hayne. Images Courtesy of Cengage Learning Design Examples ELEC 418 Advanced Digital Systems Dr. Ron Hayne Images Courtesy of Cengage Learning BCD to 7-Segment Display 418_04 2 BCD to 7-Segment Display entity BCD_Seven is port(bcd: in std_logic_vector(3

More information

Synthesis from VHDL. Krzysztof Kuchcinski Department of Computer Science Lund Institute of Technology Sweden

Synthesis from VHDL. Krzysztof Kuchcinski Department of Computer Science Lund Institute of Technology Sweden Synthesis from VHDL Krzysztof Kuchcinski Krzysztof.Kuchcinski@cs.lth.se Department of Computer Science Lund Institute of Technology Sweden March 23, 2006 Kris Kuchcinski (LTH) Synthesis from VHDL March

More information

EE 1315: DIGITAL LOGIC LAB EE Dept, UMD

EE 1315: DIGITAL LOGIC LAB EE Dept, UMD EXPERIMENT # 7: Basic Latches EE 1315: DIGITAL LOGIC LAB EE Dept, UMD Latches are primitive memory elements of sequential circuits that are used in building simple noise filtering circuits and flip-flops.

More information

Outline. CPE/EE 422/522 Advanced Logic Design L05. Review: General Model of Moore Sequential Machine. Review: Mealy Sequential Networks.

Outline. CPE/EE 422/522 Advanced Logic Design L05. Review: General Model of Moore Sequential Machine. Review: Mealy Sequential Networks. Outline CPE/EE 422/522 Advanced Logic Design L05 Electrical and Computer Engineering University of Alabama in Huntsville What we know Combinational Networks Sequential Networks: Basic Building Blocks,

More information

DIGITAL LOGIC DESIGN VHDL Coding for FPGAs

DIGITAL LOGIC DESIGN VHDL Coding for FPGAs IGITAL LOGIC SIGN VHL Coding for FPGAs SUNTIAL CIRCUITS Unit 5 Asynchronous sequential circuits: Latches Synchronous circuits: flip flops, counters, registers. Testbench: Generating stimulus COMBINATIONAL

More information

Two HDLs used today VHDL. Why VHDL? Introduction to Structured VLSI Design

Two HDLs used today VHDL. Why VHDL? Introduction to Structured VLSI Design Two HDLs used today Introduction to Structured VLSI Design VHDL I VHDL and Verilog Syntax and ``appearance'' of the two languages are very different Capabilities and scopes are quite similar Both are industrial

More information

VHDL simulation and synthesis

VHDL simulation and synthesis VHDL simulation and synthesis How we treat VHDL in this course You will not become an expert in VHDL after taking this course The goal is that you should learn how VHDL can be used for simulation and synthesis

More information

HDL. Hardware Description Languages extensively used for:

HDL. Hardware Description Languages extensively used for: HDL Hardware Description Languages extensively used for: Describing (digital) hardware (formal documentation) Simulating it Verifying it Synthesizing it (first step of modern design flow) 2 main options:

More information

Today. Comments about assignment Max 1/T (skew = 0) Max clock skew? Comments about assignment 3 ASICs and Programmable logic Others courses

Today. Comments about assignment Max 1/T (skew = 0) Max clock skew? Comments about assignment 3 ASICs and Programmable logic Others courses Today Comments about assignment 3-43 Comments about assignment 3 ASICs and Programmable logic Others courses octor Per should show up in the end of the lecture Mealy machines can not be coded in a single

More information

Introduction to VHDL #3

Introduction to VHDL #3 ECE 322 Digital Design with VHDL Introduction to VHDL #3 Lecture 7 & 8 VHDL Modeling Styles VHDL Modeling Styles Dataflow Concurrent statements Structural Components and interconnects Behavioral (sequential)

More information

VHDL HIERARCHICAL MODELING

VHDL HIERARCHICAL MODELING To incorporate hierarchy in VHDL we must add component declarations and component instantiations to the model. In addition, we need to declare internal signals to interconnect the components. We can also

More information

COE Design Process Tutorial

COE Design Process Tutorial COE 758 - Design Process Tutorial I. Introduction This tutorial describes a formal design process for the creation of digital systems. The aim of this design process is to provide a systematic approach

More information

COE 405, Term 062. Design & Modeling of Digital Systems. HW# 1 Solution. Due date: Wednesday, March. 14

COE 405, Term 062. Design & Modeling of Digital Systems. HW# 1 Solution. Due date: Wednesday, March. 14 COE 405, Term 062 Design & Modeling of Digital Systems HW# 1 Solution Due date: Wednesday, March. 14 Q.1. Consider the 4-bit carry-look-ahead adder (CLA) block shown below: A 3 -A 0 B 3 -B 0 C 3 4-bit

More information

Counters. Counter Types. Variations. Modulo Gray Code BCD (Decimal) Decade Ring Johnson (twisted ring) LFSR

Counters. Counter Types. Variations. Modulo Gray Code BCD (Decimal) Decade Ring Johnson (twisted ring) LFSR CE 1911 Counters Counter Types Modulo Gray Code BC (ecimal) ecade Ring Johnson (twisted ring) LFSR Variations Asynchronous / Synchronous Up/own Loadable 2 tj Modulo-n (n = a power of 2) Asynchronous Count

More information

Introduction to VHDL Design on Quartus II and DE2 Board

Introduction to VHDL Design on Quartus II and DE2 Board ECP3116 Digital Computer Design Lab Experiment Duration: 3 hours Introduction to VHDL Design on Quartus II and DE2 Board Objective To learn how to create projects using Quartus II, design circuits and

More information

COVER SHEET: Total: Regrade Info: 5 (5 points) 2 (8 points) 6 (10 points) 7b (13 points) 7c (13 points) 7d (13 points)

COVER SHEET: Total: Regrade Info: 5 (5 points) 2 (8 points) 6 (10 points) 7b (13 points) 7c (13 points) 7d (13 points) EEL 4712 Midterm 2 Spring 2011 VERSION 1 Name: UFID: Sign your name here if you would like for your test to be returned in class: IMPORTANT: Please be neat and write (or draw) carefully. If we cannot read

More information

Control Unit: Binary Multiplier. Arturo Díaz-Pérez Departamento de Computación Laboratorio de Tecnologías de Información CINVESTAV-IPN

Control Unit: Binary Multiplier. Arturo Díaz-Pérez Departamento de Computación Laboratorio de Tecnologías de Información CINVESTAV-IPN Control Unit: Binary Multiplier Arturo Díaz-Pérez Departamento de Computación Laboratorio de Tecnologías de Información CINVESTAV-IPN Example: Binary Multiplier Two versions Hardwired control Microprogrammed

More information

Timing in synchronous systems

Timing in synchronous systems BO 1 esign of sequential logic Outline Timing in synchronous networks Synchronous processes in VHL VHL-code that introduces latches andf flip-flops Initialization of registers Mealy- and Moore machines

More information

The Virtex FPGA and Introduction to design techniques

The Virtex FPGA and Introduction to design techniques The Virtex FPGA and Introduction to design techniques SM098 Computation Structures Lecture 6 Simple Programmable Logic evices Programmable Array Logic (PAL) AN-OR arrays are common blocks in SPL and CPL

More information

FPGA.

FPGA. CMOS TTL Verilog VHDL mshora@yahoo.com 7400. NAND CMOS TTL 1 0 source sink datasheet bounce bounce debunce RS Latch debounce Typical Characteristics NO NC Semiconductor Material Wavelength Colour V F @

More information

Hello, World: A Simple Application for the Field Programmable Port Extender (FPX)

Hello, World: A Simple Application for the Field Programmable Port Extender (FPX) Hello, World: A Simple Application for the Field Programmable Port Extender (FPX) John Lockwood, David Lim WUCS-TM-00-12 July 11, 2000 Department of Computer Science Applied Research Lab Washington University

More information

Lab 3. Advanced VHDL

Lab 3. Advanced VHDL Lab 3 Advanced VHDL Lab 3 Advanced VHDL This lab will demonstrate many advanced VHDL techniques and how they can be used to your advantage to create efficient VHDL code. Topics include operator balancing,

More information

EENG 2910 Project III: Digital System Design. Due: 04/30/2014. Team Members: University of North Texas Department of Electrical Engineering

EENG 2910 Project III: Digital System Design. Due: 04/30/2014. Team Members: University of North Texas Department of Electrical Engineering EENG 2910 Project III: Digital System Design Due: 04/30/2014 Team Members: University of North Texas Department of Electrical Engineering Table of Content i Contents Abstract...3 Introduction...3 Report...4

More information

The University of Alabama in Huntsville Electrical and Computer Engineering CPE/EE 422/522 Spring 2005 Homework #6 Solution

The University of Alabama in Huntsville Electrical and Computer Engineering CPE/EE 422/522 Spring 2005 Homework #6 Solution 5.3(a)(2), 5.6(c)(2), 5.2(2), 8.2(2), 8.8(2) The University of Alabama in Huntsville Electrical and Computer Engineering CPE/EE 422/522 Spring 25 Homework #6 Solution 5.3 (a) For the following SM chart:

More information

VHDL Testbench. Test Bench Syntax. VHDL Testbench Tutorial 1. Contents

VHDL Testbench. Test Bench Syntax. VHDL Testbench Tutorial 1. Contents VHDL Testbench Tutorial 1 Contents 1 VHDL Testbench 2 Test Bench Syntax 3 Testbench Example: VHDL Code for Up Down Binary Counter 4 VHDL Testbench code for up down binary counter 5 Testbench Waveform for

More information

Example 15: Moving Sprites with Flash Background

Example 15: Moving Sprites with Flash Background Displaying an Image Read from Flash Memory 95 Listing 2.5 (cont.) vga_flash_n2_top.vhd clr

More information

Midterm Exam Thursday, October 24, :00--2:15PM (75 minutes)

Midterm Exam Thursday, October 24, :00--2:15PM (75 minutes) Last (family) name: Answer Key First (given) name: Student I.D. #: Department of Electrical and Computer Engineering University of Wisconsin - Madison ECE 551 Digital System Design and Synthesis Midterm

More information

EL 310 Hardware Description Languages Midterm

EL 310 Hardware Description Languages Midterm EL 3 Hardware Description Languages Midterm 2 3 4 5 Total Name: ID : Notes: ) Please answer the questions in the provided space after each question. 2) Duration is minutes 3) Closed books and closed notes.

More information

Constructing VHDL Models with CSA

Constructing VHDL Models with CSA Constructing VHDL Models with CSA List all components (e.g., gate) inclusive propagation delays. Identify input/output signals as input/output ports. All remaining signals are internal signals. Identify

More information

Chapter 6 Combinational-Circuit Building Blocks

Chapter 6 Combinational-Circuit Building Blocks Chapter 6 Combinational-Circuit Building Blocks Commonly used combinational building blocks in design of large circuits: Multiplexers Decoders Encoders Comparators Arithmetic circuits Multiplexers A multiplexer

More information

Lab 3 Sequential Logic for Synthesis. FPGA Design Flow.

Lab 3 Sequential Logic for Synthesis. FPGA Design Flow. Lab 3 Sequential Logic for Synthesis. FPGA Design Flow. Task 1 Part 1 Develop a VHDL description of a Debouncer specified below. The following diagram shows the interface of the Debouncer. The following

More information

FPGA Lecture for LUPO and GTO Vol , 31 August (revised 2013, 19 November) H. Baba

FPGA Lecture for LUPO and GTO Vol , 31 August (revised 2013, 19 November) H. Baba FPGA Lecture for LUPO and GTO Vol. 1 2010, 31 August (revised 2013, 19 November) H. Baba Contents Basic feature of FPGA Basic usage for LUPO New project Read and Write Basic behavioral VHDL simulation

More information

HDL Coding Style Xilinx, Inc. All Rights Reserved

HDL Coding Style Xilinx, Inc. All Rights Reserved HDL Coding Style Objective After completing this module, you will be able to: Select a proper coding style to create efficient FPGA designs Specify Xilinx resources that need to be instantiated for various

More information

VHDL for Synthesis. Course Description. Course Duration. Goals

VHDL for Synthesis. Course Description. Course Duration. Goals VHDL for Synthesis Course Description This course provides all necessary theoretical and practical know how to write an efficient synthesizable HDL code through VHDL standard language. The course goes

More information

Multi-valued Logic. Standard Logic IEEE 1164 Type std_ulogic is ( U, uninitialized

Multi-valued Logic. Standard Logic IEEE 1164 Type std_ulogic is ( U, uninitialized Multi-valued Logic Standard Logic IEEE 1164 Type std_ulogic is ( U, uninitialized X, unknown 0, logic 0 1, logic 1 Z, high impedance W, unknown L, logic 0 weak H, logic 1 weak - ); don t care Standard

More information

Concurrent & Sequential Stmts. (Review)

Concurrent & Sequential Stmts. (Review) VHDL Introduction, Part II Figures in this lecture are from: Rapid Prototyping of Digital Systems, Second Edition James O. Hamblen & Michael D. Furman, Kluwer Academic Publishers, 2001, ISBN 0-7923-7439-

More information

Latch Based Design (1A) Young Won Lim 2/18/15

Latch Based Design (1A) Young Won Lim 2/18/15 Latch Based Design (1A) Copyright (c) 2015 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any

More information

ECOM 4311 Digital Systems Design

ECOM 4311 Digital Systems Design ECOM 4311 Digital Systems Design Eng. Monther Abusultan Computer Engineering Dept. Islamic University of Gaza Page 1 Agenda 1. Counters Page 2 Counters - special name of any clocked sequential circuit

More information

Pollard s Tutorial on Clocked Stuff in VHDL

Pollard s Tutorial on Clocked Stuff in VHDL Pollard s Tutorial on Clocked Stuff in VHDL Welcome to a biased view of how to do register type of stuff in VHDL. The object of this short note is to identify one way to easily handle registered logic

More information

Sequential Circuit Design: Principle

Sequential Circuit Design: Principle Sequential Circuit Design: Principle Chapter 8 1 Outline 1. Overview on sequential circuits 2. Synchronous circuits 3. Danger of synthesizing async circuit 4. Inference of basic memory elements 5. Simple

More information

COVER SHEET: Total: Regrade Info: 5 (14 points) 7 (15 points) Midterm 1 Spring 2012 VERSION 1 UFID:

COVER SHEET: Total: Regrade Info: 5 (14 points) 7 (15 points) Midterm 1 Spring 2012 VERSION 1 UFID: EEL 4712 Midterm 1 Spring 2012 VERSION 1 Name: UFID: IMPORTANT: Please be neat and write (or draw) carefully. If we cannot read it with a reasonable effort, it is assumed wrong. As always, the best answer

More information

8 Register, Multiplexer and

8 Register, Multiplexer and 8 Register, Multiplexer and Three-State Inference HDL Compiler can infer Registers (latches and flip flops) Multiplexers Three state gates This chapter discusses methods of inferring different types of

More information

An easy to read reference is:

An easy to read reference is: 1. Synopsis: Timing Analysis and Timing Constraints The objective of this lab is to make you familiar with two critical reports produced by the Xilinx ISE during your design synthesis and implementation.

More information

ECE 574: Modeling and Synthesis of Digital Systems using Verilog and VHDL. Fall 2017 Final Exam (6.00 to 8.30pm) Verilog SOLUTIONS

ECE 574: Modeling and Synthesis of Digital Systems using Verilog and VHDL. Fall 2017 Final Exam (6.00 to 8.30pm) Verilog SOLUTIONS ECE 574: Modeling and Synthesis of Digital Systems using Verilog and VHDL Fall 2017 Final Exam (6.00 to 8.30pm) Verilog SOLUTIONS Note: Closed book no notes or other material allowed apart from the one

More information

Introduction. Overview. Top-level module. EE108a Lab 3: Bike light

Introduction. Overview. Top-level module. EE108a Lab 3: Bike light Version 2.0 David Black-Schaffer Version 2.2 David Black-Schaffer Introduction In lab 3 you are going to get your first taste of sequential logic by building a system of finite state machines, timers,

More information

Laboratory Exercise 7

Laboratory Exercise 7 Laboratory Exercise 7 Finite State Machines This is an exercise in using finite state machines. Part I We wish to implement a finite state machine (FSM) that recognizes two specific sequences of applied

More information

EECE 353: Digital Systems Design Lecture 10: Datapath Circuits

EECE 353: Digital Systems Design Lecture 10: Datapath Circuits EECE 353: Digital Systems Design Lecture 10: Datapath Circuits Cristian Grecu grecuc@ece.ubc.ca Course web site: http://courses.ece.ubc.ca/353 Introduction to lecture 10 Large digital systems are more

More information

DESIGN AND IMPLEMENTATION OF MOD-6 SYNCHRONOUS COUNTER USING VHDL

DESIGN AND IMPLEMENTATION OF MOD-6 SYNCHRONOUS COUNTER USING VHDL Arid Zone Journal of Engineering, Technology and Environment. August, 2013; Vol. 9, 17-26 DESIGN AND IMPLEMENTATION OF MOD-6 SYNCHRONOUS COUNTER USING VHDL Dibal, P.Y. (Department of Computer Engineering,

More information

EECS150 - Digital Design Lecture 20 - Finite State Machines Revisited

EECS150 - Digital Design Lecture 20 - Finite State Machines Revisited EECS150 - Digital Design Lecture 20 - Finite State Machines Revisited April 2, 2009 John Wawrzynek Spring 2009 EECS150 - Lec20-fsm Page 1 Finite State Machines (FSMs) FSM circuits are a type of sequential

More information

Reconfigurable Hardware Design (coursework)

Reconfigurable Hardware Design (coursework) EEE8076 Reconfigurable Hardware Design (coursework) Dr A. Bystrov Dr. E.G. Chester Autumn 2010 Module Outline Teaching Staff Dr Alex Bystrov Dr Graeme Chester The contact details are in the EECE web page

More information