Level and edge-sensitive behaviour

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

Flip-flop and Registers

2.6 Reset Design Strategy

ECE 263 Digital Systems, Fall 2015

Modeling Latches and Flip-flops

DEPARTMENT OF ELECTRICAL &ELECTRONICS ENGINEERING DIGITAL DESIGN

Synchronous Sequential Design

IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits

IE1204 Digital Design. F11: Programmable Logic, VHDL for Sequential Circuits. Masoumeh (Azin) Ebrahimi

Lecture 23 Design for Testability (DFT): Full-Scan

Feedback Sequential Circuits

Asynchronous & Synchronous Reset Design Techniques - Part Deux

Digital System Design

Prototyping an ASIC with FPGAs. By Rafey Mahmud, FAE at Synplicity.

Lecture 8: Sequential Logic

TKK S ASIC-PIIRIEN SUUNNITTELU

Chapter 8 Design for Testability

Tolerant Processor in 0.18 µm Commercial UMC Technology

Ryerson University Department of Electrical and Computer Engineering EES508 Digital Systems

EITF35: Introduction to Structured VLSI Design


Chapter 6. Flip-Flops and Simple Flip-Flop Applications

Lecture 23 Design for Testability (DFT): Full-Scan (chapter14)

ACS College of Engineering. Department of Biomedical Engineering. HDL pre lab questions ( ) Cycle-1

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

11. Sequential Elements

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

Overview: Logic BIST

Asynchronous (Ripple) Counters

Unit 11. Latches and Flip-Flops

Lab 3: VGA Bouncing Ball I

Modeling Latches and Flip-flops

Laboratory Exercise 7

EE178 Spring 2018 Lecture Module 5. Eric Crabill

Sequential Circuit Design: Principle

Using on-chip Test Pattern Compression for Full Scan SoC Designs

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

Universal Asynchronous Receiver- Transmitter (UART)

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

1. Convert the decimal number to binary, octal, and hexadecimal.

EE 447/547 VLSI Design. Lecture 9: Sequential Circuits. VLSI Design EE 447/547 Sequential circuits 1

Last time, we saw how latches can be used as memory in a circuit

Design for Testability

Combinational / Sequential Logic

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

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

Digital Circuits and Systems

EECS150 - Digital Design Lecture 19 - Finite State Machines Revisited

EECS150 - Digital Design Lecture 15 Finite State Machines. Announcements

Lecture 10: Sequential Circuits

ECEN454 Digital Integrated Circuit Design. Sequential Circuits. Sequencing. Output depends on current inputs

EL302 DIGITAL INTEGRATED CIRCUITS LAB #3 CMOS EDGE TRIGGERED D FLIP-FLOP. Due İLKER KALYONCU, 10043

CprE 281: Digital Logic

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).

VHDL 4 BUILDING BLOCKS OF A COMPUTER.

Flip-Flops and Registers

EECS150 - Digital Design Lecture 3 Synchronous Digital Systems Review. Announcements

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

Sequential Circuit Design: Part 1

(CSC-3501) Lecture 7 (07 Feb 2008) Seung-Jong Park (Jay) CSC S.J. Park. Announcement

ECE 3401 Lecture 11. Sequential Circuits

Lecture 11: Sequential Circuit Design

Lecture 6: Simple and Complex Programmable Logic Devices. EE 3610 Digital Systems

D Latch (Transparent Latch)

Sequential Circuit Design: Part 1

6.S084 Tutorial Problems L05 Sequential Circuits

System IC Design: Timing Issues and DFT. Hung-Chih Chiang

Digital Circuits ECS 371

Logic Devices for Interfacing, The 8085 MPU Lecture 4

MUX AND FLIPFLOPS/LATCHES

Digital Circuit And Logic Design I. Lecture 8

VARIABLE FREQUENCY CLOCKING HARDWARE

Digital Circuit And Logic Design I

Software Engineering 2DA4. Slides 9: Asynchronous Sequential Circuits

Field Programmable Gate Arrays (FPGAs)

Section 6.8 Synthesis of Sequential Logic Page 1 of 8

ECE 3401 Lecture 12. Sequential Circuits (II)

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

Why FPGAs? FPGA Overview. Why FPGAs?

CPE/EE 427, CPE 527 VLSI Design I Sequential Circuits. Sequencing

CSE Latches and Flip-flops Dr. Izadi. NOR gate property: A B Z Cross coupled NOR gates: S M S R Q M

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

CSCB58 - Lab 4. Prelab /3 Part I (in-lab) /1 Part II (in-lab) /1 Part III (in-lab) /2 TOTAL /8

Introduction. NAND Gate Latch. Digital Logic Design 1 FLIP-FLOP. Digital Logic Design 1

Jin-Fu Li Advanced Reliable Systems (ARES) Laboratory. National Central University

Combinational vs Sequential

Spartan-II Development System

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

Introduction to Sequential Circuits

FSM Implementations. TIE Logic Synthesis Arto Perttula Tampere University of Technology Fall Output. Input. Next. State.

nmos transistor Basics of VLSI Design and Test Solution: CMOS pmos transistor CMOS Inverter First-Order DC Analysis CMOS Inverter: Transient Response

Sequentielle Schaltelemente

Registers and Counters

K.T. Tim Cheng 07_dft, v Testability

Testability: Lecture 23 Design for Testability (DFT) Slide 1 of 43

COMPUTER ENGINEERING PROGRAM

0 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 1 1 Stop bits. 11-bit Serial Data format

FPGA Design. Part I - Hardware Components. Thomas Lenzi

EE141-Fall 2010 Digital Integrated Circuits. Announcements. Homework #8 due next Tuesday. Project Phase 3 plan due this Sat.

A clock is a free-running signal with a cycle time. A clock may be either high or low, and alternates between the two states.

Transcription:

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 Q <= '0'; elsif rising_edge (clock) then Q <= D; end if; end process;

Combinational Logic If a process is not edge-sensitive and it's not a latch (all executions of a process have an assignment to a signal or variable), it must be combinational logic Process sensitivity list must include all signals on the RHS of assignments or referenced in if or case statements But many synthesis tools correct this Can cause differences between simulated and synthesised behaviour Tristate logic generated by explicit assignments of 'Z'

Concurrent Statements Combinational logic can be modelled with concurrent statements: y <= '0' when x = '1' else '1'; Particularly useful for tristates: y <= '0' when x = '1' else 'Z'; What does this model? Q <= D when E = '1'; Or this? Q <= D when E = '1' else Q; Why is this a bad idea?

Synthesis Constraints Specify Design Objectives in terms of e.g. Area Clock speed Delay Constraints are (usually) not part of VHDL but are vendor-specific Use separate constraints file

Constraints All optimisation, in terms of meeting constraints, assumes that there is more than one way to implement a function: A B C D E C D A B D E Smaller, slower Faster, larger

Area Constraints Primary constraint is choice of device! Can define overall objective of synthesis to be area minimisation. This can also be done per module: define_sharing full_adder on The compiler would attempt to share resources (e.g. gates) in the full_adder.

State Encoding The state encoding can be specified in the VHDL: type state is (s0, s1, s2, s3); attribute enum_encoding of state: type is "00 01 11 10"; Or as an attribute passed to the synthesis tool

Predefined Modules We might wish to leave parts of a design untouched by synthesis, because they are predefined modules. We can do this with: define_black_box full_adder true I/O buffers can be similarly defined

Clock Speed The maximum clock speed is defined by the choice of device. The desired clock speed can be set as a design objective: define_clock CLK1 -freq 20.0 Defines 20 MHz clock Objective for Synthesis AND Place and Route

Timing Constraints Delay 1 ns D Q Q Comb Logic Setup 1 ns D Q Q Clock Frequency is 20 MHz, Clock period is 50 ns, Max delay through Comb Logic is 48 ns

Timing Constraints D Q D Q Input logic Q Q Output logic External Input and Output delays can be specified: define_input_delay In1 10.0 Thus the maximum delay through the input logic is 39 ns

Delay Constraints In this (Synplify) example, the external delay of the sum signal is modelled to have a delay of 8 ns. entity four_bit_adder is port (sum: out std_logic_vector (0 to 3); co : out std_logic; a, b : in std_logic_vector (0 to 3); ci : in std_logic); end four_bit_adder; We state an objective of trying to improve this by 2 ns by optimising the input logic. define_output_delay sum 8.0 -improve 2.0 This objective is not passed to the place and route tool

Routing Delays Optimisation by the synthesis tool is based on statistics After place and route, design may not meet timing objectives Resynthesise to improve by 3.8 ns: define_output_delay sum 8.0 - route 3.8

Multiple Clock Cycles The specification of a clock speed assumes that in a synchronous design all combinational operations are completed within the clock period If an operation takes more than one cycle, this can be flagged: define_multicycle_path q true

Technology FPGAs vs ASICs FPGAs have fixed resources, ASICs are more flexible Mapping to cells is different, therefore the backend of synthesis tools is different FPGAs have a limited number (maybe none) of tristate buffers Synthesis tool may need to map tristate assignments to "standard" logic Each gate has a limited fanout May need to insert buffers

State Assignment Design has 10 states - how many flipflops? "One Hot" assignment (e.g. Synplify) One flip-flop per state. Exactly one flip-flop is asserted in each state: s0 0000000001 s1 0000000010 s9 1000000000 etc Good for FPGAs (that have lots of flipflops) as next state logic is simple

Clock trees, DfT etc ASICs may need complex clock trees Generated separately Scan paths, BIST in ASICs Inserted pre- or post-layout Not necessarily part of the standard synthesis process Physical synthesis Estimate delays due to layout prior to full place and route "State of the Art" in ASIC synthesis