TKT-1212 Digitaalijärjestelmien toteutus

Size: px
Start display at page:

Download "TKT-1212 Digitaalijärjestelmien toteutus"

Transcription

1 TKT-1212 Digitaalijärjestelmien toteutus Lecture 8 Simulation engines Erno Salminen 2013 transmogrify. vhd Source codes Simulation engine Wave viewer

2 Contents Modeling dimensions 1. Temporal 2. Data abstraction 3. Functional 4. Structural Basic simulator types 1. Event-driven simulation engines 2. Cycle-based simulation engines Waveform viewers and summary

3 Introduction Simulation-based verification is the most common way ensure functional correctness The heart is the simulation engine Models the behavior of the design and its environment Original slides created by Ari Kulmala This presentation is based on the book Comprehensive Functional Verification: The Complete Industry Cycle by Bruce Wile, John Goss, and Wolfgang Roesner Some examples obtained from Mentor Modelsim manual 3

4 Modeling dimensions Model is a simplification of reality and every system is best approached through a small set of nearly independent models Booch & Rumbaugh 4

5 Modeling dimensions#1: Temporal 1. Temporal dimension -Behavior over time, i.e. when the state changes I/Os represent the state of the DUV Causality means that output events do notoccur before the inputs that caused them a) Continuous time (Analog) Fairly close to physical properties of electrical circuit b) Discrete event Digital, electrical properties abstracted, delta delay, events occur seemingly simultaneously Various resolutions: 1fs, 1ns, clock cycle, transaction c) Timeless No regard of time stamps, just causality 5 Slightly different categories than course book. Note that terminology about models of computation (MoC) is sometimes confusing. See also: [E.A. Lee, A.Sangiovanni-Vincentelli, A Framework for Comparing Models of Computation, IEEE TCAD, Dec ]

6 Modeling dimensions #2: Data 2. Data abstraction - Signal values a) Continuous range (analog) E.g. voltage measurement, arbitrarily accurate real numbers b) Discrete values Bits, strings, integers, states E.g. std_logic: 1, 0, u, x, z, H, L Abstract values, e.g. user defined enumeration states Main, read_io, write_io Structs combine several abstract values 6

7 Modeling dimensions #3: Function 3. Functional Dimension May just be Continuous mathematical functions (e.g. Spice simulator) Select level of abstraction Transistors -> switches -> Boolean Logic -> Algorithms (RTL) -> Abstract mathematical formula E.g.: a) Boolean (half) adder: z0 = x0 xor y0 C1 = x0 and y0 b) Algorithm + (automatic implementation or user defined) c) Abstract formula The whole functionality is specified with abstract implementation-independent notations x=(2+y)^z mod a 7

8 Modeling dimensions #4: Structure 4. Structural Dimension a) Flat (single black box) No structurality, just implementation, eg. FFT with abstract mathematical formula Input FFT Output b) Hierarchical Implementation is structural Many subblocks Many components that have subblocks E.g. FFT has subblocks for add and multiply Input + FFT + Output * * 8

9 VHDL support for modeling dimensions Temporal Data Continuous Gate Delay Clock Cycle Intruction Cycle Events Continuous Multivalue Bit Bit Abstract Value Struct Functional Continuous Switch Level Boolean Logic Algorithmic Abstract Mathematical Structural Single black box Functional blocks Detailed component hierarchy 9 Verilog s support

10 Modeling compromise: Speed vs. Accuracy More speed more abstract models more test cases executed in unit time, but less accuracy. Designers should start with high-level models Basic verification, something like this could work Gradually refine the models if needed Simulation runtime and memory requirements RTL Style Gate-level style Gate-level with detailed delays 10 Model details and accuracy

11 Basic HDL simulator block diagram Interactive user control GUI control check HDL model of DUV check stimulus HDL Testbench HDL Model Simulation engine Trace Files Interactive waveform viewer GUI Coverage Files Interactive coverage analysis GUI 11

12 Waveform Viewers Every simulator can produce a trace file At minimum, symbol name and signal value contained Unfortunately, EDA vendors all have own file formats Usual difference is the compression, because in large simulations, data amount is very high Waveform viewers share very common looking GUI GTK wave viewer is a free tool that supports many different formats Search capabilities are required for usability Certain transitions on a signal Specific values Useful to compare two wave traces (e.g. after bug fix) 12

13 Simulation engine types Evaluate HDL model over time and present its state Standardization: The HDL language reference manual (LRM) defines the behavior of the simulation engine. 1. Evaluate signals and blocks only at model times for which events are scheduled Event-driven simulation engines Majority of simulators are in this category, e.g. ModelSim and GHDL Evaluate only the active parts 2. Evaluate the model at every point of time along the finest granularity known to the simulation engine Cycle-based simulation engines Simpler simulator and hence faster Commonly evaluate the whole model regardless of activity 13

14 Event-driven simulation engines

15 Event-driven simulation Most popular approach, Used also in other areas since it is very general approach Channels or signals transfer data between blocks Blocks process data at its inputs which may initiate a new transfer. Essential properties: 1. Evaluate model behaviour only at those times when model events are scheduled 2. Evaluate behavior only for the blocks or signals for which events are scheduled Event = change in signal s value 15

16 Event-driven simulation (2) Evaluating time: Simulator keeps track of current time and when events are scheduled to happen The model objects need to notify the simulation engine about future changes scheduling engine may skip unused time intervals Scheduling is done in internal time intervals, if no delay is specified Zero-delay scheduling (delta delay), most usual in RTL Each scheduling step evaluation creates a resulting update to the next occuring step Parallel updates are handled sequentially by the engine, effectively randomly Signal changes propagate through the model as the scheduling progresses 16

17 Simulator example Simulating a top level having two blocks, which contain 3 sub-blocks, b1, b2, c1. i1 a1s1 i2 a2s2 B1 s3 s4 a3 a4 s7 s8 C1 a7 o1 Signal directions imply partial order for the evalutation. s5 B2 a5 s6 s9 a6 E.g. a3 after s3 and a4 after s4, but no relation between a3 and a4 o2 17 inputs model outputs

18 Sim. example: evaluation over time A change occurs in i1 Simulator starts to evaluate the model over time by steps (delta delay) i1 a1s1 i2 a2s2 B1 s5 s3 s4 B2 s6 a3 s7 a4 s8 a5 a6 C1 s9 a7 o1 o2 Signal update Block evaluation inputs model outputs Blocks might be evaluated twice (due to both inputs) s3 a3 s7 C1a7 o1 i1 a1 s1 B1 s4 B2 s6 a6 o2 time 18 Simulator engine s scheduling step (=delta)

19 Another example 1. s7 3. s9 s8 2. s10 s11 4. s12 s

20 Another example: Update sequence Note: C1 evaluated twice

21 Event-driven simulation and HDL VHDL and Verilog specifications include the assumption of underlying event-driven simulator Cyclic process 1. Update signals 2. Execute processes (concurrent statements are actually also processes) 3. Adavance global time Feedback loops may cause endless oscillation User or the engine must take action to interrupt uncontrolled oscillation Usually bad HDL design, e.g. combinatorial loop Modelsim complains something like Zero delay oscillation at 21

22 ModelSim general flow Source: Modelsim manual 22

23 Inside the event-driven simulator The three basic core data structures of the event-driven simulation engine 1. A list of all executable blocks present in the model network 2. Data structure that shows the connections between blocks via signals 3. A value table that holds all current signal values Activity and time progress controlled by so called time wheel At zero time, all executable blocks are scheduled In VHDL, all processes and concurrent assignments At 0 ns, there might be lots of warnings due to unknown signal values. Usually harmless but ugly Each time wheel entry has a to-do list Assignments scheduled to happen at that point 23

24 Example of how network view is constructed from VHDL user-defined signal name simulator s internal signal 24

25 Time wheel and to-do lists a xor b a and b New to-do lists may be added in between the existing ones c(0)<= Now +1ns Now +2ns 25

26 Signal assignment and drivers 1. concurrent - in an architectural body Signal activities control not top-down flow - their execution order 2. sequential - inside a process, top-down ordering The value on the right side will be scheduled for the left side Value is placed on the driver of the left-hand side signal Multiple concurrent assignments produce multiple drivers That is legal if the signal type defines resolution function which resolves a single value from multiple drivers Sequential body (i.e. process) may have multiple assignments but they produce only a single driver Note that this includes both sequential (synchronous) and combinatorial (asynchronous) processes The last assignment in HDL is kept Last assigned value (in time) is kept unless otherwise stated may require state-holding logic in synthesis (DFF or latch)

27 Events and transactions Signal assignment may have an associated delay An event occurs when a signal changes its value If the same value is assigned again, there is no event When a value is scheduled to be assigned to a target signal after a given time, a transaction has been placed on the driver A transaction may assign the same value again, but no event occur Transaction is represented with value-time tuple <new_value, time>

28 Events and transactions (2) target_signal <= v after d; t+ t+ t+ At time t, new value v is computed from the righthand side Assignment specifies also delay d transaction tr i = (v,d) is placed on the driver At time t+t 0, time component of the transaction tr i has decresed to d-t0 At time t+t 1, time component decreases further At time t+d, time component becomes 0 and transaction expires Target signal get the value v

29 Transaction example event expiration, but no event (0,05) (1,10) a b c

30 Events and sensitivity list Simulation engine considers events of only those signals that are included in sensitivity list Example1: combinatorial process comb_foo: process (a_in, b_in)... No need to simulate this when, e.g. clk changes However, it could be simulated but that would not change any value (since the needed inputs are stable) waste of simulation time b_in clk rst_n others a_in comb_foo... assigned signals (Avoid reading these outputs in the same process or putting any of them into sens.list! That may easily create a combinatorial loop, i.e. random oscillator and infinite loop in simulator.)

31 Events and sensitivity list (2) Example 2: synchronous process sync_bar: process (rst, clk) begin if(rst = '0')then s0 <= '0'; elsif(clk'event and clk='1') then... <statements> After reset, process will be simulated on every clock edge But statements inside elsif-branch executed only at rising clock edge One could include all signals that are read in statements their events do not occur at the same time with clk event waste of time a_in b_in clk rst_n others not needed in sens.list sync_bar (in simulator)... assigned signals (These will change just after the clk edge and these can be read inside sync_bar )

32 Events and sensitivity list (3) Synthesis tool does not care about sensitivity list! All necessary signals (those that are read) will go into the logic cloud! All signals assigned inside if-branch with x event and x= 1 create register whose clk input is connected to signal x Detecting edge on arbitrary control signal must be coded explicitly Compare values from two consecutive clk cycles: if (a_old_r /= a_in) Nested events won t produce any meaningful logic a_in sync_bar (synthesized HW) b_in comb logic... assigned signals clk rst_n others

33 Real vs. delta delays in VHDL 1. Real delays: inertial, reject-inertial transport See last lecture Model the gate and wire delays 2. Delta delays Simulator s concept to deal with seemingly concurrent events Multiple signals may need updating, statements that are sensitive to these signals must be executed, and any new events that result from these statements must then be queued and executed as well The steps taken to evaluate the design without advancing simulation time are referred to as "delta times" or just "deltas. An infinitesimal interval Waveform shows the same global time no matter how many delta delays elapses This mechanism may cause unexpected results

34 Delta delay example Event at upper input propagates through logic AND will be evaluated twice Firts, it rises and then falls again You ll notice a glitch in signal C at 20ns in wave window 20 Fig2. ModelSim s list view 25 Fig1. Conceptual timing Fig3. ModelSim s wave view

35 Delta delay may cause problems The execution order of components with zero delay is unclear, e.g. two processes Simulator assumes some order and may evaluate the same process multiple times The order may change between compilations This is bad problem, if signal value is momentarily out of range of its type Luckily, this is quite rare Just like the glitch in previous example. For example, integer range 0 to 10 goes to 11 and then returns to valid value

36 Example of delta delay problem clk2 <= clk; seq0: process (rst, clk) begin if(rst = '0')then s0 <= '0'; elsif(clk'event and clk='1') then s0 <= inp; end if; end process; Desired HW: this is what you would expect inp clk seq0 seq1: process (rst, clk2) begin if(rst = '0')then s1 <= '0'; elsif(clk2'event and clk2='1') then s1 <= s0; end if; end process; rst_n clk2 seq1 s0 s1

37 Delta delay problem in simulator clk2 <= clk; seq0: process (rst, clk) begin if(rst = '0')then s0 <= '0'; elsif(clk'event and clk='1') then s0 <= inp; end if; end process; In real HW, similar problem are caused by clock skew Wrong value! seq1: process (rst, clk2) begin if(rst = '0')then s1 <= '0'; elsif(clk2'event and clk2='1') then s1 <= s0; end if; end process; 1 These change first, 3 which create new event, Event-queue[t0] Inp= 1 Clk = 0 Inp=1 Clk = 1 Clk2 <=clk seq0: (clk) seq1: (clk2) Signal update queue [t0] (s0=0) clk2=1 s0=1 s1=1 In one simulation round 37 2 then signal updates 4 and last signal

38 Behavior of problematic example code In this example you have two synchronous processes, 1. one triggered with clk 2. one triggered with clk2 To your surprise, the signals change in the clk2 process on the same edge as they are set in the clk process! As a result, the value of inp appears at s0 and s1 in the same simulation cycle During simulation 1. An event on clk occurs (from the testbench). 2. From this event ModelSim performs the "clk2 <= clk" assignment and the process which is sensitive to clk 3. Before advancing the simulation time, ModelSim finds that the process sensitive to clk2 can also be run. In order to get the expected results, you must do one of the following: a) Make certain to use the same clock on both processes or use just one process b) Insert a delay at every output c) Insert a delta delay

39 Event-driven simulation performance Widely used optimization well understood Performance critical portions: Management of to-do lists The time wheel The data that represents model topology When event is evaluated traverse model topology to find signals and blocks to update find the corresponding slots in the time wheel put the corresponding event to the to-do list Model granularity compromise Activity rate affects fine-grained model more than coarse grained model 39

40 40 Granularity vs performance

41 Simulation Performance Simulation throughput Per time spent: Amount of verification, i.e. number of tests Number of cycles Number of distinct states visited and checked Improve throughput: Increase simulation engine performance Or increase the simulated model performance Run simulations in parallel Eliminate redundant simulations Hard to measure The target of the simulation engine: all-around, gate-level, RTlevel? Profiling: which parts of the model are most time consuming E.g. Vsim Tools Profile Performace, then simulate, and view the performance report 41

42 Improving performance Efficiency: time_spent_on_hdl vs. time_spent_on_scheduling Less events, more efficient Speed can be optimized by more abstract HDL: No gate-level structures Integers instead of bit-vectors Standard libraries Binary values over multivalued No delay statements Processes instead of concurrent assignments Process is a pre-scheduled atomic action for simulation engine Variaables are faster than signals Once again, correct functionality and understandability are usually more important 42

43 Example VHDLs Fastest Slowest 43

44 Event driven simulations- the future Significant research on parallel algorithms for simulation engine over the years No breakthrough Seems to be inherently hard to parallelize no commercially available parallel event-driven simulation engine Two alternatives to parallelize 1. Trivial parallelization: Simulation farm Pool of workstations, each running independent simulation 2. Running single model partiotioned and parallelized accross several workstations 44

45 Cycle-based simulation engines

46 Cycle-Based simulation engines Algorithm to evaluate time: Evaluate the model at every point of time along the finest granularity known to the simulation engine E.g. once per clok cycle Based on much simpler algorithms than event-driven sim Superior performance 10x to 20x speed, models 3-10 times smaller Optimized totally for synchronous hardware design style Downsides Severe constraints to HDL design style No delays Limited sequential structures Testbench features of the HDLs largely not supported Testbenches with other languages, APIs 46

47 Cycle-based simulation engines(2) Due to constraints, not commercially accepted (came to market in mid 90s) However, some features have been then integrated to the event-driven simulators Applicable portions of the code are automatically handled with cycle-based fashion, others with event-driven Hybrid simulators Synchronous design Timing verification and functional verification can be separated Modeling properties Zero-delay simulation No combinational feedback loops model must be a directed acyclic graph (DAG) No dynamic block scheduling, evalution times are known 47

48 48 Example model network

49 Cycle-based simulation engines CBSEs typically use an oblivious simulation algorithm Calculates all the combinational functions at every cycle Redundant work: evaluate also parts that do not change simplicity (time wheels and to-do lists removed) No multivalue bits Synchronous do not care about glitches and hazards Simulation model actually becomes a piece of executable code (a program) Each output has a mathematical function dependent of the inputs typical arithmetic optimizations can be used at the compile time (synthesis-like optimizations). e.g. constant propagation, removing redundant logic 49

50 CB model of 2b-adder 50 Compare with the one shown on slide #22 (fig 5.25). Note the absence of delays

51 CBSE extensions In order to be more usable, CBSE s have been extended at the expense of the simulation efficiency Multivalued bits E.g. Busses (three-state), bus driving errors In VHDL, std_logic has 9 different states lots more computation on boolean logic In verilog, there are 4 states for bit Performance degrades 3x-4x Should be selectable feature Multiple clock domains Overclock the simulation of the slower domain However, simulators can never be solely used to quarantee clock domain crossings! Hybrid simulators Events inside CBSE vs. CBSE inside event BSE 51

52 Multiclocking example Slower clock domain clocked with the rate of the faster. (overhead) 52

53 Summary 1. Event driven simulation engine: Most common Supports arbitrary delays Supports a large set of HDL features 2. Cycle-based simulation engine Mostly used to boost simulation within event driven simulation engine Does not support delays (fixed time steps only) Severely restricts usable HDL features Significantly faster than Event DSE Designer can affect simulation speed by design choices More abstract code -> more speed -> less accuracy Balance and compromise! 53

54 Extra

55 Other sources VHDL: Analysis and Modeling of Digital Systems Tekijät Zainalabedin Navabi Julkaisija McGraw-Hill Professional, 1998 ISBN , sivua ay/delay.pdf

56 Typical ED simulator flow 56 no no yes yes

57 Simulator example Simulator checks all projected signal traces Global time is advanced to the next transaction 1 ns, 10ns, 15 ns, 20 ns, 35 ns... S3 has value 10 during 15-20ns After that value is a function of 1 and 10 (not defined here) Projected signal values Fig: [ lect2.frm.pdf]

58 Debugging delta delay problems The best way to debug delta delay problems is observe your signals in the List window. There you can see how values change at each delta time. View -> List Select signal in Object window -> RightMouseButton+Add to List

59 Reminder: Simulator example Simulating a top level having two blocks, which contain 3 sub-blocks, b1, b2, c1. i1 a1s1 B1 s3 a3 s7 C1 a7 o1 i2 a2s2 s4 a4 a5 s8 s9 Signal directions imply partial order for the evalutation. s5 B2 s6 a6 o2 59 inputs model outputs

60 Waveform of Simulator example Initally i1 = 0 i2 = 1 Then i1 goes 1 at 25 ns All signals seem to be updated at once Compile using vcom novopt Otherwise some intermediate signals are optimized away

61 List view of Simulator example Shows the simulation order, i.e. delta delays between assignments What actually happens: Start of simulation, all values U Input values assigned First internal signals (a1, a2)get update Signals propagate... Block b1 sets s3 and s4 a3 and a4 updated, block b2 sets s6 Block c1 sets a7 and s9 Simulation time advances, i1 rises In this example at 0ns, blocks b1 and c1 at were executed once (0ns+3, 0ns+6). Block b2 executed twice: 0ns+4 and 0ns+9. The latter does not chnage the value of s6.

62 Annotated simulator example The annotated delta steps correspond to simulation time 0 ns i1 a1s1 s3 a3 s7 a7 B1 C1 i2 a2s2 s4 a4 s8 a5 s o1 Signal directions imply partial order for the evalutation. s5 B2 s6 a6 o2 62 inputs model outputs

63 Detecting Infinite Zero-Delay Loops If a large number of deltas occur without advancing time, it is usually a symptom of an infinite zero-delay loop in the design. In order to detect the presence of these loops, ModelSim defines a limit, the iteration limit", on the number of successive deltas that can occur. When ModelSim reaches the iteration limit, it issues a warning message. The iteration limit default value is If you receive an iteration limit warning, first increase the iteration limit and try to continue simulation. You can set the iteration limit from the Simulate > Runtime Options menu or by modifying the IterationLimit variable in the modelsim.ini. See Control Variables Located in INI Files for more information on modifying the modelsim.ini file. If the problem persists, look for zero-delay loops. Run the simulation and look at the source code when the error occurs. Use the step button to step through the code and see which signals or variables are continuously oscillating. Two common causes are a loop that has no exit, or a series of gates with zero delay where the outputs are connected back to the inputs.

64 Source: ModelSim SE Userís Manual, v6.2a, June 2006

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

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

EECS150 - Digital Design Lecture 7 - Computer Aided Design (CAD) - Part II (Logic Simulation) Finite State Machine Review

EECS150 - Digital Design Lecture 7 - Computer Aided Design (CAD) - Part II (Logic Simulation) Finite State Machine Review EECS150 - Digital Design Lecture 7 - Computer Aided Design (CAD) - Part II (Logic Simulation) Feb 9, 2010 John Wawrzynek Spring 2010 EECS150 - Lec7-CAD2 Page 1 Finite State Machine Review State Transition

More information

EECS150 - Digital Design Lecture 6 - Logic Simulation

EECS150 - Digital Design Lecture 6 - Logic Simulation EECS150 - Digital Design Lecture 6 - Logic Simulation Sep. 17, 013 Prof. Ronald Fearing Electrical Engineering and Computer Sciences University of California, Berkeley (slides courtesy of Prof. John Wawrzynek)

More information

OUTLINE SYSTEM-ON-CHIP DESIGN. GETTING STARTED WITH VHDL September 3, 2018 GAJSKI S Y-CHART (1983) TOP-DOWN DESIGN (1)

OUTLINE SYSTEM-ON-CHIP DESIGN. GETTING STARTED WITH VHDL September 3, 2018 GAJSKI S Y-CHART (1983) TOP-DOWN DESIGN (1) September 3, 2018 GETTING STARTED WITH VHDL 2 Top-down design VHDL history Main elements of VHDL Entities and architectures Signals and processes Data types Configurations Simulator basics The testbench

More information

Lecture 1: Introduction Course arrangements Recap of basic digital design concepts EDA tool demonstration

Lecture 1: Introduction Course arrangements Recap of basic digital design concepts EDA tool demonstration TKT-1426 Digital design for FPGA, 6cp Fall 2011 http://www.tkt.cs.tut.fi/kurssit/1426/ Tampere University of Technology Department of Computer Systems Waqar Hussain Lecture Contents Lecture 1: Introduction

More information

VLSI Test Technology and Reliability (ET4076)

VLSI Test Technology and Reliability (ET4076) VLSI Test Technology and Reliability (ET4076) Lecture 4(part 2) Testability Measurements (Chapter 6) Said Hamdioui Computer Engineering Lab Delft University of Technology 2009-2010 1 Previous lecture What

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

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

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

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

Outline. CPE/EE 422/522 Advanced Logic Design L05. Review: General Model of Moore Sequential Machine. Review: Mealy Sequential Networks.

Outline. CPE/EE 422/522 Advanced Logic Design L05. Review: General Model of Moore Sequential Machine. Review: Mealy Sequential Networks. Outline CPE/EE 422/522 Advanced Logic Design L05 Electrical and Computer Engineering University of Alabama in Huntsville What we know Combinational Networks Sequential Networks: Basic Building Blocks,

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

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

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

ECE 3401 Lecture 10. More on VHDL

ECE 3401 Lecture 10. More on VHDL ECE 3401 Lecture 10 More on VHDL Outline More on VHDL Some VHDL Basics Data Types Operators Delay Models VHDL for Simulation VHDL for Synthesis 1 Data Types Every signal has a type, type specifies possible

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

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

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

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

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

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

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

EEL 4783: Hardware/Software Co-design with FPGAs

EEL 4783: Hardware/Software Co-design with FPGAs EEL 4783: Hardware/Software Co-design with FPGAs Lecture 9: Short Introduction to VHDL* Prof. Mingjie Lin * Beased on notes of Turfts lecture 1 What does HDL stand for? HDL is short for Hardware Description

More information

EECS150 - Digital Design Lecture 6 - Logic Simulation. Encoder Example

EECS150 - Digital Design Lecture 6 - Logic Simulation. Encoder Example EECS150 - Digital Design Lecture 6 - Logic Simulation Feb 7, 2013 John Wawrzynek Spring 2013 EECS150 - Lec06-sim Page 1 Encoder Example What is y if x == 4 b1111? always @(x) : encode if (x == 4'b0001)

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

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

structure syntax different levels of abstraction

structure syntax different levels of abstraction This and the next lectures are about Verilog HDL, which, together with another language VHDL, are the most popular hardware languages used in industry. Verilog is only a tool; this course is about digital

More information

Here is a list of lecture objectives. They are provided for you to reflect on what you are supposed to learn, rather than an introduction to this

Here is a list of lecture objectives. They are provided for you to reflect on what you are supposed to learn, rather than an introduction to this This and the next lectures are about Verilog HDL, which, together with another language VHDL, are the most popular hardware languages used in industry. Verilog is only a tool; this course is about digital

More information

ECE 353 Lab 4. Verilog Review. Professor Daniel Holcomb UMass Amherst Fall 2017

ECE 353 Lab 4. Verilog Review. Professor Daniel Holcomb UMass Amherst Fall 2017 ECE 353 Lab 4 Verilog Review Professor Daniel Holcomb UMass Amherst Fall 2017 What You Will Do In Lab 4 Design and implement a serial MIDI receiver Hardware in an Altera Complex Programmable Logic Device

More information

TKT-1212 Digitaalijärjestelmien toteutus

TKT-1212 Digitaalijärjestelmien toteutus TKT-1212 Digitaalijärjestelmien toteutus Lecture 7: VHDL Testbenches Erno Salminen 2012 Design under test Testbench Contents Purpose of test benches Structure of simple test bench Side note about delay

More information

CHAPTER 3 ASYNCHRONOUS PIPELINE CONTROLLER

CHAPTER 3 ASYNCHRONOUS PIPELINE CONTROLLER 84 CHAPTER 3 ASYNCHRONOUS PIPELINE CONTROLLER 3.1 INTRODUCTION The introduction of several new asynchronous designs which provides high throughput and low latency is the significance of this chapter. The

More information

VHDL Sample Slides Rev Sample Slides from the 2-day and 4-day VHDL Training Courses

VHDL Sample Slides Rev Sample Slides from the 2-day and 4-day VHDL Training Courses VHDL Sample Slides from the 2-day and 4-day VHDL Training Courses Rev. 4.7 VHDL 2011 TM Associates, Inc. 1-1 These sample slides are taken from the 4-day basic VHDL training course. They are from a variety

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

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

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

Quick Introduction to SystemVerilog: Sequental Logic

Quick Introduction to SystemVerilog: Sequental Logic ! Quick Introduction to SystemVerilog: Sequental Logic Lecture L3 8-545 Advanced Digital Design ECE Department Many elements Don Thomas, 24, used with permission with credit to G. Larson Today Quick synopsis

More information

Definitions. Key Objectives

Definitions. Key Objectives CHAPTER 2 Definitions Key Objectives & Types of models & & Black box versus white box Definition of a test Functional verification requires that several elements are in place. It relies on the ability

More information

Subject: Scheduling Region Questions and Problems of new SystemVerilog commands

Subject: Scheduling Region Questions and Problems of new SystemVerilog commands Subject: Scheduling Region Questions and Problems of new SystemVerilog commands I have read and re-read sections 14-17 of the SystemVerilog 3.1 Standard multiple times and am still confused about exactly

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

Spiral 1 / Unit 4 Verilog HDL. Digital Circuit Design Steps. Digital Circuit Design OVERVIEW. Mark Redekopp. Description. Verification.

Spiral 1 / Unit 4 Verilog HDL. Digital Circuit Design Steps. Digital Circuit Design OVERVIEW. Mark Redekopp. Description. Verification. 1-4.1 1-4.2 Spiral 1 / Unit 4 Verilog HDL Mark Redekopp OVERVIEW 1-4.3 1-4.4 Digital Circuit Design Steps Digital Circuit Design Description Design and computer-entry of circuit Verification Input Stimulus

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

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

Date Performed: Marks Obtained: /10. Group Members (ID):. Experiment # 11. Introduction to Verilog II Sequential Circuits

Date Performed: Marks Obtained: /10. Group Members (ID):. Experiment # 11. Introduction to Verilog II Sequential Circuits Name: Instructor: Engr. Date Performed: Marks Obtained: /10 Group Members (ID):. Checked By: Date: Experiment # 11 Introduction to Verilog II Sequential Circuits OBJECTIVES: To understand the concepts

More information

Register Transfer Level

Register Transfer Level Register Transfer Level Something between the logic level and the architecture level A convenient way to describe synchronous sequential systems State diagrams for pros Hierarchy of Designs The design

More information

Schematic design. Gate level design. 0 EDA (Electronic Design Assistance) 0 Classical design. 0 Computer based language

Schematic design. Gate level design. 0 EDA (Electronic Design Assistance) 0 Classical design. 0 Computer based language 1 / 15 2014/11/20 0 EDA (Electronic Design Assistance) 0 Computer based language 0 HDL (Hardware Description Language) 0 Verilog HDL 0 Created by Gateway Design Automation Corp. in 1983 First modern hardware

More information

VLSI Testing. Virendra Singh. Bangalore E0 286: Test & Verification of SoC Design Lecture - 7. Jan 27,

VLSI Testing. Virendra Singh. Bangalore E0 286: Test & Verification of SoC Design Lecture - 7. Jan 27, VLSI Testing Fault Simulation Virendra Singh Indian Institute t of Science Bangalore virendra@computer.org E 286: Test & Verification of SoC Design Lecture - 7 Jan 27, 2 E-286@SERC Fault Simulation Jan

More information

Verilog Nonblocking Assignments with Delays - Myths & Mysteries

Verilog Nonblocking Assignments with Delays - Myths & Mysteries Verilog Nonblocking Assignments with Delays - Myths & Mysteries Clifford E. Cummings, Inc. cliffc@sunburst-design.com www.sunburst-design.com 2 of 67 Agenda IEEE 1364 reference model & event queue Review

More information

Lab #1. Topics. 3. Introduction to Verilog 2/8/ Programmable logic. 2. Design Flow. 3. Verilog --- A Hardware Description Language

Lab #1. Topics. 3. Introduction to Verilog 2/8/ Programmable logic. 2. Design Flow. 3. Verilog --- A Hardware Description Language Lab #1 Lecture 8, 9, &10: FPGA Dataflow and Verilog Modeling February 9, 11, 13, 2015 Prof R Iris Bahar Lab #1 is posted on the webpage wwwbrownedu/departments/engineering/courses/engn1640 Note for problem

More information

A Brief Introduction to Verilog Hardware Definition Language (HDL)

A Brief Introduction to Verilog Hardware Definition Language (HDL) www.realdigital.org A Brief Introduction to Verilog Hardware Definition Language (HDL) Forward Verilog is a Hardware Description language (HDL) that is used to define the structure and/or behavior of digital

More information

This Lecture. Some components (useful for the homework) Verilog HDL (will continue next lecture)

This Lecture. Some components (useful for the homework) Verilog HDL (will continue next lecture) Last Lecture The basic component of a digital circuit is the MOS transistor Transistor have instrinsic resistance and capacitance, so voltage values in the circuit take some time to change ( delay ) There

More information

RTL Implementation. Introduction to Structured VLSI Design. Concurrent Statements and Processes. Combinational and Sequential Logic.

RTL Implementation. Introduction to Structured VLSI Design. Concurrent Statements and Processes. Combinational and Sequential Logic. RTL Implementation 32 Introduction to Structured VLSI Design Recap on Processes, Signals, and Variables A Y Y=A*B+C B C 48 Joachim Rodrigues We have complete control (active chioice) over the registers:

More information

Part 6: VHDL simulation. Introduction to Modeling and Verification of Digital Systems. Elaboration and simulation. Elaboration and simulation

Part 6: VHDL simulation. Introduction to Modeling and Verification of Digital Systems. Elaboration and simulation. Elaboration and simulation M Informatique / MOIG Introduction to Modeling and Verification of Digital ystems Part 6: VHDL simulation Laurence PIERRE http://users-tima.imag.fr/amfors/lpierre/marc 27/28 37 Elaboration and simulation

More information

a, b sum module add32 sum vector bus sum[31:0] sum[0] sum[31]. sum[7:0] sum sum overflow module add32_carry assign

a, b sum module add32 sum vector bus sum[31:0] sum[0] sum[31]. sum[7:0] sum sum overflow module add32_carry assign I hope you have completed Part 1 of the Experiment. This lecture leads you to Part 2 of the experiment and hopefully helps you with your progress to Part 2. It covers a number of topics: 1. How do we specify

More information

EN2911X: Reconfigurable Computing Topic 02: Hardware Definition Languages

EN2911X: Reconfigurable Computing Topic 02: Hardware Definition Languages EN2911X: Reconfigurable Computing Topic 02: Hardware Definition Languages Professor Sherief Reda http://scale.engin.brown.edu School of Engineering Brown University Spring 2014 1 Introduction to Verilog

More information

Nonblocking Assignments in Verilog Synthesis; Coding Styles That Kill!

Nonblocking Assignments in Verilog Synthesis; Coding Styles That Kill! Nonblocking Assignments in Verilog Synthesis; Coding Styles That Kill! by Cliff Cummings Sunburst Design, Inc. Abstract -------- One of the most misunderstood constructs in the Verilog language is the

More information

Introduction to VHDL. Main language concepts

Introduction to VHDL. Main language concepts Introduction to VHDL VHSIC (Very High Speed Integrated Circuit) Hardware Description Language Current standard is IEEE 1076-1993 (VHDL-93). Some tools still only support VHDL-87. Tools used in the lab

More information

I 3 I 2. ! Language of logic design " Logic optimization, state, timing, CAD tools

I 3 I 2. ! Language of logic design  Logic optimization, state, timing, CAD tools Course Wrap-up Let s Try the Priority Encoder One More Time = =! Priority Encoder Revisited! What (We Hope) You Learned I 3 O 3 I j O j! Design Methodology! I 2 O 2 I O I O Zero Oj Ij Ij CS 5 - Spring

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

ARM 64-bit Register File

ARM 64-bit Register File ARM 64-bit Register File Introduction: In this class we will develop and simulate a simple, pipelined ARM microprocessor. Labs #1 & #2 build some basic components of the processor, then labs #3 and #4

More information

Synthesis from VHDL. Krzysztof Kuchcinski Department of Computer Science Lund Institute of Technology Sweden

Synthesis from VHDL. Krzysztof Kuchcinski Department of Computer Science Lund Institute of Technology Sweden Synthesis from VHDL Krzysztof Kuchcinski Krzysztof.Kuchcinski@cs.lth.se Department of Computer Science Lund Institute of Technology Sweden March 23, 2006 Kris Kuchcinski (LTH) Synthesis from VHDL March

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

ECE U530 Digital Hardware Synthesis. Course Accounts and Tools

ECE U530 Digital Hardware Synthesis. Course Accounts and Tools ECE U530 Digital Hardware Synthesis Prof. Miriam Leeser mel@coe.neu.edu Sept 13, 2006 Lecture 3: Basic VHDL constructs Signals, Variables, Constants VHDL Simulator and Test benches Types Reading: Ashenden

More information

In this lecture, we will focus on two very important digital building blocks: counters which can either count events or keep time information, and

In this lecture, we will focus on two very important digital building blocks: counters which can either count events or keep time information, and In this lecture, we will focus on two very important digital building blocks: counters which can either count events or keep time information, and shift registers, which is most useful in conversion between

More information

The Need for Speed: Understanding design factors that make multicore parallel simulations efficient

The Need for Speed: Understanding design factors that make multicore parallel simulations efficient The Need for Speed: Understanding design factors that make multicore parallel simulations efficient Shobana Sudhakar Design & Verification Technology Mentor Graphics Wilsonville, OR shobana_sudhakar@mentor.com

More information

VLSI Testing. Fault Simulation. Virendra Singh. Indian Institute of Science Bangalore

VLSI Testing. Fault Simulation. Virendra Singh. Indian Institute of Science Bangalore VLSI Testing Fault Simulation Virendra Singh Indian Institute of Science Bangalore virendra@computer.org E0 286: Test & Verification of SoC Design Lecture - 4 Jan 25, 2008 E0-286@SERC 1 Fault Model - Summary

More information

קורס VHDL for High Performance. VHDL

קורס VHDL for High Performance. VHDL קורס VHDL for High Performance תיאור הקורס קורסזהמספקאתכלהידע התיאורטיוהמעשילכתיבתקודHDL. VHDL לסינתזה בעזרת שפת הסטנדרט הקורסמעמיקמאודומלמדאת הדרךהיעילהלכתיבתקודVHDL בכדילקבלאתמימושתכןהלוגי המדויק. הקורסמשלב

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

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

Sequential VHDL. Katarzyna Radecka. DSD COEN 313

Sequential VHDL. Katarzyna Radecka. DSD COEN 313 Sequential VHDL Katarzyna Radecka DSD COEN 313 kasiar@ece.concordia.ca Overview Process Sensitivity List Wait Statements If Statements Case Statements Loop Statements Three Styles of VHDL Behavioral Structural

More information

Mixed Signal Verification Transistor to SoC

Mixed Signal Verification Transistor to SoC Mixed Signal Verification Transistor to SoC Martin Vlach Chief Technologist AMS July 2014 Agenda AMS Verification Landscape Verification vs. Design Issues in AMS Verification Modeling Summary 2 AMS VERIFICATION

More information

EE595. Part VII VHDL Synthesis Techniques and Recommendations. EE 595 EDA / ASIC Design Lab

EE595. Part VII VHDL Synthesis Techniques and Recommendations. EE 595 EDA / ASIC Design Lab EE595 Part VII VHDL Synthesis Techniques and Recommendations Introduction Synthesis is the translation process from an abstract description of a hardware device into an optimized technology specific gate

More information

EE 4755 Digital Design Using Hardware Description Languages

EE 4755 Digital Design Using Hardware Description Languages EE 4755 Digital Design Using Hardware Description Languages Basic Information URL: http://www.ece.lsu.edu/v Offered by: David M. Koppelman, Room 345 ERAD Building 578-5482. koppel@ece.lsu.edu, http://www.ece.lsu.edu/koppel/koppel.html

More information

Contemporary Design. Traditional Hardware Design. Traditional Hardware Design. HDL Based Hardware Design User Inputs. Requirements.

Contemporary Design. Traditional Hardware Design. Traditional Hardware Design. HDL Based Hardware Design User Inputs. Requirements. Contemporary Design We have been talking about design process Let s now take next steps into examining in some detail Increasing complexities of contemporary systems Demand the use of increasingly powerful

More information

01-1 Electronic Design Automation (EDA) The use of software to automate electronic (digital and analog) design.

01-1 Electronic Design Automation (EDA) The use of software to automate electronic (digital and analog) design. 01-1 Electronic Design Automation (EDA) 01-1 Electronic Design Automation (EDA): (Short Definition) The use of software to automate electronic (digital and analog) design. Electronic Design Automation

More information

Logic Verification 13-1

Logic Verification 13-1 Logic Verification 13-1 Verification The goal of verification To ensure 100% correct in functionality and timing Spend 50 ~ 70% of time to verify a design Functional verification Simulation Formal proof

More information

The process. Sensitivity lists

The process. Sensitivity lists The process process itself is a concurrent statement but the code inside the process is executed sequentially Process label (optional) Process declarative region Process body entity Test is, : in bit;

More information

Advanced VLSI Design Prof. Virendra K. Singh Department of Electrical Engineering Indian Institute of Technology Bombay

Advanced VLSI Design Prof. Virendra K. Singh Department of Electrical Engineering Indian Institute of Technology Bombay Advanced VLSI Design Prof. Virendra K. Singh Department of Electrical Engineering Indian Institute of Technology Bombay Lecture 40 VLSI Design Verification: An Introduction Hello. Welcome to the advance

More information

Module 4c: Pipelining

Module 4c: Pipelining Module 4c: Pipelining R E F E R E N C E S : S T A L L I N G S, C O M P U T E R O R G A N I Z A T I O N A N D A R C H I T E C T U R E M O R R I S M A N O, C O M P U T E R O R G A N I Z A T I O N A N D A

More information

ECE 353 Lab 4. Verilog Review. Professor Daniel Holcomb With material by Professor Moritz and Kundu UMass Amherst Fall 2016

ECE 353 Lab 4. Verilog Review. Professor Daniel Holcomb With material by Professor Moritz and Kundu UMass Amherst Fall 2016 ECE 353 Lab 4 Verilog Review Professor Daniel Holcomb With material by Professor Moritz and Kundu UMass Amherst Fall 2016 Recall What You Will Do Design and implement a serial MIDI receiver Hardware in

More information

FSM Components. FSM Description. HDL Coding Methods. Chapter 7: HDL Coding Techniques

FSM Components. FSM Description. HDL Coding Methods. Chapter 7: HDL Coding Techniques FSM Components XST features: Specific inference capabilities for synchronous Finite State Machine (FSM) components. Built-in FSM encoding strategies to accommodate your optimization goals. You may also

More information

FPGA Matrix Multiplier

FPGA Matrix Multiplier FPGA Matrix Multiplier In Hwan Baek Henri Samueli School of Engineering and Applied Science University of California Los Angeles Los Angeles, California Email: chris.inhwan.baek@gmail.com David Boeck Henri

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

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

N-input EX-NOR gate. N-output inverter. N-input NOR gate

N-input EX-NOR gate. N-output inverter. N-input NOR gate Hardware Description Language HDL Introduction HDL is a hardware description language used to design and document electronic systems. HDL allows designers to design at various levels of abstraction. It

More information

Using ModelSim to Simulate Logic Circuits in VHDL Designs. 1 Introduction. For Quartus II 13.0

Using ModelSim to Simulate Logic Circuits in VHDL Designs. 1 Introduction. For Quartus II 13.0 Using ModelSim to Simulate Logic Circuits in VHDL Designs For Quartus II 13.0 1 Introduction This tutorial is a basic introduction to ModelSim, a Mentor Graphics simulation tool for logic circuits. We

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

Outline of this Introduction to VHDL

Outline of this Introduction to VHDL Outline of this Introduction to VHDL 1) Formal Construction of VHDL Models 2) Test Environments, Test Benches VHDL models providing input signals (stimuli) to verify (test) the correct function (and timing)

More information

Introduction to Verilog design. Design flow (from the book) Hierarchical Design. Lecture 2

Introduction to Verilog design. Design flow (from the book) Hierarchical Design. Lecture 2 Introduction to Verilog design Lecture 2 ECE 156A 1 Design flow (from the book) ECE 156A 2 Hierarchical Design Chip Modules Cells Primitives A chip contain many modules A module may contain other modules

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

In this lecture, we will go beyond the basic Verilog syntax and examine how flipflops and other clocked circuits are specified.

In this lecture, we will go beyond the basic Verilog syntax and examine how flipflops and other clocked circuits are specified. 1 In this lecture, we will go beyond the basic Verilog syntax and examine how flipflops and other clocked circuits are specified. I will also introduce the idea of a testbench as part of a design specification.

More information

Sunburst Design - Verilog-2001 Design & Best Coding Practices by Recognized Verilog & SystemVerilog Guru, Cliff Cummings of Sunburst Design, Inc.

Sunburst Design - Verilog-2001 Design & Best Coding Practices by Recognized Verilog & SystemVerilog Guru, Cliff Cummings of Sunburst Design, Inc. World Class Verilog & SystemVerilog Training Sunburst Design - Verilog-2001 Design & Best Coding Practices by Recognized Verilog & SystemVerilog Guru, Cliff Cummings of Sunburst Design, Inc. Cliff Cummings

More information

Verilog HDL is one of the two most common Hardware Description Languages (HDL) used by integrated circuit (IC) designers. The other one is VHDL.

Verilog HDL is one of the two most common Hardware Description Languages (HDL) used by integrated circuit (IC) designers. The other one is VHDL. Verilog HDL is one of the two most common Hardware Description Languages (HDL) used by integrated circuit (IC) designers. The other one is VHDL. HDL s allows the design to be simulated earlier in the design

More information

System Level Design For Low Power. Yard. Doç. Dr. Berna Örs Yalçın

System Level Design For Low Power. Yard. Doç. Dr. Berna Örs Yalçın System Level Design For Low Power Yard. Doç. Dr. Berna Örs Yalçın References System-Level Design Methodology, Daniel D. Gajski Hardware-software co-design of embedded systems : the POLIS approach / by

More information

Computer Architecture (TT 2012)

Computer Architecture (TT 2012) Computer Architecture (TT 2012) The Register Transfer Level Daniel Kroening Oxford University, Computer Science Department Version 1.0, 2011 Outline Reminders Gates Implementations of Gates Latches, Flip-flops

More information

World Class Verilog & SystemVerilog Training

World Class Verilog & SystemVerilog Training World Class Verilog & SystemVerilog Training Sunburst Design - Expert Verilog-2001 FSM, Multi-Clock Design & Verification Techniques by Recognized Verilog & SystemVerilog Guru, Cliff Cummings of Sunburst

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

Introduction to Verilog design. Design flow (from the book)

Introduction to Verilog design. Design flow (from the book) Introduction to Verilog design Lecture 2 ECE 156A 1 Design flow (from the book) ECE 156A 2 1 Hierarchical Design Chip Modules Cells Primitives A chip contain many modules A module may contain other modules

More information

CSE140L: Components and Design Techniques for Digital Systems Lab. Verilog HDL. Instructor: Mohsen Imani UC San Diego. Source: Eric Crabill, Xilinx

CSE140L: Components and Design Techniques for Digital Systems Lab. Verilog HDL. Instructor: Mohsen Imani UC San Diego. Source: Eric Crabill, Xilinx CSE140L: Components and Design Techniques for Digital Systems Lab Verilog HDL Instructor: Mohsen Imani UC San Diego Source: Eric Crabill, Xilinx 1 Hardware description languages Used to describe & model

More information

Chapter 3 - Theory of Operation

Chapter 3 - Theory of Operation SimMatrix User's Manual Chapter 3 -, '-" 3.1 Overview The SimMatrix co-simulation process comprises three different stages; design assembly, partitioning and co-simulation (Figure 3-1). Design Assembly

More information