Miscellaneous Issues. TIE Logic Synthesis Arto Perttula Tampere University of Technology Spring 2017

Size: px
Start display at page:

Download "Miscellaneous Issues. TIE Logic Synthesis Arto Perttula Tampere University of Technology Spring 2017"

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. Course Duration. Goals VHDL for Synthesis Course Description This course provides all necessary theoretical and practical know how to write an efficient synthesizable HDL code through VHDL standard language. The course goes

More information

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

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

More information

Lecture 12 VHDL Synthesis

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

More information

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

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

More information

Chapter 2 Basic Logic Circuits and VHDL Description

Chapter 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 information

INSTITUTE OF AERONAUTICAL ENGINEERING Dundigal, Hyderabad ELECTRONICS AND COMMUNICATIONS ENGINEERING

INSTITUTE 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 information

Verilog for High Performance

Verilog 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 information

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

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

More information

MLR Institute of Technology

MLR 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 information

Verilog for Synthesis Ing. Pullini Antonio

Verilog 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 information

Hardware 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 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 information

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

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

More information

Programming with HDLs

Programming 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 information

Design Guidelines for Optimal Results in High-Density FPGAs

Design 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 information

FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1

FPGA 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 information

Synthesis vs. Compilation Descriptions mapped to hardware Verilog design patterns for best synthesis. Spring 2007 Lec #8 -- HW Synthesis 1

Synthesis 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 information

Lecture 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 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. VHDL קורס VHDL for High Performance תיאור הקורס קורסזהמספקאתכלהידע התיאורטיוהמעשילכתיבתקודHDL. VHDL לסינתזה בעזרת שפת הסטנדרט הקורסמעמיקמאודומלמדאת הדרךהיעילהלכתיבתקודVHDL בכדילקבלאתמימושתכןהלוגי המדויק. הקורסמשלב

More information

Synthesis of Combinational and Sequential Circuits with Verilog

Synthesis 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 information

FPGA for Software Engineers

FPGA 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 information

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

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

More information

Lecture 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 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 information

Writing Circuit Descriptions 8

Writing 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 information

Recommended Design Techniques for ECE241 Project Franjo Plavec Department of Electrical and Computer Engineering University of Toronto

Recommended 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 information

Synthesizable Verilog

Synthesizable 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 information

Verilog. What is Verilog? VHDL vs. Verilog. Hardware description language: Two major languages. Many EDA tools support HDL-based design

Verilog. 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 information

In our case Dr. Johnson is setting the best practices

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

More information

VHDL simulation and synthesis

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

More information

Logic Synthesis. EECS150 - Digital Design Lecture 6 - Synthesis

Logic 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 information

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

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

More information

Note: Closed book no notes or other material allowed, no calculators or other electronic devices.

Note: 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 information

TOPIC : Verilog Synthesis examples. Module 4.3 : Verilog synthesis

TOPIC : 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 information

Summary of FPGA & VHDL

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

More information

EEL 4783: HDL in Digital System Design

EEL 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 information

Verilog Overview. Verilog Overview. Simple Example. Simple Example. Simple Example. Simple Example

Verilog 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 information

ECE 2300 Digital Logic & Computer Organization. More Sequential Logic Verilog

ECE 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 information

The CPU Bus : Structure 0

The 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 information

VHDL: RTL Synthesis Basics. 1 of 59

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

More information

EECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis

EECS150 - 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 information

Control and Datapath 8

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

More information

Lecture 2 Hardware Description Language (HDL): VHSIC HDL (VHDL)

Lecture 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 information

CSE140L: Components and Design Techniques for Digital Systems Lab

CSE140L: 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 information

Lecture 5: Computing Platforms. Asbjørn Djupdal ARM Norway, IDI NTNU 2013 TDT

Lecture 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 information

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

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

More information

CMPE 415 Programmable Logic Devices Introduction

CMPE 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 information

TKT-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 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 information

EECS150 - Digital Design Lecture 10 Logic Synthesis

EECS150 - 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 information

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

CSCB58 - 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 information

Luleå University of Technology Kurskod SMD152 Datum Skrivtid

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

More information

EECS150 - Digital Design Lecture 10 Logic Synthesis

EECS150 - 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 information

St.MARTIN S ENGINEERING COLLEGE Dhulapally, Secunderabad

St.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 information

VHDL for Complex Designs

VHDL 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 information

CSE140L: Components and Design

CSE140L: 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 information

Inferring Storage Elements

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

More information

Overview. CSE372 Digital Systems Organization and Design Lab. Hardware CAD. Two Types of Chips

Overview. 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 information

Advanced FPGA Design Methodologies with Xilinx Vivado

Advanced 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 information

Overview. Ram vs Register. Register File. Introduction to Structured VLSI Design. Recap Operator Sharing FSMD Counters.

Overview. 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 information

EITF35: Introduction to Structured VLSI Design

EITF35: 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 information

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

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

More information

Reference Sheet for C112 Hardware

Reference 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 information

Advanced FPGA Design. Jan Pospíšil, CERN BE-BI-BP ISOTDAQ 2018, Vienna

Advanced 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 information

VHDL And Synthesis Review

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

More information

1 Design Process HOME CONTENTS INDEX. For further assistance, or call your local support center

1 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 information

Logic Circuits II ECE 2411 Thursday 4:45pm-7:20pm. Lecture 3

Logic 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 information

Laboratory Exercise 8

Laboratory 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 information

BUILDING BLOCKS OF A BASIC MICROPROCESSOR. Part 1 PowerPoint Format of Lecture 3 of Book

BUILDING 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 information

General Coding Style Guidelines 5

General 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 information

EITF35: Introduction to Structured VLSI Design

EITF35: 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 information

Luleå University of Technology Kurskod SMD098 Datum Skrivtid

Luleå 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 information

EEL 4783: HDL in Digital System Design

EEL 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 information

4DM4 Lab. #1 A: Introduction to VHDL and FPGAs B: An Unbuffered Crossbar Switch (posted Thursday, Sept 19, 2013)

4DM4 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 information

Lecture #1: Introduction

Lecture #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 information

Digital Design with FPGAs. By Neeraj Kulkarni

Digital 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 information

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

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

More information

Lecture 32: SystemVerilog

Lecture 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 information

1 ST SUMMER SCHOOL: VHDL BOOTCAMP PISA, JULY 2013

1 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 information

FPGAs in a Nutshell - Introduction to Embedded Systems-

FPGAs 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 information

CS232 VHDL Lecture. Types

CS232 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 information

EITF35: Introduction to Structured VLSI Design

EITF35: 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 information

Register Transfer Level in Verilog: Part I

Register 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 information

Introduction to Verilog HDL

Introduction 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 information

Advanced Synthesis Techniques

Advanced 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 information

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

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

More information

Topic Notes: Building Memory

Topic 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 information

Chapter 5 Registers & Counters

Chapter 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 information

Chapter 6 Combinational-Circuit Building Blocks

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

More information

Graphics: Alexandra Nolte, Gesine Marwedel, Universität Dortmund. RTL Synthesis

Graphics: 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 information

ECE 4514 Digital Design II. Spring Lecture 15: FSM-based Control

ECE 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 information

The Verilog Language COMS W Prof. Stephen A. Edwards Fall 2002 Columbia University Department of Computer Science

The 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 information

IE1204 Digital Design L7: Combinational circuits, Introduction to VHDL

IE1204 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 information

FPGA. 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. 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 information

Lecture 15: System Modeling and Verilog

Lecture 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 information

Graduate Institute of Electronics Engineering, NTU. Lecturer: Chihhao Chao Date:

Graduate 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 information

Lecture 3: Modeling in VHDL. EE 3610 Digital Systems

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

More information

FPGA: FIELD PROGRAMMABLE GATE ARRAY Verilog: a hardware description language. Reference: [1]

FPGA: 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 information

APPLICATION NOTE. A CPLD VHDL Introduction. Introduction. Overview. Entity. XAPP 105 January12, 1998 (Version 1.0) 0 4* Application Note

APPLICATION 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 information

VHDL Essentials Simulation & Synthesis

VHDL 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 information

Modeling Synchronous Logic Circuits. Debdeep Mukhopadhyay IIT Madras

Modeling 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 information

CS429: Computer Organization and Architecture

CS429: 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 information

Verilog Tutorial. Verilog Fundamentals. Originally designers used manual translation + bread boards for verification

Verilog 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