Control and Datapath 8
|
|
- Lewis Woods
- 5 years ago
- Views:
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
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 informationContents. 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 informationTwo HDLs used today VHDL. Why VHDL? Introduction to Structured VLSI Design
Two HDLs used today Introduction to Structured VLSI Design VHDL I VHDL and Verilog Syntax and ``appearance'' of the two languages are very different Capabilities and scopes are quite similar Both are industrial
More informationAbi 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 informationHardware 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 informationVHDL. VHDL History. Why VHDL? Introduction to Structured VLSI Design. Very High Speed Integrated Circuit (VHSIC) Hardware Description Language
VHDL Introduction to Structured VLSI Design VHDL I Very High Speed Integrated Circuit (VHSIC) Hardware Description Language Joachim Rodrigues A Technology Independent, Standard Hardware description Language
More information[VARIABLE declaration] BEGIN. sequential statements
PROCESS statement (contains sequential statements) Simple signal assignment statement
More informationOutline. CPE/EE 422/522 Advanced Logic Design L05. Review: General Model of Moore Sequential Machine. Review: Mealy Sequential Networks.
Outline CPE/EE 422/522 Advanced Logic Design L05 Electrical and Computer Engineering University of Alabama in Huntsville What we know Combinational Networks Sequential Networks: Basic Building Blocks,
More informationMulti-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 informationCOE 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 informationLattice VHDL Training
Lattice Part I February 2000 1 VHDL Basic Modeling Structure February 2000 2 VHDL Design Description VHDL language describes a digital system as a set of modular blocks. Each modular block is described
More informationSynthesis 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 informationDESCRIPTION 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 informationControl 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 informationVHDL: 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 informationEEL 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 informationELCT 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 informationPart 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 informationVHDL 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 informationWriting 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 informationChapter 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 informationFPGA 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 informationEITF35: 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 informationstructure 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 informationHere 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 informationVHDL 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 informationECE 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 informationIT 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 informationACS 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 informationThe 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 informationVHDL 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 informationComputer-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 informationField 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 informationTiming 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 informationSchedule. 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 information3 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 informationPollard 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 informationDigital Systems Design
Digital Systems Design Review of Combinatorial Circuit Building Blocks: VHDL for Combinational Circuits Dr. D. J. Jackson Lecture 2-1 Introduction to VHDL Designer writes a logic circuit description in
More informationECE 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 informationLecture 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 informationHardware 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 informationIntroduction 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 informationAssignment. 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 informationUNIT I Introduction to VHDL VHDL: - V -VHSIC, H - Hardware, D - Description, L Language Fundamental section of a basic VHDL code Library :
UNIT I Introduction to VHDL VHDL stands for very high-speed integrated circuit hardware description language. Which is one of the programming languages used to model a digital system by dataflow, behavioral
More informationCprE 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 informationCprE 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 informationCS/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 information8 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 informationProgramming 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 informationLab 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 informationDigital 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 informationECE 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 informationMidterm Exam Thursday, October 24, :00--2:15PM (75 minutes)
Last (family) name: Answer Key First (given) name: Student I.D. #: Department of Electrical and Computer Engineering University of Wisconsin - Madison ECE 551 Digital System Design and Synthesis Midterm
More informationIntroduction 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 informationCS303 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 informationCCE 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 informationEEL 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 informationCSE 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 informationSynthesis 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 informationFSM 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 informationECE 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 informationDesign 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 informationVHDL 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 informationDIGITAL LOGIC WITH VHDL (Fall 2013) Unit 6
DIGITAL LOGIC WITH VHDL (Fall 2013) Unit 6 FINITE STATE MACHINES (FSMs) Moore Machines Mealy Machines FINITE STATE MACHINES (FSMs) Classification: Moore Machine: Outputs depend only on the current state
More information8-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 informationVHDL 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 informationCS211 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 informationECE 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 informationInferring 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 informationVerilog 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 informationSequential 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 informationSequential 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 informationECE 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 informationCCE 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 informationLecture 1: VHDL Quick Start. Digital Systems Design. Fall 10, Dec 17 Lecture 1 1
Lecture 1: VHDL Quick Start Digital Systems Design Fall 10, Dec 17 Lecture 1 1 Objective Quick introduction to VHDL basic language concepts basic design methodology Use The Student s Guide to VHDL or The
More informationLecture 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 informationIn our case Dr. Johnson is setting the best practices
VHDL Best Practices Best Practices??? Best practices are often defined by company, toolset or device In our case Dr. Johnson is setting the best practices These rules are for Class/Lab purposes. Industry
More information!"#$%&&"'(')"*+"%,%-".#"'/"'.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 informationEECS150 - 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 informationHardware 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 informationAdvanced 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 informationVHDL 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 informationEEL 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 informationIA 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 informationSRI 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 informationExperiment 8 Introduction to VHDL
Experiment 8 Introduction to VHDL Objectives: Upon completion of this laboratory exercise, you should be able to: Enter a simple combinational logic circuit in VHDL using the Quartus II Text Editor. Assign
More informationECE 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 informationThe 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 information8-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 informationVHDL 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 informationThe block diagram representation is given below: The output equation of a 2x1 multiplexer is given below:
Experiment-3: Write VHDL programs for the following circuits, check the wave forms and the hardware generated a. multiplexer b. De-Multiplexer Objective: i. To learn the VHDL coding for Multiplexer and
More informationDIGITAL LOGIC DESIGN VHDL Coding for FPGAs Unit 6
DIGITAL LOGIC DESIGN VHDL Coding for FPGAs Unit 6 FINITE STATE MACHINES (FSMs) Moore Machines Mealy Machines Algorithmic State Machine (ASM) charts FINITE STATE MACHINES (FSMs) Classification: Moore Machine:
More informationFundamental 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 informationVerilog 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 informationDesign 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 informationVery High Speed Integrated Circuit Har dware Description Language
Very High Speed Integrated Circuit Har dware Description Language Industry standard language to describe hardware Originated from work in 70 s & 80 s by the U.S. Departm ent of Defence Root : ADA Language
More informationVHDL 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 informationDesign 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 informationSummary 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 informationFinite-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