search_chr: ASM chart search_chr search_chr search_chr MEM_ENABLE MEM_WE MEM_ADDRESS MEM_DATAIN MEM_DATAOUT MEM_READY ADDRESS CHAR LEN nfound

Size: px
Start display at page:

Download "search_chr: ASM chart search_chr search_chr search_chr MEM_ENABLE MEM_WE MEM_ADDRESS MEM_DATAIN MEM_DATAOUT MEM_READY ADDRESS CHAR LEN nfound"

Transcription

1 ADDRESS CHAR LEN nfound ? START READY MEM_ENABLE MEM_WE MEM_ADDRESS MEM_DATAIN MEM_DATAOUT MEM_READY INIT COUNT <= 0 START : ASM chart A <= ADDRESS C <= CHAR L <= LEN CNT <= 0 FETCH MEM_READY COMPARE D <= MEM_DATAIN COUNT <= COUNT + 1 A <= A + 1!" #$% & ' ('')!!)'!!)!!% &'&&'! ''! *% & ' ' ) ) +,-$% START_READ nfound <- CNT MEM_ADDRESS <- A MEM_ENABLE <- 1 C = D 1 0 COUNT = LEN CNT <= CNT + 1 MEM_ADDRESS <- A MEM_ENABLE <- 1 library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity is port ( CLK : in std_logic; rst_n : in std_logic; START : in std_logic; ADDRESS : in std_logic_vector(31 downto 0 CHAR : in std_logic_vector(7 downto 0 LEN : in std_logic_vector(5 downto 0 READY : out std_logic; nfound : out std_logic_vector(5 downto 0 MEM_ENABLE : out std_logic; MEM_WE : out std_logic; MEM_ADDRESS : out std_logic_vector(31 downto 0 MEM_DATAIN : in std_logic_vector(7 downto 0 MEM_DATAOUT : out std_logic_vector(7 downto 0 MEM_READY : in std_logic end ; architecture rtl of is write code write code end rtl;

2 Memory Memory library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; use STD.textio.all; entity memory is port ( CLK : in std_logic; address : in std_logic_vector(31 downto 0 enable : in std_logic; we : in std_logic; ready : out std_logic; datain : in std_logic_vector(7 downto 0 dataout : out std_logic_vector(7 downto 0) end memory; architecture s of memory is type ram_type is array (0 to 1023) of bit_vector(7 downto 0 impure function loadmem return ram_type is file memory_file : text; variable fstatus : file_open_status; variable inputline : line; variable memory : ram_type; variable i : integer; file_open(fstatus, memory_file, "data.bin", READ_MODE if (fstatus = OPEN_OK) then i := 0; while (i < 1024 and not endfile(memory_file)) loop readline (memory_file, inputline read (inputline, memory(i) i := i + 1; end loop; return memory; end function; Memory end s; shared variable RAM : ram_type := loadmem; process(clk) if rising_edge(clk) and enable = '1' then if we = '1' then RAM(to_integer(unsigned(address))) := to_bitvector(datain dataout <= (others => '-' writing policy not specified dataout <= to_stdlogicvector(ram(to_integer(unsigned(address))) ready <= '1'; latency: 1 cycle Reset Generator rst_n Clock Generator CLK INPUTS OUTPUTS Inputs Generator (FSM) Memory Data File

3 : inputs generator INIT cnt <= 0 TEST1 START <- 1 ADDRESS <-... CHAR <-... LEN <-... cnt <= cnt+1 WAIT1 READY FINISHED1 cnt2 <= 0 FINISHED2 cnt <= cnt+1 cnt = 10 FINISHED3 end_simul <- true 0 cnt =... 1 terminate the clock generation process library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity testbench is end testbench; architecture behav of testbench is signal nsimul_cycles : integer := 0; signal started : boolean := false; signal end_simul : boolean := false; signal CLK : std_logic; signal rst_n : std_logic; type tb_statetype is (INIT, TEST1, WAIT1, FINISHED1, FINISHED2, FINISHED3 signal tb_state, tb_nextstate : tb_statetype; type array_of_integers is array (natural range <>) of integer; constant ADDRESSES : array_of_integers := ( 3, 5, 20 constant CHARS : array_of_integers := ( 3, 3, 5 constant LENS : array_of_integers := (10, 10, 15 signal START : std_logic; signal ADDRESS : std_logic_vector(31 downto 0 signal CHAR : std_logic_vector(7 downto 0 signal LEN : std_logic_vector(5 downto 0 signal READY : std_logic; signal nfound : std_logic_vector(5 downto 0 signal memory_enable : std_logic; signal memory_we : std_logic; signal memory_address : std_logic_vector(31 downto 0 signal data_from_mem : std_logic_vector(7 downto 0 signal data_to_mem : std_logic_vector(7 downto 0 signal memory_ready : std_logic; signal cnt, in_cnt, cnt2, in_cnt2 : integer := 0; start_process: process rst_n <= '1', '0' after 1 ns, '1' after 199 ns; started <= true; wait; clkgen: process clk <= '1', '0' after 5 ns; wait for 10 ns; if end_simul then wait; nsimul_cycles <= nsimul_cycles + 1 ;

4 DUT : entity work. port map ( CLK => CLK, rst_n => rst_n, START => START, ADDRESS => ADDRESS, CHAR => CHAR, LEN => LEN, READY => READY, nfound => nfound, MEM_ENABLE => memory_enable, MEM_WE => memory_we, MEM_ADDRESS => memory_address, MEM_DATAIN => data_from_mem, MEM_DATAOUT => data_to_mem, MEM_READY => memory_ready MEM : entity work.memory port map ( CLK => CLK, address => memory_address, enable => memory_enable, we => memory_we, ready => memory_ready, datain => data_to_mem, dataout => data_from_mem tb_state <= INIT when rst_n = '0' tb_nextstate when rising_edge(clk process (tb_state, READY, cnt, cnt2) case tb_state is when INIT => tb_nextstate <= TEST1; when TEST1 => tb_nextstate <= WAIT1; when WAIT1 => if READY = '1' then if cnt = ADDRESSES'length then tb_nextstate <= FINISHED1; tb_nextstate <= TEST1; tb_nextstate <= WAIT1; end case; when FINISHED1 => tb_nextstate <= FINISHED2; when FINISHED2 => if cnt2 = 10 then tb_nextstate <= FINISHED3; end_simul <= true; tb_nextstate <= FINISHED2; when FINISHED3 => tb_nextstate <= FINISHED3;

5 START <= '1' when tb_state = TEST1 '0'; ADDRESS <= std_logic_vector(to_unsigned(addresses(cnt), ADDRESS'length)) when tb_state = TEST1 (others => '-' CHAR <= std_logic_vector(to_unsigned(chars(cnt), CHAR'length)) when tb_state = TEST1 (others => '-' LEN <= std_logic_vector(to_unsigned(lens(cnt), LEN'length)) when tb_state = TEST1 (others => '-' in_cnt <= 0 when tb_state = INIT cnt + 1 when tb_state = TEST1 0; cnt <= in_cnt when rising_edge(clk) and (tb_state = INIT or tb_state = TEST1 in_cnt2 <= 0 when tb_state = FINISHED1 cnt2 + 1 when tb_state = FINISHED2 0; cnt2 <= in_cnt2 when rising_edge(clk) and (tb_state = FINISHED1 or tb_state = FINISHED2 end behav; Data for simulation (example) Simulation results (continue) data.bin (second portion) first search: found 2 characters

6 Exercises Simulation results (expected) Change the memory description to simulate a memory with latency > 1 A non-synthesizable description is acceptable Verify that behaves correctly with the increased memory latency Re-design to eliminate the cycle lost between two consecutive memory accesses Verify with: memory latency = 1 memory latency = 4 memory latency = 1 ; no cycles are lost between memory accesses

VHDL Simulation. Testbench Design

VHDL Simulation. Testbench Design VHDL Simulation Testbench Design The Test Bench Concept Elements of a VHDL/Verilog testbench Unit Under Test (UUT) or Device Under Test (DUT) instantiate one or more UUT s Stimulus of UUT inputs algorithmic

More information

VHDL Testbench Design. Textbook chapters 2.19, , 9.5

VHDL Testbench Design. Textbook chapters 2.19, , 9.5 VHDL Testbench Design Textbook chapters 2.19, 4.10-4.12, 9.5 The Test Bench Concept Elements of a VHDL/Verilog testbench Unit Under Test (UUT) or Device Under Test (DUT) instantiate one or more UUT s Stimulus

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

COVER SHEET: Total: Regrade Info: 5 (5 points) 2 (8 points) 6 (10 points) 7b (13 points) 7c (13 points) 7d (13 points)

COVER SHEET: Total: Regrade Info: 5 (5 points) 2 (8 points) 6 (10 points) 7b (13 points) 7c (13 points) 7d (13 points) EEL 4712 Midterm 2 Spring 2011 VERSION 1 Name: UFID: Sign your name here if you would like for your test to be returned in class: IMPORTANT: Please be neat and write (or draw) carefully. If we cannot read

More information

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

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

More information

VHDL/Verilog Simulation. Testbench Design

VHDL/Verilog Simulation. Testbench Design VHDL/Verilog Simulation Testbench Design The Test Bench Concept Elements of a VHDL/Verilog testbench Unit Under Test (UUT) or Device Under Test (DUT) instantiate one or more UUT s Stimulus of UUT inputs

More information

Quartus Counter Example. Last updated 9/6/18

Quartus Counter Example. Last updated 9/6/18 Quartus Counter Example Last updated 9/6/18 Create a logic design from start to a DE10 implementation This example uses best design practices This example is not about creating HDL The HDL code will be

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

Getting Started with VHDL

Getting Started with VHDL Getting Started with VHDL VHDL code is composed of a number of entities Entities describe the interface of the component Entities can be primitive objects or complex objects Architectures are associated

More information

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

VHDL Testbench. Test Bench Syntax. VHDL Testbench Tutorial 1. Contents VHDL Testbench Tutorial 1 Contents 1 VHDL Testbench 2 Test Bench Syntax 3 Testbench Example: VHDL Code for Up Down Binary Counter 4 VHDL Testbench code for up down binary counter 5 Testbench Waveform for

More information

TKT-1212 Digitaalijärjestelmien toteutus. Lecture 7: VHDL Testbenches Ari Kulmala, Erno Salminen 2008

TKT-1212 Digitaalijärjestelmien toteutus. Lecture 7: VHDL Testbenches Ari Kulmala, Erno Salminen 2008 TKT-1212 Digitaalijärjestelmien toteutus Lecture 7: VHDL Testbenches Ari Kulmala, Erno Salminen 2008 Contents Purpose of test benches Structure of simple test bench Side note about delay modeling in VHDL

More information

ECE 545 Lecture 11 Addendum

ECE 545 Lecture 11 Addendum ECE 545 Lecture 11 Addendum Controllers for Keccak_F and AES George Mason University ECE 448 FPGA and ASIC Design with VHDL Keccak_F 1600 din start done Keccak_F rst 1600 dout ready Note: Bold line represents

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

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

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

More information

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

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

Lecture 6. Advanced Testbenches. George Mason University

Lecture 6. Advanced Testbenches. George Mason University Lecture 6 Advanced Testbenches George Mason University Required reading Sundar Rajan, Essential VHDL: RTL Synthesis Done Right Chapter 14, starting from Design Verification 2 Steps of the Design Process

More information

ECE 545 Lecture 7. Advanced Testbenches. Required reading. Simple Testbench. Advanced Testbench. Possible Sources of Expected Outputs

ECE 545 Lecture 7. Advanced Testbenches. Required reading. Simple Testbench. Advanced Testbench. Possible Sources of Expected Outputs ECE 545 Lecture 7 Advanced Testbenches George Mason University Steps of the Design Process 1. Text description 2. Interface 3. Pseudocode 4. Block diagram of the Datapath 5. Interface with the division

More information

VHDL: Code Structure. 1

VHDL: Code Structure. 1 VHDL: Code Structure talarico@gonzaga.edu 1 Mo:va:on for HDL- based design Standard Technology/vendor independent Portable and Reusable talarico@gonzaga.edu 2 Altera s Design Flow (RTL) RTL Generic Boolean

More information

ECE 545 Lecture 7. Advanced Testbenches. George Mason University

ECE 545 Lecture 7. Advanced Testbenches. George Mason University ECE 545 Lecture 7 Advanced Testbenches George Mason University Steps of the Design Process 1. Text description 2. Interface 3. Pseudocode 4. Block diagram of the Datapath 5. Interface with the division

More information

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

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

More information

VHDL: Modeling RAM and Register Files. Textbook Chapters: 6.6.1, 8.7, 8.8, 9.5.2, 11.2

VHDL: Modeling RAM and Register Files. Textbook Chapters: 6.6.1, 8.7, 8.8, 9.5.2, 11.2 VHDL: Modeling RAM and Register Files Textbook Chapters: 6.6.1, 8.7, 8.8, 9.5.2, 11.2 Memory Synthesis Approaches: Random logic using flip-flops or latches Register files in datapaths RAM standard components

More information

Microprogrammed Control

Microprogrammed Control Calcolatori Elettroici e Sistemi Operativi Microprogrammed Microprogrammed Iputs (state) Status sigals (from datapath) NS = δ(s,i) = ((S),I) O = λ(s) Next state Outputs sigals (to datapath) Microprogrammed

More information

Test Bench. Top Level Model Test Bench MUT

Test Bench. Top Level Model Test Bench MUT A test bench is usually a simulation-only model used for design verification of some other model(s) to be synthesized. A test bench is usually easier to develop than a force file when verifying the proper

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

ECE 545 Lecture 17 RAM. George Mason University

ECE 545 Lecture 17 RAM. George Mason University ECE 545 Lecture 17 RAM George Mason University Recommended reading XST User Guide for Virtex-6, Spartan-6, and 7 Series Devices Chapter 7, HDL Coding Techniques [ UG687 (v 14.5) March 20, 2013 ] Sections:

More information

Luleå University of Technology Kurskod SMD152 Datum Skrivtid

Luleå University of Technology Kurskod SMD152 Datum Skrivtid Luleå University of Technology Kurskod SMD152 Datum 2003-10-24 Skrivtid 9.00 13.00 1 Manual synthesis (10 p, 2 p each) Here you are given five different VHDL models. Your task is to draw the schematics

More information

Test Benches - Module 8

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

More information

VHDL- VHDL-3. Vsys. maxplus2. Vsys. d:\uoo. vsystem.ini work

VHDL- VHDL-3. Vsys. maxplus2. Vsys. d:\uoo. vsystem.ini work VHDL- VHDL-3 Vsys TextIO maxplus2 Vsys Vsys d:\uoo mem_tb.vhd mem_tb.vec Vsys d:\uoo vsystem.ini work d:\uoo vsystem.ini [library] std = c:/vsystem/std IEEE = c:/vsystem/ieee SIMPRIM = D:/xilinx/vhdl/src/simprims/work

More information

File: /home/young/mywork/c.arithmetic/bshfit/print.bshift Page 1 of 13

File: /home/young/mywork/c.arithmetic/bshfit/print.bshift Page 1 of 13 File: /home/young/mywork/c.arithmetic/bshfit/print.bshift Page 1 of 13 makefile.suffixes :.o.vhdl.vhdl.o : ghdl -a $< # CNF_bshift = c3.bshift_tb_conf.rtl.o \ # c3.bshift_tb_conf.mux.o \ OBJ_bshift = cordic_pkg.o

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

Altera s Avalon Communication Fabric

Altera s Avalon Communication Fabric Altera s Avalon Communication Fabric Stephen A. Edwards Columbia University Spring 2012 Altera s Avalon Bus Something like PCI on a chip Described in Altera s Avalon Memory-Mapped Interface Specification

More information

Chapter 8 VHDL Code Examples

Chapter 8 VHDL Code Examples APPENDIX I Chapter 8 VHDL Code Examples I.1 Introduction Two example VHDL code designs are presented in Chapter 8, the first for controlling the AD7524 digital-to-analogue converter and the second for

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

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

Sign here to give permission for your test to be returned in class, where others might see your score:

Sign here to give permission for your test to be returned in class, where others might see your score: EEL 4712 Midterm 2 Spring 216 VERSION 1 Name: UFID: Sign here to give permission for your test to be returned in class, where others might see your score: IMPORTANT: Please be neat and write (or draw)

More information

Simulation with ModelSim Altera from Quartus II

Simulation with ModelSim Altera from Quartus II Simulation with ModelSim Altera from Quartus II Quick Start Guide Embedded System Course LAP IC EPFL 2010 Version 0.6 (Preliminary) René Beuchat, Cagri Onal 1 Installation and documentation Main information

More information

Introduction to VHDL. Main language concepts

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

More information

Simulation with ModelSim Altera from Quartus II

Simulation with ModelSim Altera from Quartus II Simulation with ModelSim Altera from Quartus II Quick Start Guide Embedded System Course LAP IC EPFL 2010 Version 0.5 (Preliminary) René Beuchat, Cagri Onal 1 Installation and documentation Main information

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

cla library ieee; use ieee.std_logic_1164.all;

cla library ieee; use ieee.std_logic_1164.all; -- cla entity cla is generic( n_g: integer :=4 -- count of bits ); port( x_p : in std_logic_vector (n_g-1 downto 0); y_p : in std_logic_vector (n_g-1 downto 0); cin_p : in std_logic; cla_p :out std_logic_vector

More information

Lecture 27. Structural Description of a 3-Bit Synchronous Decade Counter. FIGURE 4.31 A State diagram of a decade counter.

Lecture 27. Structural Description of a 3-Bit Synchronous Decade Counter. FIGURE 4.31 A State diagram of a decade counter. Lecture 27 Structural Description of a 3-Bit Synchronous Decade Counter FIGURE 4.31 A State diagram of a decade counter. FIGURE 4.31B K - maps for a decade counter. FIGURE 4.32 Logic diagram of a decade

More information

OUTLINE SYSTEM-ON-CHIP DESIGN. GETTING STARTED WITH VHDL September 3, 2018 GAJSKI S Y-CHART (1983) TOP-DOWN DESIGN (1)

OUTLINE SYSTEM-ON-CHIP DESIGN. GETTING STARTED WITH VHDL September 3, 2018 GAJSKI S Y-CHART (1983) TOP-DOWN DESIGN (1) September 3, 2018 GETTING STARTED WITH VHDL 2 Top-down design VHDL history Main elements of VHDL Entities and architectures Signals and processes Data types Configurations Simulator basics The testbench

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

ECE 545 Lecture 4. Simple Testbenches. George Mason University

ECE 545 Lecture 4. Simple Testbenches. George Mason University ECE 545 Lecture 4 Simple Testbenches George Mason University Required reading P. Chu, RTL Hardware Design using VHDL Chapter 2.2.4, Testbenches 2 Testbenches ECE 448 FPGA and ASIC Design with VHDL 3 Testbench

More information

DIGITAL LOGIC DESIGN VHDL Coding for FPGAs Unit 9

DIGITAL LOGIC DESIGN VHDL Coding for FPGAs Unit 9 DIGITAL LOGIC DESIGN VHDL Coding for FPGAs Unit 9 MISCELANEOUS TOPICS I/O text files for simulation and synthesis. Example: serial multiplier, basic -to- LUT, VGA. Using Xilinx primitives: BRAMs, XADC,

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

Accelerate FPGA Prototyping with

Accelerate FPGA Prototyping with Accelerate FPGA Prototyping with MATLAB and Simulink September 21 st 2010 Stephan van Beek Senior Application Engineer 1 From Idea to Implementation DESIGN Algorithm Development MATLAB Simulink Stateflow

More information

VHDL Testbench VHDL Testbench NO Synthesis Test Vectors Input Vector Output Vector Expected Vector UUT : Unit Under Test Clock Generator Error Report Utility 1 Library : STD Library for Testbench use std.standard.all;

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

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

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

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

More information

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

VHDL. Official Definition: VHSIC Hardware Description Language VHISC Very High Speed Integrated Circuit

VHDL. Official Definition: VHSIC Hardware Description Language VHISC Very High Speed Integrated Circuit VHDL VHDL Official Definition: VHSIC Hardware Description Language VHISC Very High Speed Integrated Circuit VHDL Alternative (Student Generated) Definition Very Hard Digital Logic language VHDL Design

More information

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

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

More information

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

library STD; use STD.textio.all; library IEEE; use IEEE.std_logic_1164.all; use IEEE.numeric_std.all; package cordic_pkg is

library STD; use STD.textio.all; library IEEE; use IEEE.std_logic_1164.all; use IEEE.numeric_std.all; package cordic_pkg is cordic_pkg.vhdl Purpose: utility package of cordic Discussion: Licensing: This code is distributed under the GNU LGPL license. Modified: 2012.04.03 Author: Young W. Lim Functions: Conv2fixedPt (x : real;

More information

EECE 353: Digital Systems Design Lecture 10: Datapath Circuits

EECE 353: Digital Systems Design Lecture 10: Datapath Circuits EECE 353: Digital Systems Design Lecture 10: Datapath Circuits Cristian Grecu grecuc@ece.ubc.ca Course web site: http://courses.ece.ubc.ca/353 Introduction to lecture 10 Large digital systems are more

More information

Sign here to give permission to return your test in class, where other students might see your score:

Sign here to give permission to return your test in class, where other students might see your score: EEL 4712 Midterm 1 Spring 2017 VERSION 1 Name: UFID: Sign here to give permission to return your test in class, where other students might see your score: IMPORTANT: Please be neat and write (or draw)

More information

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

Design a 4 bit-adder. Then design a 4-7 decoder to show the outputs. Output Sum(4 bits) Adder. Output carry(1 bit) Csc 343 Lab 2 Sep 28. 07 Objective: Design a 4 bit-adder. Then design a 4-7 decoder to show the outputs. Structure: Input A (4 bits) Input B (4 bit) Adder Output Sum(4 bits) Output carry(1 bit) input cin

More information

Control and Datapath 8

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

More information

VHDL. ELEC 418 Advanced Digital Systems Dr. Ron Hayne. Images Courtesy of Cengage Learning

VHDL. ELEC 418 Advanced Digital Systems Dr. Ron Hayne. Images Courtesy of Cengage Learning VHDL ELEC 418 Advanced Digital Systems Dr. Ron Hayne Images Courtesy of Cengage Learning Design Flow 418_02 2 VHDL Modules 418_02 3 VHDL Libraries library IEEE; use IEEE.std_logic_1164.all; std_logic Single-bit

More information

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

The University of Alabama in Huntsville ECE Department CPE Final Exam Solution Spring 2016 The University of Alabama in Huntsville ECE Department CPE 526 01 Final Exam Solution Spring 2016 1. (6 points) Draw the transistor-level diagram of a two input CMOS NAND gate. VCC x y z f x y GND 2. (5

More information

Problem Set 5 Solutions

Problem Set 5 Solutions Problem Set 5 Solutions library ieee; use ieee.std_logic_1164.all; use work.std_arith.all; -- here is the declaration of entity entity la_rewarder is port (clk, go, SRAM_busy, SRAM_rdy: in std_logic; min:

More information

EEE8076. Reconfigurable Hardware Design (coursework) Module Outline. Dr A. Bystrov Dr. E.G. Chester. Autumn

EEE8076. Reconfigurable Hardware Design (coursework) Module Outline. Dr A. Bystrov Dr. E.G. Chester. Autumn EEE8076 Reconfigurable Hardware Design (coursework) Module Outline Dr A. Bystrov Dr. E.G. Chester Autumn 2010 1 2 3 4 5 6 7 8 9 10 11 12 Altera UP2 development board, Flex EPF10K70 FPGA www.altera.com/literature/univ/upds.pdf

More information

Document Version: 0.6 Document Date: 15 April 2011 Prepared by: Y. Ermoline for ATLAS Level-1Calorimeter Trigger

Document Version: 0.6 Document Date: 15 April 2011 Prepared by: Y. Ermoline for ATLAS Level-1Calorimeter Trigger ATLAS ATL-DA-EN-0004 EDMS Id: 1100579 ATLAS TDAQ Level-1 Calorimeter Trigger VHLD guidelines Document Version: 0.6 Document Date: 15 April 2011 Prepared by: Y. Ermoline for ATLAS Level-1Calorimeter Trigger

More information

File: /home/young/mywork/5.cordic_vhdl/a.beh/print.cordic_beh Page 1 of 10

File: /home/young/mywork/5.cordic_vhdl/a.beh/print.cordic_beh Page 1 of 10 File: /home/young/mywork/5.cordic_vhdl/a.beh/print.cordic_beh Page 1 of 10.SUFFIXES :.o.vhdl.vhdl.o : ghdl -a $< cordic_tb : cordic_pkg.o cordic_beh.o cordic_tb.o ghdl -e cordic_tb anal : cordic_pkg.o

More information

Getting Started with the CPU Design

Getting Started with the CPU Design Getting Started with the CPU Design In this tutorial we will create a skeleton of your top-level computer and CPU. You may want to create a new library for these designs, but you may feel free to use your

More information

Advanced Training Course on FPGA Design and VHDL for Hardware Simulation and Synthesis. 26 October - 20 November, 2009

Advanced Training Course on FPGA Design and VHDL for Hardware Simulation and Synthesis. 26 October - 20 November, 2009 2065-15 Advanced Training Course on FPGA Design and VHDL for Hardware Simulation and Synthesis 26 October - 20 November, 2009 FPGA Architectures & VHDL Introduction to Synthesis Nizar Abdallah ACTEL Corp.2061

More information

entity priority is Port ( a,b,c,d : in STD_LOGIC; encoded : out STD_LOGIC_VECTOR(2 downto 0)); end priority;

entity priority is Port ( a,b,c,d : in STD_LOGIC; encoded : out STD_LOGIC_VECTOR(2 downto 0)); end priority; Примери Приоритетен кодер library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity priority is Port ( a,b,c,d : in STD_LOGIC; encoded : out STD_LOGIC_VECTOR(2 downto 0)); end priority; architecture Behavioral

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

Design Problem 5 Solutions

Design Problem 5 Solutions CS/EE 260 Digital Computers: Organization and Logical Design Design Problem 5 Solutions Jon Turner Due 5/4/04 1. (100 points) In this problem, you will implement a simple shared memory multiprocessor system

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

ECE 545 Lecture 5. Data Flow Modeling in VHDL. George Mason University

ECE 545 Lecture 5. Data Flow Modeling in VHDL. George Mason University ECE 545 Lecture 5 Data Flow Modeling in VHDL George Mason University Required reading P. Chu, RTL Hardware Design using VHDL Chapter 4, Concurrent Signal Assignment Statements of VHDL 2 Types of VHDL Description

More information

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

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

310/ ICTP-INFN Advanced Tranining Course on FPGA and VHDL for Hardware Simulation and Synthesis 27 November - 22 December 2006

310/ ICTP-INFN Advanced Tranining Course on FPGA and VHDL for Hardware Simulation and Synthesis 27 November - 22 December 2006 310/1780-10 ICTP-INFN Advanced Tranining Course on FPGA and VHDL for Hardware Simulation and Synthesis 27 November - 22 December 2006 VHDL & FPGA - Session 2 Nizar ABDALLH ACTEL Corp. 2061 Stierlin Court

More information

Digital System Construction

Digital System Construction Digital System Construction FYSIKUM Lecture 4: More VHDL, memory, PRNG Arithmetic Memories Pipelines and buffers Pseudorandom numbers IP core generation in Vivado Introduction to Lab 3 Digital Systemkonstruktion

More information

SEQUENTIAL STATEMENTS

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

More information

Processes. #44/137 TKT-1212 Dig.järj.tot., syksy 2008, A. Kulmala, TTY

Processes. #44/137 TKT-1212 Dig.järj.tot., syksy 2008, A. Kulmala, TTY Processes #44/137 TKT-1212 Dig.järj.tot., syksy 2008, A. Kulmala, TTY Process Basic modeling concept of VHDL Processes are executed in parallel Contains a set of statements that are executed sequentially

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

CSEE W4840 Embedded System Design Lab 1

CSEE W4840 Embedded System Design Lab 1 CSEE W4840 Embedded System Design Lab 1 Stephen A. Edwards Due January 31, 2008 Abstract Learn to use the Altera Quartus development envrionment and the DE2 boards by implementing a small hardware design

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

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

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

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

More information

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

EL 310 Hardware Description Languages Midterm

EL 310 Hardware Description Languages Midterm EL 3 Hardware Description Languages Midterm 2 3 4 5 Total Name: ID : Notes: ) Please answer the questions in the provided space after each question. 2) Duration is minutes 3) Closed books and closed notes.

More information

Today. Comments about assignment Max 1/T (skew = 0) Max clock skew? Comments about assignment 3 ASICs and Programmable logic Others courses

Today. Comments about assignment Max 1/T (skew = 0) Max clock skew? Comments about assignment 3 ASICs and Programmable logic Others courses Today Comments about assignment 3-43 Comments about assignment 3 ASICs and Programmable logic Others courses octor Per should show up in the end of the lecture Mealy machines can not be coded in a single

More information

Lab # 5. Subprograms. Introduction

Lab # 5. Subprograms. Introduction Lab # 5 Subprograms Introduction Subprograms consist of procedures and functions. A procedure can return more than one argument; a function always returns just one. In a function, all parameters are input

More information

CSE 260 Digital Computers: Organization and Logical Design. Exam 2 Solutions

CSE 260 Digital Computers: Organization and Logical Design. Exam 2 Solutions CSE 260 Digital Computers: Organization and Logical Design Exam 2 Solutions Jon Turner 1. (10 points). The table at right shows a table with 5 rows and three columns with each column having a heading.

More information

Symbolically the RS-Latch that is being simulated is the one shown below, it s truth table is also given:

Symbolically the RS-Latch that is being simulated is the one shown below, it s truth table is also given: Symbolically the RS-Latch that is being simulated is the one shown below, it s truth table is also given: For this example you will need to create two VHDL (.vhd) files one represents the rslatch itself,

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

File: /home/young/mywork/vlsi/c.ari etic/adder/rtl/adder.cla.print Page 1 of 6

File: /home/young/mywork/vlsi/c.ari etic/adder/rtl/adder.cla.print Page 1 of 6 File: /home/young/mywork/vlsi/c.ari etic/adder/rtl/adder.cla.print Page 1 of 6 c1.adder.vhdl Purpose: Bianary Adder Entity Discussion: Licensing: This code is distributed under the GNU LGPL license. Modified:

More information

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

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

More information

TSIU03, SYSTEM DESIGN LECTURE 10

TSIU03, SYSTEM DESIGN LECTURE 10 LINKÖPING UNIVERSITY Department of Electrical Engineering TSIU03, SYSTEM DESIGN LECTURE 10 Mario Garrido Gálvez mario.garrido.galvez@liu.se Linköping, 2018 1 TODAY Time and frequency domains. Parameterizing

More information

ECE 545: Lecture 11. Programmable Logic Memories

ECE 545: Lecture 11. Programmable Logic Memories ECE 545: Lecture 11 Programmable Logic Memories Recommended reading Vivado Design Suite User Guide: Synthesis Chapter 4 RAM HDL Coding Techniques Initializing RAM Contents 7 Series FPGAs Memory Resources:

More information

Design Recommendations User Guide

Design Recommendations User Guide Design Recommations User Guide Intel Quartus Prime Pro Edition Updated for Intel Quartus Prime Design Suite: 18.0 Subscribe S Feedback Latest document on the web: PDF HTML Contents Contents 1. Recommed

More information

ECE 545: Lecture 11. Programmable Logic Memories. Recommended reading. Memory Types. Memory Types. Memory Types specific to Xilinx FPGAs

ECE 545: Lecture 11. Programmable Logic Memories. Recommended reading. Memory Types. Memory Types. Memory Types specific to Xilinx FPGAs ECE 545: Lecture 11 Programmable Logic Memories Recommended reading Vivado Design Suite User Guide: Synthesis Chapter 4 RAM HDL Coding Techniques Initializing RAM Contents 7 Series FPGAs Resources: User

More information

Files Notes on VHDL Synthesis. File input/output in VHDL Used in test benches. VHDL provides a standard TEXTIO package

Files Notes on VHDL Synthesis. File input/output in VHDL Used in test benches. VHDL provides a standard TEXTIO package Outline Files Notes on VHDL Synthesis CPE 528: Session #8 Department of Electrical and Computer Engineering University of Alabama in Huntsville 30/01/2003 UAH -CPE528 2 Files File input/output in VHDL

More information

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

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

More information