Hardware Description Languages. Modeling Complex Systems

Size: px
Start display at page:

Download "Hardware Description Languages. Modeling Complex Systems"

Transcription

1 Hardware Description Languages Modeling Complex Systems 1

2 Outline (Raising the Abstraction Level) The Process Statement if-then, if-then-else, if-then-elsif, case, while, for Sensitivity list Signals vs. Variables Behavior Concurrent processes The Wait statement wait until, wait for, wait on, wait Attributes Modeling State Machines 2

3 Raising the Level of Abstraction Data Output Data input Address R W Memory Module add R1, R2, R3 sub R3, R4, R5 move R7, R3. Instruction Set Simulation CSA statements can easily capture the gate level behavior of digital systems But, higher level digital components have complex behaviors Input/output behavior is not easy to describe at gate level Models may utilize state information Incorporate data structures We need more powerful constructs!!! 3

4 Extending the Event Computation Model Input signals Description of a Complex Process Sig1 <=.. Sig2 <=... Output signals Combinational logic input/output semantics Events on inputs causes re-computation Re-computation may lead to events on outputs Computation of the value and time of output events can be a complex process 4

5 The Process Statement library IEEE; use IEEE.std_logic_1164.all; entity mux4 is port (in0, in1, in2, in3: in std_logic_vector(7 downto 0); sel: in std_logic_vector(1 downto 0); z : out std_logic_vector(7 downto 0)); end entity mux4; architecture behavioral of mux4 is Sensitivity List process (sel, in0, in1, in2, in3) is variable zout: std_logic; Use of variables rather than signals if (Sel = 00 ) then zout := in0; elsif (Sel = 01 ) then Zout := in1; Variable Assignment elsif (Sel = 10 ) then Zout := in2; else Zout:= in3; end if; z <= zout; end process; end architecture behavioral; 5

6 Process Statement Mechanisms Statements in a process are executed sequentially A process body is structured much like conventional C function Declaration and use of variables if-then, if-then-else, case, for and while constructs A process can contain signal assignment statements A process executes concurrently with other processes and other CSA statements. A process takes 0 seconds of simulated time to execute and may schedule events on signals in the future We can think of a process as a big CSA statement! 6

7 Using Concurrent Processes: Full Adder Example In1 In2 Half Adder s1 Half Adder s2 sum c_in c_out s3 port Internal signal Model using processes Each of the components of the full adder can be modeled using a process Processes execute concurrently Processes communicate via signals 7

8 Using Concurrent Processes: Full Adder Example library IEEE; use IEEE.std_logic_1164.all; entity full_adder is port (in1, c_in, in2: in std_logic; sum, c_out : out std_logic); end entity full_adder; architecture beh of full_adder is signal s1, s2, s3: std_logic; HA1: process (in1, in2) is s1 <= (In1 xor In2); s3 <= (In1 and In2); end process HA1; HA2: process(s1,c_in) is sum <= (s1 xor c_in); s2 <= (s1 and c_in); end process HA2; OR1: process (s2, s3) is -- process describing the -- two-input OR gate c_out <= (s2 or s3); end process OR1; end architecture beh; 8

9 Using Concurrent Processes: Half Adder Example library IEEE; use IEEE.std_logic_1164.all; entity half_adder is port (a, b : in std_logic; sum, carry : out std_logic); end entity half_adder; architecture behavior of half_adder is sum_proc: process(a,b) is if (a = b) then sum <= 0 ; else sum <= (a or b); end if; end process; carry_proc: process (a,b) is case a is when 0 => carry <= a; when 1 => carry <= b; when others => carry <= X ; end case; end process carry_proc; end architecture behavior; 9

10 Processes + CSAs: Example MemRead MemWrite library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; address write_data read_data entity memory is port (address, write_data: in std_logic_vector (7 downto 0); MemWrite, MemRead, clk, reset: in std_logic; read_data: out std_logic_vector (7 downto 0)); end entity memory; architecture behavioral of memory is signal dmem0,dmem1,dmem2,dmem3: std_logic_vector (7 downto 0); mem_proc: process (rising_edge(clk)) is -- code process body here end process mem_proc; -- code read operation CSA here end architecture behavioral; clk reset 10

11 Process + CSAs: The MemWrite Process mem_proc: process (clk) is if (rising_edge(clk)) then -- wait until next clock edge if reset = 1 then -- initialize values on reset dmem0 <= x 00 ; -- memory locations are initialized to dmem1 <= x 11 ; -- some random values dmem2 <= x 22 ; dmem3 <= x 33 ; elsif MemWrite = 1 then -- if not reset then check for memory write case address (1 downto 0) is when 00 => dmem0 <= write_data; when 01 => dmem1 <= write_data; when 10 => dmem2 <= write_data; when 11 => dmem3 <= write_data; when others => dmem0 <= x ff ; end case; end if; end if; end process mem_proc; 11

12 Process + CSAs: The MemRead Statement -- memory read is implemented with a conditional signal assignment read_data <= dmem0 when address (1 downto 0) = 00 and MemRead = 1 else dmem1 when address (1 downto 0) = 01 and MemRead = 1 else dmem2 when address (1 downto 0) = 10 and MemRead = 1 else dmem3 when address (1 downto 0) = 11 and MemRead = 1 else x 00 ; A process can be viewed as single CSA statement The external behavior is the same as a CSA Processes describe more complex event generation behavior Processes execute concurrently with other CSAs 12

13 Iteration statements There are two iterations statements: For loop While loop 13

14 The For Loop Statement for - loop The index is implicitly declared Scope is local to the loop If a variable or signal with the same name is used elsewhere in the process or architecture (but not in the same loop) it is treated as a distinct object for index in 1 to 32 loop... end loop; 14

15 The While Loop Statement while loop Boolean expression for termination while j < 32 loop j := j+1; end loop; NOT SYNTHESIZABLE!! 15

16 More on Processes Behavior All processes are executed once at start-up After start-up only dependencies between signal values and events on these signals determine process execution Signals behave differently from variables! 16

17 Using Signals in a Process In1 s1 s3 z In2 s2 s4 Entity signals are visible in a process Processes can encapsulate variable and signal assignment statements What is the difference on the model behavior between dataflow (CSAs) and process models? 17

18 Mis-using Signals in a Process library IEEE; use IEEE.std_logic_1164.all; entity combo is port (In1, In2 : in std_logic; z: out std_logic); end entity combo; architecture beh of combo is signal s1, s2, s3, s4: std_logic; s1 <= not In1; s2 <= not In2; s3 <= not (s1 and In2); s4 <= not (s2 and In1); z <= not (s3 and s4); end architecture beh; Encapsulate in a process library IEEE; use IEEE.std_logic_1164.all; entity combo is port (In1, In2: in std_logic; z : out std_logic); end entity combo; architecture beh of combo is signal s1, s2, s3, s4: std_logic; sig_in_proc: process (In1, In2) is s1 <= not In1; s2 <= not In2; s3 <= not (s1 and In2); s4 <= not (s2 and In1); z <= not (s3 and s4); end process sig_in_proc; end architecture beh; 18

19 Mis-using Signals in a Process (cont.) IN1 IN1 IN2 IN2 Z Z S1 S1 S2 S2 S3 S3 S4 S Using CSA statements Using signal assignment statements within a process 19

20 Signals vs. Variables library IEEE; use IEEE.std_logic_1164.all; entity combo is port (In1, In2: in std_logic; z : out std_logic); end entity combo; architecture beh of combo is variable s1, s2, s3, s4: std_logic; sig_in_proc: process (In1, In2) is s1 := not In1; s2 := not In2; s3 := not (s1 and In2); s4 := not (s2 and In1); z <= not (s3 and s4); end process sig_in_proc; end architecture beh; Use variables for computing intermediate values 20

21 Signals vs. Variables -- Process 1 Correct Coding Style proc1: process (x, y, z) is variable var_s1, var_s2: std_logic; var_s1 := x and y; var_s2 := var_s1 xor z; res1 <= var_s1 nand var_s2; end process; Process 2 Incorrect proc2: process (x, y, z) is sig_s1 <= x and y; sig_s2 <= sig_s1 xor z; res2 <= sig_s1 nand sig_s2; end process; variables signals 21

22 The Wait Statement Signal Assignments suspend execution until the next event on a signal on the RHS of the assignment statement This behavior fit in well with the behavior of combinational circuits, in which a change on the input signals may cause a change in the value of the output signal What about modeling circuits for which the outputs are computed only at specific point in time, independently of event on the inputs? We need a more general manner to specify the condition under which the circuit outputs must be recomputed! This capability is provided by the wait statement 22

23 The Wait Statement The wait statement explicitly specifies the conditions under which a process may resume execution after being suspendend. There are four forms of wait statements: wait for time-expression wait on signal wait wait until condition NON SYNTHESIZABLE!! SYNTHESIZABLE!! 23

24 The Wait Statement: Waveform Generation library IEEE; use IEEE.std_logic_1164.all; entity two_phase is port(phi1, phi2, reset: out std_logic); end entity two_phase; architecture behavioral of two_phase is rproc: reset <= 1, 0 after 10 ns; clock_process: process is phi1 <= 1, 0 after 10 ns; phi2 <= 0, 1 after 12 ns, 0 after 18 ns; wait for 20 ns; end process clock_process; end architecture behavioral; events specified by the r e set and clock pr o cesses reset phi1 phi T i me (ns) Note the perpetual behavior of processes 24

25 Example of Positive Edge-Triggered DFF using the Wait Statement library IEEE; use IEEE.std_logic_1164.all; entity dff is port (D, Clk : in std_logic; Q, Qbar : out std_logic); signifies a value change on signal clk end entity dff; architecture behavioral of dff is output: process is wait until (Clk event and Clk = 1 ); -- wait for rising edge Q <= D; -- guideline: use the function Qbar <= not D; -- rising_edge(clk) end process output; end architecture behavioral; 25

26 Example of DFF with Synchronous inputs using the Wait Statement library IEEE; use IEEE.std_logic_1164.all; entity synchdff is port (R, S, D, Clk : in std_logic; Q, Qbar : out std_logic); end entity synchdff; architecture behavioral of synchdff is output: process is wait until (Clk event and Clk = 1 ); -- wait for rising edge if R = 1 then -- check for reset and initialize state Q <= 0 ; Qbar <= 1 ; elsif S= 1 then -- check for set and initialize Q <= 1 ; Qbar <= 0 ; else Q <= D; Qbar <= not(d); end if; end process output; end behavioral; 26

27 Example of DFF with Asynchronous inputs using the Wait Statement library IEEE; use IEEE.std_logic_1164.all; entity asynchdff is port (R, S, D, Clk : in std_logic; Q, Qbar : out std_logic); end entity asynchdff; architecture behavioral of asynchdff is output: process is wait until (R = '1' or S='1' or (clk'event and clk ='1')); if (R='1') then Q <= '0'; Qbar <= '1'; elsif (S='1') then Q <= '1'; Qbar <= '0'; else -- wait for rising edge Q <= D; Qbar <= not(d); end if; end process output; end behavioral; 27

28 How to avoid the use of Wait Statements: example of Positive Edge Triggered DFF library IEEE; use IEEE.std_logic_1164.all; entity dff is port (D, Clk: in std_logic; Q, Qbar: out std_logic); end entity dff; architecture behavioral of dff is output: process (Clk) is if (rising_edge(clk)) then Q <= D; Qbar <= (not D); end if; end process output; end architecture behavioral; 28

29 How to avoid the use of Wait Statements: example of DFF with Synchronous Inputs library IEEE; use IEEE.std_logic_1164.all; entity synch_dff is port (R, S, D, Clk: in std_logic; Q, Qbar: out std_logic); end entity synch_dff; architecture behavioral of synch_dff is output: process (Clk) is if (rising_edge(clk)) then if (R = 0 ) then Q <= 0; Qbar <= 1 ; elsif S = 0 then Q <= 1 ; Qbar <= 0 ; else Q <= D; Qbar <= (not D); end if; end if; end process output; end architecture behavioral; execute on event on any signal implied ordering provides asynchronous set reset 29

30 How to avoid the use of Wait Statements: example of DFF with Asynchronous Inputs library IEEE; use IEEE.std_logic_1164.all; entity asynch_dff is port (R, S, D, Clk: in std_logic; Q, Qbar: out std_logic); end entity asynch_dff; architecture behavioral of asynch_dff is output: process (R, S, Clk) is if (R = 0 ) then Q <= 0; Qbar <= 1 ; elsif S = 0 then Q <= 1 ; Qbar <= 0 ; elsif (rising_edge(clk)) then Q <= D; Qbar <= (not D); end if; end process output; end architecture behavioral; implied ordering provides asynchronous set reset execute on event on any signal 30

31 In Summary: The Wait Statement Wait statements provide explicit control over suspension and resumption of processes and can be used to represent both synchronous and asynchronous events A process can have multiple wait statements A process cannot have both a wait statement and a sensitivity list (it should have one or the other): Why? 31

32 Wait Statements style vs. Sensitivity List style Guideline: Do not use wait statements, use the sensitivity list Using wait statements, logic associated with each clock has to be described in a different process, and synchronous logic has to be separated from combinational logic. 32

33 In Summary: The Process Statement A process statement is a concurrent statement, but all statements contained in it are sequential statement (statements that executes serially, one after another). The use of processes allows to raise the level of abstraction (support advanced language constructs) usable, makes your code more modular, more readable, and allows you to separate combinational logic from sequential logic. 33

34 In Summary: The sensitivity list List of all signals that the process is sensitive to. Sensitive means that a change in the value of these signals will cause the process to be invoked. 34

35 For Combinational Logic: the sensitivity list must be complete!!! process (a) variable a_or_b; begin a_or_b := a or b; z <= a_or_b; end process; -- since b is not in the -- sensitivity list, when -- a change occurs on b -- the process is not -- invoked, so the value -- of z is not updated -- (still remembering the -- old value of z) 35

36 Combinational Logic: incomplete sensitivity list effect a b z z (VHDL) (gate level) 36

37 For Combinational Logic: What to put in sensitivity list? All signals you do a test on and all signals that are on the right side of an assignment. In other words all the signals you are reading in the value Don t read and write a signal at the same time!!! 37

38 Bad coding example: delta time issues!!! write architecture bad of logic is signal a_or_b : std_logic; begin logic_p: process(a,b,c) begin a_or_b <= a or b; z <= a_or_b and c; end process; end bad; read Do not read and write a signal at the same time!!! 38

39 How to fix the bad coding example architecture good of logic is variable a_or_b : std_logic; begin logic_p: process(a,b,c) begin a_or_b := a or b; z <= a_or_b and c; end process; end good; 39

40 Predefined Attributes Value attributes returns a constant value Function attributes invokes a function that returns a value Signal attributes creates a new signal Type Attributes Supports queries about the type of VHDL objects (Advanced Topic: Let s procrastinate for now ) Range attributes returns a range 40

41 Value Attributes Return a constant value Examples: type state_type is (state0, state1, state2, state3); state_type left = state0 state_type right = state3 Value attribute type_name left type_name right type_name high type_name low array_name length Value returns the leftmost value of type_name returns the rightmost value of type_name returns the largest value of type_name returns the smallest value of type_name returns the number of elements in array_name 41

42 More examples on value attributes 42

43 More examples on value attributes (cont.) 43

44 Function Attributes Function attributes invoke a function call which returns a value Examples: if (Clk event and Clk = 1 ) Function attribute signal_name event signal_name active Function Return a Boolean value signifying a change in value on this signal Return a Boolean value signifying an assignment made to this signal. This assignment may not be a new value. signal_name last_event Return the time since the last event on this signal signal_name last_active Return the time since the signal was last active signal_name last_value Return the previous value of this signal 44

45 Function Attributes (cont.) Examples of function array attributes Function attribute array_name left array_name right array_name high array_name low Function returns the left bound of the index range returns the right bound of the index range returns the upper bound of the index range returns the lower bound of the index range 45

46 Range Attributes Returns the index range of a constrained array variable wbus: std_logic_vector(7 downto 0); signal xbus: std_logic_vector(wbus range); 46

47 Signal Attributes Creates a new implicit signal Signal attribute signal_name delayed(t) signal_name transaction signal_name quiet(t) signal_name stable(t) Implicit Signal Signal delayed by T units of time Signal whose value toggles when signal_name is active True when signal_name has been quiet for T units of time True when event has not occurred on signal_name for T units of time Internal signals are useful modeling tools 47

48 Signal Attributes: Example architecture behavioral of attributes is outdelayed <= data'delayed(5 ns); outtransaction <= data'transaction; end attributes; These are real (in simulation) signals and can be used elsewhere in the model 48

49 Modeling State Machines Inputs Combinational logic Outputs 1/0 0/1 s0 s1 0/1 Next state 1/0 S t ate Clk Basic components Combinational component: output function and next state function Sequential component 49

50 Example: State Machine library IEEE; use IEEE.std_logic_1164.all; entity state_machine is port(reset, clk, x : in std_logic; z : out std_logic); end entity state_machine; architecture rtl of state_machine is type statetype is (state0, state1); signal state, next_state : statetype; comb_process: process (state, x) is -- process description here end process comb_process; clk_process: process (clk, reset) is -- process description here end process clk_process; end architecture rtl; 50

51 Example: Output and Next State Functions comb_process: process (state, x) is case state is -- depending upon the current state when state0 => -- set output signals and next state if x = 0 then next_state <= state1; z <= 1 ; else next_state <= state0; z <= 0 ; end if; when state1 => if x = 1 then next_state <= state0; z <= 0 ; else next_state <= state1; z <= 1 ; end if; when others => -- nothing end case; end process comb_process; Combination of the next state and output functions 51

52 Example: Clock Process clk_process: process (clk, reset) is if reset = 1 then -- check for reset and initialize state state <= statetype left; elsif (rising_edge(clk)) state <= next_state; end if; end process clk_process; end architecture rtl; Use of asynchronous reset to initialize into a known state 52

53 Summary Processes variables and sequential signal statements if-then, if-then-else, if-then-elsif, case, while, for concurrent processes sensitivity list The Wait statement wait until, wait for, wait on, wait Attributes Modeling State machines 53

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

Introduction. V H I S C Very High Speed Integrated Circuit. Hardware. Description. Language VHDL. What is VHDL? IEEE Standard (1) (2)

Introduction. V H I S C Very High Speed Integrated Circuit. Hardware. Description. Language VHDL. What is VHDL? IEEE Standard (1) (2) Introduction Sudhakar Yalamanchili, Georgia Institute of Technology, 2006 (1) VHDL What is VHDL? V H I S C Very High Speed Integrated Circuit Hardware Description Language IEEE Standard 1076-1993 (2) History

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

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

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

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

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

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

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

More information

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

Constructing VHDL Models with CSA

Constructing VHDL Models with CSA Constructing VHDL Models with CSA List all components (e.g., gate) inclusive propagation delays. Identify input/output signals as input/output ports. All remaining signals are internal signals. Identify

More information

VHDL Examples Mohamed Zaky

VHDL Examples Mohamed Zaky VHDL Examples By Mohamed Zaky (mz_rasmy@yahoo.co.uk) 1 Half Adder The Half Adder simply adds 2 input bits, to produce a sum & carry output. Here we want to add A + B to produce Sum (S) and carry (C). A

More information

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

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

More information

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

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

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

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

Mridula Allani Fall Fall

Mridula Allani Fall Fall Mridula Allani Fall 2010 Fall 2010 1 Model and document digital systems Hierarchical models System, RTL (Register Transfer Level), gates Different levels of abstraction Behavior, structure Verify circuit/system

More information

Two HDLs used today VHDL. Why VHDL? Introduction to Structured VLSI Design

Two HDLs used today VHDL. Why VHDL? Introduction to Structured VLSI Design Two HDLs used today Introduction to Structured VLSI Design VHDL I VHDL and Verilog Syntax and ``appearance'' of the two languages are very different Capabilities and scopes are quite similar Both are industrial

More information

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

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

More information

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

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

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

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

More information

The process. Sensitivity lists

The process. Sensitivity lists The process process itself is a concurrent statement but the code inside the process is executed sequentially Process label (optional) Process declarative region Process body entity Test is, : in bit;

More information

VHDL. VHDL History. Why VHDL? Introduction to Structured VLSI Design. Very High Speed Integrated Circuit (VHSIC) Hardware Description Language

VHDL. VHDL History. Why VHDL? Introduction to Structured VLSI Design. Very High Speed Integrated Circuit (VHSIC) Hardware Description Language VHDL Introduction to Structured VLSI Design VHDL I Very High Speed Integrated Circuit (VHSIC) Hardware Description Language Joachim Rodrigues A Technology Independent, Standard Hardware description Language

More information

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

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

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

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

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

More information

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

Contents. Appendix D VHDL Summary Page 1 of 23

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

More information

ECE 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

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

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

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

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

Assignment. Last time. Last time. ECE 4514 Digital Design II. Back to the big picture. Back to the big picture

Assignment. Last time. Last time. ECE 4514 Digital Design II. Back to the big picture. Back to the big picture Assignment Last time Project 4: Using synthesis tools Synplify Pro and Webpack Due 11/11 ning of class Generics Used to parameterize models E.g., Delay, bit width Configurations Configuration specification

More information

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

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

SEQUENTIAL STATEMENTS

SEQUENTIAL STATEMENTS SEQUENTIAL STATEMENTS Sequential Statements Allow to describe the behavior of a circuit as a sequence of related events Can be used to model, simulate and synthesize: Combinational logic circuits Sequential

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

VHDL in 1h. Martin Schöberl

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

More information

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

Subprograms, Packages, and Libraries

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

More information

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

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

Summary of FPGA & VHDL

Summary of FPGA & VHDL FYS4220/9220 Summary of FPGA & VHDL Lecture #6 Jan Kenneth Bekkeng, University of Oslo - Department of Physics 16.11.2011 Curriculum (VHDL & FPGA part) Curriculum (Syllabus) defined by: Lectures Lecture6:

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

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

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

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

More information

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

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

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

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

ECE Digital Design Laboratory. Lecture 3 Finite State Machines!

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

More information

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

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

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

Timing in synchronous systems

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

More information

Tutorial 4 HDL. Outline VHDL PROCESS. Modeling Combinational Logic. Structural Description Instantiation and Interconnection Hierarchy

Tutorial 4 HDL. Outline VHDL PROCESS. Modeling Combinational Logic. Structural Description Instantiation and Interconnection Hierarchy CS3: Hardware Lab Tutorial 4 HDL Outline VHDL basic language concepts basic design methodology Examples A. Sahu Dept of Comp. Sc. & Engg. Indian Institute of Technology Guwahati i i i3 i4 Modeling Combinational

More 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

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

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

VHDL: Concurrent Coding vs. Sequen7al Coding. 1

VHDL: Concurrent Coding vs. Sequen7al Coding. 1 VHDL: Concurrent Coding vs. Sequen7al Coding talarico@gonzaga.edu 1 Concurrent Coding Concurrent = parallel VHDL code is inherently concurrent Concurrent statements are adequate only to code at a very

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

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

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

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

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

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

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

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

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

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

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

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

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

DESCRIPTION OF DIGITAL CIRCUITS USING VHDL

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

More information

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

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

Very High Speed Integrated Circuit Har dware Description Language

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

More information

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

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

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

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

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

More information

CMPT 250: Computer Architecture. Using LogicWorks 5. Tutorial Part 1. Somsubhra Sharangi

CMPT 250: Computer Architecture. Using LogicWorks 5. Tutorial Part 1. Somsubhra Sharangi CMPT 250: Computer Architecture Using LogicWorks 5 Tutorial Part 1 Somsubhra Sharangi What is VHDL? A high level language to describe digital circuit Different that a programming language ( such as Java)

More information

EEL 4712 Digital Design Test 1 Spring Semester 2008

EEL 4712 Digital Design Test 1 Spring Semester 2008 IMPORTANT: Please be neat and write (or draw) carefully. If we cannot read it with a reasonable effort, it is assumed wrong. Also, as always, the best answer gets the most points. COVER SHEET: Problem:

More information

Synthesizable Verilog

Synthesizable Verilog Synthesizable Verilog Courtesy of Dr. Edwards@Columbia, and Dr. Franzon@NCSU http://csce.uark.edu +1 (479) 575-6043 yrpeng@uark.edu Design Methodology Structure and Function (Behavior) of a Design HDL

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

CprE 583 Reconfigurable Computing

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

More information

Lecture 5: State Machines, Arrays, Loops. EE 3610 Digital Systems

Lecture 5: State Machines, Arrays, Loops. EE 3610 Digital Systems EE 3610: Digital Systems 1 Lecture 5: State Machines, Arrays, Loops BCD to Excess-3 (XS 3 ) Code Converter Example: Fig. 2-53 2 Easier to use one type of code (e.g. XS 3 ) over the other type (e.g. BCD)

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

The University of Alabama in Huntsville Electrical and Computer Engineering CPE/EE 422/522 Spring 2005 Homework #6 Solution

The University of Alabama in Huntsville Electrical and Computer Engineering CPE/EE 422/522 Spring 2005 Homework #6 Solution 5.3(a)(2), 5.6(c)(2), 5.2(2), 8.2(2), 8.8(2) The University of Alabama in Huntsville Electrical and Computer Engineering CPE/EE 422/522 Spring 25 Homework #6 Solution 5.3 (a) For the following SM chart:

More information

COVER SHEET: Total: Regrade Info: 5 (14 points) 7 (15 points) Midterm 1 Spring 2012 VERSION 1 UFID:

COVER SHEET: Total: Regrade Info: 5 (14 points) 7 (15 points) Midterm 1 Spring 2012 VERSION 1 UFID: EEL 4712 Midterm 1 Spring 2012 VERSION 1 Name: UFID: IMPORTANT: Please be neat and write (or draw) carefully. If we cannot read it with a reasonable effort, it is assumed wrong. As always, the best answer

More information

ACS College of Engineering. Department of Biomedical Engineering. Logic Design Lab pre lab questions ( ) Cycle-1

ACS College of Engineering. Department of Biomedical Engineering. Logic Design Lab pre lab questions ( ) Cycle-1 ACS College of Engineering Department of Biomedical Engineering Logic Design Lab pre lab questions (2015-2016) Cycle-1 1. What is a combinational circuit? 2. What are the various methods of simplifying

More information

Architecture des Ordinateurs I

Architecture des Ordinateurs I Architecture des Ordinateurs I Part I: VHDL and Logic Design The Language VHDL Paolo.Ienne@epfl.ch EPFL I&C LAP Recommended Books: John F. Wakerly Digital design (3rd edition) Prentice Hall, 21 Peter J.

More information

Chap 6 Introduction to HDL (d)

Chap 6 Introduction to HDL (d) Design with Verilog Chap 6 Introduction to HDL (d) Credit to: MD Rizal Othman Faculty of Electrical & Electronics Engineering Universiti Malaysia Pahang Ext: 6036 VERILOG HDL Basic Unit A module Module

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