VHDLPrimeri Poglavlje3.doc. end process seq; Slika 3.1: Anatomija osnovne definicije test bench-a
|
|
- Logan Griffith
- 6 years ago
- Views:
Transcription
1 3. Verifikacija projekta - Test bench entity TestBench is end entity TestBench; architecture TB_Arhitektura of TestBench is component UUT (Arhitektura_UUT) port( end component UUT; prazan entitet -- deklarisanje lokalnih signala i konstanti { { Deklaracija komponente za UUT { Po~etak opisa arhitekture u1: UUT port map ( konkurentno: ); sekvencionalno: seq: process end process seq; end architecture TB_Arhitektura; { { Instanciranje komponente koja se testira Testiranje Kraj opisa arhitekture Slika 3.1: Anatomija osnovne definicije test bench-a Definisanje pobude i željenog odziva Da bi se ispitao odziv Prvog_primera na sve moguće kombinacije ulaznih signala potrebno je da se kolo pobudi sa najviše osam kombinacija prikazanih u Tabeli 3.1. Tabela 3.1 A B C Y
2 A B C Y Slika 3.2: Vremenski dijagram pobudnih signala (A, B, C) i očekivanog odziva (Y) Vreme na slici 3.2 dato je u ns. Primer 3.1: library IEEE; use IEEE.std_logic_1164.all; entity TestBench is end entity TestBench; architecture Prvi_projekat_TB of TestBench is component Prvi_projekat port (A, B, C: in std_logic; Y: out std_logic); end component; signal A, B, C, Y: std_logic; -- deklarisanje signala -- instanciranje komponente koja se testira UUT: Prvi_projekat port map ( A => A, B => B, C => C, Y => Y); -- Opis pobude preko konkurentne dodele vrednosti signala -- Definisanje pobude signala C C <= 0, 1 after 40ns, 0 after 80ns, 1 after 120ns, 0 after 160ns, 1 after 200ns, 0 after 240ns, 1 after 280ns, 0 after 320ns; -- Definisanje pobude signala B B <= 0, 1 after 80ns, 0 after 160ns, 1 after 240ns; -- Definisanje pobude signala A A <= 0, 1 after 160ns; end architecture Prvi_projekat_TB;
3 Primer 3.2: library IEEE; use IEEE.std_logic_1164.all; entity TestBench is end entity TestBench; architecture Prvi_projekat_TB of TestBench is component Prvi_projekat port (A, B, C: in std_logic; Y: out std_logic); end component; signal A, B, C, Y: std_logic; -- deklarisanje signala -- Uveden 3-bitni signal 'ulaz' da bi se olaksao opis pobude -- MSB signala ulaz ulaz(2) odgovara signalu A, -- ulaz(1) odgovara signalu 'B' -- LSB signala ulaz ulaz(0) odgovara signalu C, signal ulaz: std_logic_vector (2 downto 0); -- definisanje konstante constant PropDelay: time := 40 ns; -- UUT: Prvi_projekat port map (A => ulaz(2), B => ulaz(1), C => ulaz(0), Y => Y); -- Opis pobude sekvencijalno u okviru procesa 'seq' seq: process ulaz <= "000"; ulaz <= "001"; ulaz <= "010"; ulaz <= "011"; ulaz <= "100"; ulaz <= "101"; ulaz <= "110"; ulaz <= "111"; end process seq; end architecture Prvi_projekat_TB;
4 - k-ti član vektora ulaz izdvaja se jednostavno pisanjem ulaz(k); - dodeljivanje vrednosti vektoru zahteva da se umesto jednostrukih, koriste dvostruki navodnici. Napomena: U narednim primerima koristi se Test Banch Wizard pomocu koga je deo VHDL kôda automatski generisan. Taj deo kôda je zasencen.
5 Primer 3.3: --************************************************************* --* This file is automatically generated test bench template * --* By ACTIVE-VHDL <TBgen v1.10>. Copyright (C) ALDEC Inc. * --* * --* This file was generated on: 7:05 PM, 11/30/01 * --* Tested entity name: Prvi_projekat * --* File name contains tested entity: $DSN\src\prviprojekatstruct.vhd * --************************************************************* library ieee; use ieee.std_logic_1164.all; -- Add your code here... use Nase_primitive.all; entity tb_wizard is end tb_wizard; architecture TB_WIZARD_ARCH of tb_wizard is -- Component declaration of the tested unit component Prvi_projekat port( A : in std_logic; B : in std_logic; C : in std_logic; Y : out std_logic ); end component; -- Stimulus signals - signals mapped to the input and inout ports of tested entity signal A : std_logic; signal B : std_logic; signal C : std_logic; -- Observed signals - signals mapped to the output ports of tested entity signal Y : std_logic; -- Add your code here... signal ulaz: std_logic_vector (2 downto 0); signal izlaz: std_logic; constant PropDelay: time := 40 ns; constant Citaj: time := 10ns; -- Unit Under Test port map UUT : Prvi_projekat port map (A => ulaz(2), B => ulaz(1), C => ulaz(0), Y => Y );
6 -- Add your stimulus here... seq: process ulaz <= "000"; izlaz <= '1'; wait for Citaj; assert (Y = izlaz) report "Greska za 000" severity warning; ulaz <= "001"; izlaz <= '1';wait for Citaj; assert (Y = izlaz) report "Greska za 001" severity warning; ulaz <= "010"; izlaz <= '0';wait for Citaj; assert (Y = izlaz) report "Greska za 010" severity warning; ulaz <= "011"; izlaz <= '1';wait for Citaj; assert (Y = izlaz) report "Greska za 011" severity warning; ulaz <= "100"; izlaz <= '0'; wait for Citaj; assert (Y = izlaz) report "Greska za 100" severity warning; ulaz <= "101"; izlaz <= '1'; wait for Citaj; assert (Y = izlaz) report "Greska za 101" severity warning; ulaz <= "110"; izlaz <= '0';wait for Citaj; assert (Y = izlaz) report "Greska za 110" severity warning; ulaz <= "111"; izlaz <= '1'; wait for Citaj; assert (Y = izlaz) report "Greska za 111" severity warning; end process seq; end TB_WIZARD_ARCH; configuration TESTBENCH_FOR_Prvi_projekat of tb_wizard is for TB_WIZARD_ARCH for UUT : Prvi_projekat use entity work.prvi_projekat(protok_podataka); end for; end for; end TESTBENCH_FOR_Prvi_projekat;
7 dat a2 Zapi s dat a1 No MU IN i n Deklarisanje zapisa Zapi s Type Zapi s i s record dat a1: st d_l ogi c_vect or ( 7 downt o 0) ; dat a2: st d_l ogi c_vect or ( 4 downt o 0) ; No: i nt eger; MU: st d_l ogi c; IN: st d_l ogi c; end record Zapi s; Poziv na pojedine delove Zapi s - a: referenca vrednost Zapi s. dat a1( 2) Zapi s. dat a2( 3) Zapi s. No (1) 5 Zapi s. MU (2) 0 Zapi s. I N (2) 1 Slika 3.3: Grafička predstava, deklaracija i poziv na pojedine vrednosti zapisa
8 Primer 3.4: --************************************************************* --* This file is automatically generated test bench template * --* By ACTIVE-VHDL <TBgen v1.10>. Copyright (C) ALDEC Inc. * --* * --* This file was generated on: 7:05 PM, 11/30/01 * --* Tested entity name: Prvi_projekat * --* File name contains tested entity: $DSN\src\prviprojekatstruct.vhd * --************************************************************* library ieee; use ieee.std_logic_1164.all; -- Add your code here... use std.textio.all; use Nase_primitive.all; entity tb_wizard is end tb_wizard; architecture TB_WIZARD_ARCH of tb_wizard is -- Component declaration of the tested unit component Prvi_projekat port( A : in std_logic; B : in std_logic; C : in std_logic; Y : out std_logic ); end component; -- Stimulus signals - signals mapped to the input and inout ports of tested entity signal A : std_logic; signal B : std_logic; signal C : std_logic; -- Observed signals - signals mapped to the output ports of tested entity signal Y : std_logic; -- Add your code here... signal ulaz: std_logic_vector (2 downto 0); signal izlaz: std_logic; constant PropDelay: time := 40 ns; constant Citaj: time := 10ns; constant Broj_kombinacija: integer :=8; type Vektor is record Pobuda: std_logic_vector (2 downto 0); Kontrola: std_logic; end record; type Kombinacije is array (0 to Broj_kombinacija -1) of Vektor; constant TabelaVektora: Kombinacije := ((Pobuda => "000", Kontrola => '1'), (Pobuda => "001", Kontrola => '1'), (Pobuda => "010", Kontrola => '0'),
9 (Pobuda => "011", Kontrola => '1'), (Pobuda => "100", Kontrola => '0'), (Pobuda => "101", Kontrola => '1'), (Pobuda => "110", Kontrola => '0'), (Pobuda => "111", Kontrola => '1')); -- Unit Under Test port map UUT : Prvi_projekat port map (A => ulaz(2), B => ulaz(1), C => ulaz(0), Y => Y ); -- Add your stimulus here... Petlja: process variable Greska: boolean := false; variable Privremeni: Vektor; variable Poruka: line; for i in TabelaVektora'range loop Privremeni := TabelaVektora(i); ulaz <= Privremeni.Pobuda; izlaz <= Privremeni.Kontrola; wait for Citaj; if Y /= izlaz then write (Poruka, string'("greska u ")); write (Poruka, now); writeline (output, Poruka); Greska := true; end if; end loop; assert Greska report " Nema gresaka" severity note; wait; end process Petlja; end TB_WIZARD_ARCH; configuration TESTBENCH_FOR_Prvi_projekat of tb_wizard is for TB_WIZARD_ARCH for UUT : Prvi_projekat use entity work.prvi_projekat(strukturni_opis); end for; end for; end TESTBENCH_FOR_Prvi_projekat;
10 Citanje test vektora za Prvi_projekat iz fajla Test vektor Prvog projekta i datum: # Test vektor prvog projekta # 08. Dec Primer 3.5: --************************************************************* --* This file is automatically generated test bench template * --* By ACTIVE-VHDL <TBgen v1.10>. Copyright (C) ALDEC Inc. * --* * --* This file was generated on: 9:17 PM, 12/2/01 * --* Tested entity name: Prvi_projekat * --* File name contains tested entity: $DSN\src\prviprojekatstruct.vhd * --************************************************************* library ieee; use ieee.std_logic_1164.all; -- Add your library and packages declaration here... use IEEE.STD_LOGIC_TEXTIO.all; use STD.TEXTIO.all; use Nase_primitive.all; entity prvi_projekat_tb is end prvi_projekat_tb; architecture TB_ARCHITECTURE of prvi_projekat_tb is -- Component declaration of the tested unit component Prvi_projekat port( A : in std_logic; B : in std_logic; C : in std_logic; Y : out std_logic ); end component; -- Stimulus signals - signals mapped to the input and inout ports of tested entity signal A : std_logic; signal B : std_logic; signal C : std_logic; -- Observed signals - signals mapped to the output ports of tested entity signal Y : std_logic; -- Add your code here...
11 signal izlaz: std_logic; constant PropDelay: time := 40 ns; constant Citaj: time := 10ns; -- ovo je pomocni signal signal TacanOdziv: boolean := false; -- Deklarisanje fajla iz koga se cita file UlazniFajl: text is in "ulaznifajl.txt"; type Vektor is record Pobuda: std_logic_vector (2 downto 0); Kontrola: std_logic; end record; -- Unit Under Test port map UUT : Prvi_projekat port map (A => A, B => B, C => C, Y => Y ); --Below VHDL code is an inserted.\src\ulaznifajl.vhs --User can modify it Add your stimulus here... Ucitaj: process -- Ucitava iz fajla -- "UlazniFajl" variable Red: line; variable DobroCita: boolean; variable Privremeni: Vektor; while not endfile (UlazniFajl) loop readline (UlazniFajl, Red); read (Red, Privremeni.Pobuda, good => DobroCita); next when not DobroCita; read (Red, Privremeni.Kontrola); A <= Privremeni.Pobuda(2); B <= Privremeni.Pobuda(1); C <= Privremeni.Pobuda(0); izlaz <= Privremeni.Kontrola; end loop; assert TacanOdziv report "Simulacija izpravno okoncana" severity note; wait; end process Ucitaj;
12 -- Kontrola izlaza Proveri: process variable Poruka: line; wait for Citaj; if Y /= izlaz then write (Poruka, string'("greska u trenutku ")); write (Poruka, now); writeline (output, Poruka); TacanOdziv <= True; end if; end process Proveri; end TB_ARCHITECTURE; configuration TESTBENCH_FOR_Prvi_projekat of prvi_projekat_tb is for TB_ARCHITECTURE for UUT : Prvi_projekat use entity work.prvi_projekat(strukturni_opis); end for; end for; end TESTBENCH_FOR_Prvi_projekat; end TESTBENCH_FOR_Prvi_projekat;
13 Kasnjenje VH 0,9 VH 0,1 VH TR TF Slika 3.4: Električna šema NOR2 kola u CMOS tehnologiji i R/F kašnjenje Primer 3.6: InertniA <= A after 10ns; ZakasneliA <= transport A after 10ns; Na slici 3.5 prikazani su efekti koji nastaju kada se na ulazu pojavi signal čija je dužina trajanja veća (a) i manja (b) od definisanog kašnjnja 10ns. 20ns 5ns A InertniA 10ns InertniA 10ns ZakasneliA ZakasneliA a) b) Slika 3.5: Razlika izmedju inercionog i transportnog kašnjenja
14 Modeli komponenata sa kasnjenjem Primer 3.7: --Model invertora library IEEE; use IEEE.std_logic_1164.all; entity INVT is generic ( thl: time := 2 ns; tlh: time := 1 ns); port ( i: in std_logic; o: out std_logic); end entity INVT; architecture rtlt of INVT is o <= (not i) after tlh when (i = '0') else (not i) after thl; end architecture rtlt; -- ======================================= -- Model AND2 library IEEE; use IEEE.std_logic_1164.all; entity AND2T is generic ( tlh: time := 2ns; thl: time := 4ns); port ( i1: in std_logic; i2: in std_logic; y: out std_logic); end entity AND2T; architecture rtlt of AND2T is y <= '1' after tlh when (i1 = '1' and i2 = '1') else '0' after thl; end architecture rtlt; -- ====================================== -- Model OR2 library IEEE; use IEEE.std_logic_1164.all; entity OR2T is generic ( thl: time := 2 ns; tlh: time := 1 ns); port ( i1: in std_logic; i2: in std_logic; y: out std_logic);
15 end entity OR2T; architecture rtlt of OR2T is y <= '1' after tlh when (i1 = '1' or i2 = '1') else '0' after thl; end architecture rtlt; -- ====================================== -- Nove modele smesticemo u paket Nase_primitiveT library IEEE; use IEEE.std_logic_1164.all; package Nase_primitiveT is component INVT generic ( thl: time; tlh: time); port ( i: in std_logic; o: out std_logic); end component INVT; component AND2T generic ( thl: time; tlh: time); port ( i1: in std_logic; i2: in std_logic; y: out std_logic); end component AND2T; component OR2T generic ( thl: time; tlh: time); port ( i1: in std_logic; i2: in std_logic; y: out std_logic); end component OR2T; end package Nase_primitiveT; -- ======================================= library IEEE; use IEEE.std_logic_1164.all; entity Prvi_projekat is port ( A: in std_logic; B: in std_logic; C: in std_logic; Y: out std_logic ); end entity Prvi_projekat; use work.nase_primitivet.all; -- koristi sve -- komponente iz -- paketa "Nase_primitiveT"
16 -- Definisanje strukturnog opisa arhitekture architecture Strukturni_opisT of Prvi_projekat is -- nema deklaracije "component" signal nota, notb, and2_out: std_logic; INV_1: invt generic map (thl => 10ns, tlh => 20ns) port map (i => A, o => nota); INV_2: invt generic map (thl => 10ns, tlh => 20ns) port map (i => B, o => notb); I_kolo: AND2T generic map (thl => 10ns, tlh => 20ns) port map (i1 => nota, i2 => notb, y => and2_out); ILI_kolo: OR2T generic map (thl => 10ns, tlh => 20ns) port map (i1 => and2_out, i2 => C, y => Y); end architecture Strukturni_opisT; -- =========================================================
17 --************************************************************* --* This file is automatically generated test bench template * --* By ACTIVE-VHDL <TBgen v1.10>. Copyright (C) ALDEC Inc. * --* * --* This file was generated on: 12:54 PM, 12/9/01 * --* Tested entity name: Prvi_projekat * --* File name contains tested entity: $DSN\src\prviprojekatstructT.vhd * --************************************************************* library ieee; use ieee.std_logic_1164.all; -- Add your library and packages declaration here... use IEEE.STD_LOGIC_TEXTIO.all; use STD.TEXTIO.all; use Nase_primitiveT.all; entity prvi_projekat_tb is end prvi_projekat_tb; architecture TB_ARCHITECTURE of prvi_projekat_tb is -- Component declaration of the tested unit component Prvi_projekat port( A : in std_logic; B : in std_logic; C : in std_logic; Y : out std_logic ); end component; -- Stimulus signals - signals mapped to the input and inout ports of tested entity signal A : std_logic; signal B : std_logic; signal C : std_logic; -- Observed signals - signals mapped to the output ports of tested entity signal Y : std_logic; -- Add your code here... signal izlaz: std_logic; constant PropDelay: time := 100 ns; constant Citaj: time := 50ns; -- ovo je pomocni signal signal TacanOdziv: boolean := false; -- Deklarisanje fajla iz koga se cita file UlazniFajl: text is in "ulaznifajl.txt"; type Vektor is record Pobuda: std_logic_vector (2 downto 0); Kontrola: std_logic; end record; -- Unit Under Test port map UUT : Prvi_projekat port map (A => A, B => B,
18 C => C, Y => Y ); -- Add your stimulus here... Ucitaj: process -- Ucitava iz fajla -- "UlazniFajl" variable Red: line; variable DobroCita: boolean; variable Privremeni: Vektor; while not endfile (UlazniFajl) loop readline (UlazniFajl, Red); read (Red, Privremeni.Pobuda, good => DobroCita); next when not DobroCita; read (Red, Privremeni.Kontrola); A <= Privremeni.Pobuda(2); B <= Privremeni.Pobuda(1); C <= Privremeni.Pobuda(0); izlaz <= Privremeni.Kontrola; end loop; assert TacanOdziv report "Simulacija izpravno okoncana" severity note; wait; end process Ucitaj; -- Kontrola izlaza Proveri: process variable Poruka: line; wait for Citaj; if Y /= izlaz then write (Poruka, string'("greska u trenutku ")); write (Poruka, now); writeline (output, Poruka); TacanOdziv <= True; end if; end process Proveri; end TB_ARCHITECTURE; configuration TESTBENCH_FOR_Prvi_projekat of prvi_projekat_tb is for TB_ARCHITECTURE for UUT : Prvi_projekat use entity work.prvi_projekat(strukturni_opist); end for; end for; end TESTBENCH_FOR_Prvi_projekat; -- =======================================================
VHDLPrimeri Poglavlje5.doc
5. VHDL opis kola koja obavljaju osnovne aritmetičke funkcije Sabirači Jednobitni potpuni sabirač definisan je tablicom istinitosti iz Tabele 5.1. Tabela 5.1. cin a b sum cout 0 0 0 0 0 0 0 1 1 0 0 1 0
More informationTutorial on Simulation using Aldec Active-HDL Ver 1.0
Tutorial on Simulation using Aldec Active-HDL Ver 1.0 by Shashi Karanam Introduction Active- HDL is an integrated environment designed for development of VHDL designs. The core of the system is a VHDL
More informationVHDL Testbench. Test Bench Syntax. VHDL Testbench Tutorial 1. Contents
VHDL Testbench Tutorial 1 Contents 1 VHDL Testbench 2 Test Bench Syntax 3 Testbench Example: VHDL Code for Up Down Binary Counter 4 VHDL Testbench code for up down binary counter 5 Testbench Waveform for
More informationVHDL Simulation. Testbench Design
VHDL Simulation Testbench Design The Test Bench Concept Elements of a VHDL/Verilog testbench Unit Under Test (UUT) or Device Under Test (DUT) instantiate one or more UUT s Stimulus of UUT inputs algorithmic
More informationTest 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 informationDIGITAL LOGIC WITH VHDL (Fall 2013) Unit 1
DIGITAL LOGIC WITH VHDL (Fall 23) Unit DESIGN FLOW DATA TYPES LOGIC GATES WITH VHDL TESTBENCH GENERATION DESIGN FLOW Design Entry: We specify the logic circuit using a Hardware Description Language (e.g.,
More informationThe 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 informationTest Bench. Top Level Model Test Bench MUT
A test bench is usually a simulation-only model used for design verification of some other model(s) to be synthesized. A test bench is usually easier to develop than a force file when verifying the proper
More informationVHDL Testbench Design. Textbook chapters 2.19, , 9.5
VHDL Testbench Design Textbook chapters 2.19, 4.10-4.12, 9.5 The Test Bench Concept Elements of a VHDL/Verilog testbench Unit Under Test (UUT) or Device Under Test (DUT) instantiate one or more UUT s Stimulus
More informationVHDL- VHDL-3. Vsys. maxplus2. Vsys. d:\uoo. vsystem.ini work
VHDL- VHDL-3 Vsys TextIO maxplus2 Vsys Vsys d:\uoo mem_tb.vhd mem_tb.vec Vsys d:\uoo vsystem.ini work d:\uoo vsystem.ini [library] std = c:/vsystem/std IEEE = c:/vsystem/ieee SIMPRIM = D:/xilinx/vhdl/src/simprims/work
More informationVHDL/Verilog Simulation. Testbench Design
VHDL/Verilog Simulation Testbench Design The Test Bench Concept Elements of a VHDL/Verilog testbench Unit Under Test (UUT) or Device Under Test (DUT) instantiate one or more UUT s Stimulus of UUT inputs
More informationLecture 6. Advanced Testbenches. George Mason University
Lecture 6 Advanced Testbenches George Mason University Required reading Sundar Rajan, Essential VHDL: RTL Synthesis Done Right Chapter 14, starting from Design Verification 2 Steps of the Design Process
More informationcla library ieee; use ieee.std_logic_1164.all;
-- cla entity cla is generic( n_g: integer :=4 -- count of bits ); port( x_p : in std_logic_vector (n_g-1 downto 0); y_p : in std_logic_vector (n_g-1 downto 0); cin_p : in std_logic; cla_p :out std_logic_vector
More informationECE 545 Lecture 7. Advanced Testbenches. Required reading. Simple Testbench. Advanced Testbench. Possible Sources of Expected Outputs
ECE 545 Lecture 7 Advanced Testbenches George Mason University Steps of the Design Process 1. Text description 2. Interface 3. Pseudocode 4. Block diagram of the Datapath 5. Interface with the division
More informationECE 545 Lecture 7. Advanced Testbenches. George Mason University
ECE 545 Lecture 7 Advanced Testbenches George Mason University Steps of the Design Process 1. Text description 2. Interface 3. Pseudocode 4. Block diagram of the Datapath 5. Interface with the division
More informationDesign a 4 bit-adder. Then design a 4-7 decoder to show the outputs. Output Sum(4 bits) Adder. Output carry(1 bit)
Csc 343 Lab 2 Sep 28. 07 Objective: Design a 4 bit-adder. Then design a 4-7 decoder to show the outputs. Structure: Input A (4 bits) Input B (4 bit) Adder Output Sum(4 bits) Output carry(1 bit) input cin
More informationSintaksa VHDL jezika - podsjetnik -
Sintaksa VHDL jezika - podsjetnik - -- Učitavanje biblioteka library ; -- Import all the declarations in a package use ..all; -- Import a specific declaration
More informationBasic 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 informationLECTURE 4: The VHDL N-bit Adder
EECS 317 Computer Design LECTURE 4: The VHDL N-bit Adder Instructor: Francis G. Wolff wolff@eecs.cwru.edu Case Western Reserve University Review: N-Bit Ripple-Carry Adder Hierarchical design: 2-bit adder
More informationLogic 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 informationDigitaalsü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 informationFunctions, Procedures, and Testbenches
Lab Workbook Introduction VHDL lets you define sub-programs using procedures and functions. They are used to improve the readability and to exploit re-usability of VHDL code. Functions are equivalent to
More informationECE 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 informationGetting Started with VHDL
Getting Started with VHDL VHDL code is composed of a number of entities Entities describe the interface of the component Entities can be primitive objects or complex objects Architectures are associated
More informationDIGITAL LOGIC DESIGN VHDL Coding for FPGAs Unit 9
DIGITAL LOGIC DESIGN VHDL Coding for FPGAs Unit 9 MISCELANEOUS TOPICS I/O text files for simulation and synthesis. Example: serial multiplier, basic -to- LUT, VGA. Using Xilinx primitives: BRAMs, XADC,
More informationIntroduction 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 informationConstructing VHDL Models with CSA
Constructing VHDL Models with CSA List all components (e.g., gate) inclusive propagation delays. Identify input/output signals as input/output ports. All remaining signals are internal signals. Identify
More informationSimulation with ModelSim Altera from Quartus II
Simulation with ModelSim Altera from Quartus II Quick Start Guide Embedded System Course LAP IC EPFL 2010 Version 0.6 (Preliminary) René Beuchat, Cagri Onal 1 Installation and documentation Main information
More informationVHDL Testbench VHDL Testbench NO Synthesis Test Vectors Input Vector Output Vector Expected Vector UUT : Unit Under Test Clock Generator Error Report Utility 1 Library : STD Library for Testbench use std.standard.all;
More informationVHDL. 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 informationExperiment 0 OR3 Gate ECE 332 Section 000 Dr. Ron Hayne June 8, 2003
Experiment 0 OR3 Gate ECE 332 Section 000 Dr. Ron Hayne June 8, 2003 On my honor I have neither received nor given aid on this report. Signed: Ronald J. Hayne Part I Description of the Experiment Experiment
More informationEE261: Intro to Digital Design
2014 EE261: Intro to Digital Design Project 3: Four Bit Full Adder Abstract: This report serves to teach us, the students, about modeling logic and gives a chance to apply concepts from the course to a
More informationDesigning with VHDL and FPGA
Designing with VHDL and FPGA Instructor: Dr. Ahmad El-Banna lab# 5-II 1 Agenda Structural way in VHDL Mixed Example 2 Modeling the Structurural way Structural architecture implements the module as a composition
More informationDocument Version: 0.6 Document Date: 15 April 2011 Prepared by: Y. Ermoline for ATLAS Level-1Calorimeter Trigger
ATLAS ATL-DA-EN-0004 EDMS Id: 1100579 ATLAS TDAQ Level-1 Calorimeter Trigger VHLD guidelines Document Version: 0.6 Document Date: 15 April 2011 Prepared by: Y. Ermoline for ATLAS Level-1Calorimeter Trigger
More informationQuartus Counter Example. Last updated 9/6/18
Quartus Counter Example Last updated 9/6/18 Create a logic design from start to a DE10 implementation This example uses best design practices This example is not about creating HDL The HDL code will be
More informationFile: /home/young/mywork/5.cordic_vhdl/a.beh/print.cordic_beh Page 1 of 10
File: /home/young/mywork/5.cordic_vhdl/a.beh/print.cordic_beh Page 1 of 10.SUFFIXES :.o.vhdl.vhdl.o : ghdl -a $< cordic_tb : cordic_pkg.o cordic_beh.o cordic_tb.o ghdl -e cordic_tb anal : cordic_pkg.o
More informationThe University of Alabama in Huntsville ECE Department CPE Midterm Exam Solution March 2, 2006
The University of Alabama in Huntsville ECE Department CPE 526 01 Midterm Exam Solution March 2, 2006 1. (15 points) A barrel shifter is a shift register in which the data can be shifted either by one
More informationTKT-1212 Digitaalijärjestelmien toteutus. Lecture 7: VHDL Testbenches Ari Kulmala, Erno Salminen 2008
TKT-1212 Digitaalijärjestelmien toteutus Lecture 7: VHDL Testbenches Ari Kulmala, Erno Salminen 2008 Contents Purpose of test benches Structure of simple test bench Side note about delay modeling in VHDL
More informationBOUNDARY-SCAN TEST. Elektronski fakultet u Ni u. Smer: R. Predmet: Projektovanje ugra enih ra unarskih sistema. Studenti:
Elektronski fakultet u Ni u Smer: R Predmet: Projektovanje ugra enih ra unarskih sistema BOUNDARY-SCAN TEST Studenti: Darko Filipovi 9551 Goran Risti 10067 Boundary-Scan Test 1. Uvod u Boundary-Scan tehniku
More informationDIGITAL LOGIC WITH VHDL (Fall 2013) Unit 6
DIGITAL LOGIC WITH VHDL (Fall 2013) Unit 6 FINITE STATE MACHINES (FSMs) Moore Machines Mealy Machines FINITE STATE MACHINES (FSMs) Classification: Moore Machine: Outputs depend only on the current state
More informationThe 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 informationChapter 8 VHDL Code Examples
APPENDIX I Chapter 8 VHDL Code Examples I.1 Introduction Two example VHDL code designs are presented in Chapter 8, the first for controlling the AD7524 digital-to-analogue converter and the second for
More informationIn our case Dr. Johnson is setting the best practices
VHDL Best Practices Best Practices??? Best practices are often defined by company, toolset or device In our case Dr. Johnson is setting the best practices These rules are for Class/Lab purposes. Industry
More informationLECTURE Simulator 2: Textio, Wait, Clocks, and Test Benches
EECS 318 CAD Computer Aided Design LECTURE Simulator 2: Textio, Wait, Clocks, and Test Benches Instructor: Francis G. Wolff wolff@eecs.cwru.edu Case Western Reserve University This presentation uses powerpoint
More informationVHDL 200X: The Future of VHDL
VHDL 200X: The Future of VHDL By Jim Lewis VHDL Training Team Leader VHDL-200X Fast Track jim@synthworks.com Lewis 1 MAPLD 2005 / P255 VHDL-200X: The Future of VHDL Currently the work is being funded through
More informationMidterm 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 informationLecture 14 Test Bench Design
CPE 487: Digital System Design Spring 2018 Lecture 14 Test Bench Design Bryan Ackland Department of Electrical and Computer Engineering Stevens Institute of Technology Hoboken, NJ 07030 1 Testing Digital
More informationCSCI 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 informationDeclarations 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 informationUNIT 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 informationLecture 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 informationInthis 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 informationSimulation with ModelSim Altera from Quartus II
Simulation with ModelSim Altera from Quartus II Quick Start Guide Embedded System Course LAP IC EPFL 2010 Version 0.5 (Preliminary) René Beuchat, Cagri Onal 1 Installation and documentation Main information
More informationTri-State Bus Implementation
Tri-State Bus Implementation Danny Mok Altera HK FAE (dmok@altera.com) Sample Code library ieee; use ieee.std_logic_1164.all; library lpm; use lpm.lpm_components.all; entity tri_bus is port (a,b : in std_logic_vector(7
More informationDIGITAL 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 informationVHDL. VHDL History. Why VHDL? Introduction to Structured VLSI Design. Very High Speed Integrated Circuit (VHSIC) Hardware Description Language
VHDL Introduction to Structured VLSI Design VHDL I Very High Speed Integrated Circuit (VHSIC) Hardware Description Language Joachim Rodrigues A Technology Independent, Standard Hardware description Language
More informationVery 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 informationConcurrent 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 informationVHDL. 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 informationVHDL 200X: The Future of VHDL
March 1-3, 2004 VHDL 200X: The Future of VHDL By Jim Lewis VHDL Training Team Leader VHDL-200X Fast Track jim@synthworks.com VHDL-200X: The Future of VHDL VHDL-200X is a multi-phased effort. Covers the
More informationEntity, Architecture, Ports
Entity, Architecture, Ports A VHDL models consist of an Entity Declaration and a Architecture Body. The entity defines the interface, the architecture defines the function. The entity declaration names
More informationTwo HDLs used today VHDL. Why VHDL? Introduction to Structured VLSI Design
Two HDLs used today Introduction to Structured VLSI Design VHDL I VHDL and Verilog Syntax and ``appearance'' of the two languages are very different Capabilities and scopes are quite similar Both are industrial
More informationUNIVERZITET U BEOGRADU ELEKTROTEHNIČKI FAKULTET
UNIVERZITET U BEOGRADU ELEKTROTEHNIČKI FAKULTET Katedra za elektroniku Računarska elektronika Grupa br. 11 Projekat br. 8 Studenti: Stefan Vukašinović 466/2013 Jelena Urošević 99/2013 Tekst projekta :
More informationSolutions - Homework 2 (Due date: October 9:30 am) Presentation and clarity are very important!
ECE-8L: Computer Logic Design Fall Solutions - Homework (Due date: October rd @ 9: am) Presentation and clarit are ver important! PROBLEM ( PTS) Complete the following table. Use the fewest number of bits
More informationGeneratore di parità. LIBRARY ieee; USE ieee.std_logic_1164.all ; ENTITY xor2 IS PORT( A, B : in std_logic ; Y : out std_logic ) ; END xor2 ;
LIBRARY ieee; USE ieee.std_logic_1164.all ; ENTITY xor2 IS PORT( A, B : in std_logic ; Y : out std_logic ) ; END xor2 ; ARCHITECTURE arch1 OF Xor2 IS BEGIN Y
More informationFile: /home/young/mywork/c.arithmetic/bshfit/print.bshift Page 1 of 13
File: /home/young/mywork/c.arithmetic/bshfit/print.bshift Page 1 of 13 makefile.suffixes :.o.vhdl.vhdl.o : ghdl -a $< # CNF_bshift = c3.bshift_tb_conf.rtl.o \ # c3.bshift_tb_conf.mux.o \ OBJ_bshift = cordic_pkg.o
More informationLecture 5: Aldec Active-HDL Simulator
Lecture 5: Aldec Active-HDL Simulator 1. Objective The objective of this tutorial is to introduce you to Aldec s Active-HDL 9.1 Student Edition simulator by performing the following tasks on a 4-bit adder
More informationIntroduction 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 informationDigital 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 informationLecture 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 information5. 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 informationDIGITAL LOGIC DESIGN VHDL Coding for FPGAs Unit 8
DIGITAL LOGIC DESIGN VHDL Coding for FPGAs Unit 8 PARAMETRIC CODING Techniques: generic input size, for-generate, if-generate, conv_integer. Custom-defined arrays, functions, and packages. Examples: vector
More informationSymbolically the RS-Latch that is being simulated is the one shown below, it s truth table is also given:
Symbolically the RS-Latch that is being simulated is the one shown below, it s truth table is also given: For this example you will need to create two VHDL (.vhd) files one represents the rslatch itself,
More informationAssignment 01 Computer Architecture Lab ECSE
Assignment 01 Computer Architecture Lab ECSE 487-001 Date due: September 22, 2006, Trottier Assignment Box by 14:30 1 Introduction The purpose of this assignment is to re-familiarize the student with VHDL
More informationHardware Synthesis. Midia Reshadi. CE Department Science and research branch of Islamic Azad University
Hardware Synthesis MidiaReshadi CE Department Science and research branch of Islamic Azad University Email: ce.srbiau@gmail.com Midia Reshadi 1 Chapter 6 Testbenches for Combinational Designs Midia Reshadi
More informationReview. LIBRARY list of library names; USE library.package.object; ENTITY entity_name IS generic declarations PORT ( signal_name(s): mode signal_type;
LIBRARY list of library names; USE library.package.object; Review ENTITY entity_name IS generic declarations PORT ( signal_name(s): mode signal_type; signal_name(s) : mode signal_type); END ENTITY entity_name;
More informationOutline. 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 informationLattice 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 informationlibrary STD; use STD.textio.all; library IEEE; use IEEE.std_logic_1164.all; use IEEE.numeric_std.all; package cordic_pkg is
cordic_pkg.vhdl Purpose: utility package of cordic Discussion: Licensing: This code is distributed under the GNU LGPL license. Modified: 2012.04.03 Author: Young W. Lim Functions: Conv2fixedPt (x : real;
More informationsearch_chr: ASM chart search_chr search_chr search_chr MEM_ENABLE MEM_WE MEM_ADDRESS MEM_DATAIN MEM_DATAOUT MEM_READY ADDRESS CHAR LEN nfound
ADDRESS CHAR LEN nfound 32 8 6? START READY 32 8 8 MEM_ENABLE MEM_WE MEM_ADDRESS MEM_DATAIN MEM_DATAOUT MEM_READY INIT COUNT
More informationVHDL Notes for Week 4. VHDL Programming in CprE 381. Entity and Component 9/22/2014. Generic Constant. Test bench
VHDL Notes for Week 4 VHDL Programming in CprE 381 Generic Constant Entity and component Test bench Zhao Zhang CprE 381, Fall 2013 Iowa State University Last update: 12/02/2013 Generic Constant Generic
More informationTutorial 4 HDL. Outline VHDL PROCESS. Modeling Combinational Logic. Structural Description Instantiation and Interconnection Hierarchy
CS3: Hardware Lab Tutorial 4 HDL Outline VHDL basic language concepts basic design methodology Examples A. Sahu Dept of Comp. Sc. & Engg. Indian Institute of Technology Guwahati i i i3 i4 Modeling Combinational
More informationECE 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 informationSolutions - Homework 4 (Due date: November 9:30 am) Presentation and clarity are very important!
DPARTMNT OF LCTRICAL AND COMPUTR NGINRING, TH UNIVRSITY OF NW MXICO C-38L: Computer Logic Design Fall 3 Solutions - Homework 4 (Due date: November 6th @ 9:3 am) Presentation and clarity are very important!
More informationReview 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 informationECE 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 informationDigital 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 informationLab # 5. Subprograms. Introduction
Lab # 5 Subprograms Introduction Subprograms consist of procedures and functions. A procedure can return more than one argument; a function always returns just one. In a function, all parameters are input
More informationCOE 405 Behavioral Descriptions in VHDL
COE 405 Behavioral Descriptions in VHDL Dr. Aiman H. El-Maleh Computer Engineering Department King Fahd University of Petroleum & Minerals Outline Constructs for Sequential Descriptions Process Statement
More informationExperiment 8 Introduction to VHDL
Experiment 8 Introduction to VHDL Objectives: Upon completion of this laboratory exercise, you should be able to: Enter a simple combinational logic circuit in VHDL using the Quartus II Text Editor. Assign
More informationVHDL 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 informationSymbolically a D-Latch can be represented as so, it s truth table is also given:
Symbolically a D-Latch can be represented as so, it s truth table is also given: For this example you will need to create two VHDL (.vhd) files one represents the dlatch itself, while the other will test
More informationPolusabirač. design.vhd. testbench.vhd. library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all;
Polusabirač design.vhd use ieee.numeric_std.all; entity half_adder is i_bit1 : in std_logic; i_bit2 : in std_logic; o_sum : out std_logic; o_carry : out std_logic end half_adder; architecture rtl of half_adder
More informationLecture 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 informationCPE 626 Advanced VLSI Design Lecture 6: VHDL Synthesis. Register File: An Example. Register File: An Example (cont d) Aleksandar Milenkovic
CPE 626 Lecture 6: VHDL Synthesis 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 Engineering
More informationFINAL PROJECT DESIGN OF HOUGH TRANSFORM ON A CORDIC CONFIGURABLE ALGORITHM
FINAL PROJECT DESIGN OF HOUGH TRANSFORM ON A CORDIC CONFIGURABLE ALGORITHM As Part of CourseWork Of ECE 590 DIGITAL DESIGN IN HARDWARE DESCRIPITIVE LANGUAGE By Mithun Bista Graduate Student ID #: 990081129
More informationOutline 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 informationFile: /home/young/mywork/7.cordic_accuracy/ghdl/print.file Page 1 of 13
File: /home/young/mywork/7.cordic_accuracy/ghdl/print.file Page 1 of 13 makefile sendrecv.o: sendrecv.c gcc -c -Wall sendrecv.c cordic_vtb: sendrecv.o cordic_vtb.vhdl cp /home/young/mywork/5.cordic_vhdl/a.beh/cordic_pkg.vhdl.
More informationMultiplication Simple Gradeschool Algorithm for 16 Bits (32 Bit Result)
Multiplication Simple Gradeschool Algorithm for 16 Bits (32 Bit Result) Input Input Multiplier Multiplicand AND gates 16 Bit Adder 32 Bit Product Register Multiplication Simple Gradeschool Algorithm for
More informationDigital Design. Chapter 9: Hardware Description Languages
Digital Design Chapter 9: Hardware Description Languages Slides to accompany the textbook Digital Design, with RTL Design, VHDL, and Verilog, 2nd Edition, by, John Wiley and Sons Publishers, 2010. http://www.ddvahid.com
More information