Miscellaneous Issues. TIE Logic Synthesis Arto Perttula Tampere University of Technology Spring 2017
|
|
- Leslie Watson
- 6 years ago
- Views:
Transcription
1 Miscellaneous Issues TIE Logic Synthesis Arto Perttula Tampere University of Technology Spring 2017
2 Contents Tri-state logic, high-impedance state Z Variables versus signals in VHDL The notorius latches Several synthesis examples here and there Example codes can be downloaded from the course web site Arto Perttula
3 About Exam For-loop in HDL: known bounds, parallel HW, single cycle (or combinatorial delay) RTL vs. structural is about style: if/for/case vs. instantiations, not necessarily about the abstraction level Usually structural model connects RTL or other structural blocks together Philosophically structural could also use basic gates, but that is commonly dubbed as gatelevel, and that is below RTL Mark signal tansitions clearly and use lines for 1-bit signals Like this, så här Arto Perttula
4 BIDIRECTIONAL I/O WITH TRI-STATE LOGIC Arto Perttula
5 Simplex, Half-Duplex, (Full) Duplex 3 basic types of communication channels Arto Perttula
6 Channel Control Only two communicating blocks in the simplest case During transfer master initiates transfers slave accepts transfers and responds to them In some cases, a certain block can act both as master and slave Many buses are shared multimaster buses shared = more than 2 units multimaster = more than 1 master arbitration mechanism decides which has the ownership Arto Perttula
7 Bidirectional IO Port Three-state buffer allows output ports to have a) logical 0 or 1 value b) hi-z (high-impedance), aka. tri-state In high-impedance state, the buffer s input is not connected to its output Output floats Other blocks can drive it a) Pull-up/down resistors are often used Buffer is stronger than pull-up b) Hold circuit keeps the last value The output_enable signal oe selects between conducting and Hi-Z states Arto Perttula
8 Bidirectional IO Port (2) Only 1 output can be drived at any time to avoid short-circuit! Bus protocol defines arbitration policy How to select current master (driver) block Note that here the tri-state enable TRISn is active low. Arto Perttula Fig. R. Reese 8
9 Tri-State Just in I/O, Not on Chip Three-state should be used only in I/O pins Difficult to test that only one driver is active at any time Pull-up/Bus keeper logic problematic Simplifies PCB design (less components and wires) Not inside chip! Use multiplexers instead Logic is cheap verification is expensive We consider multiplexer-based buses to be the only acceptable architecture for on-chip interconnect. Tri-state buses should never be used on chip. Keating, Bricaud, Reuse Methodology Manual Conditions (such as if-else and case) are synthesized differently with tri-state logic! There won t be a multiplexer but a special tri-state buffer Note also that tri-state buffer is after DFF in synchronous logic Arto Perttula
10 Tri-State Logic in VHDL High-impedance state denoted with Z process (...) -- both seq. and comb. possible begin... if (...) data_out <= new_value; else data_out <= (others => Z ) 10
11 Note on Following Examples These simple examples have three purposes 1. Show how to implement tri-state logic in VHDL 2. Show the schematic created by synthesis tool 3. Show the resulting wave form After this course, you should be able to understand the correlation between 1. HDL and HW (all constructs are not synthesizable!) 2. HDL and simulator output You can perform simple simulation and synthesis in your head Arto Perttula
12 Example: tri_state1.vhd reg_z: process (clk, rst_n) begin if rst_n = '0' then test0_out <= '0'; elsif clk'event and clk = '1' then if ctrl_in = '1' then test0_out <= data_in; else test0_out <= 'Z'; end if; end if; end process reg_z; comb_z: process (ctrl_in) begin if ctrl_in = '1' then test1_out <= '1'; else test1_out <= 'Z'; end if; end process comb_z; Arto Perttula
13 tri_state1 HW (OK) Arto Perttula
14 Wave Form of tb_tri_state1 Arto Perttula 14
15 Mismatch between Tri-State Logic Simulation and Synthesis Propagation Z cannot propagate through flip-flop in real circuit Z cannot propagate through real logic gates Physical DFF s or gate s output will be undefined if its input is Z (=floating somewhere between GND and VDD) Same notes apply U, X, H, L, and - Z must be assigned to output port directly Arto Perttula
16 tri_state2.vhd reg_z _ process -- similar to previous, but -- intermediate signal test0_r used instead -- of output. Registers gets either data_in or Z test0_out <= test0_r; reg_z_bad: process (clk, rst_n) begin -- process reg_z if rst_n = '0' then test1_out <= '0'; elsif clk'event and clk = '1' then test1_out <= test0_r; end if; end process reg_z_bad; comb_z_bad: process (test0_r, enable_in) begin -- process comb_z test2_out <= test0_r and enable_in; end process comb_z_bad; Arto Perttula
17 HW from tri_state2.vhd (BAD) Arto Perttula 17
18 Mismatch between Tri-State Logic Simulation and Synthesis -2 a 2. Reading if a_in /= ZZZ then -- may work in simulation but makes no sense in synthesis There is not any logic circuit that can detect if input is Z Depending on technology and phase of the moon, Z at input will be interpreted as 0 or 1 One cannot predict the result! Same notes apply to U, X, H, L, and - Logic must read some control signal to see if data is valid Example: HW using the value of a which might be Z : 0 0 Z b non-deterministic value from AND a Z b something_else 1 0 Arto Perttula
19 tri_state3.vhd test0_out <= std_logic_vector(accu0_r); test1_out <= std_logic_vector(accu1_r); test_z_bad : process (clk, rst_n) begin if rst_n = '0' then accu0_r <= (others => '0'); elsif clk'event and clk = '1' then if data_in /= "ZZZZ" then accu0_r <= accu0_r + signed(data_in); end if; end if; end process test_z_bad; read_ctrl_ok : process (clk, rst_n) begin -- process reg_z if rst_n = '0' then accu1_r <= (others => '0'); elsif clk'event and clk = '1' then if ctrl_in = '1' then accu1_r <= accu1_r + signed(data_in); end if; end if; end process read_ctrl_ok; Arto Perttula
20 tri_state3 HW in Design Vision Error: Illegal use of tri-state variable (ELAB-306) *** Presto compilation terminated with 1 errors. *** Had to comment out the process test_z_bad! Hence, no logic is synthesized for that Sidenote: This schematic is harder to read Wide data (although just 4 bits ) No hierarchy 4-bit register is spread around Logic for multiplexers and adders combined Hierarchy can be added by grouping cells together Arto Perttula
21 tri_state3 HW on Quartus Arto Perttula
22 Tri-State Summary Use for I/O between chips Just for chip s I/O pins and not between logic modules on chip Usually with bidirectional I/O Some cases Z assigned to regular unidirectional output E.g., many slave outputs connected to single input at master, such as multiple memories connected to same CPU Third signal state high-impedance Lets the signal voltage float and some other device may drive it Assigned by writing Z to the signal/port Cannot be propagated through real DFFs or gates Presence of Z cannot be tested directly Must use separate valid signal to see when signal can be read safely Simulation and real HW do not always match! Arto Perttula
23 ABOUT VHDL VARIABLES Arto Perttula
24 Variables in VHDL Variables allow a more sequential style of programming It seems alluring option BUT: a death cap also looks nice but is venomous inside For communication between processes, only signals can be used There are so called shared variables but we won t use them With TEXTIO, variables are must In procedures and functions, variables can be used Certain structures are best captured with variables The problems are related to synthesis and not seeing the values in simulator Arto Perttula
25 Variables vs. Signals In contrast to signals, the order of reading/assigning variables is important. Remember: 1. The value assigned to a signal can be read back only after at least a delta cycle 2. Another way of looking at it (in case of a flip-flop): a) a signal allows to read only the Q output of a flip-flop b) a variable also makes it possible to read the D input of a flip-flop incr : process (clk, rst_n) variable sum_v... begin if rst_n... elsif rising_edge(clk) then sum_v := sum_r + 1; sum_r <= sum_v; if sum_v =... end process ; +1 + sum_v D Q if... sum_r Arto Perttula
26 Relation between HDL and HW Given the usual RTL paradigm, the relationship between 1. VHDL signals and the hardware they represent, can be explained rather easily 2. VHDL variables and the hardware they represent (or don t!) is much subtler Note! Not the variables themselves, but references to them imply storage or not (i.e., thus a register or not) The same variable name may represent a combinatorial value in one reference, and a register value in another Arto Perttula
27 comb VHDL HW: Combinatorial Process 1. Signal assignment: Must get a value for every execution of the process. OK. Otherwise, it will create a latch Recommendations: Assign signals in every if-branch or give them default value and override it later It is not recommended to read a value that is written in the same combinatorial process, otherwise, signal must be on sensitivity list and process must iterate Write a complete sensitivity list 2. Variable assignment: Implies combinational logic when always written before read. OK. Must get a value for every execution of the process Otherwise, it will create a latch just like signal would If read before written, behaviour in synthesis may vary Pretty similar behaviour between signals and variables Arto Perttula
28 VHDL HW: Sequential Process 1. Signal assignment: Always implies a register Registers are created for all signal and port assignments unless there is a redundancy that can be merged with another register Very simple! Easy to remember and analyze 2. Variable assignment: a) Implies combinational logic when always written before read Good! See earlier example on sum_v b) Implies a register if variable read before written c) Alternately implies a register if variable has a life time May be hard to figure out which variables imply registers Some will imply many, some will imply one, some will imply none The designer does not master the HW that he/she is designing Signals and variables differ clearly Their timing in simulator might look identical, but behaviours differ comb Arto Perttula
29 Variables in Combinatorial Process (var1.vhd) -- Invert the input signal comb_ok : process (a_in) variable inv_v : std_logic; begin -- process comb inv_v := not a_in; test0_out <= inv_v; end process comb_ok; -- Stores the prev value of a_in seq_help : process (clk, rst_n) begin -- process seq_help if rst_n = '0' then tmp_r <= '0'; elsif clk'event and clk = '1' then tmp_r <= a_in; end if; end process seq_help; -- Tries to indicate if input -- has been high for more than -- 1 cycle comb_bad: process (a_in, tmp_r) variable last_a_v : std_logic; begin -- process comb_bad if tmp_r = a_in then last_a_v := a_in; -- else branch missing end if; test1_out <= last_a_v; end process comb_bad; Arto Perttula
30 Variables in Combinatorial Process: Resulting HW (var1.vhd)
31 Wave Form of var1.vhd 31
32 VHDL Code of var2 seq_ok : process (clk, rst_n) variable comb_v : std_logic; begin -- process seq_ok if rst_n = '0' then test0_r <= '0'; test1_out <= '0'; test2_out <= '0'; -- reset values are ok elsif clk'event and clk = '1' then comb_v := a_in; test0_r <= comb_v; test1_out <= comb_v and b_in; test2_out <= test0_r and b_in; end if; end process seq_ok; test0_out <= test0_r; Arto Perttula
33 Wave Form of var2.vhd
34 HW of var2.vhd Arto Perttula
35 VHDL Code of var3 seq_baddish : process (clk, rst_n) variable dff_v : std_logic; begin -- process seq_baddish if rst_n = '0' then test0_out <= '0'; -- value comes from var test1_r <= '0'; -- value comes from signal dff_v := '0'; elsif clk'event and clk = '1' then if a_in = '1' then dff_v := not dff_v; test1_r <= not test1_r; Invert the output every time when input a end if; is 1 test0_out <= dff_v; end if; end process seq_baddish; test1_out <= test1_r; -- just a wire Arto Perttula
36 Wave Form of var3.vhd Identical outputs. So far, so good... Arto Perttula
37 HW of var3.vhd 37
38 When to Use Variables When they simplify non-synthesizable design (=test bench) notably Especially, when modeling memory (RAM) Because variables do not have an event queue associated, their space requirement (memory footprint on your workstation/pc) is about ten times smaller than the equivalent signal For large RAMs this could prevent running out of memory If you are absolutely certain and can assure everyone around you that they simplify synthesizable code Arto Perttula
39 ABOUT LATCHES Arto Perttula
40 Latches and Flip-Flops Two categories of memory elements 1. level sensitive latches 2. edge-triggered flip-flops Various types Some are unnecessarily difficult to use Edge-triggered behaviour simplifies timing analysis Simple data flip-flop (DFF) is superior and the others are obsolete and should be avoided Arto Perttula
41 Why Are D-Latches Good? Compared to edge triggered flip-flops Less area Less power Allow cycle-stealing/time-borrowing Hence, latches were/are used in real designs But that is intentional and done by experienced professionals (senior full-custom ASIC designers) Usually, only in full-custom design (Intel and AMD but not too many others), like CPU pipeline However, most latches in student design are unintentional and therefore very harmful Arto Perttula
42 Why Are Latches Evil? 1. They are nightmare for Static Timing Analysis tools Use of STA tools is mandatory 2. They are bad for Design for Test tools Use of DFT tools is mandatory for ASIC 3. There aren t any latches in FPGAs One may emulate them with LUT and flip-flops 4. Glitches in the enable pin of the latches cause improper functioning. Glitch-free logic is hard to synthesize. 5. Latches in feedback loops may create unintentional oscillator Arto Perttula
43 Example Latch Usage We can connect some latches, acting as memory, to an ALU +1 S X ALU G Q Latches D en Let s say these latches contain some value that we want to increment The ALU should read the current latch value Q via input X It applies the increment operation G = X+1 The incremented value is stored back into the latches At this point, we have to stop the cycle, so the latch value doesn t get incremented again by accident One convenient way to break the loop is to disable the latches by driving en=0 Arto Perttula
44 The Problem with Latches +1 S X ALU G Q Latches D en enable generation The problem is exactly when to disable the latches. You have to wait long enough for the ALU to produce its output, but no longer. But different ALU operations have different delays. For instance, arithmetic operations might go through an adder, whereas logical operations don t. Changing the ALU implementation, such as using a carry-lookahead adder instead of a ripple-carry adder, also affects the delay In general, it s very difficult to know how long operations take, and how long latches should be enabled for If you take the max. delay you could as well use regular edge-triggered DFF Arto Perttula
45 Latch Timing Example transparent =D latch latched Setup and hold w.r.t. falling edge of CLK CLK pulse width must be larger than certain min. value Ambiguity regarding exactly when the D input gets latched into Q If a transition in D occurs sometime during a clock HIGH, what will occur? The answer will depend upon the characteristics of the particular electronics being used This lack of clarity is often unacceptable [Ray Frey,
46 Inferred Latch Example process(enable, data_in) so far, so good begin if (enable='1') then... badass <= data_in; -- so far, so good else branch missing! so bad end if; end process; Combinational process (=logic), but the signal badass does not get a value assigned in every possible branch Logic will have to remember the last value when enable= 0 Common mistake Arto Perttula
47 (Not) Inferring Latches 1. Latches are inferred by branch statements (if-elsif) which are not completely specified in combinatorial process To avoid Latch being developed 1. Assign an output for all possible input conditions 2. Use an else statement instead of an elsif in the final branch of an if to avoid a latch 3. You may assign default values at the beginning of a process to avoid an inferred latch 2. When the event statement is missing in sequential process Arto Perttula
48 (Not) Inferring Latches (2) ps/avoid_synthesizing_unwanted_latches/ uments/techdocs/3583.htm Arto Perttula
49 Conclusions Be careful with reset Be careful with clocks Be careful with Z Avoid variables in most cases Avoid latches in practically all cases Arto Perttula
VHDL for Synthesis. Course Description. Course Duration. Goals
VHDL for Synthesis Course Description This course provides all necessary theoretical and practical know how to write an efficient synthesizable HDL code through VHDL standard language. The course goes
More informationVHDL. VHDL History. Why VHDL? Introduction to Structured VLSI Design. Very High Speed Integrated Circuit (VHSIC) Hardware Description Language
VHDL Introduction to Structured VLSI Design VHDL I Very High Speed Integrated Circuit (VHSIC) Hardware Description Language Joachim Rodrigues A Technology Independent, Standard Hardware description Language
More informationLecture 12 VHDL Synthesis
CPE 487: Digital System Design Spring 2018 Lecture 12 VHDL Synthesis Bryan Ackland Department of Electrical and Computer Engineering Stevens Institute of Technology Hoboken, NJ 07030 1 What is Synthesis?
More informationTwo HDLs used today VHDL. Why VHDL? Introduction to Structured VLSI Design
Two HDLs used today Introduction to Structured VLSI Design VHDL I VHDL and Verilog Syntax and ``appearance'' of the two languages are very different Capabilities and scopes are quite similar Both are industrial
More informationChapter 2 Basic Logic Circuits and VHDL Description
Chapter 2 Basic Logic Circuits and VHDL Description We cannot solve our problems with the same thinking we used when we created them. ----- Albert Einstein Like a C or C++ programmer don t apply the logic.
More informationINSTITUTE OF AERONAUTICAL ENGINEERING Dundigal, Hyderabad ELECTRONICS AND COMMUNICATIONS ENGINEERING
INSTITUTE OF AERONAUTICAL ENGINEERING Dundigal, Hyderabad - 00 0 ELECTRONICS AND COMMUNICATIONS ENGINEERING QUESTION BANK Course Name : DIGITAL DESIGN USING VERILOG HDL Course Code : A00 Class : II - B.
More informationVerilog for High Performance
Verilog for High Performance Course Description This course provides all necessary theoretical and practical know-how to write synthesizable HDL code through Verilog standard language. The course goes
More informationENGG3380: Computer Organization and Design Lab4: Buses and Peripheral Devices
ENGG3380: Computer Organization and Design Lab4: Buses and Peripheral Devices School of Engineering, University of Guelph Winter 2017 1 Objectives: The purpose of this lab is : Learn basic bus design techniques.
More informationMLR Institute of Technology
MLR Institute of Technology Laxma Reddy Avenue, Dundigal, Quthbullapur (M), Hyderabad 500 043 Course Name Course Code Class Branch ELECTRONICS AND COMMUNICATIONS ENGINEERING QUESTION BANK : DIGITAL DESIGN
More informationVerilog for Synthesis Ing. Pullini Antonio
Verilog for Synthesis Ing. Pullini Antonio antonio.pullini@epfl.ch Outline Introduction to Verilog HDL Describing combinational logic Inference of basic combinational blocks Describing sequential circuits
More informationHardware Design Environments. Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University
Hardware Design Environments Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University Outline Welcome to COE 405 Digital System Design Design Domains and Levels of Abstractions Synthesis
More informationECE 574: Modeling and Synthesis of Digital Systems using Verilog and VHDL. Fall 2017 Final Exam (6.00 to 8.30pm) Verilog SOLUTIONS
ECE 574: Modeling and Synthesis of Digital Systems using Verilog and VHDL Fall 2017 Final Exam (6.00 to 8.30pm) Verilog SOLUTIONS Note: Closed book no notes or other material allowed apart from the one
More informationProgramming with HDLs
Programming with HDLs Paul Chow February 11, 2008 1 Introduction The purpose of this document is to encourage the proper approach or mindset for programming in a hardware description language (HDL), particularly
More informationDesign Guidelines for Optimal Results in High-Density FPGAs
White Paper Introduction Design Guidelines for Optimal Results in High-Density FPGAs Today s FPGA applications are approaching the complexity and performance requirements of ASICs. In some cases, FPGAs
More informationFPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1
FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1 Anurag Dwivedi Digital Design : Bottom Up Approach Basic Block - Gates Digital Design : Bottom Up Approach Gates -> Flip Flops Digital
More informationSynthesis vs. Compilation Descriptions mapped to hardware Verilog design patterns for best synthesis. Spring 2007 Lec #8 -- HW Synthesis 1
Verilog Synthesis Synthesis vs. Compilation Descriptions mapped to hardware Verilog design patterns for best synthesis Spring 2007 Lec #8 -- HW Synthesis 1 Logic Synthesis Verilog and VHDL started out
More informationLecture 9. VHDL, part IV. Hierarchical and parameterized design. Section 1 HIERARCHICAL DESIGN
Lecture 9 VHDL, part IV Hierarchical and parameterized design Section 1 HIERARCHICAL DESIGN 2 1 Dealing with Large Digital System Design 1. Apply hierarchy to the design At the highest level use larger
More informationקורס VHDL for High Performance. VHDL
קורס VHDL for High Performance תיאור הקורס קורסזהמספקאתכלהידע התיאורטיוהמעשילכתיבתקודHDL. VHDL לסינתזה בעזרת שפת הסטנדרט הקורסמעמיקמאודומלמדאת הדרךהיעילהלכתיבתקודVHDL בכדילקבלאתמימושתכןהלוגי המדויק. הקורסמשלב
More informationSynthesis of Combinational and Sequential Circuits with Verilog
Synthesis of Combinational and Sequential Circuits with Verilog What is Verilog? Hardware description language: Are used to describe digital system in text form Used for modeling, simulation, design Two
More informationFPGA for Software Engineers
FPGA for Software Engineers Course Description This course closes the gap between hardware and software engineers by providing the software engineer all the necessary FPGA concepts and terms. The course
More informationLecture 4: Modeling in VHDL (Continued ) EE 3610 Digital Systems
EE 3610: Digital Systems 1 Lecture 4: Modeling in VHDL (Continued ) Sequential Statements Use Process process (sensitivity list) variable/constant declarations Sequential Statements end process; 2 Sequential
More informationLecture 2: Introduction to System Design, VHDL Basics. TIE Logic Synthesis Arto Perttula Tampere University of Technology Fall 2017
Lecture 2: Introduction to System Design, VHDL Basics TIE-50206 Logic Synthesis Arto Perttula Tampere University of Technology Fall 2017 Contents 1. Introduction to System Design Abstraction Main phases
More informationWriting Circuit Descriptions 8
8 Writing Circuit Descriptions 8 You can write many logically equivalent descriptions in Verilog to describe a circuit design. However, some descriptions are more efficient than others in terms of the
More informationRecommended Design Techniques for ECE241 Project Franjo Plavec Department of Electrical and Computer Engineering University of Toronto
Recommed Design Techniques for ECE241 Project Franjo Plavec Department of Electrical and Computer Engineering University of Toronto DISCLAIMER: The information contained in this document does NOT contain
More informationSynthesizable Verilog
Synthesizable Verilog Courtesy of Dr. Edwards@Columbia, and Dr. Franzon@NCSU http://csce.uark.edu +1 (479) 575-6043 yrpeng@uark.edu Design Methodology Structure and Function (Behavior) of a Design HDL
More informationVerilog. What is Verilog? VHDL vs. Verilog. Hardware description language: Two major languages. Many EDA tools support HDL-based design
Verilog What is Verilog? Hardware description language: Are used to describe digital system in text form Used for modeling, simulation, design Two major languages Verilog (IEEE 1364), latest version is
More informationIn our case Dr. Johnson is setting the best practices
VHDL Best Practices Best Practices??? Best practices are often defined by company, toolset or device In our case Dr. Johnson is setting the best practices These rules are for Class/Lab purposes. Industry
More informationVHDL simulation and synthesis
VHDL simulation and synthesis How we treat VHDL in this course You will not become an expert in VHDL after taking this course The goal is that you should learn how VHDL can be used for simulation and synthesis
More informationLogic Synthesis. EECS150 - Digital Design Lecture 6 - Synthesis
Logic Synthesis Verilog and VHDL started out as simulation languages, but quickly people wrote programs to automatically convert Verilog code into low-level circuit descriptions (netlists). EECS150 - Digital
More informationAssignment. Last time. Last time. ECE 4514 Digital Design II. Back to the big picture. Back to the big picture
Assignment Last time Project 4: Using synthesis tools Synplify Pro and Webpack Due 11/11 ning of class Generics Used to parameterize models E.g., Delay, bit width Configurations Configuration specification
More informationNote: Closed book no notes or other material allowed, no calculators or other electronic devices.
ECE 574: Modeling and Synthesis of Digital Systems using Verilog and VHDL Fall 2017 Exam Review Note: Closed book no notes or other material allowed, no calculators or other electronic devices. One page
More informationTOPIC : Verilog Synthesis examples. Module 4.3 : Verilog synthesis
TOPIC : Verilog Synthesis examples Module 4.3 : Verilog synthesis Example : 4-bit magnitude comptarator Discuss synthesis of a 4-bit magnitude comparator to understand each step in the synthesis flow.
More informationSummary of FPGA & VHDL
FYS4220/9220 Summary of FPGA & VHDL Lecture #6 Jan Kenneth Bekkeng, University of Oslo - Department of Physics 16.11.2011 Curriculum (VHDL & FPGA part) Curriculum (Syllabus) defined by: Lectures Lecture6:
More informationEEL 4783: HDL in Digital System Design
EEL 4783: HDL in Digital System Design Lecture 15: Logic Synthesis with Verilog Prof. Mingjie Lin 1 Verilog Synthesis Synthesis vs. Compilation Descriptions mapped to hardware Verilog design patterns for
More informationVerilog Overview. Verilog Overview. Simple Example. Simple Example. Simple Example. Simple Example
Verilog Overview Prof. MacDonald Verilog Overview C-Like Language used to describe hardware VHDL is main competitor VHDL is more rigorous and typed VHDL takes longer to write VHDL is used by 5% of USA
More informationECE 2300 Digital Logic & Computer Organization. More Sequential Logic Verilog
ECE 2300 Digital Logic & Computer Organization Spring 2018 More Sequential Logic Verilog Lecture 7: 1 Announcements HW3 will be posted tonight Prelim 1 Thursday March 1, in class Coverage: Lectures 1~7
More informationThe CPU Bus : Structure 0
The CPU Bus : Structure 0 The following can be applied to both the internal CPU buses and the external system buses. This distinction becomes blurred when we discuss Systems on a single Chip (SoC). The
More informationVHDL: RTL Synthesis Basics. 1 of 59
VHDL: RTL Synthesis Basics 1 of 59 Goals To learn the basics of RTL synthesis. To be able to synthesize a digital system, given its VHDL model. To be able to relate VHDL code to its synthesized output.
More informationEECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis
EECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis Jan 31, 2012 John Wawrzynek Spring 2012 EECS150 - Lec05-verilog_synth Page 1 Outline Quick review of essentials of state elements Finite State
More informationControl and Datapath 8
Control and Datapath 8 Engineering attempts to develop design methods that break a problem up into separate steps to simplify the design and increase the likelihood of a correct solution. Digital system
More informationLecture 2 Hardware Description Language (HDL): VHSIC HDL (VHDL)
Lecture 2 Hardware Description Language (HDL): VHSIC HDL (VHDL) Pinit Kumhom VLSI Laboratory Dept. of Electronic and Telecommunication Engineering (KMUTT) Faculty of Engineering King Mongkut s University
More informationCSE140L: Components and Design Techniques for Digital Systems Lab
CSE140L: Components and Design Techniques for Digital Systems Lab Tajana Simunic Rosing Source: Vahid, Katz, Culler 1 Announcements & Outline Lab 4 due; demo signup times listed on the cse140l site Check
More informationLecture 5: Computing Platforms. Asbjørn Djupdal ARM Norway, IDI NTNU 2013 TDT
1 Lecture 5: Computing Platforms Asbjørn Djupdal ARM Norway, IDI NTNU 2013 2 Lecture overview Bus based systems Timing diagrams Bus protocols Various busses Basic I/O devices RAM Custom logic FPGA Debug
More informationPart 4: VHDL for sequential circuits. Introduction to Modeling and Verification of Digital Systems. Memory elements. Sequential circuits
M1 Informatique / MOSIG Introduction to Modeling and erification of Digital Systems Part 4: HDL for sequential circuits Laurence PIERRE http://users-tima.imag.fr/amfors/lpierre/m1arc 2017/2018 81 Sequential
More informationCMPE 415 Programmable Logic Devices Introduction
Department of Computer Science and Electrical Engineering CMPE 415 Programmable Logic Devices Introduction Prof. Ryan Robucci What are FPGAs? Field programmable Gate Array Typically re programmable as
More informationTKT-1212 Digitaalijärjestelmien toteutus. Lecture 7: VHDL Testbenches Ari Kulmala, Erno Salminen 2008
TKT-1212 Digitaalijärjestelmien toteutus Lecture 7: VHDL Testbenches Ari Kulmala, Erno Salminen 2008 Contents Purpose of test benches Structure of simple test bench Side note about delay modeling in VHDL
More informationEECS150 - Digital Design Lecture 10 Logic Synthesis
EECS150 - Digital Design Lecture 10 Logic Synthesis February 13, 2003 John Wawrzynek Spring 2003 EECS150 Lec8-synthesis Page 1 Logic Synthesis Verilog and VHDL started out as simulation languages, but
More informationCSCB58 - Lab 3. Prelab /3 Part I (in-lab) /2 Part II (in-lab) /2 TOTAL /8
CSCB58 - Lab 3 Latches, Flip-flops, and Registers Learning Objectives The purpose of this exercise is to investigate the fundamental synchronous logic elements: latches, flip-flops, and registers. Prelab
More informationLuleå University of Technology Kurskod SMD152 Datum Skrivtid
Luleå University of Technology Kurskod SMD152 Datum 2003-10-24 Skrivtid 9.00 13.00 1 Manual synthesis (10 p, 2 p each) Here you are given five different VHDL models. Your task is to draw the schematics
More informationEECS150 - Digital Design Lecture 10 Logic Synthesis
EECS150 - Digital Design Lecture 10 Logic Synthesis September 26, 2002 John Wawrzynek Fall 2002 EECS150 Lec10-synthesis Page 1 Logic Synthesis Verilog and VHDL stated out as simulation languages, but quickly
More informationSt.MARTIN S ENGINEERING COLLEGE Dhulapally, Secunderabad
St.MARTIN S ENGINEERING COLLEGE Dhulapally, Secunderabad-500 014 Subject: Digital Design Using Verilog Hdl Class : ECE-II Group A (Short Answer Questions) UNIT-I 1 Define verilog HDL? 2 List levels of
More informationVHDL for Complex Designs
ELEC 379 : DESIGN OF DIGITAL AND MICROCOMPUTER SYSTEMS 1998/99 WINTER SESSION, TERM 2 VHDL for Complex Designs This lecture covers VHDL features that are useful when designing complex logic circuits. After
More informationCSE140L: Components and Design
CSE140L: Components and Design Techniques for Digital Systems Lab Tajana Simunic Rosing Source: Vahid, Katz, Culler 1 Grade distribution: 70% Labs 35% Lab 4 30% Lab 3 20% Lab 2 15% Lab 1 30% Final exam
More informationInferring Storage Elements
Inferring Storage Elements In our designs, we usually use flip-flops as our storage elements. Sometimes we use latches, but not often. Latches are smaller in size, but create special, often difficult situations
More informationOverview. CSE372 Digital Systems Organization and Design Lab. Hardware CAD. Two Types of Chips
Overview CSE372 Digital Systems Organization and Design Lab Prof. Milo Martin Unit 5: Hardware Synthesis CAD (Computer Aided Design) Use computers to design computers Virtuous cycle Architectural-level,
More informationAdvanced FPGA Design Methodologies with Xilinx Vivado
Advanced FPGA Design Methodologies with Xilinx Vivado Alexander Jäger Computer Architecture Group Heidelberg University, Germany Abstract With shrinking feature sizes in the ASIC manufacturing technology,
More informationOverview. Ram vs Register. Register File. Introduction to Structured VLSI Design. Recap Operator Sharing FSMD Counters.
Overview Introduction to Structured VLSI Design VHDL V Recap Operator Sharing FSMD Counters Joachim Rodrigues Ram vs Register Register File RAM characteristics RAM cell designed at transistor level Cell
More informationEITF35: Introduction to Structured VLSI Design
EITF35: Introduction to Structured VLSI Design Part 2.2.2: VHDL-3 Liang Liu liang.liu@eit.lth.se 1 Outline Inference of Basic Storage Element Some Design Examples DFF with enable Counter Coding Style:
More informationLatch Based Design (1A) Young Won Lim 2/18/15
Latch Based Design (1A) Copyright (c) 2015 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any
More informationReference Sheet for C112 Hardware
Reference Sheet for C112 Hardware 1 Boolean Algebra, Gates and Circuits Autumn 2016 Basic Operators Precedence : (strongest),, + (weakest). AND A B R 0 0 0 0 1 0 1 0 0 1 1 1 OR + A B R 0 0 0 0 1 1 1 0
More informationAdvanced FPGA Design. Jan Pospíšil, CERN BE-BI-BP ISOTDAQ 2018, Vienna
Advanced FPGA Design Jan Pospíšil, CERN BE-BI-BP j.pospisil@cern.ch ISOTDAQ 2018, Vienna Acknowledgement Manoel Barros Marin (CERN) lecturer of ISOTDAQ-17 Markus Joos (CERN) & other organisers of ISOTDAQ-18
More informationVHDL And Synthesis Review
VHDL And Synthesis Review VHDL In Detail Things that we will look at: Port and Types Arithmetic Operators Design styles for Synthesis VHDL Ports Four Different Types of Ports in: signal values are read-only
More information1 Design Process HOME CONTENTS INDEX. For further assistance, or call your local support center
1 Design Process VHDL Compiler, a member of the Synopsys HDL Compiler family, translates and optimizes a VHDL description to an internal gate-level equivalent. This representation is then compiled with
More informationLogic Circuits II ECE 2411 Thursday 4:45pm-7:20pm. Lecture 3
Logic Circuits II ECE 2411 Thursday 4:45pm-7:20pm Lecture 3 Lecture 3 Topics Covered: Chapter 4 Discuss Sequential logic Verilog Coding Introduce Sequential coding Further review of Combinational Verilog
More informationLaboratory Exercise 8
Laboratory Exercise 8 Memory Blocks In computer systems it is necessary to provide a substantial amount of memory. If a system is implemented using FPGA technology it is possible to provide some amount
More informationBUILDING BLOCKS OF A BASIC MICROPROCESSOR. Part 1 PowerPoint Format of Lecture 3 of Book
BUILDING BLOCKS OF A BASIC MICROPROCESSOR Part PowerPoint Format of Lecture 3 of Book Decoder Tri-state device Full adder, full subtractor Arithmetic Logic Unit (ALU) Memories Example showing how to write
More informationGeneral Coding Style Guidelines 5
5 General Coding Style Guidelines 5 This chapter lists some general guidelines for writing HDL. Unintentional Latch Inference Incompletely specified if statements and case statements cause the HDL Compiler
More informationEITF35: Introduction to Structured VLSI Design
EITF35: Introduction to Structured VLSI Design Part 1.2.2: VHDL-1 Liang Liu liang.liu@eit.lth.se 1 Outline VHDL Background Basic VHDL Component An example FSM Design with VHDL Simulation & TestBench 2
More informationLuleå University of Technology Kurskod SMD098 Datum Skrivtid
Luleå University of Technology Kurskod SMD098 Datum 2001-12-17 Skrivtid 14.00 18.00 Tentamen i Beräkningstrukturer Antal uppgifter: 6 Max poäng: 35 Lärare: Jonas Thor Telefon: 2549 Tillåtna hjälpmedel:
More informationEEL 4783: HDL in Digital System Design
EEL 4783: HDL in Digital System Design Lecture 9: Coding for Synthesis (cont.) Prof. Mingjie Lin 1 Code Principles Use blocking assignments to model combinatorial logic. Use nonblocking assignments to
More information4DM4 Lab. #1 A: Introduction to VHDL and FPGAs B: An Unbuffered Crossbar Switch (posted Thursday, Sept 19, 2013)
1 4DM4 Lab. #1 A: Introduction to VHDL and FPGAs B: An Unbuffered Crossbar Switch (posted Thursday, Sept 19, 2013) Lab #1: ITB Room 157, Thurs. and Fridays, 2:30-5:20, EOW Demos to TA: Thurs, Fri, Sept.
More informationLecture #1: Introduction
Lecture #1: Introduction Kunle Olukotun Stanford EE183 January 8, 20023 What is EE183? EE183 is continuation of EE121 Digital Logic Design is a a minute to learn, a lifetime to master Programmable logic
More informationDigital Design with FPGAs. By Neeraj Kulkarni
Digital Design with FPGAs By Neeraj Kulkarni Some Basic Electronics Basic Elements: Gates: And, Or, Nor, Nand, Xor.. Memory elements: Flip Flops, Registers.. Techniques to design a circuit using basic
More informationLecture 7. Standard ICs FPGA (Field Programmable Gate Array) VHDL (Very-high-speed integrated circuits. Hardware Description Language)
Standard ICs FPGA (Field Programmable Gate Array) VHDL (Very-high-speed integrated circuits Hardware Description Language) 1 Standard ICs PLD: Programmable Logic Device CPLD: Complex PLD FPGA: Field Programmable
More informationLecture 32: SystemVerilog
Lecture 32: SystemVerilog Outline SystemVerilog module adder(input logic [31:0] a, input logic [31:0] b, output logic [31:0] y); assign y = a + b; Note that the inputs and outputs are 32-bit busses. 17:
More information1 ST SUMMER SCHOOL: VHDL BOOTCAMP PISA, JULY 2013
MARIE CURIE IAPP: FAST TRACKER FOR HADRON COLLIDER EXPERIMENTS 1 ST SUMMER SCHOOL: VHDL BOOTCAMP PISA, JULY 2013 Introduction to VHDL Calliope-Louisa Sotiropoulou PhD Candidate/Researcher Aristotle University
More informationFPGAs in a Nutshell - Introduction to Embedded Systems-
FPGAs in a Nutshell - Introduction to Embedded Systems- Dipl.- Ing. Falk Salewski Lehrstuhl Informatik RWTH Aachen salewski@informatik.rwth-aachen.de Winter term 6/7 Contents History FPGA architecture
More informationCS232 VHDL Lecture. Types
CS232 VHDL Lecture VHSIC Hardware Description Language [VHDL] is a language used to define and describe the behavior of digital circuits. Unlike most other programming languages, VHDL is explicitly parallel.
More informationEITF35: Introduction to Structured VLSI Design
EITF35: Introduction to Structured VLSI Design Part 2.2.2: VHDL-3 Liang Liu liang.liu@eit.lth.se 1 Outline Inference of Basic Storage Element Some Design Examples DFF with enable Counter Coding Style:
More informationRegister Transfer Level in Verilog: Part I
Source: M. Morris Mano and Michael D. Ciletti, Digital Design, 4rd Edition, 2007, Prentice Hall. Register Transfer Level in Verilog: Part I Lan-Da Van ( 范倫達 ), Ph. D. Department of Computer Science National
More informationIntroduction to Verilog HDL
Introduction to Verilog HDL Ben Abdallah Abderazek National University of Electro-communications, Tokyo, Graduate School of information Systems May 2004 04/09/08 1 What you will understand after having
More informationAdvanced Synthesis Techniques
Advanced Synthesis Techniques Reminder From Last Year Use UltraFast Design Methodology for Vivado www.xilinx.com/ultrafast Recommendations for Rapid Closure HDL: use HDL Language Templates & DRC Constraints:
More informationNanosistemų programavimo kalbos 5 paskaita. Sekvencinių schemų projektavimas
Nanosistemų programavimo kalbos 5 paskaita Sekvencinių schemų projektavimas Terminai Combinational circuit kombinacinė schema (be atminties elementų) Sequential circuit nuosekli (trigerinė, sekvencinė)
More informationTopic Notes: Building Memory
Computer Science 220 ssembly Language & Comp. rchitecture Siena College Fall 2011 Topic Notes: Building Memory We ll next see how we can use flip-flop devices to construct memory. Buffers We ve seen and
More informationChapter 5 Registers & Counters
University of Wisconsin - Madison ECE/Comp Sci 352 Digital Systems Fundamentals Kewal K. Saluja and Yu Hen Hu Spring 2002 Chapter 5 Registers & Counters Originals by: Charles R. Kime Modified for course
More informationChapter 6 Combinational-Circuit Building Blocks
Chapter 6 Combinational-Circuit Building Blocks Commonly used combinational building blocks in design of large circuits: Multiplexers Decoders Encoders Comparators Arithmetic circuits Multiplexers A multiplexer
More informationGraphics: Alexandra Nolte, Gesine Marwedel, Universität Dortmund. RTL Synthesis
Graphics: Alexandra Nolte, Gesine Marwedel, 2003 Universität Dortmund RTL Synthesis Purpose of HDLs Purpose of Hardware Description Languages: Capture design in Register Transfer Language form i.e. All
More informationECE 4514 Digital Design II. Spring Lecture 15: FSM-based Control
ECE 4514 Digital Design II Lecture 15: FSM-based Control A Design Lecture Overview Finite State Machines Verilog Mapping: one, two, three always blocks State Encoding User-defined or tool-defined State
More informationThe Verilog Language COMS W Prof. Stephen A. Edwards Fall 2002 Columbia University Department of Computer Science
The Verilog Language COMS W4995-02 Prof. Stephen A. Edwards Fall 2002 Columbia University Department of Computer Science The Verilog Language Originally a modeling language for a very efficient event-driven
More informationIE1204 Digital Design L7: Combinational circuits, Introduction to VHDL
IE24 Digital Design L7: Combinational circuits, Introduction to VHDL Elena Dubrova KTH / ICT / ES dubrova@kth.se This lecture BV 38-339, 6-65, 28-29,34-365 IE24 Digital Design, HT 24 2 The multiplexer
More informationFPGA. Logic Block. Plessey FPGA: basic building block here is 2-input NAND gate which is connected to each other to implement desired function.
FPGA Logic block of an FPGA can be configured in such a way that it can provide functionality as simple as that of transistor or as complex as that of a microprocessor. It can used to implement different
More informationLecture 15: System Modeling and Verilog
Lecture 15: System Modeling and Verilog Slides courtesy of Deming Chen Intro. VLSI System Design Outline Outline Modeling Digital Systems Introduction to Verilog HDL Use of Verilog HDL in Synthesis Reading
More informationGraduate Institute of Electronics Engineering, NTU. Lecturer: Chihhao Chao Date:
Synthesizable Coding of Verilog Lecturer: Date: 2009.03.18 ACCESS IC LAB Outline Basic concepts of logic synthesis Synthesizable Verilog coding subset Verilog coding practices Coding for readability Coding
More informationLecture 3: Modeling in VHDL. EE 3610 Digital Systems
EE 3610: Digital Systems 1 Lecture 3: Modeling in VHDL VHDL: Overview 2 VHDL VHSIC Hardware Description Language VHSIC=Very High Speed Integrated Circuit Programming language for modelling of hardware
More informationFPGA: FIELD PROGRAMMABLE GATE ARRAY Verilog: a hardware description language. Reference: [1]
FPGA: FIELD PROGRAMMABLE GATE ARRAY Verilog: a hardware description language Reference: [] FIELD PROGRAMMABLE GATE ARRAY FPGA is a hardware logic device that is programmable Logic functions may be programmed
More informationAPPLICATION NOTE. A CPLD VHDL Introduction. Introduction. Overview. Entity. XAPP 105 January12, 1998 (Version 1.0) 0 4* Application Note
0 APPLICATION NOTE A CPLD VHDL Introduction XAPP 105 January12, 1998 Version 1.0) 0 4* Application Note Summary This introduction covers the basics of VHDL as applied to Complex Programmable Logic Devices.
More informationVHDL Essentials Simulation & Synthesis
VHDL Essentials Simulation & Synthesis Course Description This course provides all necessary theoretical and practical know-how to design programmable logic devices using VHDL standard language. The course
More informationModeling Synchronous Logic Circuits. Debdeep Mukhopadhyay IIT Madras
Modeling Synchronous Logic Circuits Debdeep Mukhopadhyay IIT Madras Basic Sequential Circuits A combinational circuit produces output solely depending on the current input. But a sequential circuit remembers
More informationCS429: Computer Organization and Architecture
CS429: Computer Organization and Architecture Dr. Bill Young Department of Computer Sciences University of Texas at Austin Last updated: January 2, 2018 at 11:23 CS429 Slideset 5: 1 Topics of this Slideset
More informationVerilog Tutorial. Verilog Fundamentals. Originally designers used manual translation + bread boards for verification
Verilog Fundamentals Verilog Tutorial History Data types Structural Verilog Functional Verilog Adapted from Krste Asanovic Originally designers used manual translation + bread boards for verification Hardware
More information