Control and Datapath 8

Size: px
Start display at page:

Download "Control and Datapath 8"

Transcription

1 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 design is no different and it is frequently necessary to divide, in order to conquer a design problem. A general divide and conquer design approach for digital systems can be achieved by breaking up the design into a datapath of interconnected registers (to hold results) and functional units (to perform logical and arithmetic operations), and a control unit that will control the sequence of operations performed by the datapath to perform the desired calculation. DESIGN DATAPATH Consists of interconnected storage and functional units to hold results and perform logical and arithmetic operations. CONTROL UNIT Controls execution of operations using a finite state machine whose states control the data-path to generate the needed data flow. Figure 8.1 Control and Datapath

2 108 Digital Engineering with VHDL X times 3 A simple design problem is to build a digital system to calculate Z = 3 * X. This can can be achieved via repeated addition, i.e. Z = X + X + X. There is rarely just one solution to a digital design, instead there are design decisions and constraints that drive the solution to a final implementation. In this case the constraint is a lack of a multiplier and the availability of a single adder. If a multiplier was available then the solution is trivial. This example is contrived to demonstrate design concepts and would not be considered a practical circuit. A datapath to calculate 3 * X must be able to accumulate the partial product of X. In this implementation we assume that the registers must be explicitly cleared and that will be achieved with a multiplexer that will allow loading register P with with either zero or the output of the adder. If register P had a reset it could be used to clear the register. The multiplexer demonstrates its general use as a datapath element for directing information through the circuit.

3 Control and Datapath 109 DIN "0" SEL 0 1 MUX LDX REGISTER X REGISTER P LDP ADDER CONTROL SIGNAL DATAPATH ZOUT Figure * X Datapath The sequence of operations on this datapath to produce 3 * DIN is first to clear register P and load input DIN into register X. Next register X (which is equal to input DIN) is summed with register P by adding register X to the accumulated sum in P. P accumulates the partial product. This last operation is performed three times to result in P = 3 * X. The following table describes these steps not in English but in terms of the transfers that occur between registers.

4 110 Digital Engineering with VHDL CLEAR P LOAD X with DIN P <= X + P P <= X + P P <= X + P HALT Figure * X Operations From the table form it can been seen that the P register can be cleared in parallel (simultaneously) with the loading of the X register. While for this exercise this simple speed up won t be used, it would save one clock cycle in 5, resulting in a 20% improvement in circuit performance. In a Register Transfer Language (RTL) like notion we can write the steps to perform 3*X as the following. A new state T5 has been add to halt the computation. This is not done by stopping (gating) the clock, but instead by simply not loading the P register with new data. T0: P <= 0; T1: X <= DIN; T2: P <= X + P T3: P <= X + P T4: P <= X + P T5: P <= P; X <= X; Figure 8.4 3*XRTL At this point the control signals and their values for controlling the registers (LDX, LDP) and multiplexer (SEL) must be determined in order to accomplish the sequence of actions in Figure 8.4. In addition the next control state is explicitly listed. T0: SEL=0; LDX=0; LDP=1; NEXT T=T1 T1: SEL=-; LDX=1; LDP=0; NEXT T=T2 T2: SEL=1; LDX=0; LDP=1; NEXT T=T3 T3: SEL=1; LDX=0; LDP=1; NEXT T=T4 T4: SEL=1; LDX=0; LDP=1; NEXT T=T5 T5: SEL=-; LDX=0; LDP=0; NEXT T=T5 Figure 8.5 Control signal values It is assumed that the registers have a LD (load) signal and the multiplexer has a SEL (select) signal. On control steps T1 and T5 SEL is a don t care ( - ) as its output is not being used since register P is not loaded during these control steps.

5 Control and Datapath 111 Note that state T5 halts the computation by disabling the load of registers X and P. DIN "0" CLOCK RESET CONTROL FSM SEL 0 1 MUX LDX REGISTER X REGISTER P LDP ADDER Figure 8.6 ZOUT 3 * X Control and Datapath Constructing the datapath is easy assuming we have a register, adder, and multiplexer primitive available. Notice that the word length of the operands have not been specified - 8, 16, or 32 bits. No need to. It only impacts the maximum value of the integer that can be multiplied, not the general design of the datapath or control logic. But do note that the multiplication of an N bit binary number will result in a 2N bit result. The implementation will assume 4 bit operands (0 to 15) with a 8 bit result (0 to 225). As such the adder and register P must have a data width of 8 bits. Register X can be 4 bits wide, but the adder will require two 8 bit inputs. The next step is the less trivial design of the control logic to generate the control signals. Using a schematic capture program one is faced with a manual synthesis of an synchronous finite state machine (FSM) including state diagram, state table, and the generation of the next state equations. An alternative approach might be to make use of primitives such as a counter to construct the control circuit instead of a manual synthesis and gate level design.

6 112 Digital Engineering with VHDL Noting that six states T0, T1, T2, T3, T4, T5 are needed, a counter can be used to generate the 6 distinct states. The counter is the finite state machine in this design approach. These states can be then decoded with combinational logic to generate the control signals. CLOCK RESET COUNTER 0 to 5 Combinational Logic SEL LDX LDP Figure * X Counter based FSM This approach will work but the boolean equations for the decoder still need to be manually generated, using K-maps or another method for minimizing a truth table. For large designs, with many control signals, a large number of equations might have to be solved. If the design then changes the equations have to be solved again. And possibly again. And then again with each new design iteration. An alternative is to microcode the design by using a ROM to hold the control bits and the counter s output is used to access the memory locations containing the bits for each control state. Remember a ROM of N address lines can implement any boolean function of N variables. The simplification here is that control bits can be entered directly into the ROM. While this example is a trivial example of microcoding, when generalized there are many advantages. First is if the ROM holds the next address, we can implement branches in our controller, treating the content of the ROM as microcode instructions. Secondly, the microcode can be readily changed and it corresponds directly to the control signals.

7 Control and Datapath 113 ROM ADDRESS ROM CLOCK RESET COUNTER 0 to 5 0: : : : : : SEL LDP LDX Figure * X Micro-code Implementation With a bit of perseverance one could construct this circuit in a TTL schematic editor, but instead let s implement it in VHDL. This approach to design is not uncommon. The datapath is designed using predefined modules, possibly using a graphical interface. The control logic on the other hand, being much less structured, and generally unique to the current design, is synthesized from an HDL based description.

8 114 Digital Engineering with VHDL 74LS163A +5 ROM RESETBAR CLOCK /SR CP Vcc TC P0 P1 P2 P3 Q0 Q1 Q2 Q3 A0 A1 A2 A3 D0 D1 D2 CEP CET GND /PE Disable count when counter reaches 5 Figure 8.9 TTL Control FSM Implementation The VHDL entity can be described first. It won t change as the inputs and outputs of the control unit are the same for any implementation that is chosen. There are many choices for the architectures. An obvious solution is to mimic the TTL circuit implementing a counter and decode logic.

9 Control and Datapath 115 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity control is port ( LDX, LDP, SEL: out std_logic; RESET, CLOCK: in std_logic); end control; architecture synthesis of control is signal cnt: std_logic_vector(3 downto 0); --The counter wait until clk= 1 ; if reset = 0 then cnt <= "0000"; if cnt /= 5 then cnt <= cnt + 1; cnt <= cnt; end ; --Decode logic ldx <= 1 when cnt = 1 1 ; ldp <= 0 when cnt = 1 OR cnt = 5 1 ; sel <= 1 when cnt = 2 OR cnt = 3 OR cnt = 4 0 ; end synthesis; Figure 8.10 VHDL Control FSM

10 116 Digital Engineering with VHDL CLOCK RESET COUNTER 0 to 5 wait until clk= 1 ; if reset = 0 then cnt <= "0000"; if cnt /= 5 then cnt <= cnt + 1; cnt <= cnt; end ; Combinational Logic ldx <= 1 when cnt = 1 1 ; ldp <= 0 when cnt = 1 OR cnt = 5 1 ; sel <= 1 when cnt = 2 OR cnt = 3 OR cnt = 4 0 ; SEL LDX LDP Figure 8.11 VHDL Control Blocks Alternatively the entire design, including both datapath and control, can be implemented in VHDL. The entity changes with the addition of DIN as an input. library ieee; use ieee.std_logic_1164.all use work.std_arith.all; entity PROD is port ( DIN: in std_logic_vector(7 downto 0); ZOUT: out std_logic_vector(7 downto 0); RESET: in std_logic; CLK: in std_logic); end PROD; Figure * X Completely in VHDL Entity

11 Control and Datapath 117 architecture behavioral of PROD is SUM <= X + X + X; end behavioral; Figure 8.13 Tr ivial 3 * X VHDL Architecture This first architecture is sort of a cheat as a combinational adder has been specified. Instead the design can be implemented as shown in the original block diagram. With consisting of a datapath and a counter.

12 118 Digital Engineering with VHDL architecture diagram of PROD is signal X, P: std_logic_vector(7 downto 0); signal CNT: std_logic_vector(2 downto 0); wait until clk= 1 ; if reset = 0 then CNT <= 0; --Behavioral Control and Dataflow if CNT = 0 then P <= 0; elsif CNT = 1 then X <= DIN; elsif CNT = 2 then P <= P + X; elsif CNT = 3 then P <= P + X; elsif CNT = 4 then P <= P + X; elsif CNT = 5 then P <= P; --Counter if CNT /= 5 then CNT <= CNT + 1; CNT <= CNT; end ; ZOUT <= P; end diagram; Figure 8.14 Direct RTL VHDL Implementation That is not a bad solution, it directly describes the RTL description. A minor improvement would be the use of a case statement to improve the synthesis of the

13 Control and Datapath 119 individual control states. The if statements can generate extra logic to implement the implied priority of each branch of the if. But this design does not really capture the original block diagram of the original design. But otherwise nothing wrong with this behavioral dataflow implementation assuming it synthesizes, and the synthesis tool comes up with a good design. One shared adder, versus one adder for every "+" operation. Instead we will write a for each module in the data path so that there is a one to one correspondence of block diagram and VHDL. One for each register, the multiplexer, and adder, and the control. Such a design is sometimes referred to as a dataflow design.

14 120 Digital Engineering with VHDL architecture dataflow of PROD is signal SEL, LDX, LDP: std_logic; signal XREG, PREG, TMP: std_logic_vector(7 downto 0); signal CNT: std_logic_vector(2 downto 0); XREG: wait until clk= 1 ; if ldx=1 then XREG <= DIN; end XREG; PREG: wait until clk= 1 ; if ldp=1 then PREG <= TMP1; end PREG; MUX: if sel = 1 then TMP1 <= TMP2; TMP1 <= 0; end MUX; ADDER: TMP2 <= XREG + PREG; end ADDER; COUNTER: wait until clk = 1 ; if RESET= 1 then CNT <= 0; if CNT /= 5 then CNT <= CNT + 1; CNT <= CNT; end COUNTER; ZOUT <= PREG; CONTROL: case cnt is when "000" => LDP <= 0 ; LDX <= 0 ; SEL = 0 ; when "001" => LDP <= 0 ; LDX <= 1 ; SEL = 0 ; when "010" => LDP <= 1 ; LDX <= 0 ; SEL = 1 ; when "011" => LDP <= 1 ; LDX <= 0 ; SEL = 1 ; when "100" => LDP <= 1 ; LDX <= 0 ; SEL = 1 ; when others => LDP <= 0 ; LDX <= 0 ; SEL = 0 ; end case; end CONTROL: ; end dataflow; Figure 8.15 VHDL Dataflow3*XImplementation

15 Control and Datapath 121 This design is a direct implementation of the original block diagram. With a little work both the function and the structure of the block diagram can be extracted from the VHDL. The block diagram describes the design in terms of primitives including registers, an adder, a multiplexer, counter, and decoder. It is a structural interconnection of primitives. The VHDL can be mapped onto the block diagram as shown below.. CLK RESET DIN wait until clk= 1 ; if reset= 1 then cnt <= "0000"; if cnt /= 5 then cnt <= cnt + 1; cnt <= cnt; end ; case cnt is when "000" => ldx <= 1 ;ldp <= 0 ; sel <= 0 ; when "001" => ldx <= 0 ;ldp <= 1 ; sel <= 0 when "010" => ldx <= 1 ;ldp <= 0 ; sel <= 1 ; when "011" => ldx <= 1 ;ldp <= 0 ; sel <= 1 ; when "100" => ldx <= 1 ;ldp <= 0 ; sel <= 1 ; when others => ldx <= 0 ;ldp <= 0 ; sel <= 0 ; end case; end ; LDX LDP SEL wait until clk= 1 ; if ldx = 1 then xreg <= din; end ; XREG tmp2 <= xreg + preg; end ; if sel = 1 then tmp1 <= tmp2; tmp1 <= "0000"; end ; wait until clk= 1 ; if ldp = 1 then preg <= tmp1; end ; PREG TMP1 Figure 8.16 TMP2 3 * X Str uctural VHDL VHDL also supports true structural descriptions which simplifies design reuse by allowing the interconnection of entity/architecture pairs within another entity/architecture. These new entity/architecture pairs can be created by writing entities which incorporate the es from the previous dataflow design into their respective architectures.

16 122 Digital Engineering with VHDL entity reg is port( DIN: in std_logic_vector(7 downto 0; DOUT: out std_logic_vector(7 downto 0; LD: in std_logic; CLK: in std_logic); end reg; entity adder is port( A,B: in std_logic_vector(7 downto 0; SUM: out std_logic_vector(7 downto 0)); end adder; entity mux is port( D0,D1: in std_logic_vector(7 downto 0; DOUT: out std_logic_vector(7 downto 0)); end mux; entity con is port(ldx, LDP, SEL: out std_logic; RESET,CLK: in std_logic); end control; Figure 8.17 Str uctural Entity Declarations entity reg is port( DIN: in std_logic_vector(7 downto 0; DOUT: out std_logic_vector(7 downto 0; LD: in std_logic; CLK: in std_logic); end reg; architecture synthesis of reg is --REGISTER wait until clk= 1 ; if ld=1 then DOUT <= DIN; end ; end synthesis; Figure 8.18 Register Entity/Architecture Pair With the entities specified, the design s structure can be specified in terms of the other entities. The advantage of this approach is that existing VHDL entities

17 Control and Datapath 123 can be used from a library of components exactly as is done with a schematic capture program.

18 124 Digital Engineering with VHDL architecture structural of PROD is component reg port( DIN: in std_logic_vector(7 downto 0; DOUT: out std_logic_vector(7 downto 0; LD: in std_logic; CLK: in std_logic); end component; component adder port( A,B: in std_logic_vector(7 downto 0; SUM: out std_logic_vector(7 downto 0)); end component; component mux port( D0,D1: in std_logic_vector(7 downto 0; DOUT: out std_logic_vector(7 downto 0)); end component; component con port(ldx, LDP, SEL: out std_logic; RESET,CLK: in std_logic); end component; signal SEL, LDX, LDP: std_logic; signal XREG, PREG: std_logic_vector(7 downto 0); signal TMP: std_logic_vector(7 downto 0); signal CNT: std_logic_vector(2 downto 0); signal zero: std_logic_vector(7 downto 0); zero <= " "; U0: reg port map (DIN, XREG, LDX, CLK); U1: reg port map (TMP2, PREG, LDP, CLK); U2: mux port map (ZERO, TMP, SEL); U3: add port map (XREG, PREG, TMP); U4: con port map (LDX, LDP, SEL, RESET, CLK); ZOUT <= PREG; end structural; Figure *X Structural VHDL

19 Control and Datapath 125 X Times Y The 3*X circuit can be readily generalized into a X*Y circuit by replacing the fixed counter with counter that is loaded with Y and then is decremented to 0. X will then be summed Y times. library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity xtimesy is port ( x,y: in std_logic_vector(3 downto 0); p: out std_logic_vector(7 downto 0); reset, clock: in std_logic); end xtimesy; architecture synthesis of xtimesy is signal cnt: std_logic_vector(3 downto 0); signal prod,xreg: std_logic_vector(7 downto 0); wait until clock= 1 ; if reset= 0 then cnt <= y; xreg <= "0000" & x; prod <= " "; if cnt /= "0000" then cnt <= cnt - 1; prod <= prod + xreg; end ; p <= prod; end synthesis; Figure 8.20 X*Y Behavioral VHDL

20 126 Digital Engineering with VHDL Circuit Timing While circuit timing is discussed where in this text it is worth reviewing as it is frequently the most confusing aspect of the control and datapath design and most impedes the understanding how these designs work. Understanding the timing will allow you to generalize these simple design examples to problems of your own design. The assumption in all the designs described in this text is that the storage elements are edge-triggered flip-flops all clocked by the same clock on the same clock edge. This is true for both control unit flip-flops and for datapath registers. Edgetriggered flip-flops transfer data on their inputs to their outputs on the the rising edge of the clock (for a positive edge-triggered flip-flop). Because the outputs of the flip-flops change slightly after being clocked, control bits generated by the control unit to not take effect until the next clock edge. Hence control bits driving the datapath have nearly the entire clock period for their effect to take effect and for data and signals to propagate and setup at the inputs of clocked registers. CONTROL These control bits setup the datapath. DATA for clocking on the next clock edge CLK Figure 8.21 Control and Datapath Timing What is more difficult to understand is how VHDL describes this behavior (assuming synthesis to edge-triggered flip-flops). One way to understand this is first to remember the general design of a FSM with its next state logic and memory elements. An important point to remember that in VHDL a signal assignment statement such as X <= 1 ; do not occur in zero time. So just like the physical flip-

21 Control and Datapath 127 flop the changes on the signal X does not occur until after the clock edge, and hence the change is not seen by other parts of the circuit (or other VHDL es) until the next clock edge. A signal assignment statement can take an after clause to specify this non-zero delay X <= 1 after 5 ns;. In synthesis these are ignored as the delay is determined not by the VHDL, but instead by the target flipflop in the underlying technology. wait until clk= 1 ; DIN case state is when fetch1 => state <= fetch2; reg1 <= din; when fetch2 => state <= comp; reg2 <= din; when compare => if reg1 < reg2 then state <= write1; we <= 1 ; state <= inc; WE REG registers arecompared REG Based on the result of the comparison STATE fetch1 fetch2 comp CLK during this period flip-flops updated here write1 Figure 8.22 Combinational and Sequential Timing

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

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

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

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

Hardware Description Language VHDL (1) Introduction

Hardware Description Language VHDL (1) Introduction Hardware Description Language VHDL (1) Introduction Digital Radiation Measurement and Spectroscopy NE/RHP 537 Introduction Hardware description language (HDL) Intended to describe circuits textually, for

More information

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

[VARIABLE declaration] BEGIN. sequential statements

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

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

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

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

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

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

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

Control Unit: Binary Multiplier. Arturo Díaz-Pérez Departamento de Computación Laboratorio de Tecnologías de Información CINVESTAV-IPN

Control Unit: Binary Multiplier. Arturo Díaz-Pérez Departamento de Computación Laboratorio de Tecnologías de Información CINVESTAV-IPN Control Unit: Binary Multiplier Arturo Díaz-Pérez Departamento de Computación Laboratorio de Tecnologías de Información CINVESTAV-IPN Example: Binary Multiplier Two versions Hardwired control Microprogrammed

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

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

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

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

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

Writing VHDL for RTL Synthesis

Writing VHDL for RTL Synthesis Writing VHDL for RTL Synthesis Stephen A. Edwards, Columbia University December 21, 2009 The name VHDL is representative of the language itself: it is a two-level acronym that stands for VHSIC Hardware

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

FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1

FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1 FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1 Anurag Dwivedi Digital Design : Bottom Up Approach Basic Block - Gates Digital Design : Bottom Up Approach Gates -> Flip Flops Digital

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

structure syntax different levels of abstraction

structure syntax different levels of abstraction This and the next lectures are about Verilog HDL, which, together with another language VHDL, are the most popular hardware languages used in industry. Verilog is only a tool; this course is about digital

More information

Here is a list of lecture objectives. They are provided for you to reflect on what you are supposed to learn, rather than an introduction to this

Here is a list of lecture objectives. They are provided for you to reflect on what you are supposed to learn, rather than an introduction to this This and the next lectures are about Verilog HDL, which, together with another language VHDL, are the most popular hardware languages used in industry. Verilog is only a tool; this course is about digital

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

ECE 545 Lecture 6. Behavioral Modeling of Sequential-Circuit Building Blocks. George Mason University

ECE 545 Lecture 6. Behavioral Modeling of Sequential-Circuit Building Blocks. George Mason University ECE 545 Lecture 6 Behavioral Modeling of Sequential-Circuit Building Blocks George Mason University Required reading P. Chu, RTL Hardware Design using VHDL Chapter 5.1, VHDL Process Chapter 8, Sequential

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

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

The VHDL Hardware Description Language

The VHDL Hardware Description Language The VHDL Hardware Description Language p. 1/? The VHDL Hardware Description Language CSEE W4840 Prof. Stephen A. Edwards Columbia University The VHDL Hardware Description Language p. 2/? Why HDLs? 1970s:

More information

VHDL for Synthesis. Course Description. Course Duration. Goals

VHDL for Synthesis. Course Description. Course Duration. Goals VHDL for Synthesis Course Description This course provides all necessary theoretical and practical know how to write an efficient synthesizable HDL code through VHDL standard language. The course goes

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

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

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

Schedule. ECE U530 Digital Hardware Synthesis. Rest of Semester. Midterm Question 1a

Schedule. ECE U530 Digital Hardware Synthesis. Rest of Semester. Midterm Question 1a ECE U530 Digital Hardware Synthesis Prof. Miriam Leeser mel@coe.neu.edu November 8, 2006 Midterm Average: 70 Lecture 16: Midterm Solutions Homework 6: Calculator Handshaking HW 6: Due Wednesday, November

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

Pollard s Tutorial on Clocked Stuff in VHDL

Pollard s Tutorial on Clocked Stuff in VHDL Pollard s Tutorial on Clocked Stuff in VHDL Welcome to a biased view of how to do register type of stuff in VHDL. The object of this short note is to identify one way to easily handle registered logic

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

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

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

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

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

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

CprE 583 Reconfigurable Computing

CprE 583 Reconfigurable Computing Recap 4:1 Multiplexer CprE / ComS 583 Reconfigurable Computing Prof. Joseph Zambreno Department of Electrical and Computer Engineering Iowa State University Lecture #18 VHDL for Synthesis I LIBRARY ieee

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

CS/EE Homework 7 Solutions

CS/EE Homework 7 Solutions CS/EE 260 - Homework 7 Solutions 4/2/2001 1. (20 points) A 4 bit twisted ring counter is a sequential circuit which produces the following sequence of output values: 0000, 1000, 1100, 1110, 1111, 0111,

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

Programming with HDLs

Programming with HDLs Programming with HDLs Paul Chow February 11, 2008 1 Introduction The purpose of this document is to encourage the proper approach or mindset for programming in a hardware description language (HDL), particularly

More information

Lab 3: Standard Combinational Components

Lab 3: Standard Combinational Components Lab 3: Standard Combinational Components Purpose In this lab you will implement several combinational circuits on the DE1 development board to test and verify their operations. Introduction Using a high-level

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

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

Midterm Exam Thursday, October 24, :00--2:15PM (75 minutes)

Midterm Exam Thursday, October 24, :00--2:15PM (75 minutes) Last (family) name: Answer Key First (given) name: Student I.D. #: Department of Electrical and Computer Engineering University of Wisconsin - Madison ECE 551 Digital System Design and Synthesis Midterm

More 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

CS303 LOGIC DESIGN FINAL EXAM

CS303 LOGIC DESIGN FINAL EXAM JANUARY 2017. CS303 LOGIC DESIGN FINAL EXAM STUDENT NAME & ID: DATE: Instructions: Examination time: 100 min. Write your name and student number in the space provided above. This examination is closed

More information

CCE 3202 Advanced Digital System Design

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

More information

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

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

Synthesis vs. Compilation Descriptions mapped to hardware Verilog design patterns for best synthesis. Spring 2007 Lec #8 -- HW Synthesis 1

Synthesis vs. Compilation Descriptions mapped to hardware Verilog design patterns for best synthesis. Spring 2007 Lec #8 -- HW Synthesis 1 Verilog Synthesis Synthesis vs. Compilation Descriptions mapped to hardware Verilog design patterns for best synthesis Spring 2007 Lec #8 -- HW Synthesis 1 Logic Synthesis Verilog and VHDL started out

More information

FSM Components. FSM Description. HDL Coding Methods. Chapter 7: HDL Coding Techniques

FSM Components. FSM Description. HDL Coding Methods. Chapter 7: HDL Coding Techniques FSM Components XST features: Specific inference capabilities for synchronous Finite State Machine (FSM) components. Built-in FSM encoding strategies to accommodate your optimization goals. You may also

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

Design Problem 3 Solutions

Design Problem 3 Solutions CSE 260 Digital Computers: Organization and Logical Design Jon Turner Design Problem 3 Solutions In this problem, you are to design, simulate and implement a sequential pattern spotter, using VHDL. This

More information

VHDL for Complex Designs

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

More information

DIGITAL LOGIC WITH VHDL (Fall 2013) Unit 6

DIGITAL LOGIC WITH VHDL (Fall 2013) Unit 6 DIGITAL LOGIC WITH VHDL (Fall 2013) Unit 6 FINITE STATE MACHINES (FSMs) Moore Machines Mealy Machines FINITE STATE MACHINES (FSMs) Classification: Moore Machine: Outputs depend only on the current state

More information

8-1. Fig. 8-1 ASM Chart Elements 2001 Prentice Hall, Inc. M. Morris Mano & Charles R. Kime LOGIC AND COMPUTER DESIGN FUNDAMENTALS, 2e, Updated.

8-1. Fig. 8-1 ASM Chart Elements 2001 Prentice Hall, Inc. M. Morris Mano & Charles R. Kime LOGIC AND COMPUTER DESIGN FUNDAMENTALS, 2e, Updated. 8-1 Name Binary code IDLE 000 Register operation or output R 0 RUN 0 1 Condition (a) State box (b) Example of state box (c) Decision box IDLE R 0 From decision box 0 1 START Register operation or output

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

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

ECE 448 Lecture 4. Sequential-Circuit Building Blocks. Mixing Description Styles

ECE 448 Lecture 4. Sequential-Circuit Building Blocks. Mixing Description Styles ECE 448 Lecture 4 Sequential-Circuit Building Blocks Mixing Description Styles George Mason University Reading Required P. Chu, FPGA Prototyping by VHDL Examples Chapter 4, Regular Sequential Circuit Recommended

More information

Inferring Storage Elements

Inferring Storage Elements Inferring Storage Elements In our designs, we usually use flip-flops as our storage elements. Sometimes we use latches, but not often. Latches are smaller in size, but create special, often difficult situations

More information

Verilog for Synthesis Ing. Pullini Antonio

Verilog for Synthesis Ing. Pullini Antonio Verilog for Synthesis Ing. Pullini Antonio antonio.pullini@epfl.ch Outline Introduction to Verilog HDL Describing combinational logic Inference of basic combinational blocks Describing sequential circuits

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

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

ECE 545 Lecture 12. Datapath vs. Controller. Structure of a Typical Digital System Data Inputs. Required reading. Design of Controllers

ECE 545 Lecture 12. Datapath vs. Controller. Structure of a Typical Digital System Data Inputs. Required reading. Design of Controllers ECE 545 Lecture 12 Design of Controllers Finite State Machines and Algorithmic State Machine (ASM) Charts Required reading P. Chu, using VHDL Chapter 1, Finite State Machine: Principle & Practice Chapter

More information

CCE 3202 Advanced Digital System Design

CCE 3202 Advanced Digital System Design CCE 3202 Advanced Digital System Design Lab Exercise #2 This lab exercise will show you how to create, synthesize, and test a 3-bit ripple counter. A ripple counter is simply a circuit that outputs the

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

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

In our case Dr. Johnson is setting the best practices

In our case Dr. Johnson is setting the best practices VHDL Best Practices Best Practices??? Best practices are often defined by company, toolset or device In our case Dr. Johnson is setting the best practices These rules are for Class/Lab purposes. Industry

More 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

EECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis

EECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis EECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis Jan 31, 2012 John Wawrzynek Spring 2012 EECS150 - Lec05-verilog_synth Page 1 Outline Quick review of essentials of state elements Finite State

More information

Hardware Description Languages (HDLs) Verilog

Hardware Description Languages (HDLs) Verilog Hardware Description Languages (HDLs) Verilog Material from Mano & Ciletti book By Kurtulus KULLU Ankara University What are HDLs? A Hardware Description Language resembles a programming language specifically

More information

Advanced Digital Design Spring 2011 Final Examination Time Limit: 2 Hours

Advanced Digital Design Spring 2011 Final Examination Time Limit: 2 Hours Name Advanced Digital Design Spring 2011 Final Examination Time Limit: 2 Hours 8 Questions: 12.5 Points Each 1. Consider the circuit: (a) Draw a timing diagram of the circuit assuming that the input B

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

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

IA Digital Electronics - Supervision I

IA Digital Electronics - Supervision I IA Digital Electronics - Supervision I Nandor Licker Due noon two days before the supervision 1 Overview The goal of this exercise is to design an 8-digit calculator capable of adding

More information

SRI SUKHMANI INSTITUTE OF ENGINEERING AND TECHNOLOGY, DERA BASSI (MOHALI)

SRI SUKHMANI INSTITUTE OF ENGINEERING AND TECHNOLOGY, DERA BASSI (MOHALI) SRI SUKHMANI INSTITUTE OF ENGINEERING AND TECHNOLOGY, DERA BASSI (MOHALI) VLSI LAB MANUAL ECE DEPARTMENT Introduction to VHDL It is a hardware description language that can be used to model a digital system

More information

Experiment 8 Introduction to VHDL

Experiment 8 Introduction to VHDL Experiment 8 Introduction to VHDL Objectives: Upon completion of this laboratory exercise, you should be able to: Enter a simple combinational logic circuit in VHDL using the Quartus II Text Editor. Assign

More information

ECE 545 Lecture 12. FPGA Resources. George Mason University

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

More information

The University of Alabama in Huntsville ECE Department CPE Final Exam Solution Spring 2004

The University of Alabama in Huntsville ECE Department CPE Final Exam Solution Spring 2004 The University of Alabama in Huntsville ECE Department CPE 526 01 Final Exam Solution Spring 2004 1. (15 points) An old Thunderbird car has three left and three right tail lights, which flash in unique

More information

8-1. Fig. 8-1 ASM Chart Elements 2001 Prentice Hall, Inc. M. Morris Mano & Charles R. Kime LOGIC AND COMPUTER DESIGN FUNDAMENTALS, 2e, Updated.

8-1. Fig. 8-1 ASM Chart Elements 2001 Prentice Hall, Inc. M. Morris Mano & Charles R. Kime LOGIC AND COMPUTER DESIGN FUNDAMENTALS, 2e, Updated. 8-1 Name Binary code IDLE 000 Register operation or output R 0 RUN Condition (a) State box (b) Example of state box (c) Decision box IDLE R 0 From decision box START Register operation or output PC 0 (d)

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

The block diagram representation is given below: The output equation of a 2x1 multiplexer is given below:

The block diagram representation is given below: The output equation of a 2x1 multiplexer is given below: Experiment-3: Write VHDL programs for the following circuits, check the wave forms and the hardware generated a. multiplexer b. De-Multiplexer Objective: i. To learn the VHDL coding for Multiplexer and

More information

DIGITAL LOGIC DESIGN VHDL Coding for FPGAs Unit 6

DIGITAL LOGIC DESIGN VHDL Coding for FPGAs Unit 6 DIGITAL LOGIC DESIGN VHDL Coding for FPGAs Unit 6 FINITE STATE MACHINES (FSMs) Moore Machines Mealy Machines Algorithmic State Machine (ASM) charts FINITE STATE MACHINES (FSMs) Classification: Moore Machine:

More information

Fundamental Design Concepts. Fundamental Concepts. Modeling Domains. Basic Definitions. New terminology and overloaded use of common words

Fundamental Design Concepts. Fundamental Concepts. Modeling Domains. Basic Definitions. New terminology and overloaded use of common words Fundamental Design Concepts Fundamental Concepts Basic Definitions study now revisit later New terminology and overloaded use of common words Modeling Domains Structural Domain a domain in which a component

More information

Verilog introduction. Embedded and Ambient Systems Lab

Verilog introduction. Embedded and Ambient Systems Lab Verilog introduction Embedded and Ambient Systems Lab Purpose of HDL languages Modeling hardware behavior Large part of these languages can only be used for simulation, not for hardware generation (synthesis)

More information

Design Problem 4 Solution

Design Problem 4 Solution CSE 260 Digital Computers: Organization and Logical Design Design Problem 4 Solution Jon Turner Due 4/13/06 1. (125 points). In this problem, you will design a packet FIFO, which is a circuit that temporarily

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

VHDL for Logic Synthesis

VHDL for Logic Synthesis VHDL for Logic Synthesis Overview Design Flow for Hardware Design VHDL coding for synthesis General guidelines for hardware designers This lecture includes the content from: Nitin Yogi, Modelling for Synthesis

More information

Design Problem 5 Solution

Design Problem 5 Solution CSE 260 Digital Computers: Organization and Logical Design Design Problem 5 Solution Jon Turner Due 5/3/05 1. (150 points) In this problem, you are to extend the design of the basic processor to implement

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

Finite-State Machine (FSM) Design

Finite-State Machine (FSM) Design 1 Finite-State Machine (FSM) Design FSMs, an important category of sequential circuits, are used frequently in designing digital systems. From the daily used electronic machines to the complex digital

More information