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

Size: px
Start display at page:

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

Transcription

1 !"#$%&&"'(')"*+"%,%-".#"'/"'.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)#<*+"+#,-."/0110#2+"2+--0"5)=! (.-).860*:#-.99-0*0"5."+#(.-).8)6)#.66>)"50-"+#/)#7"# 9-+20**+#<*+"+#,-."/0110#*0?70"1).6)=!!"+65-0#*)#9+**+"+#/0;)")-0#/0)#97"5.5+-)#.#;)60*# <+(().40"50#90-#86+223)#97-.40"50# variable x: integer; signal abc: bit; constant Vdd: real := 12.3;

2 !"#$%&&"'(')%#*+!!"#$%&'#(")*&+,-.#%),#/-,)0.11,#,#-"2,).-.#,++'")3.-)&#0"#%)#*.-3&#*,2$&#0"#(,-",4+"3,'# 56-,)/.78! 9+#-,)/.#(,#:$.*";"*,3&#")#;,:.#0"# 0"*<",-,1"&).## entity COMPARE_digit is port (a, b : in integer range 1 to 10; c : out boolean); end COMPARE_digit; variable ABC: real range 1.0 to 10.0;

3 !"#$%&&"'(')*&$%#$&!!"#$%&'()*+),)-.*/$'(-)*"(*0"$1*0'2&"*-.%* %"#&'&)*#"*3'*2"3.2",.(&)*'%%'*#&.##'*42'(-.55'* +)#&'(&.! 6.*+)#&'(&"*0)##)()*.##.2.*-"+7"'2'&.* '%%1"(&.2()*-"*$(*0'8'4.9*.(&"&:*)*'2+7"&.+&$2. constant Vdd: Real := 4.5; constant CYCLE : Time := 100 ns; constant PI : Real := 3.14; constant FIVE : std_logic_vector (0 to 3) := "0101";

4 !"#$%&&"'('!")#%*&!!"#"$%&'()*'+,"#-$.-,$/0"%%-1'2-#),$3,(,0,4! 5'##"$0"26#,0'*-$)*'$%"*"$7'*,-$-#),)8! 9#$(-1#'%-$:6"&$-((-*-$,#,+,'%,++')"$ %&,#,+,'%,++'+,"#-$:")*-CC-$-((-*-$.,('))-('DE! A#$6#&$-#),)8$6#$(-1#'%-$7,-#-$.,0F,'*')"$ )*'2,)-$%'$port signal count: integer range 1 to 10; signal GROUND: bit :=0 ; signal SYS_BUS : std_logic_vector (7 downto 0); port (A, B : in std_logic);

5 !"#$%&&"'(')%*"%+,-&!!"#$%#&'#(')*$%'*"*$'+,'*-#.#$"*'$process! )/#00*-"#+*".1$2*)$%#)1&*$#2$3"#$%#&'#(')*$ #%%'*"*$'0.#".#"*#+*".*$'"$0'+3)#4'1"*$ 5#))/1,,10.1$2'$3"$0*-"#)*$,*&$63'$ )#00*-"#+*".1$#%%'*"*$'"$(#0*$#)$$7.*+,1$2'$ 0'+3)#4'1"*89! 2*%*$*00*&*$2'6:'#&#.#$,&'+#$2'$*00*&*$30#.# variable INDEX : integer range 1 to 50; variable CYCLE : time range 10 ns to 50 ns := 10ns; varaible MEMORY : bit_vector (0 to 7); variable x,y,z : integer;

6 !"#$%&&"'(')*+,)&&"-#&!!"#"$%"&'()*$+',+*-./*$,*&$0.)0").&*$(#$ &+1()/./"! 23",*&.#4"$4+,*#4*$4.))*$-&.#4*55*$(1./*$ 0"'*$",*&./"&+! 6)0(#+$",*&.#4+$&+1+*4"#"$+#$.,,"1+/+$,.7.-*1! 8*#*&.)'*#/*$-)+$",*&.#4+$4*9"#"$*11*&*$ 4*))"$1/*11"$/+,"! 6)/&+'*#/+$1+$4*9*$*1,)+0+/.&*$).$0"#9*&1+"#* " :;;<;: "

7 !"#$%&&"'(')*+,%#-"!!"#$%$& and, or, nand, nor, xor! '()*+$",*)$ =, /=, <, <=, >, >=! -",%*.(,*+$",(/(/*0$.,(.$%$ &, +, -, *, /, mod, rem, **, abs!!"#$%$& not! 1234&/$)/50(%(6(,.(/()(,%"/(7/"06$,*."/$,/ 8*9(/*))*/50$".$.*7/

8 Logical (lowest precedence) Operators AND, OR, NAND, NOR, XOR, XNOR Relational Shift =, /=, <, <=, >, >= SLL, SRL, SLA, SRA, ROL, ROR Adding (including concatenation) +, -, & Multiplying *, /, MOD (modulus), REM (remainder) Misc (highest precedence) ABS (absolute), ** (exponentiation), NOT Jim Duckworth, WPI 17 VHDL Basics - Module 2

9 Logical Operators (cont d) may be used with predefined (single element and one-dimensional array) bit, std_logic, and Boolean types d <= a AND c; -- assume a, b, c, d, e, are type std_logic Relational d <= b NOR c; d <= a NAND b NAND c; -- illegal NAND/NOR sequence -- not associative d <= (a NAND b) NAND c; -- use parentheses NOTE: not three-input NAND gate d <= a OR (b AND c); e <= (b AND d) XOR (a NAND c); used for comparison operations. two operands must be same type - result is a Boolean value c <= a = b; -- assume a and b are type integer Jim Duckworth, WPI 18 VHDL Basics - Module 2

10 Operators (cont d) Adding Operators +,- for integer operands (NOT for bits or bit_vectors) also supported for SIGNED and UNSIGNED data types in signed and unsigned packages & (concatenation) for single elements or one-dimensional array LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_unsigned.all; -- for arithmetic operations ENTITY test4 IS PORT(i, j : IN integer RANGE 0 TO 99; a, b : IN std_logic_vector(7 DOWNTO 0); k : OUT integer RANGE 0 TO 99; c, d : OUT std_logic_vector (7 DOWNTO 0)); END test4; Jim Duckworth, WPI 19 VHDL Basics - Module 2

11 Operators (cont d) ARCHITECTURE arch OF test4 IS k <= i + j; -- ok for integers c <= a + b; -- ok for std_logic if unsigned included d <= a(5 DOWNTO 0) & b(7 DOWNTO 6); END arch; Jim Duckworth, WPI 20 VHDL Basics - Module 2

12 Synthesis Results Jim Duckworth, WPI 21 VHDL Basics - Module 2

13 Synthesis Results Jim Duckworth, WPI 22 VHDL Basics - Module 2

14 Concurrent Signal Assignments Module 3 Jim Duckworth, WPI 1 Concurrent Signal Assignments - Module 3

15 Concurrent Signal Assignment Signals that appear outside of a process Event-triggered, when an event (change in value) occurs on one of the signals in the expression Three types concurrent signal assignment conditional signal assignment selected signal assignment Jim Duckworth, WPI 2 Concurrent Signal Assignments - Module 3

16 Concurrent Signal Assignment (cont d) ARCHITECTURE example OF full_adder sum <= a XOR b XOR c; temp <= a AND b; cout <= temp AND c; END example; Any time an event occurs on signals a, b, or c the concurrent signal assignments are re-executed. Signals in expression act like sensitivity list for process Equivalent process statement: PROCESS (a, b, c) sum <= a XOR b XOR c; END PROCESS; Jim Duckworth, WPI 3 Concurrent Signal Assignments - Module 3

17 Conditional Signal Assignment Selects different values for the target signal priority associated with series of WHEN.. ELSE Similar to an IF statement example multiplexer: i0 i1 i2 i3 q ARCHITECTURE example OF mux IS q <= i0 WHEN a = 0 AND b = 0 ELSE i1 WHEN a = 1 AND b = 0 ELSE i2 WHEN a = 0 AND b = 1 ELSE i3 WHEN a = 1 AND b = 1 ELSE X ; -- driven unknown END example; a b Jim Duckworth, WPI 4 Concurrent Signal Assignments - Module 3

18 Complete VHDL Jim Duckworth, WPI 5 Concurrent Signal Assignments - Module 3

19 Synthesis Results RTL Schematic Jim Duckworth, WPI 7 Concurrent Signal Assignments - Module 3

20 Synthesis Results Technology Schematic Jim Duckworth, WPI 8 Concurrent Signal Assignments - Module 3

21 Selected Signal Assignment Selects different values for a target signal no priority associated with input conditions Similar to a CASE statement ARCHITECTURE example OF mux IS WITH sel SELECT q <= i0 WHEN 00, i1 WHEN 01, i2 WHEN 10, i3 WHEN 11, X WHEN OTHERS; END example; Jim Duckworth, WPI 10 Concurrent Signal Assignments - Module 3

22 Selected Signal Assignment (cont d) Another example using enumerated type ARCHITECTURE example OF alu IS TYPE op_code IS (and_op, or_op, add_op, sub_op); SIGNAL inst : op_code; inst <= -- inst gets some value; WITH inst SELECT result <= a AND b WHEN and_op, a OR b WHEN or_op, a + b WHEN add_op, a - b WHEN sub_op; END example; Jim Duckworth, WPI 11 Concurrent Signal Assignments - Module 3

23 Selected Signal Assignment (cont d) Another example ARCHITECTURE example OF sel IS WITH x SELECT z <= a WHEN 1 2, b WHEN 3 TO 6, c WHEN OTHERS; END example; Jim Duckworth, WPI 12 Concurrent Signal Assignments - Module 3

24 Aggregates A set of comma separated elements enclosed in parenthesis Denotes the value of a composite type (array or record) Value specified by listing the value of each element bus_a <= ; bus_b <= (OTHERS => 0 ); bus_c <= (2 => 0, 6 => 0, OTHERS => 1 ); Jim Duckworth, WPI 14 Concurrent Signal Assignments - Module 3

25 Drivers I drivers vengono creati attraverso assegnazione di segnale. Driver Multipli: molto utili per gestire data-bus, bus bi-direzionali, vengono risolti in un unico valore dalle cosiddette resolution functions Errori nella gestione dei drivers ENTITY mio_mux IS PORT( i0,i1,i2,i3,a,b:in std_logic; q : OUT std_logic); END mio_mux; ARCHITECTURE sbagliata OF mio_mux IS q <= i0 when a='0' AND b='0' else '0'; q <= i1 when a='1' AND b='0' else '0'; q <= i2 when a='0' AND b='1' else '0'; q <= i3 when a='1' AND b='1' else '0'; END sbagliata; Sono stati creati 4 drivers, ma ci sono ambiguità:una eventuale resolution function, come potrebbe gestire questa situazione? ARCHITECTURE giusta OF mio_mux IS q <= i0 when a='0' AND b='0'else i1 when a='1' AND b='0' else i2 when a='0' AND b='1' else i3 when a='1' AND b='1' else 'X'; END giusta; In questo modo abbiamo un unico driver!

26 The Process Statement Module 4 Jim Duckworth, WPI 1 The Process Statement - Module 4

27 Process Sequential Statements IF statements CASE statements LOOP statement Variable Assignment Signal Assignment Overview Jim Duckworth, WPI 2 The Process Statement - Module 4

28 Architecture - Review An Architecture describes the functionality of an Entity Consists of concurrent statements, e.g. Process Statement Concurrent Signal Assignments Conditional Signal Assignments Concurrent statements - order does not matter -- example of concurrent signal assignments ARCHITECTURE arch OF full_adder IS sum <= a XOR b XOR c; temp <= a AND b; cout <= temp AND c; END arch; Jim Duckworth, WPI 3 The Process Statement - Module 4

29 Process Statement A process is the fundamental building block of architecture bodies. A Process statement is an example of a concurrent statement. It is composed of a set of sequential statements - executes in sequence [process_label:] PROCESS [(sensitivity_list)] [process declarations] sequential statements END PROCESS [process_label]; Sensitivity List shows which signals the process is sensitive to any change on these signals causes process to be executed suspends after executing last sequential statement - waits for another event to occur on signal in sensitivity list Jim Duckworth, WPI 4 The Process Statement - Module 4

30 IF statement Example of a sequential statement - only used in process or subprogram Selects a sequence of statements for execution based on the value of a condition Each condition is checked sequentially until the first condition is true - priority is implied IF opcode = add_op THEN result := abus + b_bus; ELSIF opcode = inc_op THEN IF flag = false THEN result := 0; ELSE result := result + 1; END IF; END IF; -- nested IF statement Jim Duckworth, WPI 5 The Process Statement - Module 4

31 CASE statement Selects one of a number of branches based on the value of an expression Expression must be integer, enumerated type or one-dimensional character array (like bit_vector or std_logic_vector) All possible values must be covered exactly once CASE state IS -- state is an enumerated type in this example WHEN s0 => -- branch 1 counter := 0; state <= s2; WHEN s1 => -- branch 2 state <= s4; WHEN s2 s3 => -- can use set of choices (not logical OR) counter := counter + 1; state <= s0; WHEN OTHERS => -- can use OTHERS to cover remaining values state <= s3; END CASE; Jim Duckworth, WPI 6 The Process Statement - Module 4

32 LOOP STATEMENTS Used to iterate through a set of sequential statements Three types FOR identifier IN range LOOP END LOOP; WHILE boolean_expression LOOP END LOOP; LOOP EXIT WHEN condition_test END LOOP; Jim Duckworth, WPI 7 The Process Statement - Module 4

33 Process example - BCD_COUNT LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_unsigned.all; -- required for addition ENTITY bcd_count IS -- bcd counter PORT (clk, reset: IN std_logic; q : OUT std_logic_vector (3 DOWNTO 0)); END bcd_count; Jim Duckworth, WPI 8 The Process Statement - Module 4

34 BCD_COUNT (cont d) ARCHITECTURE behav OF bcd_count IS SIGNAL temp : std_logic_vector (3 DOWNTO 0); -- two concurrent statements (Process and signal assignment) PROCESS (clk, reset) -- sensitivity list for process IF reset = 1 THEN temp <= 0000 ; ELSIF clk EVENT AND clk = 1 THEN IF temp = 1001 THEN -- check if 9 temp <= 0000 ; -- back to 0 ELSE temp <= temp + 1; -- increment by one END IF; END IF; END PROCESS; q <= temp; END behav; Jim Duckworth, WPI 9 The Process Statement - Module 4

35 Variable Assignment Assigns a new value (immediately) to a variable a := b + 45; -- a and b are integers Variables only used in process or subprograms Declared inside process Not accessible outside of process Need to assign to signal for access outside process Used for temporary storage Jim Duckworth, WPI 12 The Process Statement - Module 4

36 Example ENTITY example2 IS -- PORT(a_bus : IN integer RANGE 0 TO 127; flag : OUT std_logic); END example2; ARCHITECTURE arch OF example2 IS PROCESS(a_bus) VARIABLE j : integer RANGE 0 to 127; --only visible in process j := a_bus / 2; j := j + 4; -- update immediately IF j > 50 THEN flag <= '1'; ELSE flag <= '0'; END IF; END PROCESS; END arch; Jim Duckworth, WPI 13 The Process Statement - Module 4

37 Signal Assignments inside a Process Changes the value of a signal (wire or net) (If outside a process then it is a concurrent statement) If inside a process then executed sequentially with other statements. A signal assignment will supersede a previous assignment to the same signal A signal update occurs after a delta delay (very small delay) - allows for ordering of events. Very important difference: variables updated immediately signals get new values at a later time (usually end of process or when simulation time advances) Jim Duckworth, WPI 14 The Process Statement - Module 4

38 Example ARCHITECTURE behav OF incorrect_example IS SIGNAL a : integer; -- declare internal signal PROCESS(f) VARIABLE j, k : integer; j := f + k; -- j updated immediately a <= j + 1; -- a updated at end of process k := a; -- k gets old value of a END PROCESS END behav; Jim Duckworth, WPI 15 The Process Statement - Module 4

39 Concurrent Signals - Reminder ENTITY test3 IS PORT (a, clk d END test3; : IN std_logic; : OUT std_logic); ARCHITECTURE arch OF test3 IS SIGNAL b, c : std_logic; b <= a; -- order does not matter d <= c; c <= b; END arch; Jim Duckworth, WPI 16 The Process Statement - Module 4

40 RTL Schematic Jim Duckworth, WPI 18 The Process Statement - Module 4

41 Signals in Clocked Process (flip-flops) ENTITY test3a IS PORT (a, clk : IN std_logic; d : OUT std_logic); END test3a; ARCHITECTURE arch OF test3a IS SIGNAL b, c : std_logic; PROCESS (clk) IF clk'event AND clk = '1' THEN b <= a; c <= b; d <= c; END IF; END PROCESS; -- b, c, d updated with previous values of a, b, c END arch; Jim Duckworth, WPI 19 The Process Statement - Module 4

42 RTL Schematic Jim Duckworth, WPI 21 The Process Statement - Module 4

43 Process Overview A process may be used to describe combinational or sequential (clocked) logic. Combinational Logic in combinational logic the outputs are only dependent on the inputs no latches or flip-flops should be generated Sequential Logic contains memory elements (storage) - outputs dependent on both current inputs and past events see next module for examples Jim Duckworth, WPI 22 The Process Statement - Module 4

44 Process Style for Combinational Logic General Rules sensitivity list is required and MUST include all signals used in process Synthesis tools will only provide warning, simulation will fail variables must NOT be used before being set last successive assignment to a signal is last one implemented all outputs should have default values if not, a latch will be generated to hold the current value No WAIT statements allowed in process Jim Duckworth, WPI 23 The Process Statement - Module 4

45 Incorrect Combinational Process Jim Duckworth, WPI 24 The Process Statement - Module 4

46 Latch and constant value generated Jim Duckworth, WPI 25 The Process Statement - Module 4

47 Incorrect Process for Combinational Logic ENTITY comparator IS -- 4-bit magnitude comparator PORT(a,b : IN std_logic_vector(3 DOWNTO 0); equal, less, great : OUT std_logic); END comparator; ARCHITECTURE incorrect OF comparator IS PROCESS(a, b) IF a = b THEN equal <= '1'; ELSIF a <= b THEN less <= '1'; ELSIF a >= b THEN great <= '1'; END IF; END PROCESS; END incorrect; Jim Duckworth, WPI 26 The Process Statement - Module 4

48 Correct Process for Combinational Logic ENTITY comparator IS -- 4-bit magnitude comparator PORT(a,b : IN std_logic_vector(3 DOWNTO 0); equal, less, great : OUT std_logic); END comparator; ARCHITECTURE correct OF comparator IS PROCESS(a, b) equal <= '0'; less <= '0'; great <= '0'; IF a = b THEN equal <= '1'; ELSIF a <= b THEN less <= '1'; ELSIF a >= b THEN great <= '1'; END IF; END PROCESS; END correct; Jim Duckworth, WPI 27 The Process Statement - Module 4

49 Alternative Combinational Process ARCHITECTURE correct2 OF comparator IS -- same as previous? PROCESS(a, b) IF a = b THEN equal <= '1'; ELSE equal <= '0'; END IF; IF a <= b THEN less <= '1'; ELSE less <= '0'; END IF; IF a >= b THEN great <= '1'; ELSE great <= '0'; END IF; END PROCESS; END correct2; Jim Duckworth, WPI 28 The Process Statement - Module 4

50 Concurrent Statements (preferred) ARCHITECTURE preferred OF comparator IS equal <= 1 WHEN a = b ELSE 0 ; less <= 1 WHEN a <= b ELSE 0 ; great <= 1 WHEN a >= b ELSE 0 ; END preferred; Jim Duckworth, WPI 29 The Process Statement - Module 4

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

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

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

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

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

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

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

Sequential Logic - Module 5

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

More information

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

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

More information

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

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

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

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

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

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

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

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

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

ECOM4311 Digital Systems Design

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

More information

VHDL for FPGA Design. by : Mohamed Samy

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

More information

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

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

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

Lecture 12 VHDL Synthesis

Lecture 12 VHDL Synthesis CPE 487: Digital System Design Spring 2018 Lecture 12 VHDL Synthesis Bryan Ackland Department of Electrical and Computer Engineering Stevens Institute of Technology Hoboken, NJ 07030 1 What is Synthesis?

More information

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

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

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

More information

Synthesis 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

Sequential VHDL. Katarzyna Radecka. DSD COEN 313

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

More information

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

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

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

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

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

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

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

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

Digital Systems Design

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

More information

Introduction to VHDL #1

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

More information

VHDL: RTL Synthesis Basics. 1 of 59

VHDL: RTL Synthesis Basics. 1 of 59 VHDL: RTL Synthesis Basics 1 of 59 Goals To learn the basics of RTL synthesis. To be able to synthesize a digital system, given its VHDL model. To be able to relate VHDL code to its synthesized output.

More information

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

Performance Engineering of Real-Time and Embedded Systems. Introduction to VHDL

Performance Engineering of Real-Time and Embedded Systems. Introduction to VHDL Performance Engineering of Real-Time and Embedded Systems Introduction to VHDL VHDL designs are decomposed into blocks. A block has an entity/architecture pair. Entity describes the interface Architecture

More information

Test Benches - Module 8

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

More information

Verilog Module 1 Introduction and Combinational Logic

Verilog Module 1 Introduction and Combinational Logic Verilog Module 1 Introduction and Combinational Logic Jim Duckworth ECE Department, WPI 1 Module 1 Verilog background 1983: Gateway Design Automation released Verilog HDL Verilog and simulator 1985: Verilog

More information

Building Blocks. Entity Declaration. Entity Declaration with Generics. Architecture Body. entity entity_name is. entity register8 is

Building Blocks. Entity Declaration. Entity Declaration with Generics. Architecture Body. entity entity_name is. entity register8 is Building Blocks Entity Declaration entity entity_name is [signal] identifier {, identifier}: [mode] signal_type {; [signal] identifier {, identifier}: [mode] signal_type}); end [entity ] [entity_name];

More information

[VARIABLE declaration] BEGIN. sequential statements

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

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

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

VHDL And Synthesis Review

VHDL And Synthesis Review VHDL And Synthesis Review VHDL In Detail Things that we will look at: Port and Types Arithmetic Operators Design styles for Synthesis VHDL Ports Four Different Types of Ports in: signal values are read-only

More information

Introduction to VHDL #3

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

More information

Concurrent & Sequential Stmts. (Review)

Concurrent & Sequential Stmts. (Review) VHDL Introduction, Part II Figures in this lecture are from: Rapid Prototyping of Digital Systems, Second Edition James O. Hamblen & Michael D. Furman, Kluwer Academic Publishers, 2001, ISBN 0-7923-7439-

More information

The University of Alabama in Huntsville ECE Department CPE Midterm Exam February 26, 2003

The University of Alabama in Huntsville ECE Department CPE Midterm Exam February 26, 2003 The University of Alabama in Huntsville ECE Department CPE 526 01 Midterm Exam February 26, 2003 1. (20 points) Describe the following logic expression (A B D) + (A B C) + (B C ) with a structural VHDL

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

Part 4: VHDL for sequential circuits. Introduction to Modeling and Verification of Digital Systems. Memory elements. Sequential circuits

Part 4: VHDL for sequential circuits. Introduction to Modeling and Verification of Digital Systems. Memory elements. Sequential circuits M1 Informatique / MOSIG Introduction to Modeling and erification of Digital Systems Part 4: HDL for sequential circuits Laurence PIERRE http://users-tima.imag.fr/amfors/lpierre/m1arc 2017/2018 81 Sequential

More information

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

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

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

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

More information

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

Digital Design with SystemVerilog

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

More information

Generatore 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 ;

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

Lattice VHDL Training

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

More information

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

CS211 Digital Systems/Lab. Introduction to VHDL. Hyotaek Shim, Computer Architecture Laboratory

CS211 Digital Systems/Lab. Introduction to VHDL. Hyotaek Shim, Computer Architecture Laboratory CS211 Digital Systems/Lab Introduction to VHDL Hyotaek Shim, Computer Architecture Laboratory Programmable Logic Device (PLD) 2/32 An electronic component used to build reconfigurable digital circuits

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

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

VHDL Structural Modeling II

VHDL Structural Modeling II VHDL Structural Modeling II ECE-331, Digital Design Prof. Hintz Electrical and Computer Engineering 5/7/2001 331_13 1 Ports and Their Usage Port Modes in reads a signal out writes a signal inout reads

More information

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

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

More information

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

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

More information

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

Lecture 4. VHDL Fundamentals. George Mason University

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

More information

Lecture 7. Standard ICs FPGA (Field Programmable Gate Array) VHDL (Very-high-speed integrated circuits. Hardware Description Language)

Lecture 7. Standard ICs FPGA (Field Programmable Gate Array) VHDL (Very-high-speed integrated circuits. Hardware Description Language) Standard ICs FPGA (Field Programmable Gate Array) VHDL (Very-high-speed integrated circuits Hardware Description Language) 1 Standard ICs PLD: Programmable Logic Device CPLD: Complex PLD FPGA: Field Programmable

More information

ENGIN 241 Digital Systems with Lab

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

More information

Chapter 6 Combinational-Circuit Building Blocks

Chapter 6 Combinational-Circuit Building Blocks Chapter 6 Combinational-Circuit Building Blocks Commonly used combinational building blocks in design of large circuits: Multiplexers Decoders Encoders Comparators Arithmetic circuits Multiplexers A multiplexer

More information

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

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

More information

DIGITAL LOGIC WITH VHDL (Fall 2013) Unit 3

DIGITAL LOGIC WITH VHDL (Fall 2013) Unit 3 DIGITAL LOGIC WITH VHDL (Fall 2013) Unit 3 BEHAVIORAL DESCRIPTION Asynchronous processes (decoder, mux, encoder, etc): if-else, case, for-loop. BEHAVIORAL DESCRIPTION (OR SEQUENTIAL) In this design style,

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

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

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

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

More information

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

Control and Datapath 8

Control and Datapath 8 Control and Datapath 8 Engineering attempts to develop design methods that break a problem up into separate steps to simplify the design and increase the likelihood of a correct solution. Digital system

More information

Sequential Statement

Sequential Statement Sequential Statement Sequential Logic Output depends not only on current input values but also on previous input values. Are building blocks of; Counters Shift registers Memories Flip flops are basic sequential

More information

Introduction to VHDL

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

More information

3 Designing Digital Systems with Algorithmic State Machine Charts

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

More information

Modeling Complex Behavior

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

More information

Lecture 4. VHDL Fundamentals. Required reading. Example: NAND Gate. Design Entity. Example VHDL Code. Design Entity

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

More information

! Initially developed under DOD auspices, later standardized as IEEE standards , , & (standard logic data type)

! Initially developed under DOD auspices, later standardized as IEEE standards , , & (standard logic data type) VHDL Introduction, Part I Figures in this lecture are from: Rapid Prototyping of Digital Systems, Second Edition James O. Hamblen & Michael D. Furman, Kluwer cademic Publishers, 2001, ISN 0-7923-7439-8

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

Hardware Description Languages. Modeling Complex Systems

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

More information

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

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 10 Subprograms & Overloading

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

More information

Lecture 4: Modeling in VHDL (Continued ) EE 3610 Digital Systems

Lecture 4: Modeling in VHDL (Continued ) EE 3610 Digital Systems EE 3610: Digital Systems 1 Lecture 4: Modeling in VHDL (Continued ) Sequential Statements Use Process process (sensitivity list) variable/constant declarations Sequential Statements end process; 2 Sequential

More information

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

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

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

More information

EEL 4712 Digital Design Test 1 Spring Semester 2007

EEL 4712 Digital Design Test 1 Spring Semester 2007 IMPORTANT: Please be neat and write (or draw) carefully. If we cannot read it with a reasonable effort, it is assumed wrong. COVER SHEET: Problem: Points: 1 (15 pts) 2 (20 pts) Total 3 (15 pts) 4 (18 pts)

More information

Department of Technical Education DIPLOMA COURSE IN ELECTRONICS AND COMMUNICATION ENGINEERING. Fifth Semester. Subject: VHDL Programming

Department of Technical Education DIPLOMA COURSE IN ELECTRONICS AND COMMUNICATION ENGINEERING. Fifth Semester. Subject: VHDL Programming Department of Technical Education DIPLOMA COURSE IN ELECTRONICS AND COMMUNICATION ENGINEERING Fifth Semester Subject: VHDL Programming Contact Hours/Week : 04 Contact Hours/Semester : 64 CONTENTS No. Of

More information

8 Register, Multiplexer and

8 Register, Multiplexer and 8 Register, Multiplexer and Three-State Inference HDL Compiler can infer Registers (latches and flip flops) Multiplexers Three state gates This chapter discusses methods of inferring different types of

More information

1 ST SUMMER SCHOOL: VHDL BOOTCAMP PISA, JULY 2013

1 ST SUMMER SCHOOL: VHDL BOOTCAMP PISA, JULY 2013 MARIE CURIE IAPP: FAST TRACKER FOR HADRON COLLIDER EXPERIMENTS 1 ST SUMMER SCHOOL: VHDL BOOTCAMP PISA, JULY 2013 Introduction to VHDL Calliope-Louisa Sotiropoulou PhD Candidate/Researcher Aristotle University

More information

Contents. Chapter 9 Datapaths Page 1 of 28

Contents. Chapter 9 Datapaths Page 1 of 28 Chapter 9 Datapaths Page of 2 Contents Contents... 9 Datapaths... 2 9. General Datapath... 3 9.2 Using a General Datapath... 5 9.3 Timing Issues... 7 9.4 A More Complex General Datapath... 9 9.5 VHDL for

More information

Lecture 9. VHDL, part IV. Hierarchical and parameterized design. Section 1 HIERARCHICAL DESIGN

Lecture 9. VHDL, part IV. Hierarchical and parameterized design. Section 1 HIERARCHICAL DESIGN Lecture 9 VHDL, part IV Hierarchical and parameterized design Section 1 HIERARCHICAL DESIGN 2 1 Dealing with Large Digital System Design 1. Apply hierarchy to the design At the highest level use larger

More information

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