Synchronous Sequential Design

Size: px
Start display at page:

Download "Synchronous Sequential Design"

Transcription

1 Synchronous Sequential Design SMD098 Computation Structures Lecture 4 1 Synchronous sequential systems Almost all digital systems have some concept of state the outputs of a system depends on the past values of its inputs as well as the present values. Such systems are known as sequential systems, as opposed to combinational systems. A sequential system be Asynchronous. The next state is updated as soon as the next state changes (there is no clock signal) Synchronous. The next state is only updated when a clock signal changes Simple model of a synchronous sequential system SMD098 Computation Structures Lecture 4 2

2 Why synchronous? Signals are sampled at well-defined time intervals. Problems with speed variation through different paths of logic, short and long paths, can easily be avoided. Glitches caused by dynamic and static hazards have no effect since the data is sampled only after the glitches have had a chance to settle out Asynchronous designs do not operate with a clock. Relies on handshaking between logic. Sensitive to glitches and ordering of signals Works well under variations of temperature, voltage and process. Changing an asynchronous design from a.5 micron process to a.18 micron process will change the timing of the design. The result will most likely be that the new design will not work as intended Interfacing two synchronous blocks is simple. Interfacing asynchronous blocks is not simple Synthesis and other tools does not handle asynchronous logic very well. Designing asynchronously puts much higher demands on the designer SMD098 Computation Structures Lecture 4 3 Never asynchronous? Asynchronous designs can sometimes be motivated. Asynchronous design can be faster and consume less power if designed correctly. But it is difficult - Only idiots and geniuses designs asynchronously. I don t consider myself to be an idiot or a genius Interfacing asynchronous input signals is unavoidable in many designs Interfacing clock domains that are asynchronous relative to each other is common. See lab 3.3, asynchronous FIFO Synchronous is is simple simple --keep keep it it simple! simple! Asynchronous interfaces needs needs special special attention. SMD098 Computation Structures Lecture 4 4

3 Finite State Machines - FSM Moore FSM: Outputs are a function of the current state Inputs Next State State Register Output Moore outputs Moore Mealy FSM: Outputs are a function of the current state and inputs. We have combinational paths through the FSM. Inputs Next State State Register Output Mealy outputs Mealy SMD098 Computation Structures Lecture 4 5 Combined Mealy / Moore FSM State machines Inputs Next State State Register Output Mealy outputs Combined Mealy / Moore Output Moore outputs Registered output FSM. Outputs are registered, which prevents output glitches. Output glitches may not matter though Inputs Next State State Register Next Output Output Register Registered outputs Registered output FSM SMD098 Computation Structures Lecture 4 6

4 Example from text book Low end traffic light controller A combined Mealy/Moore FSM Input Input Mealy Mealy output output State State name name Moore Moore outputs outputs The diagram shown is probably what you are used to see from the Digital Design course, but here you will also learn the Algorithmic State Machine (ASM) chart representation SMD098 Computation Structures Lecture 4 7 Algorithmic State Machines (ASM) State box. A state takes exactly one clock cycle to complete. If a signal has no value associated to it (Y) it is logic one and logic zero elsewhere. The notation Z Ä 1 means that the signal is assigned at the end of the state, during the next clock cycle, and holds its value until otherwise set elsewhere. Decision box. Must follow and be associated with a state box. The decision is made base upon one or more input signals in same cycle as the other actions of the state. Conditional output box. Must follow a decision box. The outputs are asserted in the same clock cycle as those in the state box to which it is attached. The output signals are Mealy outputs since they depend on the present state as well as the inputs. SMD098 Computation Structures Lecture 4 8

5 ASM chart for traffic light controller 1 clock cycle In the digital course you should have learned how to manually obtain a hardware implementation of a FSM from a chart representation. If you have not or have forgotten read chapter in the text book SMD098 Computation Structures Lecture 4 9 State encoding State encoding - the way binary numbers are assigned to states. You may define your own encoding or let the synthesis tool define it Common encoding formats: No. Binary Gray One-hot There There is is no no known known method method for for determining determining in in advance advance which which state state assignment/encoding is is best best in in the the sense sense of of giving giving simplest simplest next nextstate logic. logic. SMD098 Computation Structures Lecture 4 10

6 State assignment guide lines We should always provide some means of initializing the state machine when power is applied. This can be done with asynchronous sets or resets. However, do not use asynchronous resets sets that are sourced from internal combinational logic (more about this later). Minimizing the number of flip-flops is not necessarily good. The states may have some particular. For instance a state variable may be set in one state but in no others. This may result in simple output logic, but non-minimal number of flip-flops. One-hot encoding allow very simple and fast next state logic. In FPGAs there is a large number of flips-flops. If the flip-flops are not use they are wasted, so one-hot encoding is often used in FPGA implementations. For some reason 1 we may want to minimize the number of state bits that changes between each state then Gray coding should be chosen. Note that it is not meaningful if we for instance have an FSM where each state can transition to any other state. 1. Some reason may be power minimization or reducing the probability of entering an erroneous state for an FSM with asynchronous inputs SMD098 Computation Structures Lecture 4 11 Safety critical system For a safety critical system there should be logic that detects if an FSM has entered an illegal state. When an illegal state is entered the FSM should be reset. For instance we may have an FSM with five states with binary encoding (2 3 = 8). Then there are three illegal states that the FSM should never enter (but it may due to for instance alpha particles). What is a safety critical system? SMD098 Computation Structures Lecture 4 12

7 State encoding in VHDL Using an enumerated type, synthesis tool will decide encoding: architecture Enc1 of StateMachine is type State is ( Idle, S1, S2, S3, S4, S5 ); signal PresentState, NextState : State;... end architecture Enc1; Using constants to represent states. If this is done make sure you turn off any synthesis FSM optimization, since the synthesis tool may re-encode the states. architecture Enc2 of StateMachine is -- One-hot constant Idle : std_logic_vector(2 downto 0) := "000001"; constant S1 : std_logic_vector(2 downto 0) := "000010"; constant S2 : std_logic_vector(2 downto 0) := "000100"; constant S3 : std_logic_vector(2 downto 0) := "001000"; constant S4 : std_logic_vector(2 downto 0) := "010000"; constant S5 : std_logic_vector(2 downto 0) := "100000"; signal PresentState, NextState : std_logic_vector(2 downto 0);... end Enc2; SMD098 Computation Structures Lecture 4 13 library ieee; use ieee.std_logic_1164.all; Example Moore FSM entity StateMachine is port ( Clk, Reset : in std_logic; A, B : in std_logic; Y : out std_logic_vector(2 downto 0)); end StateMachine; architecture Moore of StateMachine is type State is ( Idle, S1, S2, S3, S4, S5 ); signal PresentState, NextState : State; -- rest of code goes here end architecture Moore; Inputs A, B Next State NextState State Register PresentState Output Moore outputs Moore Y SMD098 Computation Structures Lecture 4 14

8 Example Moore FSM Learn both types of representations! SMD098 Computation Structures Lecture 4 15 NxtState: process(a, B, PresentState) case PresentState is when Idle => NextState <= S1; when S1 => if A = 1 then NextState <= S2; else NextState <= S1; end if; when S2 => if A = 0 and B = 1 then NextState <= S3; elsif A = 1 and B = 1 then NextState <= S4; elsif A = 1 and B = 0 then NextState <= S5; else NextState <= S2; end if; when S3 => NextState <= S4; when S4 => NextState <= S5; when S5 => NextState <= Idle; end case; end process; Moore FSM three-process model FFs: process(clk, Reset) if Reset = 1 then PresentState <= Idle; elsif rising_edge(clk) then PresentState <= NextState; end if; end process; Output : process(presentstate) case PresentState is when Idle => Y <= "000"; when S1 => Y <= "101"; when S2 => Y <= "111"; when S3 => Y <= "011"; when S4 => Y <= "110"; when S5 => Y <= "000"; end case; end process; Inputs Next State State Register Output Moore outputs SMD098 Computation Structures Lecture 4 16

9 process(clk, Reset) if Reset = 1 then PresentState <= Idle; elsif rising_edge(clk) then case PresentState is when Idle => PresentState <= S1; when S1 => if A = 1 then PresentState <= S2; else PresentState <= S1; end if; when S2 => if A = 0 and B = 1 then PresentState <= S3; elsif A = 1 and B = 1 then PresentState <= S4; elsif A = 1 and B = 0 then PresentState <= S5; else PresentState <= S2; end if; when S3 => PresentState <= S4; when S4 => PresentState <= S5; when S5 => PresentState <= Idle; end case; end if; end process; Moore FSM two-process model ver.. 1 Inputs Next State process(presentstate) case PresentState is when Idle => Y <= "000"; when S1 => Y <= "101"; when S2 => Y <= "111"; when S3 => Y <= "011"; when S4 => Y <= "110"; when S5 => Y <= "000"; end case; end process; State Register Output Moore outputs SMD098 Computation Structures Lecture 4 17 Comb: process(a, B, PresentState) case PresentState is when Idle => NextState <= S1; Y <= "000"; when S1 => if A = 1 then NextState <= S2; else NextState <= S1; end if; Y <= "101"; when S2 => if A = 0 and B = 1 then NextState <= S3; elsif A = 1 and B = 1 then NextState <= S4; elsif A = 1 and B = 0 then NextState <= S5; else NextState <= S2; end if; Y <= "111"; when S3 => NextState <= S4; Y <= "011"; when S4 => NextState <= S5; Y <= "110"; when S5 => NextState <= Idle; Y <= "000"; end case; end process; Moore FSM two-process model ver.. 2 Inputs StateFFs: process(clk, Reset) if Reset = 1 then PresentState <= Idle; elsif rising_edge(clk) then PresentState <= NextState; end if; end process StateFFs; Next State State Register Output Use one of the three different models for describing your FSMs. Moore outputs SMD098 Computation Structures Lecture 4 18

10 process(car, Timed, PresentState) StartTimer <= 0 ; -- Default output case PresentState is when S1 => MajorGreen <= 1 ; MinorGreen <= 0 ; if Car = 1 then StartTimer <= 1 ; -- Mealy output NextState <= S2; else NextState <= 1; end if; when S2 => MajorGreen <= 0 ; MinorGreen <= 1 ; if Timed = 1 then NextState <= S1; else NextState <= S2; end if; end case; end process; Combined Mealy/Moore FSM coding process(clk, Reset) if Reset = 1 then PresentState <= Idle; elsif rising_edge(clk) then PresentState <= NextState; end if; end process; Inputs Next State State Register Output Mealy outputs Combined Mealy / Moore Output Moore outputs SMD098 Computation Structures Lecture 4 19 Synplify and FSM encoding Synplify Pro have a FSM compiler. It automatically detects state machines in the source code. The FSMs are implemented with either sequential, gray or one-hot encoding. architecture Synplify of StateMachine is type State is ( Idle, S1, S2, S3, S4, S5 ); signal PresentState, NextState : State; attribute syn_encoding : string; attribute syn_encoding of PresentState : signal is "onehot";... end architecture Synplify; To implement safe FSMs the attribute should be changed to architecture SynplifySafe of StateMachine is type State is ( Idle, S1, S2, S3, S4, S5 ); signal PresentState, NextState : State; attribute syn_encoding : string; attribute syn_encoding of PresentState : signal is "onehot, safe";... end architecture SynplifySafe; SMD098 Computation Structures Lecture 4 20

11 Synplify FSM Compiler and Explorer Use the FSM viewer in Synplify! You may even do so before simulation. If FSM Explorer is enabled Synplify tries to find the optimal state encoding. The FSM Compiler uses a default encoding. In simulation make sure you trace the state signal in the waveform view. You will see the name of the enumerated type (i.e. S3 ) in the waveform viewer. SMD098 Computation Structures Lecture 4 21 FSM partitioning and linked FSMs Do not design too large FSMs. Break down large complicated control paths in to more manageable pieces. For instance you may have one master FSM and one or more slave FSMs or two or more FSMs that execute serially. Note that this example is no standard solution. There exist many more configurations for partitioned FSMs. As in many other cases it is very hard to find the optimal solution. But there are bad and good designs. SMD098 Computation Structures Lecture 4 22

12 Data path / control path partitioning It is not sufficient to describe a sequential systems with one or more FSMs. It is common practice to partition a system in to control and data paths. Advantages A better structural and logic decomposition of a system Design reuse of common data path blocks Efficient for CAD tools. Simplifies synthesis, place and route. SMD098 Computation Structures Lecture 4 23 Simple example of data/control path partitioning Data and control path Extracted control path Control Path Data and control path structurally separated. Separate VHDL entities! X[3:0] Data path Reset X0 FSM MuxSel ShiftLeft Round B[3:0] ShiftRight SMD098 Computation Structures Lecture 4 24

13 A more complex data path The pipelined MIPS architecture used in SMD082. Notice the clear definition of synchronizers (D flip-flops) that makes it easy to analyze the data path. Feed back paths are always synchronized! = = Zero ext. Register file Branch logic 0 A ALU 4 + = = B Sgn/Ze extend 31 + Instruction memory Data memory The SMD082 models of memories (register file, instr. and data memory) are simplified models. Don t try to implement this data path directly! SMD098 Computation Structures Lecture 4 25 What to do before you start to code! What are the design specification? Make sure you fully understand this Next sit down an plan your design. Take a piece of paper and sketch your solution Partition the design into data and control paths Define which units are clocked and which are combinational Use hierarchy when needed When this is done start coding in VHDL - not before! When coding VHDL for synthesis it is not like you are using in any other programming language. Remember that it is hardware you want to implement - so think hardware! This is much easier if plan your design. SMD098 Computation Structures Lecture 4 26

14 Synchronous design timing Combinational loops Long paths, short paths, false paths, multicycle paths skew, race hazards Global clock and clock enables Asynchronous reset, synchronous reset or no reset? Asynchronous inputs, synchronizers and metastability Crossing clock domains SMD098 Computation Structures Lecture 4 27 Wazzup? SMD098 Computation Structures Lecture 4 28

15 Combinational loops Combinational loops are a no-no in a synchronous digital design. Unexpected behavior may result. There may be a parasitic latch or even an oscillator. The result is simply unpredictable. Fix break every combinational loop with a synchronizer, i.e. a flip-flop. How would you do in this case? SMD098 Computation Structures Lecture 4 29 Timing of a positive edge triggered D flip-flop flop Setup time, t setup The time the D input must be stable before the rising edge of the flip-flop (assuming a positive edge triggered flip-flop) Hold time, t hold The time the D input must be stable after the rising edge of the clock D Clk Q tsetup t hold 1, 0 or metastable! If the setup or hold time parameters are violated the Q output will be either logic 0, logic 1 or the flip-flop will enter a metastable state, but will eventually become a valid logic level. SMD098 Computation Structures Lecture 4 30

16 Positive edge triggered flip-flop flop D Clk Q t plh(cq) t phl(cq) t hold t setup 1, 0 or metastable! -to-output delay, t p The delay of a low to high transition and the delay of a high to low transition may be different. We use the worst case when analyzing timing of circuits. SMD098 Computation Structures Lecture 4 31 What is the maximum clock frequency? FF1 FF2 D Q D Q Clk f = t pff1 1 + t + t setupff2 Routing delays and clock skew are not taken into account SMD098 Computation Structures Lecture 4 32

17 Timing constraints for a synchronous design When we constrain a design for timing we rely on the tools to make sure that we don t violate the setup and hold times. The constraints should at least be: The desired clock period (or frequency) Input arrival times relative to clock Maximum output delay relative to clock Xilinx FPGA IOBFF CLBFF IOBFF D Q Delay D Q CL1 D Q CL2 D Q Delay D Q BUFG CL = Combinatorial For Xilinx FPGAs always use the IOB flip-flops and always use the global buffers for clock routing SMD098 Computation Structures Lecture 4 33 Long path and short path The long path or critical path of a design determines the maximum achievable clock frequency. But why do we have to worry about the short path? D D Q Q 5 ns CL1 Long path - 6 ns 1 ns CL2 D Q D Q Short path - 1 ns FF1 Short path FF2 For proper operation the following must be satisfied: D Q t D Q short t pff1 + t short > t skew + t hff2 t skew or else we will get hold time violations for FF2. As you can see the relationship does not depend on the clock period SMD098 Computation Structures Lecture 4 34

18 skew and race hazards IN Clk1 FF1 D Q Q1 Delay Clk2 FF2 D Q Q2 t pff(min) For proper function the following must be satisfied + t t p(min) - t hold - skew(max) > 0 IN The short path is important! Clk1 Q1 Clk2 Q2 Ooops! SMD098 Computation Structures Lecture 4 35 skew What if we route the clock in the opposite direction of the data flow? Then for proper operation we must have: t pff1 + t short + t skew > t hff2 FF1 Short path FF2 D Q t short t skew D Q So this is better, but in most design you will have feedback paths so it is not possible to route the clock signal in the opposite direction of the data flow. Also clock skew will limit the maximum achievable clock frequency. So what is the solution? Ensure that the clock skew between communicating registers is bonded. For ASIC design this require careful design of the clock network. For FPGA design with Xilinx it is simple - use the global low skew clock nets. This ensures you that there will be no hold time violations, assuming you have one global clock. Use clock enable, instead of multiple clocks! SMD098 Computation Structures Lecture 4 36

19 trees H-tree Balanced tree source source The delay from the clock source to each tree node should be matched as close as possible in order to reduce the clock skew. SMD098 Computation Structures Lecture 4 37 (Unless you really know what you are doing.) SMD098 Computation Structures Lecture 4 38

20 False paths The paths A1 B2 and B1 A2 are false paths. These false paths can be excluded when performing timing driven optimization, such as synthesis and implementation. Depending on what tools are used a timing constraint should be set to indicate that the paths in fact are false paths. EnA EnA A1 A2 EnB B1 CL EnB B2 SMD098 Computation Structures Lecture 4 39 Multi cycle paths Consider this non-loadable pre-scaled counter 2 bit fast counter Wide counter Carry Out Enable The registers in the wide counter are enabled at a rate that is one fourth of the clock rate. Hence the timing constraint for the wide counter can be set to a clock rate corresponding to f clock /4. The combinatorial paths in the wide counter are multi cycle paths. The design tools do not automatically detect that so is the case, so a timing constraint, indicating the multi cycle paths must be set SMD098 Computation Structures Lecture 4 40

21 Synchronization at the system level A Delayed Locked Loop (DLL) can align internal and external clocks. Effectively eliminates on-chip clock distribution delay. This maximizes the achievable I/O speed. Chip 1 Chip 2 D Q D Q DLL DLL Comparator Error Delay The Virtex FPGA have DLLs. The DLLs can also be used to divide or double incoming clock rate distribution Data SMD098 Computation Structures Lecture 4 41 Asynchronous reset/preset is dangerous... Never glitch an asynchronous reset or preset. Use synchronous reset/preset if you generate the reset/preset signal from combinatorial logic Counter SomeThing Q1 Q0 Asynch Reset Assume Q0: 1 Å 0 and Q1: 0 Å 1 (Q changes from 01 to 10). Variations in routing delay may cause a glitch. Q0 Q1 Async. reset SMD098 Computation Structures Lecture 4 42

22 Do all memory elements need a reset? Short answer - Nope! FSMs must have a reset, so that when the chip is powered up the FSM can enter a predefined state Data path registers usually do not need a reset. The control path knows when data path registers contents are valid. SMD098 Computation Structures Lecture 4 43 Never synchronize an asynchronous input in more than one place Bad! Good! Asynch input Synchronizer D Q Asynch input Synchronizer D Q Synchronizer D Q FSM FSM Why? SMD098 Computation Structures Lecture 4 44

23 Asynchronous inputs Asynchronous inputs are unavoidable in many applications. When an asynchronous input is synchronized to a clock there is always a risk that the synchronizing flip-flop will enter a metastable state, since the asynchronous input may change inside the setup/hold time window In the metastable state the output of the flip-flop is undefined. The flip-flop will eventually settle to logic 1 or logic 0, but this must have happen before the next flip-flop will sample the signal or else we have a failure Undefined 1 0 t SMD098 Computation Structures Lecture 4 45 Metastability analysis The Mean Time Between Failure of a synchronizer is determined by t r exp MTBF = T f 0 ( t / τ ) Where is metastability resolution time, maximum time the output can remain metastable without causing synchronizer failure. τ and T0 are constants that depend on the electrical characteristics of the flip-flop. f is the frequency of the asynchronous input and f in clock is the frequency of the sampling clock in r f clock SMD098 Computation Structures Lecture 4 46

24 Metastability analysis - example Assume we have two identical flip-flops. Both flip-flops are clocked at 10 MHz and the synchronizing flip-flop is sampling an asynchronous 3 khz input τ T o 1 ns s Synchronizer Flip-flop in design 13 ns Asynch input D Q CL D Q t su 2 ns 1 f Resolution time: t t t = ( ) ns = 85 ns Not that bad! r = CL su clock ( 85) exp 20 MTBF = = s = years SMD098 Computation Structures Lecture 4 47 Metastability example What happens if we increase the system clock to 20 MHz? 1 tr = tcl tsu = f clock ( ) ns = 35 ns ( 35) exp MTBF = = s Not good at all! SMD098 Computation Structures Lecture 4 48

25 Cascaded synchronizer It is possible to reduce the MTBF by using cascaded flip-flops as synchronizers Asynch input Synchronizer FF1 FF2 13 ns Flip-flop in design D Q D Q CL D Q Routing delay 2 ns The critical input frequency to FF2 is the mean frequency of the MTBF for FF1 f in = exp ( ) ( 35) exp MTBF = = 5 6 f in 2 3 Hz 5.8days Changed from 0.05 s to about 6 days, but this is still not good enough. What can we do to further reduce the MTBF? SMD098 Computation Structures Lecture 4 49 Metastability Recovery - XAPP094 (1997) MTBF XC4005E-3 XC4005E-3 XC CLB IOB CLB XC3142A-09 IOB XC IOB XC CLB 13 1 Million Years ,000 Years XC3142A-09 CLB Log Seconds Year XC IOB Day Hour XC CLB 2 1 Minute Acceptable Extra Delay (ns) -3 X5986 Figure 2: Mean Time Between Failure for various IOB and CLB flip-flop outputs when synchronizing a ~1 MHz asynchronous input with a 10 MHz clock. SMD098 Computation Structures Lecture 4 50

26 Crossing clock domains When clock A and clock B are totally independent, we are in trouble. There are no completely safe methods to transfer data between two unrelated clock domains. But there are good and bad solutions Block A Domain A HandShake A-B Data A-B HandShake B-A Data B-A Block B Domain B A B One good solution: Carefully synchronize the handshaking signals at both ends. Use a toggle exchange protocol HandShake A-B Data A-B Valid Valid HandShake B-A SMD098 Computation Structures Lecture 4 51 Crossing clock domains In lab 3.3 you will use an asynchronous FIFO to synchronize sampled data from one clock domain to another. You will generate the FIFO with Xilinx CoreGenerator. The tricky part with the FIFO is the implementation of the two FIFO flags, Empty and Full. WRITE ENABLE WRITE CLOCK DATA IN DUAL-PORT WE MEMORY (XC4000E CLBs) WC DATA OUT WRITE ADDRESS W READ ADDRESS R WRITE COUNTER 4 4 FULL LOGIC FULL WE WC 2 2 DIR. LOGIC READ COUNTER READ ENABLE READ CLOCK EMPTY LOGIC EMPTY X5887 SMD098 Computation Structures Lecture 4 52

FPGA TechNote: Asynchronous signals and Metastability

FPGA TechNote: Asynchronous signals and Metastability FPGA TechNote: Asynchronous signals and Metastability This Doulos FPGA TechNote gives a brief overview of metastability as it applies to the design of FPGAs. The first section introduces metastability

More information

DEDICATED TO EMBEDDED SOLUTIONS

DEDICATED TO EMBEDDED SOLUTIONS DEDICATED TO EMBEDDED SOLUTIONS DESIGN SAFE FPGA INTERNAL CLOCK DOMAIN CROSSINGS ESPEN TALLAKSEN DATA RESPONS SCOPE Clock domain crossings (CDC) is probably the worst source for serious FPGA-bugs that

More information

EE178 Lecture Module 4. Eric Crabill SJSU / Xilinx Fall 2005

EE178 Lecture Module 4. Eric Crabill SJSU / Xilinx Fall 2005 EE178 Lecture Module 4 Eric Crabill SJSU / Xilinx Fall 2005 Lecture #9 Agenda Considerations for synchronizing signals. Clocks. Resets. Considerations for asynchronous inputs. Methods for crossing clock

More information

Level and edge-sensitive behaviour

Level and edge-sensitive behaviour Level and edge-sensitive behaviour Asynchronous set/reset is level-sensitive Include set/reset in sensitivity list Put level-sensitive behaviour first: process (clock, reset) is begin if reset = '0' then

More information

HDL & High Level Synthesize (EEET 2035) Laboratory II Sequential Circuits with VHDL: DFF, Counter, TFF and Timer

HDL & High Level Synthesize (EEET 2035) Laboratory II Sequential Circuits with VHDL: DFF, Counter, TFF and Timer 1 P a g e HDL & High Level Synthesize (EEET 2035) Laboratory II Sequential Circuits with VHDL: DFF, Counter, TFF and Timer Objectives: Develop the behavioural style VHDL code for D-Flip Flop using gated,

More information

MASSACHUSETTS INSTITUTE OF TECHNOLOGY Department of Electrical Engineering and Computer Sciences

MASSACHUSETTS INSTITUTE OF TECHNOLOGY Department of Electrical Engineering and Computer Sciences MASSACHUSETTS INSTITUTE OF TECHNOLOGY Department of Electrical Engineering and Computer Sciences Introductory Digital Systems Lab (6.111) Quiz #2 - Spring 2003 Prof. Anantha Chandrakasan and Prof. Don

More information

Sequential circuits. Same input can produce different output. Logic circuit. William Sandqvist

Sequential circuits. Same input can produce different output. Logic circuit. William Sandqvist Sequential circuits Same input can produce different output Logic circuit If the same input may produce different output signal, we have a sequential logic circuit. It must then have an internal memory

More information

Asynchronous inputs. 9 - Metastability and Clock Recovery. A simple synchronizer. Only one synchronizer per input

Asynchronous inputs. 9 - Metastability and Clock Recovery. A simple synchronizer. Only one synchronizer per input 9 - Metastability and Clock Recovery Asynchronous inputs We will consider a number of issues related to asynchronous inputs, multiple clock domains, clock synchronisation and clock distribution. Useful

More information

Flip-flop and Registers

Flip-flop and Registers ECE 322 Digital Design with VHDL Flip-flop and Registers Lecture Textbook References n Sequential Logic Review Stephen Brown and Zvonko Vranesic, Fundamentals of Digital Logic with VHDL Design, 2 nd or

More information

EECS150 - Digital Design Lecture 10 - Interfacing. Recap and Topics

EECS150 - Digital Design Lecture 10 - Interfacing. Recap and Topics EECS150 - Digital Design Lecture 10 - Interfacing Oct. 1, 2013 Prof. Ronald Fearing Electrical Engineering and Computer Sciences University of California, Berkeley (slides courtesy of Prof. John Wawrzynek)

More information

Software Engineering 2DA4. Slides 9: Asynchronous Sequential Circuits

Software Engineering 2DA4. Slides 9: Asynchronous Sequential Circuits Software Engineering 2DA4 Slides 9: Asynchronous Sequential Circuits Dr. Ryan Leduc Department of Computing and Software McMaster University Material based on S. Brown and Z. Vranesic, Fundamentals of

More information

EECS150 - Digital Design Lecture 15 Finite State Machines. Announcements

EECS150 - Digital Design Lecture 15 Finite State Machines. Announcements EECS150 - Digital Design Lecture 15 Finite State Machines October 18, 2011 Elad Alon Electrical Engineering and Computer Sciences University of California, Berkeley http://www-inst.eecs.berkeley.edu/~cs150

More information

EE178 Spring 2018 Lecture Module 5. Eric Crabill

EE178 Spring 2018 Lecture Module 5. Eric Crabill EE178 Spring 2018 Lecture Module 5 Eric Crabill Goals Considerations for synchronizing signals Clocks Resets Considerations for asynchronous inputs Methods for crossing clock domains Clocks The academic

More information

Modeling Latches and Flip-flops

Modeling Latches and Flip-flops Lab Workbook Introduction Sequential circuits are digital circuits in which the output depends not only on the present input (like combinatorial circuits), but also on the past sequence of inputs. In effect,

More information

Chapter 6. sequential logic design. This is the beginning of the second part of this course, sequential logic.

Chapter 6. sequential logic design. This is the beginning of the second part of this course, sequential logic. Chapter 6. sequential logic design This is the beginning of the second part of this course, sequential logic. equential logic equential circuits simple circuits with feedback latches edge-triggered flip-flops

More information

California State University, Bakersfield Computer & Electrical Engineering & Computer Science ECE 3220: Digital Design with VHDL Laboratory 7

California State University, Bakersfield Computer & Electrical Engineering & Computer Science ECE 3220: Digital Design with VHDL Laboratory 7 California State University, Bakersfield Computer & Electrical Engineering & Computer Science ECE 322: Digital Design with VHDL Laboratory 7 Rational: The purpose of this lab is to become familiar in using

More information

EECS150 - Digital Design Lecture 19 - Finite State Machines Revisited

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

More information

Ryerson University Department of Electrical and Computer Engineering EES508 Digital Systems

Ryerson University Department of Electrical and Computer Engineering EES508 Digital Systems 1 P a g e Ryerson University Department of Electrical and Computer Engineering EES508 Digital Systems Lab 5 - VHDL for Sequential Circuits: Implementing a customized State Machine 15 Marks ( 2 weeks) Due

More information

https://daffy1108.wordpress.com/2014/06/08/synchronizers-for-asynchronous-signals/

https://daffy1108.wordpress.com/2014/06/08/synchronizers-for-asynchronous-signals/ https://daffy1108.wordpress.com/2014/06/08/synchronizers-for-asynchronous-signals/ Synchronizers for Asynchronous Signals Asynchronous signals causes the big issue with clock domains, namely metastability.

More information

Combinational / Sequential Logic

Combinational / Sequential Logic Digital Circuit Design and Language Combinational / Sequential Logic Chang, Ik Joon Kyunghee University Combinational Logic + The outputs are determined by the present inputs + Consist of input/output

More information

EITF35: Introduction to Structured VLSI Design

EITF35: Introduction to Structured VLSI Design EITF35: Introduction to Structured VLSI Design Part 4.2.1: Learn More Liang Liu liang.liu@eit.lth.se 1 Outline Crossing clock domain Reset, synchronous or asynchronous? 2 Why two DFFs? 3 Crossing clock

More information

Sequential Circuit Design: Principle

Sequential Circuit Design: Principle Sequential Circuit Design: Principle modified by L.Aamodt 1 Outline 1. 2. 3. 4. 5. 6. 7. 8. Overview on sequential circuits Synchronous circuits Danger of synthesizing asynchronous circuit Inference of

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

Chapter 5: Synchronous Sequential Logic

Chapter 5: Synchronous Sequential Logic Chapter 5: Synchronous Sequential Logic NCNU_2016_DD_5_1 Digital systems may contain memory for storing information. Combinational circuits contains no memory elements the outputs depends only on the inputs

More information

Objectives. Combinational logics Sequential logics Finite state machine Arithmetic circuits Datapath

Objectives. Combinational logics Sequential logics Finite state machine Arithmetic circuits Datapath Objectives Combinational logics Sequential logics Finite state machine Arithmetic circuits Datapath In the previous chapters we have studied how to develop a specification from a given application, and

More information

Figure 1 shows a simple implementation of a clock switch, using an AND-OR type multiplexer logic.

Figure 1 shows a simple implementation of a clock switch, using an AND-OR type multiplexer logic. 1. CLOCK MUXING: With more and more multi-frequency clocks being used in today's chips, especially in the communications field, it is often necessary to switch the source of a clock line while the chip

More information

CS8803: Advanced Digital Design for Embedded Hardware

CS8803: Advanced Digital Design for Embedded Hardware CS883: Advanced Digital Design for Embedded Hardware Lecture 4: Latches, Flip-Flops, and Sequential Circuits Instructor: Sung Kyu Lim (limsk@ece.gatech.edu) Website: http://users.ece.gatech.edu/limsk/course/cs883

More information

Lecture 8: Sequential Logic

Lecture 8: Sequential Logic Lecture 8: Sequential Logic Last lecture discussed how we can use digital electronics to do combinatorial logic we designed circuits that gave an immediate output when presented with a given set of inputs

More information

The outputs are formed by a combinational logic function of the inputs to the circuit or the values stored in the flip-flops (or both).

The outputs are formed by a combinational logic function of the inputs to the circuit or the values stored in the flip-flops (or both). 1 The outputs are formed by a combinational logic function of the inputs to the circuit or the values stored in the flip-flops (or both). The value that is stored in a flip-flop when the clock pulse occurs

More information

1. What does the signal for a static-zero hazard look like?

1. What does the signal for a static-zero hazard look like? Sample Problems 1. What does the signal for a static-zero hazard look like? The signal will always be logic zero except when the hazard occurs which will cause it to temporarly go to logic one (i.e. glitch

More information

DEPARTMENT OF ELECTRICAL &ELECTRONICS ENGINEERING DIGITAL DESIGN

DEPARTMENT OF ELECTRICAL &ELECTRONICS ENGINEERING DIGITAL DESIGN DEPARTMENT OF ELECTRICAL &ELECTRONICS ENGINEERING DIGITAL DESIGN Assoc. Prof. Dr. Burak Kelleci Spring 2018 OUTLINE Synchronous Logic Circuits Latch Flip-Flop Timing Counters Shift Register Synchronous

More information

Chapter 5 Synchronous Sequential Logic

Chapter 5 Synchronous Sequential Logic Chapter 5 Synchronous Sequential Logic Chih-Tsun Huang ( 黃稚存 ) http://nthucad.cs.nthu.edu.tw/~cthuang/ Department of Computer Science National Tsing Hua University Outline Introduction Storage Elements:

More information

Feedback Sequential Circuits

Feedback Sequential Circuits Feedback Sequential Circuits sequential circuit output depends on 1. current inputs 2. past sequence of inputs current state feedback sequential circuit uses ordinary gates and feedback loops to create

More information

Outline. EECS150 - Digital Design Lecture 27 - Asynchronous Sequential Circuits. Cross-coupled NOR gates. Asynchronous State Transition Diagram

Outline. EECS150 - Digital Design Lecture 27 - Asynchronous Sequential Circuits. Cross-coupled NOR gates. Asynchronous State Transition Diagram EECS150 - Digital Design Lecture 27 - Asynchronous Sequential Circuits Nov 26, 2002 John Wawrzynek Outline SR Latches and other storage elements Synchronizers Figures from Digital Design, John F. Wakerly

More information

Outline. CPE/EE 422/522 Advanced Logic Design L04. Review: 8421 BCD to Excess3 BCD Code Converter. Review: Mealy Sequential Networks

Outline. CPE/EE 422/522 Advanced Logic Design L04. Review: 8421 BCD to Excess3 BCD Code Converter. Review: Mealy Sequential Networks Outline PE/EE 422/522 Advanced Logic Design L4 Electrical and omputer Engineering University of Alabama in Huntsville What we know ombinational Networks Analysis, Synthesis, Simplification, Hazards, Building

More information

Advanced Digital Logic Design EECS 303

Advanced Digital Logic Design EECS 303 Advanced Digital Logic Design EECS 303 http://ziyang.eecs.northwestern.edu/eecs303/ Teacher: Robert Dick Office: L477 Tech Email: dickrp@northwestern.edu Phone: 847 467 2298 Outline Introduction Reset/set

More information

CPS311 Lecture: Sequential Circuits

CPS311 Lecture: Sequential Circuits CPS311 Lecture: Sequential Circuits Last revised August 4, 2015 Objectives: 1. To introduce asynchronous and synchronous flip-flops (latches and pulsetriggered, plus asynchronous preset/clear) 2. To introduce

More information

IT T35 Digital system desigm y - ii /s - iii

IT T35 Digital system desigm y - ii /s - iii UNIT - III Sequential Logic I Sequential circuits: latches flip flops analysis of clocked sequential circuits state reduction and assignments Registers and Counters: Registers shift registers ripple counters

More information

Digital Design, Kyung Hee Univ. Chapter 5. Synchronous Sequential Logic

Digital Design, Kyung Hee Univ. Chapter 5. Synchronous Sequential Logic Chapter 5. Synchronous Sequential Logic 1 5.1 Introduction Electronic products: ability to send, receive, store, retrieve, and process information in binary format Dependence on past values of inputs Sequential

More information

NH 67, Karur Trichy Highways, Puliyur C.F, Karur District UNIT-III SEQUENTIAL CIRCUITS

NH 67, Karur Trichy Highways, Puliyur C.F, Karur District UNIT-III SEQUENTIAL CIRCUITS NH 67, Karur Trichy Highways, Puliyur C.F, 639 114 Karur District DEPARTMENT OF ELETRONICS AND COMMUNICATION ENGINEERING COURSE NOTES SUBJECT: DIGITAL ELECTRONICS CLASS: II YEAR ECE SUBJECT CODE: EC2203

More information

cascading flip-flops for proper operation clock skew Hardware description languages and sequential logic

cascading flip-flops for proper operation clock skew Hardware description languages and sequential logic equential logic equential circuits simple circuits with feedback latches edge-triggered flip-flops Timing methodologies cascading flip-flops for proper operation clock skew Basic registers shift registers

More information

CHAPTER 4: Logic Circuits

CHAPTER 4: Logic Circuits CHAPTER 4: Logic Circuits II. Sequential Circuits Combinational circuits o The outputs depend only on the current input values o It uses only logic gates, decoders, multiplexers, ALUs Sequential circuits

More information

Name Of The Experiment: Sequential circuit design Latch, Flip-flop and Registers

Name Of The Experiment: Sequential circuit design Latch, Flip-flop and Registers EEE 304 Experiment No. 07 Name Of The Experiment: Sequential circuit design Latch, Flip-flop and Registers Important: Submit your Prelab at the beginning of the lab. Prelab 1: Construct a S-R Latch and

More information

CS3350B Computer Architecture Winter 2015

CS3350B Computer Architecture Winter 2015 CS3350B Computer Architecture Winter 2015 Lecture 5.2: State Circuits: Circuits that Remember Marc Moreno Maza www.csd.uwo.ca/courses/cs3350b [Adapted from lectures on Computer Organization and Design,

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

Unit 11. Latches and Flip-Flops

Unit 11. Latches and Flip-Flops Unit 11 Latches and Flip-Flops 1 Combinational Circuits A combinational circuit consists of logic gates whose outputs, at any time, are determined by combining the values of the inputs. For n input variables,

More information

problem maximum score 1 28pts 2 10pts 3 10pts 4 15pts 5 14pts 6 12pts 7 11pts total 100pts

problem maximum score 1 28pts 2 10pts 3 10pts 4 15pts 5 14pts 6 12pts 7 11pts total 100pts University of California at Berkeley College of Engineering Department of Electrical Engineering and Computer Sciences EECS150 J. Wawrzynek Spring 2002 4/5/02 Midterm Exam II Name: Solutions ID number:

More information

Digital Logic & Computer Design CS Professor Dan Moldovan Spring Chapter 3 :: Sequential Logic Design

Digital Logic & Computer Design CS Professor Dan Moldovan Spring Chapter 3 :: Sequential Logic Design igital Logic & Computer esign CS 4341 Professor an Moldovan Spring 21 Copyright 27 Elsevier 3- Chapter 3 :: Sequential Logic esign igital esign and Computer Architecture avid Money Harris and Sarah

More information

2.6 Reset Design Strategy

2.6 Reset Design Strategy 2.6 Reset esign Strategy Many design issues must be considered before choosing a reset strategy for an ASIC design, such as whether to use synchronous or asynchronous resets, will every flipflop receive

More information

Modeling Latches and Flip-flops

Modeling Latches and Flip-flops Lab Workbook Introduction Sequential circuits are the digital circuits in which the output depends not only on the present input (like combinatorial circuits), but also on the past sequence of inputs.

More information

Basis of sequential circuits: the R-S latch

Basis of sequential circuits: the R-S latch equential logic Asynchronous sequential logic state changes occur whenever state inputs change (elements may be simple wires or delay elements) ynchronous sequential logic state changes occur in lock step

More information

Administrative issues. Sequential logic

Administrative issues. Sequential logic Administrative issues Midterm #1 will be given Tuesday, October 29, at 9:30am. The entire class period (75 minutes) will be used. Open book, open notes. DDPP sections: 2.1 2.6, 2.10 2.13, 3.1 3.4, 3.7,

More information

Lecture 13: Clock and Synchronization. TIE Logic Synthesis Arto Perttula Tampere University of Technology Spring 2017

Lecture 13: Clock and Synchronization. TIE Logic Synthesis Arto Perttula Tampere University of Technology Spring 2017 Lecture 13: Clock and Synchronization TIE-50206 Logic Synthesis Arto Perttula Tampere University of Technology Spring 2017 Acknowledgements Most slides were prepared by Dr. Ari Kulmala The content of the

More information

ECE 263 Digital Systems, Fall 2015

ECE 263 Digital Systems, Fall 2015 ECE 263 Digital Systems, Fall 2015 REVIEW: FINALS MEMORY ROM, PROM, EPROM, EEPROM, FLASH RAM, DRAM, SRAM Design of a memory cell 1. Draw circuits and write 2 differences and 2 similarities between DRAM

More information

Microprocessor Design

Microprocessor Design Microprocessor Design Principles and Practices With VHDL Enoch O. Hwang Brooks / Cole 2004 To my wife and children Windy, Jonathan and Michelle Contents 1. Designing a Microprocessor... 2 1.1 Overview

More information

Logic Design. Flip Flops, Registers and Counters

Logic Design. Flip Flops, Registers and Counters Logic Design Flip Flops, Registers and Counters Introduction Combinational circuits: value of each output depends only on the values of inputs Sequential Circuits: values of outputs depend on inputs and

More information

Laboratory 1 - Introduction to Digital Electronics and Lab Equipment (Logic Analyzers, Digital Oscilloscope, and FPGA-based Labkit)

Laboratory 1 - Introduction to Digital Electronics and Lab Equipment (Logic Analyzers, Digital Oscilloscope, and FPGA-based Labkit) Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6. - Introductory Digital Systems Laboratory (Spring 006) Laboratory - Introduction to Digital Electronics

More information

Clock Domain Crossing. Presented by Abramov B. 1

Clock Domain Crossing. Presented by Abramov B. 1 Clock Domain Crossing Presented by Abramov B. 1 Register Transfer Logic Logic R E G I S T E R Transfer Logic R E G I S T E R Presented by Abramov B. 2 RTL (cont) An RTL circuit is a digital circuit composed

More information

Clocking Spring /18/05

Clocking Spring /18/05 ing L06 s 1 Why s and Storage Elements? Inputs Combinational Logic Outputs Want to reuse combinational logic from cycle to cycle L06 s 2 igital Systems Timing Conventions All digital systems need a convention

More information

Flip-Flops. Because of this the state of the latch may keep changing in circuits with feedback as long as the clock pulse remains active.

Flip-Flops. Because of this the state of the latch may keep changing in circuits with feedback as long as the clock pulse remains active. Flip-Flops Objectives The objectives of this lesson are to study: 1. Latches versus Flip-Flops 2. Master-Slave Flip-Flops 3. Timing Analysis of Master-Slave Flip-Flops 4. Different Types of Master-Slave

More information

Keeping The Clock Pure. Making The Impurities Digestible

Keeping The Clock Pure. Making The Impurities Digestible Keeping The lock Pure or alternately Making The Impurities igestible Timing is everything. ig ir p. 99 Revised; January 13, 2005 Slide 0 arleton University Vitesse igital ircuits p. 100 Revised; January

More information

Faculty of Electrical & Electronics Engineering BEE3233 Electronics System Design. Laboratory 3: Finite State Machine (FSM)

Faculty of Electrical & Electronics Engineering BEE3233 Electronics System Design. Laboratory 3: Finite State Machine (FSM) Faculty of Electrical & Electronics Engineering BEE3233 Electronics System Design Laboratory 3: Finite State Machine (FSM) Mapping CO, PO, Domain, KI : CO2,PO3,P5,CTPS5 CO2: Construct logic circuit using

More information

LFSRs as Functional Blocks in Wireless Applications Author: Stephen Lim and Andy Miller

LFSRs as Functional Blocks in Wireless Applications Author: Stephen Lim and Andy Miller XAPP22 (v.) January, 2 R Application Note: Virtex Series, Virtex-II Series and Spartan-II family LFSRs as Functional Blocks in Wireless Applications Author: Stephen Lim and Andy Miller Summary Linear Feedback

More information

Final Exam review: chapter 4 and 5. Supplement 3 and 4

Final Exam review: chapter 4 and 5. Supplement 3 and 4 Final Exam review: chapter 4 and 5. Supplement 3 and 4 1. A new type of synchronous flip-flop has the following characteristic table. Find the corresponding excitation table with don t cares used as much

More information

ECE 3401 Lecture 11. Sequential Circuits

ECE 3401 Lecture 11. Sequential Circuits EE 3401 Lecture 11 Sequential ircuits Overview of Sequential ircuits Storage Elements Sequential circuits Storage elements: Latches & Flip-flops Registers and counters ircuit and System Timing Sequential

More information

FPGA Implementation of Sequential Logic

FPGA Implementation of Sequential Logic ECE 428 Programmable ASIC Design FPGA Implementation of Sequential Logic Haibo Wang ECE Department Southern Illinois University Carbondale, IL 62901 8-1 Sequential Circuit Model Combinational Circuit:

More information

Asynchronous IC Interconnect Network Design and Implementation Using a Standard ASIC Flow

Asynchronous IC Interconnect Network Design and Implementation Using a Standard ASIC Flow Asynchronous IC Interconnect Network Design and Implementation Using a Standard ASIC Flow Bradley R. Quinton*, Mark R. Greenstreet, Steven J.E. Wilton*, *Dept. of Electrical and Computer Engineering, Dept.

More information

Chapter 4. Logic Design

Chapter 4. Logic Design Chapter 4 Logic Design 4.1 Introduction. In previous Chapter we studied gates and combinational circuits, which made by gates (AND, OR, NOT etc.). That can be represented by circuit diagram, truth table

More information

Sequential Logic. E&CE 223 Digital Circuits and Systems (A. Kennings) Page 1

Sequential Logic. E&CE 223 Digital Circuits and Systems (A. Kennings) Page 1 Sequential Logic E&CE 223 igital Circuits and Systems (A. Kennings) Page 1 Sequential Circuits Have considered only combinational circuits in which circuit outputs are determined entirely by current circuit

More information

Logic Design II (17.342) Spring Lecture Outline

Logic Design II (17.342) Spring Lecture Outline Logic Design II (17.342) Spring 2012 Lecture Outline Class # 05 February 23, 2012 Dohn Bowden 1 Today s Lecture Analysis of Clocked Sequential Circuits Chapter 13 2 Course Admin 3 Administrative Admin

More information

Report on 4-bit Counter design Report- 1, 2. Report on D- Flipflop. Course project for ECE533

Report on 4-bit Counter design Report- 1, 2. Report on D- Flipflop. Course project for ECE533 Report on 4-bit Counter design Report- 1, 2. Report on D- Flipflop Course project for ECE533 I. Objective: REPORT-I The objective of this project is to design a 4-bit counter and implement it into a chip

More information

Combinational vs Sequential

Combinational vs Sequential Combinational vs Sequential inputs X Combinational Circuits outputs Z A combinational circuit: At any time, outputs depends only on inputs Changing inputs changes outputs No regard for previous inputs

More information

Fundamentals of Computer Systems

Fundamentals of Computer Systems Fundamentals of Computer Systems Sequential Logic Stephen A. Edwards Columbia University Summer 2016 State-Holding Elements Bistable Elements S Latch Latch Positive-Edge-Triggered Flip-Flop Flip-Flop with

More information

Sequential Circuits. Output depends only and immediately on the inputs Have no memory (dependence on past values of the inputs)

Sequential Circuits. Output depends only and immediately on the inputs Have no memory (dependence on past values of the inputs) Sequential Circuits Combinational circuits Output depends only and immediately on the inputs Have no memory (dependence on past values of the inputs) Sequential circuits Combination circuits with memory

More information

Clock and Asynchronous Signals

Clock and Asynchronous Signals Clock and Asynchronous Signals Z. Jerry Shi Computer Science and Engineering University of Connecticut Thank John Wakerly for providing his slides and figures. Functional timing Delays in state machines

More information

University of California at Berkeley College of Engineering Department of Electrical Engineering and Computer Science. EECS 150 Spring 2000

University of California at Berkeley College of Engineering Department of Electrical Engineering and Computer Science. EECS 150 Spring 2000 University of California at Berkeley College of Engineering Department of Electrical Engineering and Computer Science EECS 150 Spring 2000 Lab 2 Finite State Machine 1 Objectives You will enter and debug

More information

Lab 3: VGA Bouncing Ball I

Lab 3: VGA Bouncing Ball I CpE 487 Digital Design Lab Lab 3: VGA Bouncing Ball I 1. Introduction In this lab, we will program the FPGA on the Nexys2 board to display a bouncing ball on a 640 x 480 VGA monitor connected to the VGA

More information

CHAPTER 4: Logic Circuits

CHAPTER 4: Logic Circuits CHAPTER 4: Logic Circuits II. Sequential Circuits Combinational circuits o The outputs depend only on the current input values o It uses only logic gates, decoders, multiplexers, ALUs Sequential circuits

More information

Sequential Circuit Design: Part 1

Sequential Circuit Design: Part 1 Sequential Circuit esign: Part 1 esign of memory elements Static latches Pseudo-static latches ynamic latches Timing parameters Two-phase clocking Clocked inverters James Morizio 1 Sequential Logic FFs

More information

Metastability Analysis of Synchronizer

Metastability Analysis of Synchronizer Forn International Journal of Scientific Research in Computer Science and Engineering Research Paper Vol-1, Issue-3 ISSN: 2320 7639 Metastability Analysis of Synchronizer Ankush S. Patharkar *1 and V.

More information

EEC 118 Lecture #9: Sequential Logic. Rajeevan Amirtharajah University of California, Davis Jeff Parkhurst Intel Corporation

EEC 118 Lecture #9: Sequential Logic. Rajeevan Amirtharajah University of California, Davis Jeff Parkhurst Intel Corporation EEC 118 Lecture #9: Sequential Logic Rajeevan Amirtharajah University of California, Davis Jeff Parkhurst Intel Corporation Outline Review: Static CMOS Logic Finish Static CMOS transient analysis Sequential

More information

FIFO Memories: Solution to Reduce FIFO Metastability

FIFO Memories: Solution to Reduce FIFO Metastability FIFO Memories: Solution to Reduce FIFO Metastability First-In, First-Out Technology Tom Jackson Advanced System Logic Semiconductor Group SCAA011A March 1996 1 IMPORTANT NOTICE Texas Instruments (TI) reserves

More information

Digital Fundamentals: A Systems Approach

Digital Fundamentals: A Systems Approach Digital Fundamentals: A Systems Approach Counters Chapter 8 A System: Digital Clock Digital Clock: Counter Logic Diagram Digital Clock: Hours Counter & Decoders Finite State Machines Moore machine: One

More information

Sequential logic. Circuits with feedback. How to control feedback? Sequential circuits. Timing methodologies. Basic registers

Sequential logic. Circuits with feedback. How to control feedback? Sequential circuits. Timing methodologies. Basic registers equential logic equential circuits simple circuits with feedback latches edge-triggered flip-flops Timing methodologies cascading flip-flops for proper operation clock skew Basic registers shift registers

More information

Lecture 12: Clock and Synchronization. TIE Logic Synthesis Arto Perttula Tampere University of Technology Spring 2018

Lecture 12: Clock and Synchronization. TIE Logic Synthesis Arto Perttula Tampere University of Technology Spring 2018 Lecture 12: Clock and Synchronization TIE-50206 Logic Synthesis Arto Perttula Tampere University of Technology Spring 2018 Acknowledgements Most slides were prepared by Dr. Ari Kulmala The content of the

More information

Memory Interfaces Data Capture Using Direct Clocking Technique Author: Maria George

Memory Interfaces Data Capture Using Direct Clocking Technique Author: Maria George Application Note: Virtex-4 Family R XAPP701 (v1.4) October 2, 2006 Memory Interfaces Data Capture Using Direct Clocking Technique Author: Maria George Summary This application note describes the direct-clocking

More information

Chapter 3. Boolean Algebra and Digital Logic

Chapter 3. Boolean Algebra and Digital Logic Chapter 3 Boolean Algebra and Digital Logic Chapter 3 Objectives Understand the relationship between Boolean logic and digital computer circuits. Learn how to design simple logic circuits. Understand how

More information

DIGITAL SYSTEM FUNDAMENTALS (ECE421) DIGITAL ELECTRONICS FUNDAMENTAL (ECE422) LATCHES and FLIP-FLOPS

DIGITAL SYSTEM FUNDAMENTALS (ECE421) DIGITAL ELECTRONICS FUNDAMENTAL (ECE422) LATCHES and FLIP-FLOPS COURSE / CODE DIGITAL SYSTEM FUNDAMENTALS (ECE421) DIGITAL ELECTRONICS FUNDAMENTAL (ECE422) LATCHES and FLIP-FLOPS In the same way that logic gates are the building blocks of combinatorial circuits, latches

More information

More on Flip-Flops Digital Design and Computer Architecture: ARM Edition 2015 Chapter 3 <98> 98

More on Flip-Flops Digital Design and Computer Architecture: ARM Edition 2015 Chapter 3 <98> 98 More on Flip-Flops Digital Design and Computer Architecture: ARM Edition 2015 Chapter 3 98 Review: Bit Storage SR latch S (set) Q R (reset) Level-sensitive SR latch S S1 C R R1 Q D C S R D latch Q

More information

CAD for VLSI Design - I Lecture 38. V. Kamakoti and Shankar Balachandran

CAD for VLSI Design - I Lecture 38. V. Kamakoti and Shankar Balachandran 1 CAD for VLSI Design - I Lecture 38 V. Kamakoti and Shankar Balachandran 2 Overview Commercial FPGAs Architecture LookUp Table based Architectures Routing Architectures FPGA CAD flow revisited 3 Xilinx

More information

Using minterms, m-notation / decimal notation Sum = Cout = Using maxterms, M-notation Sum = Cout =

Using minterms, m-notation / decimal notation Sum = Cout = Using maxterms, M-notation Sum = Cout = 1 Review of Digital Logic Design Fundamentals Logic circuits: 1. Combinational Logic: No memory, present output depends only on the present input 2. Sequential Logic: Has memory, present output depends

More information

ECE 3401 Lecture 12. Sequential Circuits (II)

ECE 3401 Lecture 12. Sequential Circuits (II) EE 34 Lecture 2 Sequential ircuits (II) Overview of Sequential ircuits Storage Elements Sequential circuits Storage elements: Latches & Flip-flops Registers and counters ircuit and System Timing Sequential

More information

Digital Logic Design I

Digital Logic Design I Digital Logic Design I Synchronous Sequential Logic Mustafa Kemal Uyguroğlu Sequential Circuits Asynchronous Inputs Combinational Circuit Memory Elements Outputs Synchronous Inputs Combinational Circuit

More information

Read-only memory (ROM) Digital logic: ALUs Sequential logic circuits. Don't cares. Bus

Read-only memory (ROM) Digital logic: ALUs Sequential logic circuits. Don't cares. Bus Digital logic: ALUs Sequential logic circuits CS207, Fall 2004 October 11, 13, and 15, 2004 1 Read-only memory (ROM) A form of memory Contents fixed when circuit is created n input lines for 2 n addressable

More information

CS8803: Advanced Digital Design for Embedded Hardware

CS8803: Advanced Digital Design for Embedded Hardware Copyright 2, 23 M Ciletti 75 STORAGE ELEMENTS: R-S LATCH CS883: Advanced igital esign for Embedded Hardware Storage elements are used to store information in a binary format (e.g. state, data, address,

More information

Modeling Digital Systems with Verilog

Modeling Digital Systems with Verilog Modeling Digital Systems with Verilog Prof. Chien-Nan Liu TEL: 03-4227151 ext:34534 Email: jimmy@ee.ncu.edu.tw 6-1 Composition of Digital Systems Most digital systems can be partitioned into two types

More information

Lec 24 Sequential Logic Revisited Sequential Circuit Design and Timing

Lec 24 Sequential Logic Revisited Sequential Circuit Design and Timing Traversing igital esign EECS - Components and esign Techniques for igital Systems EECS wks 6 - Lec 24 Sequential Logic Revisited Sequential Circuit esign and Timing avid Culler Electrical Engineering and

More information

Digital Systems Laboratory 1 IE5 / WS 2001

Digital Systems Laboratory 1 IE5 / WS 2001 Digital Systems Laboratory 1 IE5 / WS 2001 university of applied sciences fachhochschule hamburg FACHBEREICH ELEKTROTECHNIK UND INFORMATIK digital and microprocessor systems laboratory In this course you

More information

Figure 1 Block diagram of a 4-bit binary counter

Figure 1 Block diagram of a 4-bit binary counter Lab 3: Four-Bit Binary Counter EE-459/500 HDL Based Digital Design with Programmable Logic Electrical Engineering Department, University at Buffalo Last update: Cristinel Ababei, August 2012 1. Objective

More information

Fundamentals of Computer Systems

Fundamentals of Computer Systems Fundamentals of Computer Systems Sequential Logic Stephen A. Edwards Columbia University Fall 2012 State-Holding Elements Bistable Elements Equivalent circuits; right is more traditional. Two stable states:

More information