Register Files and Memories

Slides:



Advertisements
Similar presentations
Chapter 4: Combinational Logic
Advertisements

Simulation executable (simv)
Table 7.1 Verilog Operators.
Charles Kime & Thomas Kaminski © 2004 Pearson Education, Inc. Terms of Use (Hyperlinks are active in View Show mode) Terms of Use Chapter 7 – Registers.
Datorteknik DigitalCircuits bild 1 Combinational circuits Changes at inputs propagate at logic speed to outputs Not clocked No internal state (memoryless)
1 Introduction Sequential circuit –Output depends not just on present inputs (as in combinational circuit), but on past sequence of inputs Stores bits,
CHAPTER 3 Sequential Logic/ Circuits.  Concept of Sequential Logic  Latch and Flip-flops (FFs)  Shift Registers and Application  Counters (Types,
Flip-Flops, Registers, Counters, and a Simple Processor
Digital Logic Chapter 5 Presented by Prof Tim Johnson
Module 12.  In Module 9, 10, 11, you have been introduced to examples of combinational logic circuits whereby the outputs are entirely dependent on the.
1 Lecture 20 Sequential Circuits: Latches. 2 Overview °Circuits require memory to store intermediate data °Sequential circuits use a periodic signal to.
EET 1131 Unit 10 Flip-Flops and Registers
1 COMP541 Sequential Circuits Montek Singh Sep 17, 2014.
EKT 124 / 3 DIGITAL ELEKTRONIC 1
Lecture 12 Latches Section , Block Diagram of Sequential Circuit gates New output is dependent on the inputs and the preceding values.
Synchronous Digital Design Methodology and Guidelines
Sequential Logic Flip-Flops and Related Devices Dr. Rebhi S. Baraka Logic Design (CSCI 2301) Department of Computer Science Faculty.
Henry Hexmoor1 Chapter 7 Henry Hexmoor Registers and RTL.
11/16/2004EE 42 fall 2004 lecture 331 Lecture #33: Some example circuits Last lecture: –Edge triggers –Registers This lecture: –Example circuits –shift.
Logic and Computer Design Fundamentals Registers and Counters
CS 151 Digital Systems Design Lecture 20 Sequential Circuits: Flip flops.
11/15/2004EE 42 fall 2004 lecture 321 Lecture #32 Registers, counters etc. Last lecture: –Digital circuits with feedback –Clocks –Flip-Flops This Lecture:
Sequential Circuits. 2 Sequential vs. Combinational Combinational Logic:  Output depends only on current input −TV channel selector (0-9) Sequential.
Contemporary Logic Design Sequential Logic © R.H. Katz Transparency No Chapter #6: Sequential Logic Design Sequential Switching Networks.
Comparators  A comparator compares two input words.  The following slide shows a simple comparator which takes two inputs, A, and B, each of length 4.
Sequential Circuit  It is a type of logic circuit whose output depends not only on the present value of its input signals but on the past history of its.
Chapter 3: Sequential Logic Circuit EKT 121 / 4 ELEKTRONIK DIGIT 1.
Test #2 Combinational Circuits – MUX Sequential Circuits – Latches – Flip-flops – Clocked Sequential Circuits – Registers/Shift Register – Counters – Memory.
ECE 301 – Digital Electronics Flip-Flops and Registers (Lecture #15)
The Xilinx Spartan 3 FPGA EGRE 631 2/2/09. Basic types of FPGA’s One time programmable Reprogrammable (non-volatile) –Retains program when powered down.
COE 202: Digital Logic Design Sequential Circuits Part 1
EE2174: Digital Logic and Lab Professor Shiyan Hu Department of Electrical and Computer Engineering Michigan Technological University CHAPTER 9 Sequential.
CS1Q Computer Systems Lecture 11 Simon Gay. Lecture 11CS1Q Computer Systems - Simon Gay2 The D FlipFlop A 1-bit register is called a D flipflop. When.
EKT 221/4 DIGITAL ELECTRONICS II  Registers, Micro-operations and Implementations - Part3.
SEQUENTIAL CIRCUITS Component Design and Use. Register with Parallel Load  Register: Group of Flip-Flops  Ex: D Flip-Flops  Holds a Word of Data 
Basic Sequential Components CT101 – Computing Systems Organization.
ENG241 Digital Design Week #8 Registers and Counters.
Synchronous Sequential Circuits by Dr. Amin Danial Asham.
Charles Kime & Thomas Kaminski © 2004 Pearson Education, Inc. Terms of Use (Hyperlinks are active in View Show mode) Terms of Use ECE/CS 352: Digital Systems.
1 COMP541 Sequential Circuits Montek Singh Feb 1, 2012.
Anurag Dwivedi. Basic Block - Gates Gates -> Flip Flops.
Charles Kime & Thomas Kaminski © 2004 Pearson Education, Inc. Terms of Use (Hyperlinks are active in View Show mode) Terms of Use ECE/CS 352: Digital Systems.
MicroComputer Engineering DigitalCircuits slide 1 Combinational circuits Changes at inputs propagate at logic speed to outputs Not clocked No internal.
ESS | FPGA for Dummies | | Maurizio Donna FPGA for Dummies Basic FPGA architecture.
1 COMP541 Sequential Circuits Montek Singh Feb 1, 2007.
© 2009 Pearson Education, Upper Saddle River, NJ All Rights ReservedFloyd, Digital Fundamentals, 10 th ed Digital Logic Design Dr. Oliver Faust.
COMP541 Sequential Circuits
Synchronous Sequential Logic A digital system has combinational logic as well as sequential logic. The latter includes storage elements. feedback path.
EKT 121 / 4 ELEKTRONIK DIGIT I
CDA 4253 FPGA System Design RTL Design Methodology 1 Hao Zheng Comp Sci & Eng USF.
Chapter5: Synchronous Sequential Logic – Part 1
ECE 545—Digital System Design with VHDL Lecture 1
Synchronous Sequential Circuits by Dr. Amin Danial Asham.
07/11/2005 Register File Design and Memory Design Presentation E CSE : Introduction to Computer Architecture Slides by Gojko Babić.
CS151 Introduction to Digital Design Chapter 5: Sequential Circuits 5-1 : Sequential Circuit Definition 5-2: Latches 1Created by: Ms.Amany AlSaleh.
Synchronous Sequential Circuits by Dr. Amin Danial Asham.
REGISTER TRANSFER LANGUAGE (RTL) INTRODUCTION TO REGISTER Registers1.
Register Files and Memories ECE 554 Digital Engineering Laboratory C. R. Kime 2/18/2002.
Flip-Flop Flip-flops Objectives Upon completion of this chapter, you will be able to :  Construct and analyze the operation of a latch flip-flop made.
Register Files and Memories
Class Exercise 1B.
REGISTER TRANSFER LANGUAGE (RTL)
Chapter #6: Sequential Logic Design
Registers and Counters
KU College of Engineering Elec 204: Digital Systems Design
ECE Digital logic Lecture 16: Synchronous Sequential Logic
COMP541 Sequential Circuits
ECE 545—Digital System Design with VHDL Lecture 1
Registers and Counters
Registers Today we’ll see some common sequential devices: counters and registers. They’re good examples of sequential analysis and design. They are also.
Presentation transcript:

Register Files and Memories ECE 554 Digital Engineering Laboratory C. R. Kime and M.J. Schulte and M. Lipasti Modified: Kewal K. Saluja 10/2/2007

Register Files and Memories Issues and Objectives Register File Concepts Implementation of Register Files Workarounds For Xilinx FPGAs Bottom Line Memories Timing Issues Width Expansion ECE 554 - Digital Engineering Laboratory

ECE 554 - Digital Engineering Laboratory Issues and Objectives Issues ECE 554 projects require a broad range of register file and memory configurations ECE 554 lab boards provide very limited structures for implementing register files and memories. Objectives: To develop techniques for implementing a broad range of register file and memory configurations by using available lab board structures ECE 554 - Digital Engineering Laboratory

Register File Concepts Register file environments Non-Pipelined Pipelined Register File Ports Address Ports Data Ports Control Ports Register File Implementations ECE 554 - Digital Engineering Laboratory

ECE 554 - Digital Engineering Laboratory Register File Ports Address Read Write Shared Data Input Output Bidirectional Control Write Enable, Read/Write, Enable, Read, Write, CLK ECE 554 - Digital Engineering Laboratory

Environment - Non-Pipelined RAddr A RAddr B Rdata A Rdata B Wdata C WAddr C WEn ALU CLK Input Wdata C not registered outside of Register File Clock controls when Wdata C is written Inputs WEN and Waddr C may or may not be registered ECE 554 - Digital Engineering Laboratory

Environment - Pipelined 1 Register File is part of the pipeline platform Inputs may or may not be registered Clock controls when Wdata C is written RAddr A RAddr B Rdata A Rdata B Wdata C WAddr C WEn ALU CLK ... ECE 554 - Digital Engineering Laboratory

Environment - Pipelined 2 Raddr A Raddr B Rdata A Rdata B Wdata C Waddr C WEn ... CLK Register File is between pipe stages is not clocked - WEN controls latches => SRAM Inputs may or may not be registered, but register must be between Rdata A, Rdata B, and Wdata C ECE 554 - Digital Engineering Laboratory

ECE 554 - Digital Engineering Laboratory Latch-Based Latch/bit of file Latch control can be Write Enable and addresses or some combination of other signals and addresses ... WEn Waddr Raddr Wdata Rdata Write Logic Read ECE 554 - Digital Engineering Laboratory

ECE 554 - Digital Engineering Laboratory Latched-Based Level-sensitive write (assume positive level) Setup time on write address relative to leading edge of Wen Hold time on write address relative to trailing edge of Wen Setup and hold time on write data relative to trailing edge of Wen Latches cannot be in closed loop without: Additional latch on different clock in loop, or Flip-flop in loop ECE 554 - Digital Engineering Laboratory

Flip-flop (Latch Pair)-Based Flip-flop/bit of file Flip-flop is clocked by CLK or some combination of CLK and other signal and enabled by addressing logic and combination of other signals ... WEn Waddr Raddr Wdata Rdata Write Logic Read CLK ECE 554 - Digital Engineering Laboratory

Flip-flop (Latch Pair)-Based Write Logic adds setup-time to that for flip-flops Read Logic adds propagation delay to that for flip-flops Acts as edge triggered flip-flop register file with above delays added ECE 554 - Digital Engineering Laboratory

Flip-flop (Shared-Slave)-Based Latch/bit of file plus latch/bit of output Master latches are clocked by CLK or some combination of CLK and other signal and enabled by addressing logic and combination of other signals; slave latches clocks by CLK WEn ... Waddr Write Logic ... Read Logic ... ... Rdata Wdata ... CLK ... Raddr CLK ECE 554 - Digital Engineering Laboratory

Flip-flop (Shared-Master)-Based Latch/bit of file plus latch/bit of input Master latches are clocked by CLK some combination of CLK and other signal and enabled by addressing logic and combination of other signals; slave latches clocks by CLK WEn Waddr ... ... Write Logic ... Read Logic ... Rdata Wdata ... ... Raddr ... ... CLK CLK ECE 554 - Digital Engineering Laboratory

Implementation of Register Files Custom VLSI SRAM Classic SRAM Xilinx Virtex SRAM Specifications Shortcomings ECE 554 - Digital Engineering Laboratory

ECE 554 - Digital Engineering Laboratory Custom VLSI SRAM Is the most flexible of all implementation techniques Can be used to implement any combination of variants discussed Latch-based straightforward; needs additional rank of latches to do flip-flop-based Short of performance issues due to capacitance, can implement any port configuration in a singe storage element array. ECE 554 - Digital Engineering Laboratory

ECE 554 - Digital Engineering Laboratory Classic SRAM Has single RWaddr port, single Wdata port, and single Rdata port and is latch-based. Due to single address port, can handle only one R or W access per clock cycle Expansion to n R address/data ports Place n SRAMs in parallel with the write accomplished by: Applying same address to all RWaddr, and Wiring together all Wdata ports Expansion to m W address/data ports Add an m-way multiplexer to address port Use a clock that is m times CLK and multiplex the writes over m clocks ECE 554 - Digital Engineering Laboratory

Classic SRAM (Continued) Addresses must be switched on positive clock edge WEn must be generated from negative clock edge and positive clock edge Expansion to m W address/data ports and n R address/data ports Doing both expansions above Using (m +1)-way multiplexer, and A clock that is (m + 1) times CLK Virtex Distributed SelectRAM The SRAM capability provided in CLBs Can be used with expansion methods here in classic asynchronous SRAM mode or some synchronous modes Getting reliable timing is tricky - may require more complex clocking! ECE 554 - Digital Engineering Laboratory

Virtex Block SRAM Specifications Symbol - Single Port WE EN DI[#:0] RST ADDR[#:0] CLK DO[#:0] RAMB4_S# ECE 554 - Digital Engineering Laboratory

Virtex Block SRAM Specifications Symbol - Dual Port WEA ENA DIA[#:0] RSTA ADDRA[#:0] CLKA DOA[#:0] RAMB4_S#_S# WEB ENB DIB[#:0] RSTB ADDRB[#:0] CLKB DOB[#:0] ECE 554 - Digital Engineering Laboratory

Virtex Block SRAM Specifications Functionality A WRITE operation of data DI to address ADDR occurs for WE = 1, EN = 1, RST = 0 and a positive edge on CLK. DI can also be read on DO after a delay. A READ operation from address ADDR occurs for WE = 0, EN = 1, RST = 0 and a positive edge on CLK. A RESET operation occurs on the DO latches only for EN = 1, RST = 1, and a positive edge on CLK ECE 554 - Digital Engineering Laboratory

Virtex Block SRAM Specifications Functionality CLK, EN, WE, and RST can also be programmed to be active low Conflicts for Dual Port SRAM Simultaneous WRITEs to same location give invalid data A simultaneous READ on the alternate port of a location being written gives invalid READ data A READ on the alternate port of a location being written may not be performed until after a clock-to-clock setup window ECE 554 - Digital Engineering Laboratory

Virtex Block SRAM Specifications Functionality - Timing EN, WE, RST, ADDR, DI are captured on the positive edge of CLK in registers WRITEs into the SRAM latch array occur later due to internal timing logic READs (including those associated with writes) occur later due to internal timing logic ECE 554 - Digital Engineering Laboratory

Virtex Block SRAM Shortcomings Positive edge-triggered storage of inputs to SRAM places an implicit register in front of the SRAM Combinational READs with address changing, for example, on both the leading and trailing edge of clock, impossible (i.e. dual-porting with single clock) Feeding the SRAM array directly from combinational logic impossible Latching of outputs Combinational READs impossible ECE 554 - Digital Engineering Laboratory

Why Did Xilinx Produce Such a Design? I can only guess - perhaps you have better ideas. Guess 1: Excessive obsession with potential timing problems In terms of critical timing on signals into SRAM, with the interconnect delay uncertainty in the FPGA, these concerns are realistic Must guarantee timing for Wen with async SRAM Based on their past experience with customers based on Distributed SRAM use, although we made it work with some conservative clocking methods Guess 2: The designers didn’t understand the range of applications well, e.g., expectations for register files ECE 554 - Digital Engineering Laboratory

Workarounds for Virtex FPGAs Absorbing input registers READ-after-alternate port-WRITE READ port expansion Inter-operation address dependency removal WRITE port expansion Absorbing output latches ECE 554 - Digital Engineering Laboratory

Absorbing Input Registers Non-Pipelined - looks like flip-flop- based file - no absorbing needed! RAMB4_S#_S# WEA ENA RSTA CLK CLKA DOA[#:0] ADDRA[#:0] DIA[#:0] ALU WEB ENB RSTB CLK CLKB DOB[#:0] ADDRB[#:0] DIB[#:0] ECE 554 - Digital Engineering Laboratory

Absorbing Input Registers Pipelined 1 - Register file part of pipeline platform - looks like flip-flop-based file - no absorbing needed! WEA ENA DIA[#:0] RSTA ADDRA[#:0] CLKA DOA[#:0] RAMB4_S#_S# WEB ENB DIB[#:0] RSTB ADDRB[#:0] CLKB DOB[#:0] CLK ... ALU ... Pi ... Pj CLK CLK CLK ECE 554 - Digital Engineering Laboratory

Absorbing Input Registers Pipelined 2 - Register file as SRAM between pipeline platforms - input registers give unwanted platform - must absorb into Pi and Pj platforms Combinational logic between Pi and SRAM now placed before Pi ... Pi ... ... RAMB4_S#_S# WEA Pi ENA RSTA CLK CLKA DOA[#:0] Pi ADDRA[#:0] ... DIA[#:0] Pj Pj ... WEB ENB Pi ... RSTB CLK CLKB DOB[#:0] ADDRB[#:0] Pi DIB[#:0] CLK ECE 554 - Digital Engineering Laboratory

Absorbing Input Registers Summary Non-pipelined - No problem Pipelined 1 - No problem Pipelined 2 - Problem Handle by moving pipeline platform pieces Handle by converting to Pipeline 1 form Affects combinational delay distribution between stages and hence may affect pipeline performance ECE 554 - Digital Engineering Laboratory

Virtex Block SRAM Shortcomings Additional implication of conditions on prior page: Since the Virtex Block SRAM has two addresses, it should support operands for a binary operation: R[ADDRA] <= R[ADDRA] op R[ADDRB] for arbitrary ADDRA and ADDRB on each clock cycle. But, it does not! Since it is READ-after-WRITE, the right hand side operands are read in clock cycle i and the left hand side result is written in clock cycle i+1. One of the two addresses on the right hand side for cycle i must be the same as the write address on the left hand side for cycle i. Hazard logic would have to enforce this or insert a stall cycle (would almost always stall). Further, the READ-after-alternate port-WRITE problem causes the transfer R[ADDRy] <= R[ADDRx] op R[ADDRx] to be impossible to execute after a write to ADDRx. Would cause frequent stalls, once again. ECE 554 - Digital Engineering Laboratory

Virtex Block SRAM Shortcomings Using Dual Port Virtex Block SRAM with custom VLSI SRAM used as the standard for comparison On a single clock cycle: Maximum of two independent READ or WRITE operations Maximum of two READbacks of written value from WRITE operation on same port possible READback of written value from WRITE on alternate port not possible ECE 554 - Digital Engineering Laboratory

READ-after-alternate port-WRITE Add bypass logic outside of Virtex Block SRAM: CLK Select P RAMB4_S#_S# 1 WEA ENA RSTA CLK CLKA DOA[#:0] ADDRA[#:0] DIA[#:0] WEB ENB = RSTB CLK CLKB DOB[#:0] ADDRB[#:0] DIB[#:0] 1 P Select CLK ECE 554 - Digital Engineering Laboratory

ECE 554 - Digital Engineering Laboratory Read Port Expansion Expansion to n R address/data ports Place ceiling(n/2) SRAMs in parallel with the two writes accomplished by: Applying same address to all ADDRA and the same address to all ADDRB, and Wiring together all DIA ports and all DIB ports ECE 554 - Digital Engineering Laboratory

ECE 554 - Digital Engineering Laboratory Read Port Expansion Example for n = 4 RAMB4_S#_S# ENA WEA ENA1 ENA RSTA WADDRA CLK CLKA DOA[#:0] ADDRA[#:0] RADDRA1 DIA[#:0] ENB WEB ENB1 ENB RSTB CLK WADDRB CLKB DOB[#:0] ADDRB[#:0] RADDRB1 DIB[#:0] DIA RAMB4_S#_S# DIB WEA ENA2 ENA RSTA CLK CLKA DOA[#:0] ADDRA[#:0] RADDRA2 DIA[#:0] Select for all A mux’s is WEA and all B mux’s is WEB All other like-named signals connected together WEB ENB2 ENB RSTB CLK CLKB DOB[#:0] ADDRB[#:0] RADDRB2 DIB[#:0] ECE 554 - Digital Engineering Laboratory

Inter-operation Address Dependency READ-after-WRITE - Can be done for one WRITE - two READs with two parallel Dual Port Block SRAMs with READ-after-alternate port-WRITE logic added to READ side of both. Parallel WRITE on A ports Independent parallel READs on B-ports Each additional parallel Dual Port Block SRAM adds one more READ port Cannot accomplish WRITE-after-READ Cannot be done for more than one active WRITE port without using WRITE Port Expansion ECE 554 - Digital Engineering Laboratory

ECE 554 - Digital Engineering Laboratory Write Port Expansion Requires “super-clocking,” in which a clock having a multiple of the frequency of the fundamental operational clock is used to serialize Block SRAM operations. Requires additional registers to locally enter into and return from serialized operations Muxes required that are switched by the a flip-flop driven by the faster clock ECE 554 - Digital Engineering Laboratory

ECE 554 - Digital Engineering Laboratory Write Port Expansion Example - Non-Pipelined - 4 WRITE Max ports Pi1 Pj Pi -1 2CLK RAMB4_S#_S# WEA ENA 2CLK RSTA 2CLK CLKA DOA[#:0] 2CLK ADDRA[#:0] DIA[#:0] WEB ENB RSTB CLKB DOB[#:0] 2CLK 2CLK ADDRB[#:0] DIB[#:0] Pi2 CLK CLK ECE 554 - Digital Engineering Laboratory

Absorbing Output Latches The output latch is a part of the attempt at a “flip-flop” appearance for the SRAM operation. As such, there appears to be no way to explicitly work around it Other workarounds handle its effects ECE 554 - Digital Engineering Laboratory

ECE 554 - Digital Engineering Laboratory The Bottom Line Overall, it appears that the best approach is to: Use a Non-Pipelined or Pipeline 1 structure Use the Interoperation Dependency solution to achieve multiple dependency-free READs Use WRITE Port Expansion for multiple WRITEs Use the READ-after-alternate port-WRITE to get READ-after-WRITE capability Use WRITE Port Expansion with READs on early subcycles to get WRITE-after-READ capability Be cognizant of substantial setup times and delays for the synchronous operations Feel free to experiment with other approaches and apply ideas given to other Virtex Block SRAM uses ECE 554 - Digital Engineering Laboratory

ECE 554 - Digital Engineering Laboratory Memories Timing Issues Width Expansion ECE 554 - Digital Engineering Laboratory

ECE 554 - Digital Engineering Laboratory Timing Issues The off-chip SRAMs are asynchronous and have typical signal timing requirements See AS7C4096 Datasheets for timing parameters Address controlled READ is easy WE-controlled WRITE has zero setup and hold times which look easy, but read on Due to unpredictable FPGA timing, timing of memory signals, particularly for WRITE should be verified. In worst case, may need to use “super clocking” to get reliable timing ECE 554 - Digital Engineering Laboratory

ECE 554 - Digital Engineering Laboratory Width Expansion Width expansion can be achieved by using “super clocking” with implementation similar to that for register file write expansion. To expand a 16-bit word to a 16 n bit word requires “super clocking” at n times the fundamental rate. ECE 554 - Digital Engineering Laboratory

ECE 554 - Digital Engineering Laboratory Width Expansion Implementation For address-controlled READs, straight-forward Challenging for WRITEs: Must be trailing edges on, for example, WE, for each of the super clock cycles This will require changes on negative as well as positive super clock edges ECE 554 - Digital Engineering Laboratory

ECE 554 - Digital Engineering Laboratory Postscript The workarounds do not consider: Multiple clock edge use instead of super-clocking Different clock edges on the two ports on a dual port SelectRAM These techniques can potentially be beneficial to the degree that: the resulting constructs are synthesizable, and do not adversely affect performance ECE 554 - Digital Engineering Laboratory

ECE 554 - Digital Engineering Laboratory Clocking Issues Limits of hardware and synthesis tools constrain clock and reset signal use Known problems and their workarounds Generating reset signals Limitations of the global clock routing Using enable signals instead of clocks ECE 554 - Digital Engineering Laboratory

ECE 554 - Digital Engineering Laboratory Reset Signals Generate reset signals only once, in top level module Pass signal down to lower level modules, but do not change it Both synchronous and asynchronous reset are OK, but be consistent. ECE 554 - Digital Engineering Laboratory

ECE 554 - Digital Engineering Laboratory Reset Signals (cont.) Top level module Reset Internal module Logic Reset state Reset state Reset state ECE 554 - Digital Engineering Laboratory

ECE 554 - Digital Engineering Laboratory Clocking Limitations Signals on the global clock routing cannot be used as inputs to combinational logic. Using a clock signal as a combinational input will pull that clock signal off the global routing, severely impacting performance. ECE 554 - Digital Engineering Laboratory

ECE 554 - Digital Engineering Laboratory Clocking Examples BAD: Signal_1 <= Signal_2 & clk; Gated_clk <= Signal & clk; Neither clk or gated_clk will be on the global clock routing GOOD: Use enable signals instead of clocks Don’t use clock gating ECE 554 - Digital Engineering Laboratory

ECE 554 - Digital Engineering Laboratory Enable Vs. Clock Use enables instead of clocks: Reg enable; always @ (posedge clk or negedge clk) begin enable <= ~enable; end Same waveform, but only uses clock as input to flip-flop – doesn’t pull it off global clock routing. ECE 554 - Digital Engineering Laboratory