Outline of this Introduction to VHDL

Size: px
Start display at page:

Download "Outline of this Introduction to VHDL"

Transcription

1 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) of a model 3) Timing Models in VHDL Simulation of the timing behavior of the modeled hardware 4) Modeling of Finite State Machines in VHDL Systematic approach to describe digital systems 1

2 Timing Models in VHDL Timing Models in VHDL 2

3 Signal Assignments Signal assignment statements update the values of signals: SUM <= A + B; This statement describes the function of an adder. The expression to the right of the <= symbol is evaluated, its resulting data type must match the signal s data type. Signal assignments are similar to variable assignments, except that they cause the signal s value to be updated at some future time. Because in hardware circuits the output does not change immediately after a changing input signal, its model can contain an optional delay time: CARRY <= A and B after 7 ns; In (analog) electronic circuits capacitances and inductances cause transient effects, which are abstracted by means of a lumped delay in the digital model. 3

4 Waveforms & Delay Mechanisms A waveform describes a sequence of values in chronological order: CLK <= '1' after PulsWidth, '0' after 2*PulsWidth; All times refer to the actual simulation time, i.e. the time when the signal assignment statement is executed. Because signal values are updated at some future time a new transaction must be merged with pending transactions. The way this is done depends on the optional delay mechanism. Default is the inertial mechanism. SUM <= transport A + B after 12 ns; 4

5 Process Statements There are two (equivalent) forms to describe processes: Processes without a sensitivity list (containing wait statements): Statements in the process body are executed in sequence. After the last statement the first statement is executed next without updating the simulation time. Wait statements are used to suspend processes. To avoid infinite loops at least one wait statement must exist. Processes with a sensitivity list (containing no wait statements): The sensitivity list is a list of signal names. A process is activated when at least one of these signals changes its value. This process form is equivalent to a process with a wait-onsignal statement before the end-process statement. This type of process must not contain wait statements. 5

6 Wait Statements A wait statement causes the process that executes the statement to suspend execution. Four variants exist: wait on CLK_SIGNAL, ENABLE; sensitivity clause The process resumes execution, when at least one of the named signals changes its value. wait until CLOCK='1'; condition clause The Boolean expression must be true for the process to resume. wait for 1 ms; wait for 2*ClockPeriod; time-out clause The process resumes execution after the given delay time. wait; The process executes exactly once during initialization and remains inactive afterwards. 6

7 Example: Clock Generator (1) signal CLK: bit:='0'; constant PulsWidth: time:=20 ns; -- physical type ClockGen1: process(clk) if CLK='0' then CLK <= '1' after PulsWidth, '0' after 2*PulsWidth; -- waveform end if; end process ClockGen1; 1 0 Activation ns

8 Example: Clock Generator (2) signal CLK: bit:='0'; constant PulsWidth: time:=20 ns; -- physical type ClockGen2a: process CLK <= '1' after PulsWidth, '0' after 2*PulsWidth; wait until CLK='0'; -- i.e. wait until -- CLK changes to '0' end process ClockGen2a; ClockGen2b: process CLK <= '1' after PulsWidth, '0' after 2*PulsWidth; wait for 2*PulsWidth; -- i.e. wait for -- this time interval end process ClockGen2b; 8

9 Example: Clock Generator (3) signal CLK: bit:='0'; constant PulsWidth: time:=20 ns; -- physical type ClockGen3: process CLK <= '0'; wait for PulsWidth; CLK <= '1'; wait for PulsWidth; end process ClockGen3; ns 9

10 Example: 2-Input Multiplexer (1) entity MUX2 is port(a, B, SEL: in bit; Z: out bit); end MUX2; SEL architecture behavior_1 of MUX2 is constant prop_delay: time := 2 ns; MUX2_V1: process(a, B, SEL) -- value changes of A, B, or SEL can -- result in value changes at output Z! case SEL is when '0' => Z <= A after prop_delay; when '1' => Z <= B after prop_delay; end case; end process MUX2_V1; end behavior_1; A B 0 1 Z 10

11 Example: 2-Input Multiplexer (2) architecture behavior_2 of MUX2 is constant prop_delay: time := 2 ns; MUX2_V2: process case SEL is when '0' => Z <= A after prop_delay; wait on SEL, A; -- The process does not wait for B, -- if A is selected! when '1' => Z <= B after prop_delay; wait on SEL, B; end case; end process MUX2_V2; end behavior_2; A B 0 1 SEL Z 11

12 Dataflow Models Dataflow models (or functional models) are behavioral models, where the operation to be described is a simple combinational transformation of inputs to an output. VHDL provides some useful shorthand notations, the concurrent signal assignment statements. Conditional signal assignment (e.g. 2-Input multiplexer): Z <= A after DELAY when SEL='0' else B after DELAY when SEL='1'; Selected signal assignment (e.g. 2-Input multiplexer): with SEL select Z <= A after DELAY when '0', Z <= B after DELAY when '1'; Dataflow models can be used for automatic synthesis of the circuit s structure on gate level. 12

13 Dataflow Model of a 2x4 Decoder entity DEK2X4 is port (A, B, EN: in bit; D: out bit_vector(0 to 3)); end DEK2X4; architecture DATAFLOW of DEK2X4 is signal AQ, BQ: bit; -- 6 concurrent signal assignments -- The sequence of the statements is irrelevant D(3) <= not(a and B and EN); -- (1) D(0) <= not(aq and BQ and EN); -- (2) BQ <= not B; -- (3) D(2) <= not(a and BQ and EN); -- (4) AQ <= not A; -- (5) D(1) <= not(aq and B and EN); -- (6) end DATAFLOW; 13

14 Dataflow Model of a 2x4 Decoder entity DEK2X4 is port (A, B, EN: in bit; D: out bit_vector(0 to 3)); end DEK2X4; architecture DATAFLOW of DEK2X4 is signal AQ, BQ: bit; -- 6 concurrent signal assignments -- A value change (event) at input B is assumed D(3) <= not(a and B and EN); -- (1) D(0) <= not(aq and BQ and EN); -- (2) BQ <= not B; -- (3) D(2) <= not(a and BQ and EN); -- (4) AQ <= not A; -- (5) D(1) <= not(aq and B and EN); -- (6) end DATAFLOW; 14

15 Dataflow Model of a 2x4 Decoder entity DEK2X4 is port (A, B, EN: in bit; D: out bit_vector(0 to 3)); end DEK2X4; architecture DATAFLOW of DEK2X4 is signal AQ, BQ: bit; -- 6 concurrent signal assignments -- Events occur at signals D(3), BQ, and D(1) D(3) <= not(a and B and EN); -- (1) D(0) <= not(aq and BQ and EN); -- (2) BQ <= not B; -- (3) D(2) <= not(a and BQ and EN); -- (4) AQ <= not A; -- (5) D(1) <= not(aq and B and EN); -- (6) end DATAFLOW; 15

16 Simulation of the 2x4 Decoder Time Events Actions T input B Triggering statements (1), (3), and (6), Evaluation of the statement s right hand sides, Scheduling of value assignments to signals D(3), BQ, and D(1) T 1 >T D(3), BQ, D(1) Assignment of values to signals D(3), BQ, and D(1), Triggering statements (2) und (4), Evaluation of their right hand sides, Scheduling of value assignments to signals D(0) and D(2) T 2 >T 1 D(0), D(2) Assignment of values to D(0) and D(2) 16

17 Circuit Analysis: Simulation & Verification Circuit designs must be evaluated (tested) to eliminate as many design errors as possible, before the expensive production of the circuit is started. Circuit simulation means, that for a set of input signals (stimuli) specified circuit properties are determined over some time interval and compared with the expected values. To allow the simulation of very large circuits simulators must be extremely efficient. For digital circuits this can be achieved by event-driven simulation. The idea behind this approach is, that the circuit s components are (in contrast to analog simulation) evaluated only if a value change (event) occurs at one or more component inputs. Circuit verification is a formal method, to verify the correctness of a design by exact mathematical methods (proofs). A mathematical statement of the function of the system (using temporal logic, e.g.) is thus required. 17

18 Transactions & Events The term simulation time refers to the time, in which the circuit being modeled is deemed to operate. Simulation time is measured starting from zero at the start of execution and increasing in discrete steps as events occur in the model. That is why this is called discrete event simulation. Simulation time is distinct from execution time of the VHDL model running on a host computer. When executing a signal assignment statement a transaction is scheduled for later execution. A transaction is stored as a pair of values (new_signal_value, simulation_time). When at simulation time of a transaction the new signal value differs from the previous value, we refer to this as the occurrence of an event. Processes react on events, not on transactions! 18

19 Signal Drivers A signal driver is a chronologically ordered list of all transactions scheduled for this signal, i.e. a list of value pairs (signal_value, simulation_time) = (V i,t i ). Every driver contains at least one entry, the current signal value (V 0,T 0 ), at the start of simulation the initialized value: (V 0,T 0 ), (V 1,T 1 ), (V 2,T 2 ), (V 3,T 3 ),... V 1 V 2 V 3 T 1 T 2 T 3 A driver is a data source, which stores/provides values for future assignments to a signal. A process defines a driver for a signal name, when there exists at least one assignment for the signal in the process. Basically only one driver per signal is allowed. If a signal is driven by more than one source (e.g. bus, wired OR) a resolution function must be specified to define the resulting signal value. 19

20 Simulation Cycle (1) Event-driven simulation exploits the observation, that the outputs of a circuit component must be computed only, when a value change (event) occurs at one or more input ports. This is implemented by the following simulation cycle: Initialization Phase The initial values are assigned to all variables and signals. The simulation time is set to 0 fs. All processes are activated, their statements executed and on a wait statement suspended again. Then Signal Update Phase Process Execution Phase 20

21 Simulation Cycle (2) Initialization Phase Signal Update Phase - Advance the simulation time to the earliest time at which a transaction (or process timeout) is scheduled - Execution of all transactions stored for the current time. Process Execution Phase - Processes, which have events on signals of their sensitivity list, resume execution. Possible consequence: New transactions for the same or a later time. 21

22 Simulation of a Signal Assignment Let us assume the assignment statement DATA <= X"00" after DELAY; is executed at simulation time T. A transaction of the hexadecimal value X"00" is scheduled for signal DATA at simulation time T+DELAY. The value of signal DATA is not yet updated. All active processes continue execution. After all processes have been suspended, the next simulation cycle is started and the simulation time advanced. When the simulator reaches simulation time T+DELAY, the scheduled value X"00" is assigned to signal DATA and all processes sensitive to DATA are started. 22

23 Delta Delays Signal delay times can be optionally specified in a signal assignment statement. If no delay is given, 0 fs are assumed. When executing an assignment only a transaction is scheduled for the signal. Thus, even with a delay of 0 fs no immediate change of the signal value occurs and the process does not notice the value change until its next execution (during the next simulation cycle). Even with a delay of 0 fs a new simulation cycle is performed, although the simulation time does not change; this is called a delta delay (an infinitesimally small time step). The concept of delta delays guaranties the causality of the statements. Thus, a simulation is possible, even if no delays are known. 23

24 Implicit Generation of Edge-Controlled FlipFlops (1) library ieee; use ieee.std_logic_1164; entity ANDOR is port (A,B,C: in std_ulogic; CLK: in std_ulogic; Z: out std_ulogic); end ANDOR; A B & AND D Q architecture AAO1 of ANDOR is signal P: std_ulogic; AOprocess: process (CLK) if rising_edge(clk) then P <= A and B; Z <= P or C; end if; end process; end AAO1; P ANDOR C nq 1 OR D Q CLK nq Z 24

25 Implicit Generation of Edge-Controlled FlipFlops (2) library ieee; use ieee.std_logic_1164; entity ANDOR is port (A,B,C: in std_ulogic; CLK: in std_ulogic; Z: out std_ulogic); end ANDOR; A B & AND architecture AAO2 of ANDOR is AOprocess: process (CLK) variable P: std_ulogic; if rising_edge(clk) then P := A and B; Z <= P or C; end if; end process; end AAO2; P ANDOR C 1 OR D Q CLK nq Z 25

26 Simulation Cycle An Example architecture TestArch of TestEntity is signal A, B: integer := 0; A <= 1 after 3 ns, 2 after 7 ns; TestProcess: process(a) variable C: integer := -1; B <= A; -- Signal assignment (scheduled!) C := B; -- Variable assignment (immediate!) end process TestProcess; end TestArch; A B C 0 ns 26

27 Simulation Cycle An Example architecture TestArch of TestEntity is signal A, B: integer := 0; A <= 1 after 3 ns, 2 after 7 ns; TestProcess: process(a) variable C: integer := -1; B <= A; -- Signal assignment (scheduled!) C := B; -- Variable assignment (immediate!) end process TestProcess; end TestArch; 0 ns A 0 B 0 C 0 27

28 Simulation Cycle An Example architecture TestArch of TestEntity is signal A, B: integer := 0; A <= 1 after 3 ns, 2 after 7 ns; TestProcess: process(a) -- not activated! variable C: integer := -1; B <= A; -- Signal assignment (scheduled!) C := B; -- Variable assignment (immediate!) end process TestProcess; end TestArch; 0 ns 0 ns + A 0 0 B 0 0 C

29 Simulation Cycle An Example architecture TestArch of TestEntity is signal A, B: integer := 0; A <= 1 after 3 ns, 2 after 7 ns; TestProcess: process(a) variable C: integer := -1; B <= A; -- Signal assignment (scheduled!) C := B; -- Variable assignment (immediate!) end process TestProcess; end TestArch; 0 ns 0 ns + 3 ns A B C

30 Simulation Cycle An Example architecture TestArch of TestEntity is signal A, B: integer := 0; A <= 1 after 3 ns, 2 after 7 ns; TestProcess: process(a) - not activated! variable C: integer := -1; B <= A; -- Signal assignment (scheduled!) C := B; -- Variable assignment (immediate!) end process TestProcess; end TestArch; 0 ns 0 ns + 3 ns 3 ns + A B C

31 Simulation Cycle An Example architecture TestArch of TestEntity is signal A, B: integer := 0; A <= 1 after 3 ns, 2 after 7 ns; TestProcess: process(a) variable C: integer := -1; B <= A; -- Signal assignment (scheduled!) C := B; -- Variable assignment (immediate!) end process TestProcess; end TestArch; 0 ns 0 ns + 3 ns 3 ns + 7 ns A B C

32 Simulation Cycle An Example architecture TestArch of TestEntity is signal A, B: integer := 0; A <= 1 after 3 ns, 2 after 7 ns; TestProcess: process(a) variable C: integer := -1; B <= A; -- Signal assignment (scheduled!) C := B; -- Variable assignment (immediate!) end process TestProcess; end TestArch; 0 ns 0 ns + 3 ns 3 ns + 7 ns 7 ns + A B C

33 How Does the Transport Delay Affect the Driver? Modeling the signal delay of an ideal circuit with unlimited bandwidth, even shortest pulses are transferred. Signal driver: (V 0,T 0 ), (V 1,T 1 ), (V 2,T 2 ),..., (V i,t i ),..., (V k,t k ) Rules for inserting a new transaction (V n,t n ): All transactions (V i,t i ) with T n T i are deleted. The new transaction (V n,t n ) is appended to the end of the list. Only the delay influences the result, the signal value does not. 33

34 Example: Ideal Transmission Line signal LineIn, LineOut: bit := '0';... TransmissionLine: process(linein) LineOut <= transport LineIn after 50 ps; end process TransmissionLine; LineIn LineOut ps Driver for LineOut '1' 70 '1' 70 '0' 100 '1' 70 '0' 100 '0'

35 Example: Asymmetric Delay signal A, Z: bit := '0';... AsymDelay: process(a) if A='1' then Z <= transport A after 80 ps; else - A='0' Z <= transport A after 50 ps; end if; end process AsymDelay; A Z ps ps Driver for Z '1' 100 '0' 90 '1' 100 No Event! 35

36 How Does the Inertial-Delay Affect the Driver? Modeling of real circuits where electronic charge is moved around in the presence of capacitances and inductances. This gives the device some inertia. Inertial delay is the default. Signal driver: (V 0,T 0 ), (V 1,T 1 ), (V 2,T 2 ),..., (V i,t i ),..., (V k,t k ) Rules for inserting a new transaction (V n,t n ): All transactions (V i,t i ) with T n T i are deleted. The new transaction (V n,t n ) is appended to the end of the list. In the interval T 0 T i T n an uninterrupted sequence of transactions (V i,t i ),..., (V n,t n ) with V i = V n is maintained, all other transactions are erased. Delay and signal value influence the behavior. 36

37 Example: Inverter with Delay signal A: bit := '0'; signal Y: bit := '1';... INV: process(a) Y <= inertial not A after 3 ns; end process INV; A ns ns 37

38 Example: Inverter with Delay signal A: bit := '0'; signal Y: bit := '1';... INV: process(a) Y <= inertial not A after 3 ns; end process INV; A Y ns ns Driver for Y '0' 4 '0' 4 '1' 9 '1' 9 '0' 11 No Event! '0' 11 38

39 Example: 2-Input AND Gate library IEEE; use IEEE.std_logic_1164.all; entity And2 is port(a, B: in std_logic; Y: out std_logic); end And2; architecture And2_with_delay of And2 is signal AndOut: std_logic; And2_gate: process(a, B) - idealized AND Gate AndOut <= A and B; end process And2_gate; And2_delay: process(andout) if AndOut='1' then Y <= inertial '1' after 1.5 ns; elseif AndOut='0' then Y <= inertial '0' after 1.2 ns; else Y <= inertial 'X' after 0.5 ns; end if; end process And2_delay; end And2_with_delay; delay 39

40 Example: 2-Input AND Gate Waveforms A B ns 40

41 Example: 2-Input AND Gate Waveforms A 1 0 B 1 0 AndOut 1 0 uninit. 1 ns 1 ns Y 1 0 uninitialized ns '0' 2,2 '0' 2,2 '1' 7,5 '1' 7,5 Driver for Y '1' 3,5 '1' 3,5 '0' 4,2 '0' 4,2 41

42 Finite State Machines Finite State Machines 42

43 Finite State Machines abbreviated FSM Systematic method for describing and designing digital systems The realization of cyclic functional processes is facilitated, e.g. control of logic circuits synchronization of subsystems FSMs are synchronous sequential circuits, i.e. all functions are clocked by a periodic clock signal. FSMs are sequentially working logic circuits, which pass through a sequence of states controlled by a periodic clock signal. Basic types are the Moore type machine and the Mealy type machine. 43

44 Moore Type FSM The output signals of a Moore FSM are only a function of the current state of the FSM. The input signals can influence the output only via the state memory. E input signals A output signals Z current states Z + successor states next state state output A E logic Z + memory Z logic enable clock reset 44

45 Mealy Type FSM The output signals of a Mealy FSM are a function of the current FSM state and the input signals. E input signals A output signals Z current states Z + successor states next state state E logic Z + memory Z output A logic enable clock reset 45

46 FSM Properties Synchronous sequential circuit with three functional blocks: State memory N synchronously clocked flipflops 2 N states can be binary coded Every (positive) edge of the clock signal has the effect that the successor states Z + are stored as current states Z for one clock period With the enable signal the operation can be blocked With the reset signal the state memory can be initialized with an arbitrary bit pattern Next state logic combinatorial logic Output logic combinatorial logic 46

47 FSM Example: Recognition of Bit Patterns (1a) Recognition of three successive 2-bit patterns (01, 11, 10) at the two input ports Successful recognition is displayed with the output signal 1 The 1-signal of the output signal shall be displayed for one clock period State diagram (Moore): X Reset Z0 0 X0 01 Z1 0 X Z Z2 0 47

48 FSM Example: Recognition of Bit Patterns (1b) entity FSM_Moore is port(clock, Reset, Enable: in bit; E: in bit_vector(1 downto 0); A: out bit); end FSM_Moore; architecture Sequence of FSM_Moore is type States is (Z0, Z1, Z2, Z3); -- enumeration type signal State, NSt: States; StateMem: process(clock, Reset) if Reset='1' then State <= Z0 after 20 ns; elseif Clock='1' and Clock'event then if Enable='1' then State <= NSt after 20 ns; end if; end if; end process StateMem;... 48

49 FSM Example: Recognition of Bit Patterns (1c) NextStateLogic: process(e, State) case State is when Z0 => if E="01" then NSt <= Z1 after 20 ns; else NSt <= Z0 after 20 ns; end if; when Z1 => if E="11" then NSt <= Z2 after 20 ns; elseif E="01" then NSt <= Z1 after 20 ns; else NSt <= Z0 after 20 ns; end if; when Z2 => if E="10" then NSt <= Z3 after 20 ns; elseif E="01" then NSt <= Z1 after 20 ns; else NSt <= Z0 after 20 ns; end if; when Z3 => if E="01" then NSt <= Z1 after 20 ns; else NSt <= Z0 after 20 ns; end if; end case; end process NextStateLogic; 49

50 FSM Example: Recognition of Bit Patterns (1d)... OutputLogic: process(state) case State is when Z3 => A <= '1' after 20 ns; when others => A <= '0' after 20 ns; end case; end process OutputLogic; end Sequence; 50

51 FSM Example: Recognition of Bit Patterns (2a) Recognition of three successive 2-bit patterns (01, 11, 10) at the two input ports Successful recognition is displayed with the output signal 1 The 1-signal of the output signal shall be displayed for one clock period State diagram (Mealy): Reset X0/0 11/0 Z0 X0/0 01/0 01/0 Z1 00/0 11/0 10/1 01/0 11/0 Z2 51

52 FSM Example: Recognition of Bit Patterns (2b) entity FSM_Mealy is port(clock, Reset, Enable: in bit; E: in bit_vector(1 downto 0); A: out bit); end FSM_Mealy; architecture Sequence of FSM_Mealy is type States is (Z0, Z1, Z2); -- enumeration type signal State, NSt: States; StateMem: process(clock, Reset) if Reset='1' then State <= Z0 after 20 ns; elseif Clock='1' and Clock'event then if Enable='1' then State <= NSt after 20 ns; end if; end if; end process StateMem;

53 FSM Example: Recognition of Bit Patterns (2c) NextStateLogic: process(e, State) NSt <= Z0 after 20 ns; case State is when Z0 => if E="01" then NSt <= Z1 after 20 ns; end if; when Z1 => if E="11" then NSt <= Z2 after 20 ns; elseif E="01" then NSt <= Z1 after 20 ns; end if; when Z2 => if E="01" then NSt <= Z1 after 20 ns; end if; end case; end process NextStateLogic; OutputLogic: process(e, State) A <= '0' after 20 ns; if (State=Z2 and E="10") then A <= '1' after 20 ns; end if; end process OutputLogic; end Sequence; 53

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

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

COE 405, Term 062. Design & Modeling of Digital Systems. HW# 1 Solution. Due date: Wednesday, March. 14

COE 405, Term 062. Design & Modeling of Digital Systems. HW# 1 Solution. Due date: Wednesday, March. 14 COE 405, Term 062 Design & Modeling of Digital Systems HW# 1 Solution Due date: Wednesday, March. 14 Q.1. Consider the 4-bit carry-look-ahead adder (CLA) block shown below: A 3 -A 0 B 3 -B 0 C 3 4-bit

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

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

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

COE 405 Design Methodology Based on VHDL

COE 405 Design Methodology Based on VHDL COE 405 Design Methodology Based on VHDL Dr. Aiman H. El-Maleh Computer Engineering Department King Fahd University of Petroleum & Minerals Outline Elements of VHDL Top-Down Design Top-Down Design with

More information

Sequential Logic - Module 5

Sequential Logic - Module 5 Sequential Logic Module 5 Jim Duckworth, WPI 1 Latches and Flip-Flops Implemented by using signals in IF statements that are not completely specified Necessary latches or registers are inferred by the

More information

VHDL for FPGA Design. by : Mohamed Samy

VHDL for FPGA Design. by : Mohamed Samy VHDL for FPGA Design by : Mohamed Samy VHDL Vhdl is Case insensitive myvar = myvar = MYVAR IF = if = if Comments start with -- Comments can exist anywhere in the line Semi colon indicates the end of statements

More information

UNIT I Introduction to VHDL VHDL: - V -VHSIC, H - Hardware, D - Description, L Language Fundamental section of a basic VHDL code Library :

UNIT I Introduction to VHDL VHDL: - V -VHSIC, H - Hardware, D - Description, L Language Fundamental section of a basic VHDL code Library : UNIT I Introduction to VHDL VHDL stands for very high-speed integrated circuit hardware description language. Which is one of the programming languages used to model a digital system by dataflow, behavioral

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

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

Hardware Description Language VHDL (1) Introduction

Hardware Description Language VHDL (1) Introduction Hardware Description Language VHDL (1) Introduction Digital Radiation Measurement and Spectroscopy NE/RHP 537 Introduction Hardware description language (HDL) Intended to describe circuits textually, for

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

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

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

Digital Systems Design

Digital Systems Design IAY 0600 Example: HalfAdder Behavior Structure Digital Systems Design a b Sum Carry 0 0 0 0 0 1 1 0 a b HalfAdder Sum Carry 1 0 1 0 VHDL discussion Dataflow Style Combinational Design 1 1 0 1 a Sum Sum

More information

Concurrent Signal Assignment Statements (CSAs)

Concurrent Signal Assignment Statements (CSAs) Concurrent Signal Assignment Statements (CSAs) Digital systems operate with concurrent signals Signals are assigned values at a specific point in time. VHDL uses signal assignment statements Specify value

More information

Written exam for IE1204/5 Digital Design Thursday 29/

Written exam for IE1204/5 Digital Design Thursday 29/ Written exam for IE1204/5 Digital Design Thursday 29/10 2015 9.00-13.00 General Information Examiner: Ingo Sander. Teacher: William Sandqvist phone 08-7904487 Exam text does not have to be returned when

More information

Hardware Modeling. VHDL Architectures. Vienna University of Technology Department of Computer Engineering ECS Group

Hardware Modeling. VHDL Architectures. Vienna University of Technology Department of Computer Engineering ECS Group Hardware Modeling VHDL Architectures Vienna University of Technology Department of Computer Engineering ECS Group Contents Structural Modeling Instantiation of Components Behavioral Modeling Processes

More information

5. VHDL - Introduction - 5. VHDL - Design flow - 5. VHDL - Entities and Architectures (1) - 5. VHDL - Entities and Architectures (2) -

5. VHDL - Introduction - 5. VHDL - Design flow - 5. VHDL - Entities and Architectures (1) - 5. VHDL - Entities and Architectures (2) - Sistemas Digitais I LESI - 2º ano Lesson 5 - VHDL Prof. João Miguel Fernandes (miguel@di.uminho.pt) Dept. Informática - Introduction - VHDL was developed, in the mid-1980s, by DoD and IEEE. VHDL stands

More information

VHDL in 1h. Martin Schöberl

VHDL in 1h. Martin Schöberl VHDL in 1h Martin Schöberl VHDL /= C, Java, Think in hardware All constructs run concurrent Different from software programming Forget the simulation explanation VHDL is complex We use only a small subset

More information

VHDL 2 Combinational Logic Circuits. Reference: Roth/John Text: Chapter 2

VHDL 2 Combinational Logic Circuits. Reference: Roth/John Text: Chapter 2 VHDL 2 Combinational Logic Circuits Reference: Roth/John Text: Chapter 2 Combinational logic -- Behavior can be specified as concurrent signal assignments -- These model concurrent operation of hardware

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

CprE 583 Reconfigurable Computing

CprE 583 Reconfigurable Computing Recap Moore FSM Example CprE / ComS 583 Reconfigurable Computing Moore FSM that recognizes sequence 10 0 1 0 1 S0 / 0 S1 / 0 1 S2 / 1 Prof. Joseph Zambreno Department of Electrical and Computer Engineering

More information

VHDL. ELEC 418 Advanced Digital Systems Dr. Ron Hayne. Images Courtesy of Cengage Learning

VHDL. ELEC 418 Advanced Digital Systems Dr. Ron Hayne. Images Courtesy of Cengage Learning VHDL ELEC 418 Advanced Digital Systems Dr. Ron Hayne Images Courtesy of Cengage Learning Design Flow 418_02 2 VHDL Modules 418_02 3 VHDL Libraries library IEEE; use IEEE.std_logic_1164.all; std_logic Single-bit

More information

Abi Farsoni, Department of Nuclear Engineering and Radiation Health Physics, Oregon State University

Abi Farsoni, Department of Nuclear Engineering and Radiation Health Physics, Oregon State University Hardware description language (HDL) Intended to describe circuits textually, for a computer to read Evolved starting in the 1970s and 1980s Popular languages today include: VHDL Defined in 1980s by U.S.

More information

ECEU530. Homework 4 due Wednesday Oct 25. ECE U530 Digital Hardware Synthesis. VHDL for Synthesis with Xilinx. Schedule

ECEU530. Homework 4 due Wednesday Oct 25. ECE U530 Digital Hardware Synthesis. VHDL for Synthesis with Xilinx. Schedule EEU530 EE U530 igital Hardware Synthesis Lecture 11: Prof. Miriam Leeser mel@coe.neu.edu October 18, 2005 Sequential Logic in VHL Finite State Machines in VHL Project proposals due now HW 4 due Wednesday,

More information

Logic and Computer Design Fundamentals VHDL. Part 1 Chapter 4 Basics and Constructs

Logic and Computer Design Fundamentals VHDL. Part 1 Chapter 4 Basics and Constructs Logic and Computer Design Fundamentals VHDL Part Chapter 4 Basics and Constructs Charles Kime & Thomas Kaminski 24 Pearson Education, Inc. Terms of Use (Hyperlinks are active in View Show mode) Overview

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

CprE 583 Reconfigurable Computing

CprE 583 Reconfigurable Computing Recap 4:1 Multiplexer CprE / ComS 583 Reconfigurable Computing Prof. Joseph Zambreno Department of Electrical and Computer Engineering Iowa State University Lecture #18 VHDL for Synthesis I LIBRARY ieee

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

Basic Language Concepts

Basic Language Concepts Basic Language Concepts Sudhakar Yalamanchili, Georgia Institute of Technology ECE 4170 (1) Describing Design Entities a sum b carry Primary programming abstraction is a design entity Register, logic block,

More information

CSE 260 Introduction to Digital Logic and Computer Design. Exam 1. Your name 2/13/2014

CSE 260 Introduction to Digital Logic and Computer Design. Exam 1. Your name 2/13/2014 CSE 260 Introduction to Digital Logic and Computer Design Jonathan Turner Exam 1 Your name 2/13/2014 1. (10 points) Draw a logic diagram that implements the expression A(B+C)(C +D)(B+D ) directly (do not

More information

Introduction to VHDL #3

Introduction to VHDL #3 ECE 322 Digital Design with VHDL Introduction to VHDL #3 Lecture 7 & 8 VHDL Modeling Styles VHDL Modeling Styles Dataflow Concurrent statements Structural Components and interconnects Behavioral (sequential)

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

ECE Digital Design Laboratory. Lecture 3 Finite State Machines!

ECE Digital Design Laboratory. Lecture 3 Finite State Machines! ECE 4401 - Digital Design Laboratory Lecture 3 Finite State Machines! 1!!!! Synchronous Sequential Circuits!!! Synchronous sequential logic circuits are realized using combinational logic and storage elements

More information

Multi-valued Logic. Standard Logic IEEE 1164 Type std_ulogic is ( U, uninitialized

Multi-valued Logic. Standard Logic IEEE 1164 Type std_ulogic is ( U, uninitialized Multi-valued Logic Standard Logic IEEE 1164 Type std_ulogic is ( U, uninitialized X, unknown 0, logic 0 1, logic 1 Z, high impedance W, unknown L, logic 0 weak H, logic 1 weak - ); don t care Standard

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

Computer-Aided Digital System Design VHDL

Computer-Aided Digital System Design VHDL بس م اهلل الر حم ن الر حی م Iran University of Science and Technology Department of Computer Engineering Computer-Aided Digital System Design VHDL Ramin Rajaei ramin_rajaei@ee.sharif.edu Modeling Styles

More information

Timing in synchronous systems

Timing in synchronous systems BO 1 esign of sequential logic Outline Timing in synchronous networks Synchronous processes in VHL VHL-code that introduces latches andf flip-flops Initialization of registers Mealy- and Moore machines

More information

The University of Alabama in Huntsville ECE Department CPE Midterm Exam Solution Spring 2016

The University of Alabama in Huntsville ECE Department CPE Midterm Exam Solution Spring 2016 The University of Alabama in Huntsville ECE Department CPE 526 01 Midterm Exam Solution Spring 2016 1. (15 points) Write a VHDL function that accepts a std_logic_vector of arbitrary length and an integer

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

Outline. CPE/EE 422/522 Advanced Logic Design L07. Review: JK Flip-Flop Model. Review: VHDL Program Structure. Review: VHDL Models for a MUX

Outline. CPE/EE 422/522 Advanced Logic Design L07. Review: JK Flip-Flop Model. Review: VHDL Program Structure. Review: VHDL Models for a MUX Outline CPE/EE 422/522 Advanced Logic Design L07 Electrical and Computer Engineering University of Alabama in Huntsville What we know How to model Combinational Networks in VHDL Structural, Dataflow, Behavioral

More information

Introduction to VHDL. Yvonne Avilés Colaboration: Irvin Ortiz Flores Rapid System Prototyping Laboratory (RASP) University of Puerto Rico at Mayaguez

Introduction to VHDL. Yvonne Avilés Colaboration: Irvin Ortiz Flores Rapid System Prototyping Laboratory (RASP) University of Puerto Rico at Mayaguez Introduction to VHDL Yvonne Avilés Colaboration: Irvin Ortiz Flores Rapid System Prototyping Laboratory (RASP) University of Puerto Rico at Mayaguez What is VHDL? Very High Speed Integrated Circuit Hardware

More information

Digital Systems Design

Digital Systems Design IAY 0600 Digital Systems Design VHDL discussion Dataflow Style Combinational Design Tallinn University of Technology Combinational systems Combinational systems have no memory. A combinational system's

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

Test Benches - Module 8

Test Benches - Module 8 Test Benches Module 8 Jim Duckworth, WPI 1 Overview We have concentrated on VHDL for synthesis Can also use VHDL as a test language Very important to conduct comprehensive verification on your design To

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

Midterm Exam Thursday, October 24, :00--2:15PM (75 minutes)

Midterm Exam Thursday, October 24, :00--2:15PM (75 minutes) Last (family) name: Answer Key First (given) name: Student I.D. #: Department of Electrical and Computer Engineering University of Wisconsin - Madison ECE 551 Digital System Design and Synthesis Midterm

More information

The block diagram representation is given below: The output equation of a 2x1 multiplexer is given below:

The block diagram representation is given below: The output equation of a 2x1 multiplexer is given below: Experiment-3: Write VHDL programs for the following circuits, check the wave forms and the hardware generated a. multiplexer b. De-Multiplexer Objective: i. To learn the VHDL coding for Multiplexer and

More information

A bird s eye view on VHDL!

A bird s eye view on VHDL! Advanced Topics on Heterogeneous System Architectures A bird s eye view on VHDL Politecnico di Milano Conference Room, Bld 20 19 November, 2015 Antonio R. Miele Marco D. Santambrogio Politecnico di Milano

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

Specifying time in VHDL

Specifying time in VHDL Computer System Structures cz:struktury počítačových systémů Lecturer: Richard Šusta richard@susta.cz, susta@fel.cvut.cz, +420 2 2435 7359 Version: 1.0 ČVUT-FEL in Prague, CR subject A0B35SPS Specifying

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

Introduction to the VHDL language. VLSI Digital Design

Introduction to the VHDL language. VLSI Digital Design Introduction to the VHDL Hardware description language 1. Introduction 2. Basic elements 3. Scalar data types 4. Composed data types 5. Basic constructs (system definition) 6. Data flow description level

More information

Modeling Complex Behavior

Modeling Complex Behavior Modeling Complex Behavior Sudhakar Yalamanchili, Georgia Institute of Technology, 2006 (1) Outline Abstraction and the Process Statement Concurrent processes and CSAs Process event behavior and signals

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

Discrete Event Models

Discrete Event Models 12 Discrete Event Models Jian-Jia Chen (slides are based on Peter Marwedel) TU Dortmund, Informatik 12 Germany Springer, 2010 2014 年 10 月 28 日 These slides use Microsoft clip arts. Microsoft copyright

More information

ENGIN 241 Digital Systems with Lab

ENGIN 241 Digital Systems with Lab ENGIN 241 Digital Systems with Lab (4) Dr. Honggang Zhang Engineering Department University of Massachusetts Boston 1 Introduction Hardware description language (HDL): Specifies logic function only Computer-aided

More information

EE 459/500 HDL Based Digital Design with Programmable Logic. Lecture 6 Combinational and sequential circuits

EE 459/500 HDL Based Digital Design with Programmable Logic. Lecture 6 Combinational and sequential circuits EE 459/5 HL Based igital esign with Programmable Logic Lecture 6 ombinational and sequential circuits Read before class: hapter 2 from textbook Overview ombinational circuits Multiplexer, decoders, encoders,

More information

Advanced Training Course on FPGA Design and VHDL for Hardware Simulation and Synthesis. 26 October - 20 November, 2009

Advanced Training Course on FPGA Design and VHDL for Hardware Simulation and Synthesis. 26 October - 20 November, 2009 2065-15 Advanced Training Course on FPGA Design and VHDL for Hardware Simulation and Synthesis 26 October - 20 November, 2009 FPGA Architectures & VHDL Introduction to Synthesis Nizar Abdallah ACTEL Corp.2061

More information

VHDL Modeling Behavior from Synthesis Perspective -Part B - EL 310 Erkay Savaş Sabancı University

VHDL Modeling Behavior from Synthesis Perspective -Part B - EL 310 Erkay Savaş Sabancı University VHDL Modeling Behavior from Synthesis Perspective -Part B - EL 310 Erkay Savaş Sabancı University 1 The Wait Statement Syntax wait until condition; Different forms wait until(clk event and clk = 1 ); wait

More information

3 Designing Digital Systems with Algorithmic State Machine Charts

3 Designing Digital Systems with Algorithmic State Machine Charts 3 Designing with Algorithmic State Machine Charts An ASM chart is a method of describing the sequential operations of a digital system which has to implement an algorithm. An algorithm is a well defined

More information

310/ ICTP-INFN Advanced Tranining Course on FPGA and VHDL for Hardware Simulation and Synthesis 27 November - 22 December 2006

310/ ICTP-INFN Advanced Tranining Course on FPGA and VHDL for Hardware Simulation and Synthesis 27 November - 22 December 2006 310/1780-10 ICTP-INFN Advanced Tranining Course on FPGA and VHDL for Hardware Simulation and Synthesis 27 November - 22 December 2006 VHDL & FPGA - Session 2 Nizar ABDALLH ACTEL Corp. 2061 Stierlin Court

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

-- Fill in values for each generic. -- Fill in values for each signal. SIGNAL load_start : std_ulogic := '1'; SIGNAL clock : std_ulogic := '0';

-- Fill in values for each generic. -- Fill in values for each signal. SIGNAL load_start : std_ulogic := '1'; SIGNAL clock : std_ulogic := '0'; -- Fill in values for each generic -- Fill in values for each signal SIGNAL load_start : std_ulogic := '1'; SIGNAL clock : std_ulogic := '0'; SIGNAL start : std_ulogic_vector(0 TO 15) := "0000000000000000";

More information

Embedded Systems CS - ES

Embedded Systems CS - ES Embedded Systems - 1 - REVIEW Hardware/System description languages VDHL VHDL-AMS SystemC TLM - 2 - VHDL REVIEW Main goal was modeling of digital circuits Modelling at various levels of abstraction Technology-independent

More information

EECE-4740/5740 Advanced VHDL and FPGA Design. Lecture 3 Concurrent and sequential statements

EECE-4740/5740 Advanced VHDL and FPGA Design. Lecture 3 Concurrent and sequential statements EECE-4740/5740 Advanced VHDL and FPGA Design Lecture 3 Concurrent and sequential statements Cristinel Ababei Marquette University Department of Electrical and Computer Engineering Overview Components hierarchy

More information

DESCRIPTION OF DIGITAL CIRCUITS USING VHDL

DESCRIPTION OF DIGITAL CIRCUITS USING VHDL DESCRIPTION OF DIGITAL CIRCUITS USING VHDL Combinatinal circuits Sequential circuits Design organization. Generic design Iterative operations Authors: Luis Entrena Arrontes, Celia López, Mario García,

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

Hardware Description Languages. Modeling Complex Systems

Hardware Description Languages. Modeling Complex Systems Hardware Description Languages Modeling Complex Systems 1 Outline (Raising the Abstraction Level) The Process Statement if-then, if-then-else, if-then-elsif, case, while, for Sensitivity list Signals vs.

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

VHDL. Chapter 7. Behavioral Modeling. Outline. Behavioral Modeling. Process Statement

VHDL. Chapter 7. Behavioral Modeling. Outline. Behavioral Modeling. Process Statement Chapter 7 VHDL VHDL - Flaxer Eli Ch 7-1 Process Statement Outline Signal Assignment Statement Variable Assignment Statement Wait Statement If-Then-Else Statement Case Statement Null Statement Loop Statement

More information

[VARIABLE declaration] BEGIN. sequential statements

[VARIABLE declaration] BEGIN. sequential statements PROCESS statement (contains sequential statements) Simple signal assignment statement

More information

Introduction to VHDL #1

Introduction to VHDL #1 ECE 3220 Digital Design with VHDL Introduction to VHDL #1 Lecture 3 Introduction to VHDL The two Hardware Description Languages that are most often used in industry are: n VHDL n Verilog you will learn

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

EL 310 Hardware Description Languages Midterm

EL 310 Hardware Description Languages Midterm EL 3 Hardware Description Languages Midterm 2 3 4 5 Total Name: ID : Notes: ) Please answer the questions in the provided space after each question. 2) Duration is minutes 3) Closed books and closed notes.

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

Digital Design with SystemVerilog

Digital Design with SystemVerilog Digital Design with SystemVerilog Prof. Stephen A. Edwards Columbia University Spring 25 Synchronous Digital Design Combinational Logic Sequential Logic Summary of Modeling Styles Testbenches Why HDLs?

More information

ECE 545 Lecture 5. Data Flow Modeling in VHDL. George Mason University

ECE 545 Lecture 5. Data Flow Modeling in VHDL. George Mason University ECE 545 Lecture 5 Data Flow Modeling in VHDL George Mason University Required reading P. Chu, RTL Hardware Design using VHDL Chapter 4, Concurrent Signal Assignment Statements of VHDL 2 Types of VHDL Description

More information

14:332:331. Computer Architecture and Assembly Language Spring Week 6

14:332:331. Computer Architecture and Assembly Language Spring Week 6 14:332:331 Computer Architecture and Assembly Language Spring 2005 Week 6 [Adapted from Dave Patterson s UCB CS152 slides and Mary Jane Irwin s PSU CSE331 slides] Week 6.1 Spring 2005 Review: Entity-Architecture

More information

Reconfigurable Hardware Design (coursework)

Reconfigurable Hardware Design (coursework) EEE8076 Reconfigurable Hardware Design (coursework) Dr A. Bystrov Dr. E.G. Chester Autumn 2010 Module Outline Teaching Staff Dr Alex Bystrov Dr Graeme Chester The contact details are in the EECE web page

More information

ECE 545 Lecture 12. Datapath vs. Controller. Structure of a Typical Digital System Data Inputs. Required reading. Design of Controllers

ECE 545 Lecture 12. Datapath vs. Controller. Structure of a Typical Digital System Data Inputs. Required reading. Design of Controllers ECE 545 Lecture 12 Design of Controllers Finite State Machines and Algorithmic State Machine (ASM) Charts Required reading P. Chu, using VHDL Chapter 1, Finite State Machine: Principle & Practice Chapter

More information

VHDL for Logic Synthesis

VHDL for Logic Synthesis VHDL for Logic Synthesis Overview Design Flow for Hardware Design VHDL coding for synthesis General guidelines for hardware designers This lecture includes the content from: Nitin Yogi, Modelling for Synthesis

More information

CSE 260 Introduction to Digital Logic and Computer Design. Exam 1 Solutions

CSE 260 Introduction to Digital Logic and Computer Design. Exam 1 Solutions CSE 6 Introduction to igital Logic and Computer esign Exam Solutions Jonathan Turner /3/4. ( points) raw a logic diagram that implements the expression (B+C)(C +)(B+ ) directly (do not simplify first),

More information

State Machine Descriptions

State Machine Descriptions State Machine Descriptions Can be modelled using many different coding styles Style guidelines available for Moore or Mealy type machines Several encoding schemes for state variables used in FSM descriptions

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

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

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

ECE 448 Lecture 4. Sequential-Circuit Building Blocks. Mixing Description Styles

ECE 448 Lecture 4. Sequential-Circuit Building Blocks. Mixing Description Styles ECE 448 Lecture 4 Sequential-Circuit Building Blocks Mixing Description Styles George Mason University Reading Required P. Chu, FPGA Prototyping by VHDL Examples Chapter 4, Regular Sequential Circuit Recommended

More information

Today. Comments about assignment Max 1/T (skew = 0) Max clock skew? Comments about assignment 3 ASICs and Programmable logic Others courses

Today. Comments about assignment Max 1/T (skew = 0) Max clock skew? Comments about assignment 3 ASICs and Programmable logic Others courses Today Comments about assignment 3-43 Comments about assignment 3 ASICs and Programmable logic Others courses octor Per should show up in the end of the lecture Mealy machines can not be coded in a single

More information

VHDL Part 2. What is on the agenda? Basic VHDL Constructs. Examples. Data types Objects Packages and libraries Attributes Predefined operators

VHDL Part 2. What is on the agenda? Basic VHDL Constructs. Examples. Data types Objects Packages and libraries Attributes Predefined operators VHDL Part 2 Some of the slides are taken from http://www.ece.uah.edu/~milenka/cpe428-02s/ What is on the agenda? Basic VHDL Constructs Data types Objects Packages and libraries Attributes Predefined operators

More information

Subprograms, Packages, and Libraries

Subprograms, Packages, and Libraries Subprograms, Packages, and Libraries Sudhakar Yalamanchili, Georgia Institute of Technology ECE 4170 (1) function rising_edge (signal clock: std_logic) return boolean is declarative region: declare variables

More information

Laboratory Exercise 3 Davide Rossi DEI University of Bologna AA

Laboratory Exercise 3 Davide Rossi DEI University of Bologna AA Laboratory Exercise 3 Davide Rossi DEI University of Bologna AA 2017-2018 Objectives Summary of finite state machines (Mealy, Moore) Description of FSMs in System Verilog Design of control blocks based

More information

DIGITAL LOGIC DESIGN VHDL Coding for FPGAs Unit 6

DIGITAL LOGIC DESIGN VHDL Coding for FPGAs Unit 6 DIGITAL LOGIC DESIGN VHDL Coding for FPGAs Unit 6 FINITE STATE MACHINES (FSMs) Moore Machines Mealy Machines Algorithmic State Machine (ASM) charts FINITE STATE MACHINES (FSMs) Classification: Moore Machine:

More information

!"#$%&&"'(')"*+"%,%-".#"'/"'.001$$"

!#$%&&'(')*+%,%-.#'/'.001$$ !"#$%&&"'(')"*+"%,%-".#"'/"'.001$$"!!"#$%&'#()#*+"+#,-."/0110#230#4."50",+"+#)6# 6+-+#(.6+-0#)4475.8)60#0/#.65-0#230#9+**+"+# 2.48).-0#(.6+-0#! 2+"*5."5*:#,."/0110#;)**0! *),".6*:#-.99-0*0"5."+#2+660,.40"5)#;)*)2)#

More information

VHDL: A Crash Course

VHDL: A Crash Course VHDL: A Crash Course Dr. Manuel Jiménez With contributions by: Irvin Ortiz Flores Electrical and Computer Engineering Department University of Puerto Rico - Mayaguez Outline Background Program Structure

More information

Specifications Part 3

Specifications Part 3 pm4 12 Specifications Part 3 Embedded System Design Kluwer Academic Publisher by Peter Marwedel TU Dortmund 2008/11/15 ine Marwedel, 2003 Graphics: Alexandra Nolte, Ges Models of computation considered

More information