Introduction to VHDL. Main language concepts

Size: px
Start display at page:

Download "Introduction to VHDL. Main language concepts"

Transcription

1 Introduction to VHDL VHSIC (Very High Speed Integrated Circuit) Hardware Description Language Current standard is IEEE (VHDL-93). Some tools still only support VHDL-87. Tools used in the lab support VHDL-93 ADA like syntax, strictly typed language, concurrent Feature rich language for modeling digital systems at system level down to gate level. Only a subset of the language is supported for synthesis. Only RTL VHDL code is synthesizable with most tools The goal with this course is not that you should learn the complete language. ou should learn how to write RTL VHDL code, but also some behavioral stuff for test benches SMD098 Computation Structures Lecture 2 1 Main language concepts Concurrency VHDL can describe activities that are happening in parallel Structure, hierarchy VHDL allows to structure a design in a hierarchical manner Sequential statements VHDL also allows sequential execution of statements. Just like any other programming language Time VHDL allows modeling of time SMD098 Computation Structures Lecture 2 2

2 VHDL design units entity Ent1 is end Ent1; configuration CFG of Ent1 is end CFG; Common design data package PKG is end PKG; architecture A1 of Ex is architecture A2 of Ex is end A; architecture A3 of Ex is end A; end A3; package body PKG is end PKG; Entity declaration Specifies the interface of an entity Architecture body Describes the function of an entity. An entity can have more than one architectures. Configuration declaration Used to bind entity statements to particular architecture bodies. Package declaration Used to store a set of common declarations such as components, types, procedures and functions Package body Used to store the definition of functions and procedures declared in the package declaration SMD098 Computation Structures Lecture 2 3 The entity declaration The entity specifies the interface of a design unit. May be seen as a black box description Entity name library ieee; use ieee.std_logic_1164. all ; Library statement and use clause entity Adder is port ( A, B : in std_ulogic_vector(3 downto 0); Cin : in std_ulogic; Sum : out std_ulogic_vector(3 downto 0); Cout : out std_ulogic); end Adder; Port signal name Port mode Adder Port type A[3:0] B[3:0] Sum[3:0] Cout Cin SMD098 Computation Structures Lecture 2 4

3 Three most often used port modes: Port modes in out inout Entity Driver S Entity Driver I S Signal can not be read inside entity Port signal Signal I can be read inside entity I Port signal Mode out Mode out with internal signal I, The port signal S is assigned to the internal Signal I Entity Entity Driver S Driver S Driver Port signal Signal can be read inside entity Port signal Mode in Mode inout SMD098 Computation Structures Lecture 2 5 The architecture The architecture defines the contents of the black box Port declarations entity Adder is end Adder; Entity name Architecture declarations Architecture body architecture Demo of Adder is end Demo; Architecture name SMD098 Computation Structures Lecture 2 6

4 Modeling styles - sequential library ieee; use ieee.std_logic_1164.all; entity eqcomp4 is port (A, B : in std_logic_vector(3 downto 0); Equals : out std_logic); end eqcomp4; A B A=B Equals architecture seq1 of eqcomp4 is process(a, B) if A = B then Equals <= 1 ; else Equals <= 0 ; end if; end process; end seq1; architecture seq2 of eqcomp4 is process(a, B) Equals <= 0 ; if A = B then Equals <= 1 ; end if; end process; end seq2; If two architectures exist for one entity, the default architecture is used. The default architecture is the architecture that is compiled last. A configuration can explicatively specify which architecture to use. Read more about this in Zwolinsky chapter 3.8. ou will use a configuration in the last lab. SMD098 Computation Structures Lecture 2 7 Modeling styles - concurrent architecture concurrent of eqcomp4 is Equals <= 1 when (A = B) else 0 ; end concurrent; architecture concurrent_bool of eqcomp4 is Equals <= not(a(0) xor B(0)) and not(a(1) xor B(1)) and not(a(2) xor B(2)) and not(a(3) xor B(3)); end concurrent_bool; SMD098 Computation Structures Lecture 2 8

5 Modeling styles - structural library ieee; use ieee.std_logic_1164.all; use work.gates.all; -- component declarations found in package gates entity eqcomp4 is port (A, B : in std_logic_vector(3 downto 0); Equals : out std_logic); end eqcomp4; architecture structure of eqcomp4 is signal X : std_logic_vector(3 downto 0); u0 : xnor2 port map (A => A(0), B => B(0), O => X(0)); u1 : xnor2 port map (A => A(1), B => B(1), O => X(1)); u2 : xnor2 port map (A => A(2), B => B(2), O => X(2)); u3 : xnor2 port map (A => A(3), B => B(3), O => X(3)); u4 : and4 port map (A => X(0), B => X(2), C => X(3), D => X(4), O => Equals); end structure; SMD098 Computation Structures Lecture 2 9 A simple example of a hierarchical/structural VHDL code We want to model the following and-or structure ( = AB + CD) First we create two VHDL files, containing the description of an or-gate and an andgate. Name the files the same name as the name of the entity. File Or2.vhd entity Or2 is port ( A, B : in bit; : out bit); end Or2; architecture Gate of Or2 is <= A or B; end Gate; File And2.vhd entity And2 is port ( A, B : in bit; : out bit); end And2; architecture Gate of And2 is <= A and B; end Gate; SMD098 Computation Structures Lecture 2 10

6 Example cont. Next we create a third file, the top-level in the hierarchy. The top-level instantiates the gate models. A component declaration tells the compiler what each gate looks like The signal declaration creates architecture internal signals U2: And2 port map ( A => C, B => D, => B1); Create an instance named U2 of entity And2. Connect input A of U2 to input C of AndOr. Connect input B of U2 to input C of AndOr. Connect output of U2 to internal signal B1 File AndOr.vhd entity AndOr is port ( A, B, C, D : in bit; : out bit); end AndOr; architecture struct of AndOr is -- Component declarations component Or2 port ( A, B : in bit; : out bit); end component; component And2 port ( A, B : in bit; : out bit); end component; signal A1, B1 : bit; -- Instances U1: And2 port map ( A => A, B => B, => A1); U2: And2 port map ( A => C, B => D, => B1); U3: Or2 port map ( A => A1, B => B1, => ); end struct; SMD098 Computation Structures Lecture 2 11 Example cont. A more compact way to instantiate entities is direct instantiation. With this approach there is no need for a component declaration (note that this is new for VHDL 93 and some tools may not support it) Syntax is similar to the previous instantiation, the keyword entity is added and the full name of the library path where the instantiated component can be found. U2: entity work.and2(gate) port map( A => C, B => D, => B1); The library work is the current working library. gate is the architecture name. Modified file AndOr.vhd entity AndOr is port ( A, B, C, D : in bit; : out bit); end AndOr; architecture struct of AndOr is signal A1, B1 : bit; -- Direct instantiation U1: entity work.and2(gate) port map( A => A, B => B, => A1); U2: entity work.and2(gate) port map( A => C, B => D, => B1); U3: entity work.and2(gate) port map( A => A1, B => B1, => ); end struct; SMD098 Computation Structures Lecture 2 12

7 Example cont. But this is much simpler entity AndOr is port ( A, B, C, D : in bit; : out bit); end AndOr; architecture struct of AndOr is <= (A and B) or (C and D); end struct; SMD098 Computation Structures Lecture 2 13 A generic parameter may be used to pass a value of a specified type to an entity and its architecture. Generics library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity Adder is generic ( Width : integer range 2 to 32 := 16); port ( A, B : in unsigned(width-1 downto 0); : out unsigned(width-1 downto 0)); end Adder; architecture RTL of Adder is <= A + B; end RTL ; The instantiation determines the value of the generic parameter. A configuration may also be used to specify generic parameters. If the parameter is not specified it will take its default value (16 in this case) Adder_1: Adder generic map (Width => 22) port map (A => A, B => B, => ); SMD098 Computation Structures Lecture 2 14

8 Signal assignments and delays A signal may be assigned future values using the following construct X <= 0, 1 after 1 ns, 0 after 3 ns, 1 after 8 ns, 0 after 13 ns; <= X after 4 ns; This is an inertial delay any pulse shorter than the delay is suppressed. A delay may specifically be defined as a transport delay where no pulses are suppressed. <= transport X after 4 ns; SMD098 Computation Structures Lecture 2 15 Delayed signal assignments are not synthesizable! Consider the following <= ((A and B) or (C and D)) after 4 ns; How can we before synthesis know the delay? Not possible! An estimate of the delay will be known after synthesis. Routing (wiring) delays will be known after place and route. Never model delays for synthesis! Delays are only suitable for simulation. ou may however think that the zero-delay model confusing when you look at the waveforms in simulation SMD098 Computation Structures Lecture 2 16

9 Zero-delay model Zero-delay Nonzero-delay SMD098 Computation Structures Lecture 2 17 Concurrent statements The architecture body contains concurrent statements. Sequential statements are not allowed in the architecture body. Two concurrent statements. Order is unimportant library ieee; use ieee.std_logic_1164. all ; entity Test is port ( A, B : in std_logic; X, : out std_logic); end Test; A B architecture Concurrent of Test is X <= A xor B; with A select <= B when 1, Z when 0, - when others ; Signal assignment operator X end Concurrent; Covers all cases SMD098 Computation Structures Lecture 2 18

10 Internal signals Internal signals can be declared in the declarative region of the architecture library ieee; use ieee.std_logic_1164. all ; entity Test is port ( A, B : in std_logic; X, : out std_logic); end Test; A B Int Signal declaration architecture Internal of Test is signal Int : std_logic; X Int <= A xor B; X <= not Int ; <= Int and A; end Internal; Internal signal can be read and be assigned new values. X and is not readable! SMD098 Computation Structures Lecture 2 19 Processes and sequential statements library ieee; use ieee.std_logic_1164. all ; entity Test is port ( A, B : in std_logic; X, : out std_logic); end Test; A B 0 1 X Process label Process declarative region architecture Proc of Test is P1: process (A, B) -- signal declarations not allowed Sensitivity list Process is activated whenever an event occurs on signal A or B Process body if A = 1 and X <= A; <= 1 ; else X <= B; <= 0 ; end if; B = 0 then Statements in the process body are executed sequentially! end process P1; end Proc; SMD098 Computation Structures Lecture 2 20

11 library ieee; use ieee.std_logic_1164.all; entity Test is port ( A, B : in std_logic; X, : out std_logic); end Test; Multiple processes interact concurrently A B 0 1 architecture Proc of Test is signal Internal : std_logic; 0 1 X P1 : process (A, B) if A = 1 and B = 0 then X <= A; Internal <= 0 ; else X <= B; Internal <= 1 ; end if; end process P1; P2 : process (A, B, Internal) if Internal = 1 then <= A; else <= B; end if; end process P2; end Proc; Process 1 Process 2 Each process execute its statements sequentially. Each process execute when there is an event on one of the signals on its sensitivity list. This may cause an event on another signal that triggers another process SMD098 Computation Structures Lecture 2 21 Concurrent vs. sequential execution architecture Concurrent of Test is <= A or B; <= C and D; end Concurrent; architecture Sequential of Test is process (A, B, C, D) <= A or B; <= C and D; end process ; end Sequential; A B C D? Resolution function C D Synplify will report errors! Multiple non-tristate drivers for net The signal is updated with the last value assigned to it A signal that is assigned to within a process is not updated until the process is suspended. SMD098 Computation Structures Lecture 2 22

12 Sensitivity lists For a process that models combinational logic, the sensitivity list must be complete! All signals that are read ( inputs to the process) must be in the sensitivity list. What does this process model? process(a) <= A or B or C or D; end process; Our synthesis tool Synplify will assume that the sensitivity list is complete. The function of the synthesized logic will not match the function of the VHDL model you simulated. SMD098 Computation Structures Lecture 2 23 Event based simulation Simulation delta cycle Delta Signal Update Process Execution Time Delta "time" is orthogonal to simulation time Advance in time when no more processes are scheduled to execute at current simulation time SMD098 Computation Structures Lecture 2 24

13 Simulation - an example architecture sim of Test is signal A, B, C, D : std_logic := 0 ; signal S1, S2, : std_logic; 1 10ns 0 5ns 1 5ns 0 0 A B A <= 0 after 5 ns, 1 after 10 ns; B <= 1 after 5 ns; C <= 0 after 5 ns, 1 after 10 ns; D <= 1 after 5 ns; S1 <= A xor B; S2 <= C xor D; <= S1 and S2; A B S1 1 10ns 0 5ns 1 5ns 0 0 C D end Sim; C D S2 t (ns) A B C D S1 S U U U U SMD098 Computation Structures Lecture 2 25 Combinational feedback loops In a synchronous design combinational feedback loops must be avoided. (There are some rare exceptions though.) Assume S = 0 and A = 1. What will happen in simulation? Simulation will never advance in time! A S <= S xor A; S SMD098 Computation Structures Lecture 2 26

14 Data objects - constants A constant can hold a single value of a given type. Must be declared in package, entity, architecture or process declarative region. Can improve maintainability and readability of code. constant Mult : std_logic_vector := 0001 ; -- Opcode multiply constant Width : integer := 12; SMD098 Computation Structures Lecture 2 27 Data objects - signals Holds a list of values, which include the current value, past value and a set of possible scheduled values that are to appear on the signal. Future values can be assigned to the signal using the signal assignment operator. signal shiftreg : std_logic_vector(7 downto 0); shiftreg <= shiftreg(6 downto 0) & Input; May be assigned initial values when declared: signal Count : std_logic_vector(3 downto 0) := 0101 ; But this is not meaningful for synthesis! Signals can represent wires and memory holders. SMD098 Computation Structures Lecture 2 28

15 Data objects - variables Can hold a single value of a given type, but different values can be assigned to the variable at different times using a variable assignment statement. A variable is locally declared in a process or subprograms and can only be used locally. Variables are more abstract compared to signals. Variable assignments are immediately and not scheduled. variable ShiftReg : std_logic_vector(7 downto 0); shíftreg := shiftreg(6 downto 0) & Input; Use variable whenever possible since a variable uses less simulation resources than a signal. A ner may however find working with signals easier. SMD098 Computation Structures Lecture 2 29 Variables in processes A variable is declared inside the process and is not visible outside the process. A variable is updated immediately. Retains its value through the simulation Variable declaration D architecture Var of Test is process(a, B, C, D) variable Temp : std_logic; temp := 0 ; temp := temp xor A; temp := temp xor B; temp := temp xor C; temp := temp xor D; <= temp; end process; end Var; A B C SMD098 Computation Structures Lecture 2 30

16 Data objects - files Files are only useful for simulation. Obviously a file data object does not belong in synthesis. ou will learn more about files when you write your own test benches in future labs. file StimFile: TEXT open read_mode is "stim.txt"; file ResultFile: TEXT open write_mode is Result.txt"; SMD098 Computation Structures Lecture 2 31 Data types (some of them) Enumeration data type: Contains a set of user defined values type MyBit is ( 0, 1 ); type Beer is (Pripps, Falcon, KeyBeer, Guiness); Integer data type: Defines a range of integer numbers. Default is a 32-bit integer type Count is integer range 0 to 10; Array data type: type MyBitVector is array (natural range <>) of Mybit; type MyByte is array (natural range 7 downto 0) of Mybit; Record data type: type FloatType is record Sign : MyBit; Mantissa : MyBitVector(7 downto 0); Exponent : MyBitVector(15 downto 0); end record; Subtype: subtype Byte is std_ulogic_vector 7 downto 0; SMD098 Computation Structures Lecture 2 32

17 package STANDARD is type boolean is (false, true); type bit is ( 0, 1 ); type character is ( ASCII chars... ); type severity_level is (note, warning, error, failure); type integer is range to ; type real is range -1.0E308 to 1.0E308; type time is range to units fs; ps = 1000 fs; ns = 1000 ps; us = 1000 ns; ms = 1000 us; sec = 1000 ms; min = 60 sec; hr = 60 min; end units; subtype delay_length is time range 0 fs to time high; impure function now return delay_length; subtype natural is integer range 0 to integer high; subtype positive is integer range 1 to integer high; type string is array (positive range <>) of character; type bit_vector is array (natural range <>) of bit; type file_open_kind is ( read_mode, write_mode, append_mode); type file_open_status is ( open_ok, status_error, name_error, mode_error); attribute foreign : string; end STANDARD; Predefined types What types are meaningful for synthesis? SMD098 Computation Structures Lecture 2 33 Attributes There are many predefined attributes defined in VHDL. Not all can be used for synthesis. Attributes not supported for synthesis either relate to timing or are not necessary to model the physical structure of logic. Some attributes useful for synthesis: clock event returns true if an event occurred on the signal clock signal A : unsigned(3 downto 0) A left returns 3 A right returns 0 A range returns 3 downto 0 A length returns 4 SMD098 Computation Structures Lecture 2 34

18 The std_logic_1164 package The predefined type bit is defined as type bit is ( 0, 1 ); Can not model, high impedance, don t cares etc. So in std_logic_1164 a new type, std_ulogic, is defined: type std_ulogic is ( U, -- Uninitialized X, -- Forcing Unknown 0, -- Forcing 0 1, -- Forcing 1 Z, -- High Impedance W, -- Weak Unknown L, -- Weak 0 H, -- Weak Don t care ); std_ulogic_vector is defined as type std_ulogic_vector is array ( natural range <> ) of std_ulogic; SMD098 Computation Structures Lecture 2 35 The resolved type std_logic A signal that has multiple drivers must be of a resolved type. std_ulogic is not resolved but std_logic is a resolved type that is derived from std_ulogic. The resolved vector type is called std_logic_vector Driver 1 Resolution Function 1? 1 Driver 2 Z Resolution table for std_logic U X 0 1 Z W L H ( U, U, U, U, U, U, U, U, U ), -- U ( U, X, X, X, X, X, X, X, X ), -- X ( U, X, 0, X, 0, 0, 0, 0, X ), -- 0 ( U, X, X, 1, 1, 1, 1, 1, X ), -- 1 ( U, X, 0, 1, Z, W, L, H, X ), -- Z ( U, X, 0, 1, W, W, W, W, X ), -- W ( U, X, 0, 1, L, W, L, W, X ), -- L ( U, X, 0, 1, H, W, W, H, X ), -- H ( U, X, X, X, X, X, X, X, X ) -- - SMD098 Computation Structures Lecture 2 36

19 Functions in std_logic_1164 A set of overloaded logic functions and conversion functions are defined in std_logic_1164. The logic functions are overloaded so they can be used for the std_logic and std_ulogic (and vector) types Logic functions: and, nand, or, xor, xnor, not Conversion functions: To_bit, To_bitvector, To_StdULogic, To_StdULogicVector, ToStdLogicVector Also in the package, edge detecting functions: rising_edge() and falling_edge() The std_logic_1164 package does not contain any functions for arithmetic operations SMD098 Computation Structures Lecture 2 37 The numeric_std package In the IEEE synthesis package, numeric_std, the types unsigned and signed are defined. type unsigned is array (natural range <>) of std_logic; type signed is array (natural range <>) of std_logic; In the package a set of arithmetic functions are defined as well as conversion functions. Both std_logic_1164 and numeric_std will be used in the labs. ou will see examples in the first lab. A quick reference card for the packages can be found at the course webpages. SMD098 Computation Structures Lecture 2 38

20 Type conversions Because VHDL is a strongly typed language type conversions are unavoidable. Closely related types may be converted using the syntax: target_type_name(expr) Types that are not closely related need a type conversion function Closely related contain same elements architecture of X is signal S : std_logic_vector(7 downto 0); signal A, B : unsigned(7 downto 0); signal MyInt : integer; -- This will cause type error S <= B; -- Type conversion, target is a std_logic_vector S <= std_logic_vector(a); -- The + operator is defined for unsigned, -- signed and integer in numeric_std. -- A + B will result in unsiged since the -- operators are of unsigned type S <= std_logic_vector(a + B); -- to_integer is a type conversion fucntion -- in numeric_std. Note that integer(a + B) -- will result in type error. MyInt <= to_integer(a + B); -- The + operator is overloaded in -- numeric_std. A <= unsigned(s) + MyInt; end ; SMD098 Computation Structures Lecture 2 39 Assigning values to arrays architecture assign of Examples is signal Byte : std_logic_vector(7 downto 0) := " "; signal Word : std_logic_vector(15 downto 0); Byte <= " "; Initialization not supported for synthesis Byte <= ( 1, 0, 1, 0, 1, 0, 1, 0 ); Positional association Byte <= X"0F"; Hexadecimal Byte <= (others => 1 ); Byte <= (7 6 => 1, others => 0 ); Named association Byte <= (7 => 1, 4 => 1, 3 downto 1 => 0, others => 0 ); Word <= X"FF" & Byte; Concatenation Word(15 downto 8) <= (others => Byte(7)); Word(7 downto 0) <= Byte; end Examples; Sign extend (can be done with a single statement) SMD098 Computation Structures Lecture 2 40

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

Inthis lecture we will cover the following material:

Inthis lecture we will cover the following material: Lecture #8 Inthis lecture we will cover the following material: The standard package, The std_logic_1164 Concordia Objects & data Types (Signals, Variables, Constants, Literals, Character) Types and Subtypes

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

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

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

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

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

Design units can NOT be split across different files

Design units can NOT be split across different files Skeleton of a Basic VHDL Program This slide set covers the components to a basic VHDL program, including lexical elements, program format, data types and operators A VHDL program consists of a collection

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

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

Hardware Modeling. VHDL Basics. ECS Group, TU Wien

Hardware Modeling. VHDL Basics. ECS Group, TU Wien Hardware Modeling VHDL Basics ECS Group, TU Wien VHDL Basics 2 Parts of a Design Unit Entity Architecture Configuration Package Package Package Body Library How to create a Design Unit? Interface to environment

More information

Introduction to VHDL. Main language concepts

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

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

Digital Systems Design

Digital Systems Design Digital Systems Design Review of Combinatorial Circuit Building Blocks: VHDL for Combinational Circuits Dr. D. J. Jackson Lecture 2-1 Introduction to VHDL Designer writes a logic circuit description in

More information

Outline CPE 626. Advanced VLSI Design. Lecture 4: VHDL Recapitulation (Part 2) Signals. Variables. Constants. Variables vs.

Outline CPE 626. Advanced VLSI Design. Lecture 4: VHDL Recapitulation (Part 2) Signals. Variables. Constants. Variables vs. CPE 626 Lecture 4: VHDL Recapitulation (Part 2) Aleksandar Milenkovic http://www.ece.uah.edu/~milenka http://www.ece.uah.edu/~milenka/cpe626-04f/ milenka@ece.uah.edu Assistant Professor Electrical and

More information

Synthesis of Digital Systems CS 411N / CSL 719. Part 3: Hardware Description Languages - VHDL

Synthesis of Digital Systems CS 411N / CSL 719. Part 3: Hardware Description Languages - VHDL Synthesis of Digital Systems CS 411N / CSL 719 Part 3: Hardware Description Languages - VHDL Instructor: Preeti Ranjan Panda Department of Computer Science and Engineering Indian Institute of Technology,

More information

Lecture 4. VHDL Fundamentals. George Mason University

Lecture 4. VHDL Fundamentals. George Mason University Lecture 4 VHDL Fundamentals George Mason University Required reading P. Chu, RTL Hardware Design using VHDL Chapter 3, Basic Language Constructs of VHDL 2 Design Entity ECE 448 FPGA and ASIC Design with

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

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

Digital Design Using VHDL Using Xilinx s Tool for Synthesis and ModelSim for Verification Part II

Digital Design Using VHDL Using Xilinx s Tool for Synthesis and ModelSim for Verification Part II Digital Design Using VHDL Using Xilinx s Tool for Synthesis and ModelSim for Verification Part II Ahmed Abu-Hajar, Ph.D. abuhajar@digitavid.net Digitavid, Inc San Jose, CA VHDL Lexical Description Code

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

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

BASIC VHDL LANGUAGE ELEMENTS AND SEMANTICS. Lecture 7 & 8 Dr. Tayab Din Memon

BASIC VHDL LANGUAGE ELEMENTS AND SEMANTICS. Lecture 7 & 8 Dr. Tayab Din Memon BASIC VHDL LANGUAGE ELEMENTS AND SEMANTICS Lecture 7 & 8 Dr. Tayab Din Memon Outline Data Objects Data Types Operators Attributes VHDL Data Types VHDL Data Objects Signal Constant Variable File VHDL Data

More information

EE 459/500 HDL Based Digital Design with Programmable Logic. Lecture 4 Introduction to VHDL

EE 459/500 HDL Based Digital Design with Programmable Logic. Lecture 4 Introduction to VHDL EE 459/500 HDL Based Digital Design with Programmable Logic Lecture 4 Introduction to VHDL Read before class: Chapter 2 from textbook (first part) Outline VHDL Overview VHDL Characteristics and Concepts

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. VHDL Fundamentals. Required reading. Example: NAND Gate. Design Entity. Example VHDL Code. Design Entity

Lecture 4. VHDL Fundamentals. Required reading. Example: NAND Gate. Design Entity. Example VHDL Code. Design Entity Required reading Lecture 4 VHDL Fundamentals P. Chu, RTL Hardware Design using VHDL Chapter 3, Basic Language Constructs of VHDL George Mason University 2 Example: NAND Gate Design Entity a b z a b z 0

More information

Lecture 10 Subprograms & Overloading

Lecture 10 Subprograms & Overloading CPE 487: Digital System Design Spring 2018 Lecture 10 Subprograms & Overloading Bryan Ackland Department of Electrical and Computer Engineering Stevens Institute of Technology Hoboken, NJ 07030 1 Subprograms

More information

Data types defined in the standard package

Data types defined in the standard package Data Types Each data object has a type associated with it. The type defines the set of values that the object can have and the set of operation that are allowed on it. Data types defined in the standard

More information

Basic Language Constructs of VHDL

Basic Language Constructs of VHDL Basic Language Constructs of VHDL Chapter 3 1 Outline 1. Basic VHDL program 2. Lexical elements and program format 3. Objects 4. Data type and operators Chapter 3 2 1. Basic VHDL program Chapter 3 3 Design

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

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

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

Lecture 3 Introduction to VHDL

Lecture 3 Introduction to VHDL CPE 487: Digital System Design Spring 2018 Lecture 3 Introduction to VHDL Bryan Ackland Department of Electrical and Computer Engineering Stevens Institute of Technology Hoboken, NJ 07030 1 Managing Design

More information

Contents. Appendix D VHDL Summary Page 1 of 23

Contents. Appendix D VHDL Summary Page 1 of 23 Appendix D VHDL Summary Page 1 of 23 Contents Appendix D VHDL Summary...2 D.1 Basic Language Elements...2 D.1.1 Comments...2 D.1.2 Identifiers...2 D.1.3 Data Objects...2 D.1.4 Data Types...2 D.1.5 Data

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

Review of Digital Design with VHDL

Review of Digital Design with VHDL Review of Digital Design with VHDL Digital World Digital world is a world of 0 and 1 Each binary digit is called a bit Eight consecutive bits are called a byte Hexadecimal (base 16) representation for

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

CSCI Lab 3. VHDL Syntax. Due: Tuesday, week6 Submit to: \\fs2\csci250\lab-3\

CSCI Lab 3. VHDL Syntax. Due: Tuesday, week6 Submit to: \\fs2\csci250\lab-3\ CSCI 250 - Lab 3 VHDL Syntax Due: Tuesday, week6 Submit to: \\fs2\csci250\lab-3\ Objectives 1. Learn VHDL Valid Names 2. Learn the presentation of Assignment and Comments 3. Learn Modes, Types, Array,

More information

CPE/EE 422/522. Chapter 8 - Additional Topics in VHDL. Dr. Rhonda Kay Gaede UAH. 8.1 Attributes - Signal Attributes that return a value

CPE/EE 422/522. Chapter 8 - Additional Topics in VHDL. Dr. Rhonda Kay Gaede UAH. 8.1 Attributes - Signal Attributes that return a value CPE/EE 422/522 Chapter 8 - Additional Topics in VHDL Dr. Rhonda Kay Gaede UAH 1 8.1 Attributes - Signal Attributes that return a value A event true if a has just occurred A active true if A has, even if

More information

What Is VHDL? VHSIC (Very High Speed Integrated Circuit) Hardware Description Language IEEE 1076 standard (1987, 1993)

What Is VHDL? VHSIC (Very High Speed Integrated Circuit) Hardware Description Language IEEE 1076 standard (1987, 1993) What Is VHDL? VHSIC (Very High Speed Integrated Circuit) Hardware Description Language IEEE 1076 standard (1987, 1993) Only possible to synthesize logic from a subset of VHDL Subset varies according to

More information

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

Hardware Modeling. VHDL Syntax. Vienna University of Technology Department of Computer Engineering ECS Group Hardware Modeling VHDL Syntax Vienna University of Technology Department of Computer Engineering ECS Group Contents Identifiers Types & Attributes Operators Sequential Statements Subroutines 2 Identifiers

More information

VHDL: skaitmeninių įtaisų projektavimo kalba. 2 paskaita Pradmenys

VHDL: skaitmeninių įtaisų projektavimo kalba. 2 paskaita Pradmenys VHDL: skaitmeninių įtaisų projektavimo kalba 2 paskaita Pradmenys Skeleton of a Basic VHDL Program This slide set covers the components to a basic VHDL program, including lexical elements, program format,

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

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

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

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

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

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

Very High Speed Integrated Circuit Har dware Description Language

Very High Speed Integrated Circuit Har dware Description Language Very High Speed Integrated Circuit Har dware Description Language Industry standard language to describe hardware Originated from work in 70 s & 80 s by the U.S. Departm ent of Defence Root : ADA Language

More information

ECE 545 Lecture 8. Data Flow Description of Combinational-Circuit Building Blocks. George Mason University

ECE 545 Lecture 8. Data Flow Description of Combinational-Circuit Building Blocks. George Mason University ECE 545 Lecture 8 Data Flow Description of Combinational-Circuit Building Blocks George Mason University Required reading P. Chu, RTL Hardware Design using VHDL Chapter 7, Combinational Circuit Design:

More information

Digitaalsüsteemide disain

Digitaalsüsteemide disain IAY 0600 Digitaalsüsteemide disain VHDL discussion Verification: Testbenches Design verification We want to verify that our design is correct before the target PLD is programmed. The process performed

More information

ECE 448 Lecture 3. Combinational-Circuit Building Blocks. Data Flow Modeling of Combinational Logic

ECE 448 Lecture 3. Combinational-Circuit Building Blocks. Data Flow Modeling of Combinational Logic ECE 448 Lecture 3 Combinational-Circuit Building Blocks Data Flow Modeling of Combinational Logic George Mason University Reading Required P. Chu, FPGA Prototyping by VHDL Examples Chapter 3, RT-level

More information

C-Based Hardware Design

C-Based Hardware Design LECTURE 6 In this lecture we will introduce: The VHDL Language and its benefits. The VHDL entity Concurrent and Sequential constructs Structural design. Hierarchy Packages Various architectures Examples

More information

ECE 448 Lecture 3. Combinational-Circuit Building Blocks. Data Flow Modeling of Combinational Logic

ECE 448 Lecture 3. Combinational-Circuit Building Blocks. Data Flow Modeling of Combinational Logic ECE 448 Lecture 3 Combinational-Circuit Building Blocks Data Flow Modeling of Combinational Logic George Mason University Reading Required P. Chu, FPGA Prototyping by VHDL Examples Chapter 3, RT-level

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

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

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

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

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

Introduction to VHDL

Introduction to VHDL Introduction to VHDL Agenda Introduce VHDL Basic VHDL constructs Implementing circuit functions Logic, Muxes Clocked Circuits Counters, Shifters State Machines FPGA design and implementation issues FPGA

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

Lecture 1: VHDL Quick Start. Digital Systems Design. Fall 10, Dec 17 Lecture 1 1

Lecture 1: VHDL Quick Start. Digital Systems Design. Fall 10, Dec 17 Lecture 1 1 Lecture 1: VHDL Quick Start Digital Systems Design Fall 10, Dec 17 Lecture 1 1 Objective Quick introduction to VHDL basic language concepts basic design methodology Use The Student s Guide to VHDL or The

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

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

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

5. 0 VHDL OPERATORS. The above classes are arranged in increasing priority when parentheses are not used.

5. 0 VHDL OPERATORS. The above classes are arranged in increasing priority when parentheses are not used. Filename= ch5.doc 5. 0 VHDL OPERATORS There are seven groups of predefined VHDL operators: 1. Binary logical operators: and or nand nor xor xnor 2. Relational operators: = /= < >= 3. Shifts operators:

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

VHDL for Complex Designs

VHDL for Complex Designs ELEC 379 : DESIGN OF DIGITAL AND MICROCOMPUTER SYSTEMS 1998/99 WINTER SESSION, TERM 2 VHDL for Complex Designs This lecture covers VHDL features that are useful when designing complex logic circuits. After

More information

Outline CPE 626. Advanced VLSI Design. Lecture 3: VHDL Recapitulation. Intro to VHDL. Intro to VHDL. Entity-Architecture Pair

Outline CPE 626. Advanced VLSI Design. Lecture 3: VHDL Recapitulation. Intro to VHDL. Intro to VHDL. Entity-Architecture Pair Outline CPE 626 Lecture 3: VHDL Recapitulation Aleksandar Milenkovic http://www.ece.uah.edu/~milenka http://www.ece.uah.edu/~milenka/cpe626-04f/ milenka@ece.uah.edu Assistant Professor Electrical and Computer

More information

Menu. Introduction to VHDL EEL3701 EEL3701. Intro to VHDL

Menu. Introduction to VHDL EEL3701 EEL3701. Intro to VHDL 3-Jul-1 4:34 PM VHDL VHDL: The Entity VHL: IEEE 1076 TYPE VHDL: IEEE 1164 TYPE VHDL: The Architecture Mixed-Logic in VHDL VHDL MUX examples See also example file on web: Creating graphical components (Component_Creation.pdf)

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

Lattice VHDL Training

Lattice VHDL Training Lattice Part I February 2000 1 VHDL Basic Modeling Structure February 2000 2 VHDL Design Description VHDL language describes a digital system as a set of modular blocks. Each modular block is described

More information

ECOM4311 Digital Systems Design

ECOM4311 Digital Systems Design ECOM 4311 Digital Systems Design Eng. Monther Abusultan Computer Engineering Dept. Islamic University of Gaza Page 1 Agenda 1. VHDL : Data Types Cont d 2. VHDL : Operators 3. VHDL : Signal Assignments

More information

VHDL is a hardware description language. The code describes the behavior or structure of an electronic circuit.

VHDL is a hardware description language. The code describes the behavior or structure of an electronic circuit. VHDL is a hardware description language. The code describes the behavior or structure of an electronic circuit. Its main applications include synthesis of digital circuits onto CPLD/FPGA (Complex Programmable

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

Programmable Logic Design Grzegorz Budzyń Lecture. 4: Introduction to VHDL

Programmable Logic Design Grzegorz Budzyń Lecture. 4: Introduction to VHDL Programmable Logic Design Grzegorz Budzyń Lecture 4: Introduction to VHDL Plan History Main features Building blocks: Entity Architecture body Package Configuration declaration History Some history The

More information

ECE 545 Lecture 4. Simple Testbenches. George Mason University

ECE 545 Lecture 4. Simple Testbenches. George Mason University ECE 545 Lecture 4 Simple Testbenches George Mason University Required reading P. Chu, RTL Hardware Design using VHDL Chapter 2.2.4, Testbenches 2 Testbenches ECE 448 FPGA and ASIC Design with VHDL 3 Testbench

More information

VHDL. Official Definition: VHSIC Hardware Description Language VHISC Very High Speed Integrated Circuit

VHDL. Official Definition: VHSIC Hardware Description Language VHISC Very High Speed Integrated Circuit VHDL VHDL Official Definition: VHSIC Hardware Description Language VHISC Very High Speed Integrated Circuit VHDL Alternative (Student Generated) Definition Very Hard Digital Logic language VHDL Design

More information

Declarations. Lexical elements. Type declaration Subtype declaration Constant declaration Signal declaration Variable declaration.

Declarations. Lexical elements. Type declaration Subtype declaration Constant declaration Signal declaration Variable declaration. Lexical elements Declarations Reserved words Type declaration Subtype declaration Constant declaration Signal declaration Variable declaration page 1 page 3 Type declaration Reserved words architecture

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

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

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

Digital Design Using VHDL Using Xilinx s Tool for Synthesis and ModelSim for Verification

Digital Design Using VHDL Using Xilinx s Tool for Synthesis and ModelSim for Verification Digital Design Using VHDL Using Xilinx s Tool for Synthesis and ModelSim for Verification Ahmed Abu-Hajar, Ph.D. abuhajar@digitavid.net Digitavid, Inc San Jose, CA Session One Outline Introducing VHDL

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

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

ECOM 4311 Digital System Design using VHDL. Chapter 7

ECOM 4311 Digital System Design using VHDL. Chapter 7 ECOM 4311 Digital System Design using VHDL Chapter 7 Introduction A design s functionality should be verified before its description is synthesized. A testbench is a program used to verify a design s functionality

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

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

ECE4401 / CSE3350 ECE280 / CSE280 Digital Design Laboratory

ECE4401 / CSE3350 ECE280 / CSE280 Digital Design Laboratory ECE4401 / CSE3350 ECE280 / CSE280 Digital Design Laboratory Instructor John Chandy Office: ITEB 437 Office Hours: W10-12 Tel: (860) 486-5047 Email: john.chandy@uconn chandy@uconn.edu Class home page: HuskyCT

More information

Summary of basic structures

Summary of basic structures VHDL Summary of basic structures René Beuchat rene.beuchat@epfl.ch rene.beuchat@hesge.ch 1 Resume Lexical elements Reserved words Declarations Type declaration Subtype declaration Constant declaration

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: Code Structure. 1

VHDL: Code Structure. 1 VHDL: Code Structure talarico@gonzaga.edu 1 Mo:va:on for HDL- based design Standard Technology/vendor independent Portable and Reusable talarico@gonzaga.edu 2 Altera s Design Flow (RTL) RTL Generic Boolean

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

Declarations of Components and Entities are similar Components are virtual design entities entity OR_3 is

Declarations of Components and Entities are similar Components are virtual design entities entity OR_3 is Reserved Words component OR_3 port (A,B,C: in bit; Z: out bit); end component ; Reserved Words Declarations of Components and Entities are similar Components are virtual design entities entity OR_3 is

More information

1. Using the for-generahon scheme, concurrent statements can be replicated a predetermined number of times.

1. Using the for-generahon scheme, concurrent statements can be replicated a predetermined number of times. Generate Statements Concurrent statements can be conditionally selected or replicated during the elaboration phase using the generate statement. There are two forms of the generate statement. 1. Using

More information

ELCT 501: Digital System Design

ELCT 501: Digital System Design ELCT 501: Digital System Lecture 4: CAD tools (Continued) Dr. Mohamed Abd El Ghany, Basic VHDL Concept Via an Example Problem: write VHDL code for 1-bit adder 4-bit adder 2 1-bit adder Inputs: A (1 bit)

More information

VHDL 3 BASIC OPERATORS AND ARCHITECTURE BODY. Design descriptions & design constructions examples are taken from foundation series examples

VHDL 3 BASIC OPERATORS AND ARCHITECTURE BODY. Design descriptions & design constructions examples are taken from foundation series examples 1 VHDL 3 BASIC OPERATORS AND ARCHITECTURE BODY Design descriptions & design constructions examples are taken from foundation series examples 2 What we have done in Lab 1 entity AND_Gate is port ( a : in

More information

Lecture 38 VHDL Description: Addition of Two [5 5] Matrices

Lecture 38 VHDL Description: Addition of Two [5 5] Matrices Lecture 38 VHDL Description: Addition of Two [5 5] Matrices -- First, write a package to declare a two-dimensional --array with five elements library IEEE; use IEEE.STD_LOGIC_1164.all; package twodm_array

More information

LANGUAGE VHDL FUNDAMENTALS

LANGUAGE VHDL FUNDAMENTALS LANGUAGE VHDL FUNDAMENTALS Introduction Entities and architectures Sentences and processes Objects Data types and operands Authors: Luis Entrena Arrontes, Celia López, Mario García, Enrique San Millán,

More information

CDA 4253 FPGA System Design Introduction to VHDL. Hao Zheng Dept of Comp Sci & Eng USF

CDA 4253 FPGA System Design Introduction to VHDL. Hao Zheng Dept of Comp Sci & Eng USF CDA 4253 FPGA System Design Introduction to VHDL Hao Zheng Dept of Comp Sci & Eng USF Reading P. Chu, FPGA Prototyping by VHDL Examples Chapter 1, Gate-level combinational circuits Two purposes of using

More information