Hardware Synthesis. Midia Reshadi. CE Department Science and research branch of Islamic Azad University

Size: px
Start display at page:

Download "Hardware Synthesis. Midia Reshadi. CE Department Science and research branch of Islamic Azad University"

Transcription

1 Hardware Synthesis MidiaReshadi CE Department Science and research branch of Islamic Azad University Midia Reshadi 1 Chapter 6 Testbenches for Combinational Designs Midia Reshadi 2 1

2 Simple testbench Midia Reshadi 3 Simple testbench Simple testbench for a half adder using projected waveforms library ieee; use ieee.std_logic_1164.all; entity testbench is -- testbench entity has no ports end testbench; Midia Reshadi 4 2

3 Simple testbench architecture waveform of testbench is -- Stimulus signals - to connect testbench to UUT input ports signal a_tb, b_tb : std_logic; -- Observed signals - to connect testbench to UUT output ports signal sum_tb, carry_out_tb : std_logic; begin -- Unit Under Test port map UUT : entity half_adder port map (a => a_tb, b => b_tb, sum => sum_tb, carry_out => carry_out_tb ); -- Signal assignment statements generating stimulus values a_tb <= '0', '1' after 40 ns; b_tb <= '0', '1' after 20 ns, '0' after 40 ns, '1' after 60 ns; end waveform; Simple testbench for a half adder using projected waveforms Midia Reshadi 5 Simple testbench After Clause a_tb <= '0', '1' after 40 ns; b_tb <= '0', '1' after 20 ns, '0' after 40 ns, '1' after 60 ns; Syntax for a signal assignment statement with multiple waveform elements signal_assignment_statement ::= target <= value_expression [after time_expression] Midia Reshadi 6 3

4 After Clause Simple testbench Timing waveform from simulation of half-adder testbench. a_tb <= '0', '1' after 40 ns; b_tb <= '0', '1' after 20 ns, '0' after 40 ns, '1' Midia Reshadi 7 such as Time Frequency Voltage current. Physical types Midia Reshadi 8 4

5 Physical types Primary and Secondary Units The primary unit of measure, listed immediately after keyword units Is the smallest unit represented by the physical type. Physical type declaration syntax type identifier is range simple_expression (to downto) simple_expression units identifier ; -- primary unit declaration { identifier = physical_literal ; } -- secondary_unit_declarations end units [ physical_type_simple_name ]] Midia Reshadi 9 Type Time Physical types type time is range implementation_defined units fs; -- femtosecond ps = 1000 fs;-- picosecond ns = 1000 ps;-- nanosecond us = 1000 ns;-- microsecond ms = 1000 us;-- millisecond sec = 1000 ms; -- second min = 60 sec; -- minute hr = 60 min; -- hour end units; Midia Reshadi 10 5

6 Physical types Subtype Delay_length Package STANDARD also defines a subtype of time named delay_length subtype delay_length is time range 0 fs to time'high; Arithmetic Operations on Physical Types Can be applied to physical types Highest value of type time addition, subtraction, identity, and negation s1 <= '0' after prop_delay * 2; s2 <= '1' after prop_delay / 4; Midia Reshadi 11 Single process testbench Testbench for a half adder using a process to apply stimulus and assertion statements to check outputs Library ieee; use ieee.std_logic_1164.all; entity testbench is end testbench; Midia Reshadi 12 6

7 Single process testbench architecture behavior of testbench is -- Declare local signals to assign values to and to observe signal a_tb, b_tb, sum_tb, carry_out_tb : std_logic; begin -- Create an instance of the circuit to be tested uut: entity half_adder port map(a => a_tb, b => b_tb, sum => sum_tb, carry_out => carry_out_tb); -- Define a process to apply input stimulus and verify outputs tb : process Midia Reshadi 13 Single process testbench constant period: time := 20 ns; begin -- Apply every possible input combination a_tb <= '0'; --apply input combination 00 and check outputs b_tb <= '0'; wait for period; assert ((sum_tb = '0') and (carry_out_tb = '0')) report "test failed for input combination 00" severity error; a_tb <= '0'; --apply input combination 01 and check outputs b_tb <= '1'; wait for period; assert ((sum_tb = '1') and (carry_out_tb = '0')) report "test failed for input combination 01" severity error; a_tb <= '1'; --apply input combination 10 and check outputs b_tb <= '0'; wait for period; Midia Reshadi 14 7

8 Single process testbench assert ((sum_tb = '1') and (carry_out_tb = '0')) report "test failed for input combination 10" severity error; a_tb <= '1'; --apply input combination 11 and check outputs b_tb <= '1'; wait for period; assert ((sum_tb = '0') and (carry_out_tb = '1')) report "test failed for input combination 11" severity error; wait; -- indefinitely suspend process end process; end; Midia Reshadi 15 Single process testbench Assertion Statements Use of assertion statements eliminate the need to visually inspect timing waveforms (sum_tb = '0') and (carry_out_tb = '0') "test failed for input combination 00" Midia Reshadi 16 8

9 Wait statements A wait statement suspendsand resumesexecution of the process containing the statement. wait on sensitivity_list; wait until boolean_expression; wait for time_expression; wait; Syntax for a wait statement. wait_statement ::= wait [sensitivity_clause] [condition_clause] [timeout_clause] ; Midia Reshadi 17 Wait statements Example, execution of the statement: wait until interrupt = '1'; For example: If a wait statement contains both a sensitivity clause and a condition clause, wait on ie until interrupt = '1'; Wait For Midia Reshadi 18 9

10 Wait statements Wait For suspending for a time-out interval equal to its associated time_expression wait for period; --period was a constant equal to 20 ns. Multiple Condition Wait wait on ie until interrupt = '1' for period; Wait (Forever) wait by itself causes a process to suspend forever Use: to stop the testbench sexecution Midia Reshadi 19 Assertion and report An assertion statement checks whether a specified condition (the assertion) is true. Syntax for an assertion statement assertion_statement ::= assert condition [ report expression ] [ severity expression ] ; Midia Reshadi 20 10

11 Assertion and report Assertion Violation If the condition in the assert statement evaluates false If the assertion statement has no report clause The simulator displays the default error message Assertion violation. Severity Levels indicates the degree which an assertion violation affects operation what actions the simulator must take predefined in package STANDARD as: Midia Reshadi 21 Severity Levels Assertion and report type severity_level is ( note, warning, error, failure); Midia Reshadi 22 11

12 Assertion and report Severity Levels Note is simply used to display informative messages during a simulation Warning is used to indicate an unusual situation where the simulation can continue but may produce unusual results Error (default level) is used to indicate a situation where corrective action should be taken. Failure is used to indicate a situation that should never arise. Midia Reshadi 23 Assertion and report Report Statement A report statement displays a message every time it is executed. Syntax for a report statement report_statement ::= report expression [severity expression] ; Midia Reshadi 24 12

13 Assertion and report Report Clause Message Text The special character constants CR (carriage return) and/or LF (line feed) report "test failed" & CR LF & "for input combination 01 severity error; will print the two lines: test failed for input combination 01 Midia Reshadi 25 Assertion and report Image Attribute T image(x) returns the string representation of the expression x of type T. report "test failed for a_tb = " & std_logic image(a_tb) & " and b_tb = " & std_logic image(b_tb); test failed for a_tb = '1' and b_tb = '0' Midia Reshadi 26 13

14 Records and table lookup A simple way to specify both stimulus and expected response values is to use a table of constants similar to the table lookup technique Records A record is a composite type that consists of named elements that may be of different types Midia Reshadi 27 Records Records and table lookup record_declaration ::= type identifier is record identifier_list : element_subtype_definition ; { identifier_list : element_subtype_definition ; } endrecord [ record_type_simple_name ] Test Vector Records type test_vector is record a : std_logic; b : std_logic; sum : std_logic; carry_out : std_logic; end record; Midia Reshadi 28 14

15 Records Example type test_vector_array is array natural range <>) of test_vector; The actual table of constants, declared using named association constant test_vectors : test_vector_array := ( -- a, b, sum, carry_out (a => '0', b => '0', sum => '0', carry_out =>'0'), (a => '0', b => '1', sum => '1', carry_out =>'0'), (a => '1', b => '0', sum => '1', carry_out =>'0'), (a => '1', b => '1', sum => '0', carry_out =>'1')); Midia Reshadi 29 Records using positional association constant test_vectors : test_vector_array := ( -- a, b, sum, carry_out ('0', '0', '0', '0'), ('0', '1', '1', '0'), ('1', '0', '1', '0'), ('1', '1', '0', '1')); Midia Reshadi 30 15

16 Records and table lookup Table lookup testbench for a half adder library ieee; use ieee.std_logic_1164.all; entity testbench is end testbench; Midia Reshadi 31 Records and table lookup architecture table of testbench is -- Stimulus signals signal a : std_logic; signal b : std_logic; -- Observed signals signal sum : std_logic; signal carry_out : std_logic; -- Declare record type type test_vector is record a : std_logic; b : std_logic; sum : std_logic; carry_out : std_logic; end record; Midia Reshadi 32 16

17 Records and table lookup type test_vector_array is array (natural range <>) of test_vector; constant test_vectors : test_vector_array := ( -- a, b, sum, carry_out ('0', '0', '0', '0'), ('0', '1', '1', '0'), ('1', '0', '1', '0'), ('1', '1', '0', '1')); Midia Reshadi 33 Records and table lookup begin UUT : entity half_adder port map (a => a, b => b, sum => sum, carry_out => carry_out ); verify : process begin for i in test_vectors'range loop a <= test_vectors(i).a; b <= test_vectors(i).b; wait for 20 ns; assert (( sum = test_vectors(i).sum ) and (carry_out = test_vectors(i).carry_out)) Midia Reshadi 34 17

18 Records and table lookup report "test vector " & integer'image(i) & " failed"& " for input a = " & std_logic'image(a) & " and b = " & std_logic'image(b) severity error; end loop; wait; end process; end table; test vector 3 failed for input a = '1' and b = '1' Midia Reshadi 35 Computing stimulus & results Half-adder testbench that computes expected results library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity testbench is end testbench; Midia Reshadi 36 18

19 Computing stimulus &Results architecture behavior of testbench is -- Declare signals to assign values to and to observe signal a_tb, b_tb, sum_tb, carry_out_tb : std_logic; begin -- Create an instance of the circuit to be tested uut: entity half_adder port map(a => a_tb, b => b_tb, sum => sum_tb, carry_out => carry_out_tb); -- Define a process to apply input stimulus and test outputs Midia Reshadi 37 Computing stimulus &Results tb : process constant period: time := 20 ns; constant n: integer := 2; begin -- Apply every possible input combination for i in 0 to 2**n - 1 loop (a_tb, b_tb) <= to_unsigned(i,n); wait for period; assert ((sum_tb = (a_tb xor b_tb)) and (carry_out_tb = (a_tb and b_tb)) ) report "test failed" severity error; end loop; wait; -- indefinitely suspend process end process; end; Midia Reshadi 38 19

20 VHDL shift operators Logical Shifts shift Arithmetic is opposite Shifts Shift operators b" " sll 3 = b" b" " sll -3 = b" If n is a negative integer -> the direction of the b" " sra 2 = b" a copy of the leftmost bit is shifted A shift left arithmetic shifts in a copy of the rightmost bit of the original operand. For example: b" " sla 2 = b" " Midia Reshadi 39 Rotates Shift operators The rorand rolrotate operations are similar to the srl and sll shift operations except the bit rotated out of one end of the vector is rotated into the other end. Midia Reshadi 40 20

21 Stimulus order based Testbench for ic74f539 with stimulus application order based on UUT functionality library ieee; use ieee.numeric_std.all; use ieee.std_logic_1164.all; entity ic74f539_tb is end ic74f539_tb; Midia Reshadi 41 Stimulus order based architecture tb_architecture of ic74f539_tb is -- Stimulus signals signal a : std_logic_vector(1 downto 0); signal p : std_logic; signal e_bar : std_logic; signal oe_bar : std_logic; -- Observed signals signal o : std_logic_vector(3 downto 0); -- stimulus application interval constant period : time := 20 ns; Midia Reshadi 42 21

22 Stimulus order based Midia Reshadi 43 Stimulus order based begin -- Unit Under Test port map UUT : entity ic74f539 port map (a => a, p => p, e_bar => e_bar, oe_bar => oe_bar, o => o); -- Stimulus and monitor process stim_mon: process variable o_exp : std_logic_vector(3 downto 0); begin -- verify output enable functionality oe_bar <= '1'; for i in 0 to 15 loop (p, e_bar, a(1), a(0)) <= to_unsigned(i, 4); wait for period; assert (o = "ZZZZ") report "output enable failed" severity error; end b; Midia Reshadi 44 22

23 Stimulus order based Midia Reshadi 45 Stimulus order based -- verify enable unasserted functionalify oe_bar <= '0'; e_bar <= '1'; for i in 0 to 7 loop (p, a(1), a(0)) <= to_unsigned(i, 3); wait for period; o_exp := p & p & p & p; assert (o = o_exp) report "enable unasserted failed" severity error; end loop; Midia Reshadi 46 23

24 Stimulus order based Midia Reshadi 47 Stimulus order based -- verify enable asserted decoder functionality e_bar <= '0'; for i in 0 to 7 loop (p, a(1), a(0)) <= to_unsigned(i, 3); wait for period; o_exp := (p & p & p & p) xor to_stdlogicvector("0001" rol to_integer(unsigned(a))); assert (o = o_exp) report "enable asserted failed" severity error; end loop; wait; end process; end tb_architecture; Midia Reshadi 48 24

25 Stimulus order based Converting a Bit_vector to a Std_logic_vector Midia Reshadi 49 Comparing to a behavioral Comparing to a behavioral intend model 3-to-8 decoder nonsynthesizable intent model library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity decoder_3to8_mod is port ( c, b, a : in std_logic; -- select inputs g1, g2a_bar, g2b_bar: in std_logic; -- enable inputs y_mod : out std_logic_vector(7 downto 0) ); end decoder_3to8_mod; Midia Reshadi 50 25

26 Comparing to a behavioral architecture rotate of decoder_3to8_mod is begin y_mod <= to_stdlogicvector (B"1111_1110" rol to_integer(unsigned'(c, b, a))) when unsigned (g1, g2a_bar, g2b_bar) = "100" else " "; end rotate; Midia Reshadi 51 Comparing to a behavioral A testbenchthat compares the outputs of two models library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity decoder_3to8_tb is end decoder_3to8_tb; Midia Reshadi 52 26

27 Comparing to a behavioral architecture tb_architecture of decoder_3to8_tb is -- Stimulus signals signal c : std_logic; signal b : std_logic; signal a : std_logic; signal g1 : std_logic; signal g2a_bar : std_logic; signal g2b_bar : std_logic; -- Observed signals signal y : std_logic_vector(7 downto 0); signal y_mod : std_logic_vector(7 downto 0); Midia Reshadi 53 Comparing to a behavioral begin -- Unit Under Test port map UUT : entity decoder_3to8 port map (c => c, b => b, a => a, g1 => g1, g2a_bar => g2a_bar, g2b_bar => g2b_bar, y => y ); -- Behavioral Model port map UMOD : entity decoder_3to8_mod port map (c => c, b => b, a => a, g1 => g1, g2a_bar => g2a_bar,g2b_bar => g2b_bar, y_mod => y_mod ); -- Stimulus and verification process tb: process constant period : time := 100 ns; Midia Reshadi 54 27

28 Comparing to a behavioral begin for i in 0 to 63 loop (c, b, a, g1, g2a_bar, g2b_bar) <= std_logic_vector(to_unsigned(i, 6)); wait for period; assert y = y_mod report "error for input vector " & integer'image(i) severity error; end loop; wait; end process; end tb_architecture; Midia Reshadi 55 Code Coverage Tool Code Coverage Determine what source code is executed during a simulation Hierarchy window of code coverage viewer Midia Reshadi 56 28

29 Code coverage view of source code for half adder 4 input by testbench (truth table) + simulation initialization Midia Reshadi 57 Code Coverage Code coverage view of half-adder testbench Midia Reshadi 58 29

30 Branch Coverage Code Coverage Branch coverage view of behavioral half adder Midia Reshadi 59 Post synthesis Hazards in Combinational Circuits A hazard is an output glitch caused by the gate-level structure of a circuit and the propagation delays of its individual gates. Static Hazard brief change (glitch) is caused by differences in propagation delays through different signal paths in the circuit. Dynamic Hazard A dynamic hazard occurs when a change in the input values to a combinational circuit causes an output to briefly change value multiple times when it should have changed value only once Midia Reshadi 60 30

31 Post synthesis Static and dynamic hazards: (a) static 0 hazard (b) static 1 hazard (c) dynamic 0 hazard (d) dynamic 1 hazard. Midia Reshadi 61 Timing verification Using Assertions to Verify Timing in Combinational Systems Process to verify logic and timing of half-adder timing model. tb : process constant tpd_spec : time := 11 ns; constant period: time := 20 ns; constant n: integer := 2; begin -- Apply every possible input combination for i in 0 to 2**n - 1 loop (a_tb,b_tb) <= to_unsigned(i,n); -- Verify output values at specified time wait for tpd_spec; Midia Reshadi 62 31

32 Timing verification assert ((sum_tb = (a_tb xor b_tb)) and (carry_out_tb = (a_tb and b_tb))) report "test failed for a_tb = " & std_logic'image(a_tb) & " and b_tb = " & std_logic'image(b_tb) severity error; -- Verify that outputs do not subsequently chnage Wait for period - tpd_spec; assert sum_tb'quiet(period - tpd_spec) and carry_out_tb'quiet(period - tpd_spec) report "propagation delay specification exceded" severity error; end loop; wait; end process; end; Midia Reshadi 63 Timing verification Process to verify logic and timing of halfadder timing model. Quiet is true when no transaction is occured Midia Reshadi 64 32

33 Timing Model the timing model automatically generated by the place-and-route tool. the timing model consists of two files a delaylessstructural VHDL netlist a non-vhdl text file that contains timing delay information Generics can be any type entity_declaration ::= entity identifier is [ generic ( generic_interface_list ) ; ] [ port ( port_interface_list ) ; ] end [ entity ] [ entity_simple_name ] ; Midia Reshadi 65 Timing Model Generics (Cont, ) Generics in a Timing Model Specifying delay times Trivial timing model for a half adder library ieee; use ieee.std_logic_1164.all; entity half_adder is generic ( tpd : time := 10 ns); port (a, b : in std_logic; sum, carry_out: out std_logic); end half_adder; Midia Reshadi 66 33

34 Timing Model architecture dataflow of half_adder is begin sum <= a xor b after tpd; carry_out <= a and b after tpd; end dataflow; Midia Reshadi 67 Netlist Block diagram of interconnection of SPARTAN II primitives to implement a half adder. Midia Reshadi 68 34

35 Netlist Partial VHDL netlist generated by a place-and-route tool library IEEE; use IEEE.STD_LOGIC_1164.ALL; library SIMPRIM; use SIMPRIM.VCOMPONENTS.ALL; use SIMPRIM.VPACKAGE.ALL; entity half_adder is port ( sum : out STD_LOGIC; a : in STD_LOGIC := 'X'; Midia Reshadi 69 Netlist b : in STD_LOGIC := 'X'; carry_out : out STD_LOGIC ); end half_adder; architecture Structure of half_adder is signal a_c_0 : STD_LOGIC; signal b_c_0 : STD_LOGIC; signal carry_out_outmux_0 : STD_LOGIC; signal sum_outmux_1 : STD_LOGIC; signal a_c : STD_LOGIC; signal b_c : STD_LOGIC; signal sum_c : STD_LOGIC; signal carry_out_c : STD_LOGIC; signal VCC : STD_LOGIC; Midia Reshadi 70 35

36 Netlist begin -- several component instances have been removed sum_0_x2 : X_LUT4 generic map(init => X"5A5A", LOC => "CLB_R4C1.S0" ) port map (ADR0 => b_c_0, ADR1 => VCC, ADR2 => a_c_0, ADR3 => VCC, O => sum_c); sum_outmux : X_BUF generic map(loc => "PAD85") port map (I => sum_c, O => sum_outmux_1 ); sum_obuf : X_OBUF generic map(loc => "PAD85") port map (I => sum_outmux_1, O => sum ); end Structure; Midia Reshadi 71 SDF Standard Delay Format (SDF) was originally developed by Cadence Design Systems A file format for conveying timing and delay information between EDA tools For simulation of designs written in the Verilog language SDF is now used to convey timing and delay information into both VHDL and Verilog simulations Midia Reshadi 72 36

37 SDF SDF contains constructs for the description of computed timing data for back annotation and the specification of timing constraints for forward annotation. An individual component in a technology library is called a cell. Midia Reshadi 73 SDF Partial SDF file for half-adder simulation (DELAYFILE (SDFVERSION "3.0") (DESIGN "half_adder") (DATE "Tue May 29 15:43: ") (VENDOR "Xilinx") (PROGRAM "Xilinx SDF Writer") (VERSION "I.24") (DIVIDER /) (VOLTAGE 2.375) (TEMPERATURE 85) (TIMESCALE 1 ps) ) Midia Reshadi 74 37

38 SDF (CELL(CELLTYPE "X_LUT4") (INSTANCE sum_0_x2) (DELAY (ABSOLUTE (PORT ADR0 (568)) (PORT ADR2 (1022)) (IOPATH ADR0 O (284)) (IOPATH ADR1 O (284)) (IOPATH ADR2 O (284)) (IOPATH ADR3 O (284)) ) (CELL(CELLTYPE "X_BUF") (INSTANCE carry_out_outmux) (DELAY Midia Reshadi 75 SDF (DELAY (ABSOLUTE (IOPATH I O (2603)) (CELL (CELLTYPE "X_OBUF") (INSTANCE sum_obuf) (DELAY (ABSOLUTE (PORT I (1042)) (IOPATH I O ( 3428)) Midia Reshadi 76 38

39 VITAL Simulation vahyt-l Waveforms from timing simulation of half adder implemented in a SPARTAN II FPGA. Midia Reshadi 77 Questions? Midia Reshadi 78 39

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

Hardware Synthesis. References

Hardware Synthesis. References Hardware Synthesis MidiaReshadi CE Department Science and research branch of Islamic Azad University Email: ce.srbiau@gmail.com 1 References 2 1 Chapter 1 Digital Design Using VHDL and PLDs 3 Some Definitions

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

2/14/2016. Hardware Synthesis. Midia Reshadi. CE Department. Entities, Architectures, and Coding.

2/14/2016. Hardware Synthesis. Midia Reshadi. CE Department.   Entities, Architectures, and Coding. Hardware Synthesis MidiaReshadi CE Department Science and research branch of Islamic Azad University Email: ce.srbiau@gmail.com Midia Reshadi 1 Chapter 2 Entities, Architectures, and Coding Styles Midia

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

CDA 4253 FPGA System Design VHDL Testbench Development. Hao Zheng Comp. Sci & Eng USF

CDA 4253 FPGA System Design VHDL Testbench Development. Hao Zheng Comp. Sci & Eng USF CDA 4253 FPGA System Design VHDL Testbench Development Hao Zheng Comp. Sci & Eng USF art-4- > 70% projects spent > 40% time in verification 2 Validation, Verification, and Testing Validation: Does the

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

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

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

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

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

Lecture 3: Modeling in VHDL. EE 3610 Digital Systems

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

More information

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

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

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

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

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

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

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

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

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

Introduction to VHDL. Main language concepts

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

More information

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

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

DIGITAL LOGIC WITH VHDL (Fall 2013) Unit 1

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

VHDL Testbench. Test Bench Syntax. VHDL Testbench Tutorial 1. Contents

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

VHDL BASIC ELEMENTS INTRODUCTION

VHDL BASIC ELEMENTS INTRODUCTION VHDL BASIC ELEMENTS INTRODUCTION VHDL Basic elements Identifiers Basic identifiers Extended identifiers Data Objects Constant Variable Signal File Data Types Scalar Composite Access File type Identifiers

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

IT T35 Digital system desigm y - ii /s - iii

IT T35 Digital system desigm y - ii /s - iii UNIT - V Introduction to Verilog Hardware Description Language Introduction HDL for combinational circuits Sequential circuits Registers and counters HDL description for binary multiplier. 5.1 INTRODUCTION

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

Experiment 8 Introduction to VHDL

Experiment 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 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 4. VHDL Basics. Simple Testbenches

Lecture 4. VHDL Basics. Simple Testbenches Lecture 4 VHDL Basics Simple Testbenches George Mason University Required reading P. Chu, RTL Hardware Design using VHDL Chapter 2, Overview of Hardware Description Languages Chapter 3, Basic Language

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

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

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

Introduction to the VHDL language. VLSI Digital Design

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

More information

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

JUNE, JULY 2013 Fundamentals of HDL (10EC45) PART A

JUNE, JULY 2013 Fundamentals of HDL (10EC45) PART A JUNE, JULY 2013 Fundamentals of HDL (10EC45) Time: 3hrs Max Marks:100 Note: Answer FIVE full questions, selecting at least TWO questions from each part. PART A Q1.a. Describe VHDL scalar data types with

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

COE 405 Design Methodology Based on VHDL

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

More information

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

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

Getting Started with VHDL

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

VHDL Simulation. Testbench Design

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

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

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

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

Logic Verification 13-1

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

More information

VHDL. Douglas L. Perry. Third Edition

VHDL. Douglas L. Perry. Third Edition VHDL Douglas L. Perry Third Edition McGraw-Hill New York San Francisco Washington, D.C. Auckland Bogota Caracas Lisbon London Madrid Mexico City Milan Montreal New Delhi San Juan Singapore Sydney Tokyo

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

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

Post-Synthesis Simulation. VITAL Models, SDF Files, Timing Simulation

Post-Synthesis Simulation. VITAL Models, SDF Files, Timing Simulation Post-Synthesis Simulation VITAL Models, SDF Files, Timing Simulation Post-synthesis simulation Purpose: Verify correctness of synthesized circuit Verify synthesis tool delay/timing estimates Synthesis

More information

CCE 3202 Advanced Digital System Design

CCE 3202 Advanced Digital System Design CCE 3202 Advanced Digital System Design Lab Exercise #2 Introduction You will use Xilinx Webpack v9.1 to allow the synthesis and creation of VHDLbased designs. This lab will outline the steps necessary

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

A bird s eye view on VHDL!

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

More information

!"#$%&&"'(')"*+"%,%-".#"'/"'.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

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

EITF35: Introduction to Structured VLSI Design

EITF35: Introduction to Structured VLSI Design EITF35: Introduction to Structured VLSI Design Part 1.2.2: VHDL-1 Liang Liu liang.liu@eit.lth.se 1 Outline VHDL Background Basic VHDL Component An example FSM Design with VHDL Simulation & TestBench 2

More information

INTRODUCTION TO VHDL ADVANCED COMPUTER ARCHITECTURES. Slides by: Pedro Tomás. Additional reading: - ARQUITECTURAS AVANÇADAS DE COMPUTADORES (AAC)

INTRODUCTION TO VHDL ADVANCED COMPUTER ARCHITECTURES. Slides by: Pedro Tomás. Additional reading: - ARQUITECTURAS AVANÇADAS DE COMPUTADORES (AAC) INTRODUCTION TO VHDL Slides by: Pedro Tomás Additional reading: - ADVANCED COMPUTER ARCHITECTURES ARQUITECTURAS AVANÇADAS DE COMPUTADORES (AAC) Outline 2 Hardware Description Languages (HDL) VHDL Very

More information

Tutorial on VHDL and Verilog Applications

Tutorial on VHDL and Verilog Applications Second LACCEI International Latin American and Caribbean Conference for Engineering and Technology (LACCEI 2004) Challenges and Opportunities for Engineering Education, Research and Development 2-4 June

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

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

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

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

Designing with VHDL and FPGA

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

Introduction to Verilog

Introduction to Verilog Introduction to Verilog COE 202 Digital Logic Design Dr. Muhamed Mudawar King Fahd University of Petroleum and Minerals Presentation Outline Hardware Description Language Logic Simulation versus Synthesis

More information

[1] Douglas L. Perry, VHDL, third edition, ISBN , McRaw- Hill Series on Computer Engineering.

[1] Douglas L. Perry, VHDL, third edition, ISBN , McRaw- Hill Series on Computer Engineering. Lecture 12 1 Reference list [1] Douglas L. Perry, VHDL, third edition, ISBN 0-07-049436-3, McRaw- Hill Series on Computer Engineering. [2] Kevin Skahil, VHDL for programmable logic, ISBN 0-201-89586-2

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

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

Tutorial on Simulation using Aldec Active-HDL Ver 1.0

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

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

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

More information

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

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

More information

VHDL 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

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

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

DIGITAL LOGIC DESIGN VHDL Coding for FPGAs Unit 3

DIGITAL LOGIC DESIGN VHDL Coding for FPGAs Unit 3 DIGITAL LOGIC DESIGN VHDL Coding for FPGAs Unit 3 BEHAVIORAL DESCRIPTION Asynchronous processes (decoder, mux, encoder, etc): if-else, case, for-loop. Arithmetic expressions inside asynchronous processes.

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

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

Arithmetic Circuits. Nurul Hazlina Adder 2. Multiplier 3. Arithmetic Logic Unit (ALU) 4. HDL for Arithmetic Circuit

Arithmetic Circuits. Nurul Hazlina Adder 2. Multiplier 3. Arithmetic Logic Unit (ALU) 4. HDL for Arithmetic Circuit Nurul Hazlina 1 1. Adder 2. Multiplier 3. Arithmetic Logic Unit (ALU) 4. HDL for Arithmetic Circuit Nurul Hazlina 2 Introduction 1. Digital circuits are frequently used for arithmetic operations 2. Fundamental

More information

Field Programmable Gate Array

Field Programmable Gate Array Field Programmable Gate Array System Arch 27 (Fire Tom Wada) What is FPGA? System Arch 27 (Fire Tom Wada) 2 FPGA Programmable (= reconfigurable) Digital System Component Basic components Combinational

More information

Design a 4 bit-adder. Then design a 4-7 decoder to show the outputs. Output Sum(4 bits) Adder. Output carry(1 bit)

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

Verilog for Combinational Circuits

Verilog for Combinational Circuits Verilog for Combinational Circuits Lan-Da Van ( 范倫達 ), Ph. D. Department of Computer Science National Chiao Tung University Taiwan, R.O.C. Fall, 2014 ldvan@cs.nctu.edu.tw http://www.cs.nctu.edu.tw/~ldvan/

More information

VHDL kod yerleşimi. kütüphaneler. Dış görünüş (entity: varlık) İşleyişi, yapısı (architecture: mimari)

VHDL kod yerleşimi. kütüphaneler. Dış görünüş (entity: varlık) İşleyişi, yapısı (architecture: mimari) VHDL Basics VHDL kod yerleşimi library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; kütüphaneler entity and_gate_3_1 is port ( a:in std_logic; b:in

More information

Review. LIBRARY list of library names; USE library.package.object; ENTITY entity_name IS generic declarations PORT ( signal_name(s): mode signal_type;

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

VHDL. Chapter 1 Introduction to VHDL. Course Objectives Affected. Outline

VHDL. Chapter 1 Introduction to VHDL. Course Objectives Affected. Outline Chapter 1 Introduction to VHDL VHDL VHDL - Flaxer Eli Ch 1-1 Course Objectives Affected Write functionally correct and well-documented VHDL code, intended for either simulation or synthesis, of any combinational

More information

VHDL: A Crash Course

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

More information

ECE 545 Lecture 12. FPGA Resources. George Mason University

ECE 545 Lecture 12. FPGA Resources. George Mason University ECE 545 Lecture 2 FPGA Resources George Mason University Recommended reading 7 Series FPGAs Configurable Logic Block: User Guide Overview Functional Details 2 What is an FPGA? Configurable Logic Blocks

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

Assignment 01 Computer Architecture Lab ECSE

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

CPE 626 Advanced VLSI Design Lecture 6: VHDL Synthesis. Register File: An Example. Register File: An Example (cont d) Aleksandar Milenkovic

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

HDL. Hardware Description Languages extensively used for:

HDL. Hardware Description Languages extensively used for: HDL Hardware Description Languages extensively used for: Describing (digital) hardware (formal documentation) Simulating it Verifying it Synthesizing it (first step of modern design flow) 2 main options:

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