Guidelines for Laboratory Sessions:

Size: px
Start display at page:

Download "Guidelines for Laboratory Sessions:"

Transcription

1 University of Malta Faculty of Engineering Department of Electronic Systems Engineering Hardware Description Languages ELE 3103 Lecturer: Dr. Ivan Grech Laboratory Tutors: Dr. Edward Gatt Mr. Owen Casha Mr. Mark Bonnici Assessment: 60 % Examination 40 % Assignment Tutorial Sheet (15%) & Project (25%) Guidelines for Laboratory Sessions: 1. For the first laboratory session the student is required to bring along the walkthrough provided with this bundle and a softcopy of the sample code including the test bench. 2. It is important that the student provides a means to store his work as a softcopy e.g. pendrive, floppy disk etc. 3. Any preparatory work related to the assignments should be done before entering the lab sessions. No student will be allowed to enter the lab session without the requested work. 4. The assignment is divided into two parts: Tutorial Sheet: Project: o Carries 15% of laboratory work assessment o Includes short tasks to be solved by a VHDL code so that each student can capture good VHDL programming skills both behavioral and structural VHDL. o Students should deliver for each question preparation, code(s), test-benches, waveforms, results and any comments where applicable. o Carries the remaining 25% of laboratory work assessment o Includes a problem to be solved by a VHDL code and its aim is to test the skills acquired by students from the Tutorial Sheet. o Students should deliver a report which includes the following preparation, code(s), test-benches, waveforms, results and any comments where applicable. 5. The deliverables should be presented during an interview conducted by the laboratory tutors. The schedule for the interviews will be communicated later on. Hardware Description Languages ELE

2 Modelsim Walkthrough Design of a Simple ALU The following diagram shows the basic steps for simulating a design in Modelsim. Creating the working library In Modelsim, all designs, be they VHDL, Verilog, or a combination of the two, are compiled into a library. You typically start a new simulation in Modelsim by creating a working library called "work". "Work" is the library name used by the compiler as the default destination for compiled design units. Compiling your design After creating the working library, you compile your design units into it. The Modelsim library format is compatible across all supported platforms. You can simulate your design on any platform without having to recompile your design. Running the simulation With the design compiled, you invoke the simulator on a top-level module (Verilog) or a configuration or entity/architecture pair (VHDL). Assuming the design loads successfully, the simulation time is set to zero, and you enter a run command to begin simulation. Step 1: Creating a new Project. 1. Start Modelsim. 2. Create a new project. Select Create a Project from the Welcome dialog or File > New >Project (Main window) from the menu bar. This opens a dialog where you enter a Project Name, Project Location (i.e., directory), and Default Library Name. The default library is where compiled design units will reside. Type test in the Project Name field. Click Browse to select a directory where the project file will be stored. Leave the Default Library Name set to work. Click ok Hardware Description Languages ELE

3 Step 2: Adding items to the project Once you click OK to accept the new project settings, you will see a blank Project tab in the workspace area of the Main window and the Add items to the Project dialog will appear. From this dialog you can create a new design file, add an existing file, add a folder for organization purposes, or create a simulation configuration. Creating new files: In this walkthrough you will need two files: one for the VHDL code of the ALU and another for the test benches. Click Create New File. Click Browse. Write the file name you wish to give to file e.g. alu.vhd Click Open and then OK Repeat for any other files e.g. alu_tb.vhd and alu_tl.vhd These two files are attached to this walk-through. Hardware Description Languages ELE

4 Adding existing files: Click Add Existing File. Click Browse. Open the examples directory in your ModelSim installation tree Select alu.vhd, alu_tb.vhd and alu_tl.vhd Click Open and then OK You should now see two files listed in the Project tab of the Main window workspace. Question mark icons (?) in the Status column mean the file hasn t been compiled or the source file has changed since the last successful compile. The other columns identify file type (e.g., Verilog or VHDL), compilation order, and modified date. Changing compile order (VHDL) Compilation order is important in VHDL designs. Follow these steps to change compilation order within a project. Select Compile > Compile Order. Click the Auto Generate button. ModelSim "determines" the compile order by making multiple passes over the files. It starts compiling from the top; if a file fails to compile due to dependencies, it moves that file to the bottom and then recompiles it after compiling the rest of the files. It continues in this manner until all files compile successfully or until a file(s) can t be compiled for reasons other than dependency. Alternatively, you can select a file and use the Move Up and Move Down buttons to put the files in the correct order. Hardware Description Languages ELE

5 Step 3: Simulation Configurations A Simulation Configuration associates a design unit(s) and its simulation options. For example, say every time you load alu_tl.vhd you want to set the simulator resolution to nanoseconds (ns) and enable event order hazard checking. Ordinarily you would have to specify those options each time you load the design. With a Simulation Configuration, you specify options for a design and then save a "configuration" that associates the design and its options. The configuration is then listed in the Project tab and you can double-click it to load alu.vhd along with its options. Create a new Simulation Configuration: Select File > Add to Project > Simulation Configuration. Type alu in the Simulation Configuration Name field Select Top Level from the Place in Folder drop-down Click the + icon next to the work library and select alu_tl. Click the Resolution drop-down and select ns Click Ok The Project tab now shows a Simulation Configuration named alu. Step 4: Load the Simulation Configuration. Double-click the alu Simulation Configuration in the Project tab. In the Transcript pane of the Main window, the vsim (the ModelSim simulator) invocation shows the -t ps switches. These are the command-line equivalents of the options you specified in the Simulate dialog. Hardware Description Languages ELE

6 Step 5: Running Simulation Enter Simulation time in space allocated: e.g. 160 ns Select Simulate > Run > Restart Select Simulate > Run-All Step 6: Wave Window The Wave window allows you to view the results of your simulation as HDL waveforms and their values. The Wave window is divided into a number of window panes. All window panes in the Wave window can be resized by clicking and dragging the bar between any two panes. Adding items to the Wave window ModelSim offers several methods for adding items to the Wave window. In this exercise, you ll try out different methods. 1. Add items using drag-and-drop. You can drag an item to the Wave window from many other windows (e.g., Main, Signals, and Variables). Drag an instance from the sim tab of the Main window to the Wave. Drag a signal from the Signals window to the Wave window. In the Wave window, select Edit > Select All and then Edit > Delete. Hardware Description Languages ELE

7 2. Add items using a command. Type add wave * at the VSIM> prompt. ModelSim adds all items from the current region. Run the simulation for awhile so you can see waveforms. Using cursors in the Wave window Cursors mark simulation time in the Wave window. When ModelSim first draws the Wave window, it places one cursor at time zero. Clicking anywhere in the waveform pane brings that cursor to the mouse location. You can also add additional cursors; name, lock, and delete cursors; use cursors to measure time interval; and use cursors to find transitions. Working with a single cursor Position the cursor by clicking and dragging. Click the Select Mode icon on the Wave window toolbar. Click anywhere in the waveform pane. A cursor is inserted at the time where you clicked Drag the cursor and observe the value pane. The signal values change as you move the cursor. This is perhaps the easiest way to examine the value of a signal at a particular time. d In the waveform pane, drag the cursor to the right of a transition with the mouse positioned over a waveform. The cursor "snaps" to the transition. Cursors "snap" to a waveform edge if you click or drag a cursor to within ten pixels of a waveform edge. You can set the snap distance in the Window Preferences dialog (select Tools > Window Preferences). In the cursor pane, drag the cursor to the right of a transition. The cursor doesn t snap to a transition if you drag in the cursor pane. Hardware Description Languages ELE

8 VHDL Code for clk, reset Project : Simple Reset Author : Owen Casha Date : 10/10/ Company : UOM File : system.vhd Design : Walkthrough library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; use IEEE.std_logic_misc.all; use IEEE.std_logic_unsigned.all; entity SYSTEM is port ( ); end SYSTEM; reset : out bit ; clk : out bit architecture SYSTEM_arch of SYSTEM is begin SIGNAL reset : bit := '1'; SIGNAL clk : bit; CONSTANT clk_pd CONSTANT reset_pd : time := 100 ns; --clock period : time := 200 ns; --reset period BEGIN clock generator clock_driver : PROCESS BEGIN clk <= '0'; WAIT FOR clk_pd / 2; LOOP clk <= '1', '0' AFTER clk_pd / 2; WAIT FOR clk_pd; END LOOP; END PROCESS; reset driver reset <= '0' after reset_pd; END SYSTEM_arch Hardware Description Languages ELE

9 VHDL Code for ALU Project : Simple Arithmetic Logic Unit Author : Owen Casha Date : 10/10/ Company : UOM File : alu.vhd Design : Walkthrough library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; use IEEE.std_logic_misc.all; use IEEE.std_logic_unsigned.all; entity ALU is port ( Accumulator_in: in STD_LOGIC_VECTOR (7 downto 0); Data_in : in STD_LOGIC_VECTOR (7 downto 0); Opcode_in : in STD_LOGIC_VECTOR (3 downto 0); Result_out : out STD_LOGIC_VECTOR (7 downto 0) ); end ALU; architecture ALU_arch of ALU is begin Main: process(accumulator_in,opcode_in, Data_in) begin case Opcode_in is when "0000" => Result_out <= Data_in; -- result = Data_in when "0001"=> Result_out <= Accumulator_in; -- result = accumulator_in when "0010"=> Result_out <= " "; -- result = accumulator_in + Data_in when "0011"=> Result_out <= " "; -- result = accumulator_in - Data_in when "0100"=> Result_out <= Accumulator_in and Data_in; -- result = accumulator_in and Data_in when "0101"=> Result_out <= Accumulator_in or Data_in; -- result = accumulator_in or Data_in when "0110"=> Result_out <= Accumulator_in xor Data_in; -- result = accumulator_in xor Data_in when "0111"=> Result_out <= not(accumulator_in); -- result = not(accumulator_in) when "1000"=> Result_out <= not(accumulator_in); -- result = not(data_in); when "1001"=> Result_out <= " "; -- result = 0 when "1010"=> Result_out <= " "; -- result = 8 LSBs of ( accumulator_in * Data_in) when "1011"=> Result_out <= " "; -- result = 8 MSBs of ( accumulator_in * Data_in) when "1100"=> Result_out <= accumulator_in nand Data_in; -- result = accumulator_in nand Data_in when "1101"=> Result_out <= accumulator_in nor Data_in; -- result = accumulator_in nor Data_in when "1110"=> Result_out <= accumulator_in xnor Data_in; --result=accumulator_in xnor Data_in when "1111"=> Result_out <= " "; --result=accumulator_in+1 when others => Result_out <="XXXXXXXX"; end case; end process Main; end ALU_arch; Hardware Description Languages ELE

10 Test Bench for ALU Project : Simple Arithmetic Logic Unit Author : Owen Casha Date : 10/10/ Company : UOM File : alu_tb.vhd Design : Walkthrough library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; use IEEE.std_logic_misc.all; use IEEE.std_logic_unsigned.all; entity alu_tb is port ( ); end alu_tb; Accumulator_out: out std_logic_vector (8 downto 1); Data_out : out std_logic_vector (8 downto 1); Opcode_out : out std_logic_vector (4 downto 1) architecture alu_tb_arch of alu_tb is begin operation_1: PROCESS begin wait for 0ns; Opcode_out <= "0000"; wait for 10 ns; Opcode_out <= "0001"; wait for 10 ns; Opcode_out <= "0010"; wait for 10 ns; Opcode_out <= "0011"; wait for 10 ns; Opcode_out <= "0100"; wait for 10 ns; Opcode_out <= "0101"; wait for 10 ns; Opcode_out <= "0110"; wait for 10 ns; Opcode_out <= "0111"; wait for 10 ns; Opcode_out <= "1000"; wait for 10 ns; Opcode_out <= "1001"; wait for 10 ns; Opcode_out <= "1010"; wait for 10 ns; Opcode_out <= "1011"; wait for 10 ns; Opcode_out <= "1100"; wait for 10 ns; Opcode_out <= "1101"; wait for 10 ns; Opcode_out <= "1110"; wait for 10 ns; Opcode_out <= "1111"; wait; end PROCESS operation_1; operation_2: PROCESS begin wait for 0ns; Data_out <= " "; wait; end PROCESS operation_2; operation_3: PROCESS begin wait for 0ns; Accumulator_out <= " "; wait; end PROCESS operation_3; end alu_tb_arch; Hardware Description Languages ELE

11 Top Level for ALU Project : Simple Arithmetic Logic Unit Author : Owen Casha Date : 10/10/ Company : UOM File : alu_tl.vhd Design : Walkthrough library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; use IEEE.std_logic_misc.all; use IEEE.std_logic_unsigned.all; entity alu_tl is port ( Result : out std_logic_vector (8 downto 1) ); end alu_tl; architecture alu_tl_arch of alu_tl is component alu port ( Accumulator_in: in std_logic_vector (8 downto 1); Data_in: in std_logic_vector (8 downto 1); Opcode_in: in std_logic_vector (4 downto 1); Result_out: out std_logic_vector (8 downto 1) ); end component ; component alu_tb is port ( Accumulator_out: out std_logic_vector (8 downto 1); Data_out: out std_logic_vector (8 downto 1); Opcode_out: out std_logic_vector (4 downto 1) ); end component; signal Accumulator : std_logic_vector(8 downto 1); signal Data : std_logic_vector(8 downto 1); signal Opcode : std_logic_vector(4 downto 1); begin alu_1 : alu port map ( Accumulator_in => Accumulator, Data_in => Data, Opcode_in => Opcode, Result_out => Result ); tb_1 : alu_tb port map ( Accumulator_out => Accumulator, Data_out => Data, Opcode_out => Opcode ); end alu_tl_arch; Hardware Description Languages ELE

12 VHDL Coding style 1. VHDL directory format The following table is the recommended way to organize your project. Each project should be placed in a separate directory. Project directory Sub directories Description title doc Place any documentation here rtl synth testbench work Place vhdl files here Place synthesis script here Place simulation test files here Work directory for modelsim 2. VHDL file name description Project name File name Description title entity_name.vhd One architecture and one entity entity_name_arch.vhd One architecture entity_name_ent.vhd One entity entity_name_cfg.vhd One configuration entity_name_pkg.vhd Package entity_name_tb.vhd Test bench Rule: A VHDL file and the entity it contains have the same name. 3. VHDL signal naming convention Signal name _in _out _io _reg _lat _clk _rst _n _async Description Input signal Output signal Inout signal Output Signal of a flipflop Output signal of a latch Clock signal reset_signal Negative logic signal Asynchronous signal Hardware Description Languages ELE

13 4. VHDL File header Every VHDL file starts with standard header: -- Project : project or course name -- Author : Mark Bonnici -- Date : 01 jan Company : File : RISC1.vhd -- Design : Course exercise 1 --Description : RISC1 top module --Changes : 5. Architecture Architecture should be one of the following: name Description BEHAVIORAL implies physical logic, does not compiler with rtl tools RTL Implies physical logic, compiler with rtl tools STRUCTURAL GATE SIMULATION TESTBENCH Implies physical connections, but not any logic Gate level netlist Simulation model Test bench model 6. Code Appearance I.1 -VHDL code must be indented. Use three spaces for indentation. I.2 -The maximum length of lines is 80. I.3 - place each port on a different line. I.4 -Use lower case I.5 -Align the colons in the entity port. I.6 -Add a short comment to each port I.7 -Add other comments as necessary to make your code more readable and understandable. Example -- Project : project or course name -- Author : -- Date : -- Company : File : async_dff.vhd -- Design : Course exercise 1 --Description : asynchronous d type fliflop --Changes : --entity of asynchronous d flpflop Hardware Description Languages ELE

14 ENTITY async_dff is PORT ( async_rst : in std_logic; --asynchronous reset clk : in std_logic; --system clock d_in : in std_logic; --data input q_reg_out : out std_logic; --data output end async_dff; --architecture of asynchronous d flpflop architecture behav of async_dff is begin process (clk, async_rst) begin if (async_rst = '1') then q_reg_out <= '0'; elsif (clk'event and clk = '1') then q_reg_out <= d_in; end if; end process; end behav; Hardware Description Languages ELE

15 Hardware Description Languages ELE 3103 Tutorial Sheet Note: Any preparatory work related to the tutorial sheet should be done before entering the lab sessions. No student will be allowed to enter the lab session without the requested work. Question 1 Design a VHDL code to control the enable of a pump which fills a water tank. As shown in the figure 1 below the inputs to the controller are X and Y which are fed from two sensors connected to the water tank. The controller should issue a pump enable signal E. Note that X, Y and E are 1 bit signals. Figure 1 Water Tank System (WTS) You should assume that the sensor gives a logic high signal in presence of water. The controller should be designed in a way to enable the pump ONLY when the water level falls below the lower limit Y and switches off ONLY when the water level has risen beyond the upper limit X. Note that the controller should be synchronized to a clock and should have an asynchronous reset. Preparation: State Diagram, Implementation Code, Testing Sequence Question 2 Figure 2 Sequence Detector Design a sequential logic circuit using VHDL which can detect an input sequence of 110. Data (din) is fed serially in on every clock cycle. As soon as it detects a correct sequence, an output alert (sync_out) is issued and it will restart scanning the input for another correct sequence. Your answer should include a minimized state diagram and an appropriate test bench. Note that din and sync_out are 1 bit signals. Preparation: State Diagram, Implementation Code, Testing Sequence Question 3 (a) Describe a BCD to seven segment display decoder as a VHDL code. The value assigned to the output vector is to be determined according to Figure 3, where a should be placed as the MSB of your output vector. Figure 3 Seven Segment Display (b) Design a counter with the following specifications: Hardware Description Languages ELE

16 4 bit output BCD/binary counter Carry output signals Asynchronous Reset Synchronous Pre-Programming capability of the output value. Functional description: Figure 4 4-bit Output Counter When async_rst =1, cntr_out is resetted to zero. When pdata_en = 1, cntr_out is set to pdata_in in the next clock cycle. When cntr_en = 1, then cntr_out is incremented on every clock cycle. In BCD mode (bcd_mode = 1), the counter cycles from 0 to 9 In Binary mode (bcd_mode = 0), the counter cycles from 0 to 15 (c) Connect the blocks designed in parts (a) and (b) in a structural VHDL architecture and perform adequate testing. Figure 5 Counter with 7-segment display driver Preparation: Implementation Codes, Testing Sequences Hardware Description Languages ELE

17 Hardware Description Languages ELE 3103 Project Note: Any preparatory work related to the project should be done before entering the lab sessions. No student will be allowed to enter the lab session without the requested work. Aim: Implementation of an Integer Multiplier using VHDL To implement a sequential algorithm for multiplication of positive integer using a hardware description language. Theory: Integer Multiplication Algorithm The block diagram in Figure 1 shows the hardware arrangement for sequential multiplication. This circuit performs multiplication by using a single n-bit adder n times to implement the spatial addition performed in the standard long multiplication of numbers. Registers A and Q combined hold the i th partial product while multiplier bit qi generates the Add/NoAdd signal. If q i = 1 then Add else NoAdd. This signal controls the addition of the multiplicand M to the i th partial product to generate the i+1 th partial product. The product is computed in n cycles. The partial product grows in length by one bit per cycle from the initial vector PP0, of n zeros in register A. The carry-out from the adder is stored in flip-flop C. At the beginning, the multiplier is loaded into register Q, the multiplicand into register M, while C and A are cleared to 0. At the end of each cycle, C, A and Q are shifted right one bit position to allow for growth of the partial product as the multiplier is shifted out of register Q. After n cycles the higher-order half of the product is held in A and the low-order half is in register Q. Figure 1 Sequential Multiplier Hardware Description Languages ELE

18 Preparation 1. Work out the following using the above algorithm on a paper: x showing the contents of the respective registers after each cycle. 2. Identify using either a descriptive or pictorial approach, the minimum number of sub-systems required to implement the algorithms, giving the input, output and processing requirements of each block. Assume that the algorithm implementations will be capable of handling 4-bit integer numbers. Implementation Multiplier Figure 2 Input/Output Requirements of Multiplier When mult_start signal is enabled for one clock cycle, the multiplier load the multiplicand_in and multiplier_in in the respective registers and starts the operation. An output signal mult_ready will show when the result is ready. Describe the multiplier algorithm with a VHDL code. Remember to use structural VHDL in case you need to connect together the required sub-systems. Produce the required test benches to test your implementation. Use the examples given in part 1 of preparation to verify correct operation. Finally implement the multiplier algorithm on the Spartan-3 FPGA available in the HDL laboratory. Hardware Description Languages ELE

Hardware Description Languages M E 2202 Tutorial Sheet

Hardware Description Languages M E 2202 Tutorial Sheet Hardware Description Languages M E 2202 Tutorial Sheet Lecturer: Dr. Edward Gatt ejgatt@eng.um.edu.mt Laboratory Tutors: Dr. Ivan Grech igrech@eng.um.edu.mt Mr. Owen Casha owen.casha@um.edu.mt Assessment:

More information

VHDL Quick Start. Edward Gatt

VHDL Quick Start. Edward Gatt VHDL Quick Start Edward Gatt Modeling Digital Systems VHDL is for writing models of a system Reasons for modeling requirements specification design needs to meet specifications which maybe incomplete or

More information

Design a three-input, two-output sequential digital circuit which functions as a digital locking mechanism. LOCK ALARM

Design a three-input, two-output sequential digital circuit which functions as a digital locking mechanism. LOCK ALARM Department of Computing Course 112 Hardware First Year Laboratory Assignment Dates for the session 2005-2006: Hand out Date: 10 th January 2006 Hand in deadline (electronic and written report): 17.00 Monday

More information

Using Synplify Pro, ISE and ModelSim

Using Synplify Pro, ISE and ModelSim Using Synplify Pro, ISE and ModelSim VLSI Systems on Chip ET4 351 Rene van Leuken Huib Lincklaen Arriëns Rev. 1.2 The EDA programs that will be used are: For RTL synthesis: Synplicity Synplify Pro For

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

Using ModelSim to Simulate Logic Circuits in VHDL Designs. 1 Introduction. For Quartus II 13.0

Using ModelSim to Simulate Logic Circuits in VHDL Designs. 1 Introduction. For Quartus II 13.0 Using ModelSim to Simulate Logic Circuits in VHDL Designs For Quartus II 13.0 1 Introduction This tutorial is a basic introduction to ModelSim, a Mentor Graphics simulation tool for logic circuits. We

More information

Lecture 12 VHDL Synthesis

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

More information

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

CPEN 230L: Introduction to Digital Logic Laboratory Lab #6: Verilog and ModelSim

CPEN 230L: Introduction to Digital Logic Laboratory Lab #6: Verilog and ModelSim CPEN 230L: Introduction to Digital Logic Laboratory Lab #6: Verilog and ModelSim Purpose Define logic expressions in Verilog using register transfer level (RTL) and structural models. Use Quartus II to

More information

UNIVERSITY OF CALIFORNIA, DAVIS Department of Electrical and Computer Engineering. EEC180A DIGITAL SYSTEMS I Winter 2015

UNIVERSITY OF CALIFORNIA, DAVIS Department of Electrical and Computer Engineering. EEC180A DIGITAL SYSTEMS I Winter 2015 UNIVERSITY OF CALIFORNIA, DAVIS Department of Electrical and Computer Engineering EEC180A DIGITAL SYSTEMS I Winter 2015 LAB 1: Introduction to Quartus II Schematic Capture and ModelSim Simulation This

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

DIGITAL SYSTEM DESIGN

DIGITAL SYSTEM DESIGN DIGITAL SYSTEM DESIGN Prepared By: Engr. Yousaf Hameed Lab Engineer BASIC ELECTRICAL & DIGITAL SYSTEMS LAB DEPARTMENT OF ELECTRICAL ENGINEERING Digital System Design 1 Name: Registration No: Roll No: Semester:

More information

Lecture 1: Introduction Course arrangements Recap of basic digital design concepts EDA tool demonstration

Lecture 1: Introduction Course arrangements Recap of basic digital design concepts EDA tool demonstration TKT-1426 Digital design for FPGA, 6cp Fall 2011 http://www.tkt.cs.tut.fi/kurssit/1426/ Tampere University of Technology Department of Computer Systems Waqar Hussain Lecture Contents Lecture 1: Introduction

More information

ENGR 5865 DIGITAL SYSTEMS

ENGR 5865 DIGITAL SYSTEMS ENGR 5865 DIGITAL SYSTEMS ModelSim Tutorial Manual January 22, 2007 Introduction ModelSim is a CAD tool widely used in the industry for hardware design. This document describes how to edit/add, compile

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

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

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

More information

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

Designing with VHDL and FPGA

Designing with VHDL and FPGA Designing with VHDL and FPGA Instructor: Dr. Ahmad El-Banna lab# 5-II 1 Agenda Structural way in VHDL Mixed Example 2 Modeling the Structurural way Structural architecture implements the module as a composition

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

EITF35 - Introduction to the Structured VLSI Design (Fall 2016) Interfacing Keyboard with FPGA Board. (FPGA Interfacing) Teacher: Dr.

EITF35 - Introduction to the Structured VLSI Design (Fall 2016) Interfacing Keyboard with FPGA Board. (FPGA Interfacing) Teacher: Dr. EITF35 - Introduction to the Structured VLSI Design (Fall 2016) Interfacing Keyboard with FPGA Board (FPGA Interfacing) Teacher: Dr. Liang Liu v.1.0.0 1 Abstract This document describes the basic behavior

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

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

Assignment 01 Computer Architecture Lab ECSE

Assignment 01 Computer Architecture Lab ECSE Assignment 01 Computer Architecture Lab ECSE 487-001 Date due: September 22, 2006, Trottier Assignment Box by 14:30 1 Introduction The purpose of this assignment is to re-familiarize the student with VHDL

More information

ENSC 350 ModelSim Altera Tutorial

ENSC 350 ModelSim Altera Tutorial ENSC 350 ModelSim Altera Tutorial This is a quick guide get you started with the ModelSim Altera simulator. ModelSim is only a functional verification tool so you will also have to use Quartus II to complete

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

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

JEE2600 INTRODUCTION TO DIGITAL LOGIC AND COMPUTER DESIGN. ModelSim Tutorial. Prepared by: Phil Beck 9/8/2008. Voter Function

JEE2600 INTRODUCTION TO DIGITAL LOGIC AND COMPUTER DESIGN. ModelSim Tutorial. Prepared by: Phil Beck 9/8/2008. Voter Function JEE2600 INTRODUCTION TO DIGITAL LOGIC AND COMPUTER DESIGN ModelSim Tutorial Prepared by: Phil Beck 9/8/2008 Vote 1 Vote 2 Voter Function Pass Vote 3 Pass is only a 1 when two or more of the Vote inputs

More information

Quick Tutorial for Quartus II & ModelSim Altera

Quick Tutorial for Quartus II & ModelSim Altera Quick Tutorial for Quartus II & ModelSim Altera By Ziqiang Patrick Huang Hudson 213c Ziqiang.huang@duke.edu Download & Installation For Windows or Linux users : Download Quartus II Web Edition v13.0 (ModelSim

More information

MATLAB AND MODELSIM LINKING

MATLAB AND MODELSIM LINKING MATLAB AND MODELSIM LINKING DR.S.S.Limaye Introduction: MATLAB is powerful software package for mathematical simulation, especially when signals are represented in an abstract i.e. mathematical form. When

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

[VARIABLE declaration] BEGIN. sequential statements

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

More information

Experiment VERI: FPGA Design with Verilog (Part 2) (webpage: /)

Experiment VERI: FPGA Design with Verilog (Part 2) (webpage:   /) Department of Electrical & Electronic Engineering 2 nd Year Laboratory Experiment VERI: FPGA Design with Verilog (Part 2) (webpage: www.ee.ic.ac.uk/pcheung/teaching/e2_experiment /) 1.0 Learning Outcomes

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

AccelDSP tutorial 2 (Matlab.m to HDL for Xilinx) Ronak Gandhi Syracuse University Fall

AccelDSP tutorial 2 (Matlab.m to HDL for Xilinx) Ronak Gandhi Syracuse University Fall AccelDSP tutorial 2 (Matlab.m to HDL for Xilinx) Ronak Gandhi Syracuse University Fall 2009-10 AccelDSP Getting Started Tutorial Introduction This tutorial exercise will guide you through the process of

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

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

TUTORIAL On USING XILINX ISE FOUNDATION DESIGN TOOLS: Mixing VHDL and Schematics

TUTORIAL On USING XILINX ISE FOUNDATION DESIGN TOOLS: Mixing VHDL and Schematics TUTORIAL On USING XILINX ISE FOUNDATION DESIGN TOOLS: Mixing VHDL and Schematics Shawki Areibi July 7, 2005 1 Introduction The objective of this tutorial is to show how VHDL can be incorporated into a

More information

Introduction to Simulation of VHDL Designs Using ModelSim Graphical Waveform Editor. 1 Introduction. For Quartus Prime 16.1

Introduction to Simulation of VHDL Designs Using ModelSim Graphical Waveform Editor. 1 Introduction. For Quartus Prime 16.1 Introduction to Simulation of VHDL Designs Using ModelSim Graphical Waveform Editor For Quartus Prime 16.1 1 Introduction This tutorial provides an introduction to simulation of logic circuits using the

More information

Lecture 5: Aldec Active-HDL Simulator

Lecture 5: Aldec Active-HDL Simulator Lecture 5: Aldec Active-HDL Simulator 1. Objective The objective of this tutorial is to introduce you to Aldec s Active-HDL 9.1 Student Edition simulator by performing the following tasks on a 4-bit adder

More information

Verilog Design Entry, Synthesis, and Behavioral Simulation

Verilog Design Entry, Synthesis, and Behavioral Simulation ------------------------------------------------------------- PURPOSE - This lab will present a brief overview of a typical design flow and then will start to walk you through some typical tasks and familiarize

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

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

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

QUARTUS II Altera Corporation

QUARTUS II Altera Corporation QUARTUS II Quartus II Design Flow Design Entry Timing Constraints Synthesis Placement and Routing Timing, Area, Power Optimization Timing and Power Analyzer Optimized Design 2 Can I still use a Processor?

More information

E85: Digital Design and Computer Engineering Lab 2: FPGA Tools and Combinatorial Logic Design

E85: Digital Design and Computer Engineering Lab 2: FPGA Tools and Combinatorial Logic Design E85: Digital Design and Computer Engineering Lab 2: FPGA Tools and Combinatorial Logic Design Objective The purpose of this lab is to learn to use Field Programmable Gate Array (FPGA) tools to simulate

More information

The Optimization of a Design Using VHDL Concepts

The Optimization of a Design Using VHDL Concepts The Optimization of a Design Using VHDL Concepts Iuliana CHIUCHISAN 1, Alin Dan POTORAC 2 "Stefan cel Mare" University of Suceava str.universitatii nr.13, RO-720229 Suceava 1 iuliap@eed.usv.ro, 2 alinp@eed.usv.ro

More information

CPE 626 Advanced VLSI Design Lecture 6: VHDL Synthesis. Register File: An Example. Register File: An Example (cont d) Aleksandar Milenkovic

CPE 626 Advanced VLSI Design Lecture 6: VHDL Synthesis. Register File: An Example. Register File: An Example (cont d) Aleksandar Milenkovic CPE 626 Lecture 6: VHDL Synthesis Aleksandar Milenkovic http://www.ece.uah.edu/~milenka http://www.ece.uah.edu/~milenka/cpe626-04f/ milenka@ece.uah.edu Assistant Professor Electrical and Computer Engineering

More information

UNIVERSITI MALAYSIA PERLIS

UNIVERSITI MALAYSIA PERLIS UNIVERSITI MALAYSIA PERLIS SCHOOL OF COMPUTER & COMMUNICATIONS ENGINEERING EKT 124 LABORATORY MODULE INTRODUCTION TO QUARTUS II DESIGN SOFTWARE : INTRODUCTION TO QUARTUS II DESIGN SOFTWARE OBJECTIVES To

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

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

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

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

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

Lab 3. Advanced VHDL

Lab 3. Advanced VHDL Lab 3 Advanced VHDL Lab 3 Advanced VHDL This lab will demonstrate many advanced VHDL techniques and how they can be used to your advantage to create efficient VHDL code. Topics include operator balancing,

More information

Department of Electronics & Communication Engineering Lab Manual E-CAD Lab

Department of Electronics & Communication Engineering Lab Manual E-CAD Lab Department of Electronics & Communication Engineering Lab Manual E-CAD Lab Prasad V. Potluri Siddhartha Institute of Technology (Sponsored by: Siddhartha Academy of General & Technical Education) Affiliated

More information

Xilinx ChipScope ICON/VIO/ILA Tutorial

Xilinx ChipScope ICON/VIO/ILA Tutorial Xilinx ChipScope ICON/VIO/ILA Tutorial The Xilinx ChipScope tools package has several modules that you can add to your Verilog design to capture input and output directly from the FPGA hardware. These

More information

MicroBlaze Tutorial on EDK 10.1 using Sparatan III E Behavioural Simulation of MicroBlaze System

MicroBlaze Tutorial on EDK 10.1 using Sparatan III E Behavioural Simulation of MicroBlaze System MicroBlaze Tutorial on EDK 10.1 using Sparatan III E Behavioural Simulation of MicroBlaze System Ahmed Elhossini January 24, 2010 1 Introduction 1.1 Objectives This tutorial will demonstrate process of

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

Chip Design with FPGA Design Tools

Chip Design with FPGA Design Tools Chip Design with FPGA Design Tools Intern: Supervisor: Antoine Vazquez Janusz Zalewski Florida Gulf Coast University Fort Myers, FL 33928 V1.9, August 28 th. Page 1 1. Introduction FPGA is abbreviation

More information

VHDL Introduction to tools. TSTE12 Datorteknik Kent Palmkvist, Thomas Johansson. Version

VHDL Introduction to tools. TSTE12 Datorteknik Kent Palmkvist, Thomas Johansson. Version VHDL Introduction to tools TSTE12 Datorteknik Kent Palmkvist, Thomas Johansson Version 0.5 2017-08-30 1 1 Introduction This handbook is your guide to the VHDL simulation tool set used in the course. You

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

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

Tutorial on Simulation using Aldec Active-HDL Ver 1.0

Tutorial on Simulation using Aldec Active-HDL Ver 1.0 Tutorial on Simulation using Aldec Active-HDL Ver 1.0 by Shashi Karanam Introduction Active- HDL is an integrated environment designed for development of VHDL designs. The core of the system is a VHDL

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

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

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

ECSE-323 Digital System Design. Lab #1 Using the Altera Quartus II Software Fall 2008

ECSE-323 Digital System Design. Lab #1 Using the Altera Quartus II Software Fall 2008 1 ECSE-323 Digital System Design Lab #1 Using the Altera Quartus II Software Fall 2008 2 Introduction. In this lab you will learn the basics of the Altera Quartus II FPGA design software through following

More information

Laboratory of Digital Circuits Design: Design, Implementation and Simulation of Digital Circuits Using Programmable Devices

Laboratory of Digital Circuits Design: Design, Implementation and Simulation of Digital Circuits Using Programmable Devices Internet Engineering Dr. Jarosław Sugier Laboratory of Digital Circuits Design: Design, Implementation and Simulation of Digital Circuits Using Programmable Devices This document presents software packages

More information

Verilog for High Performance

Verilog for High Performance Verilog for High Performance Course Description This course provides all necessary theoretical and practical know-how to write synthesizable HDL code through Verilog standard language. The course goes

More information

HDL. Hardware Description Languages extensively used for:

HDL. Hardware Description Languages extensively used for: HDL Hardware Description Languages extensively used for: Describing (digital) hardware (formal documentation) Simulating it Verifying it Synthesizing it (first step of modern design flow) 2 main options:

More information

ECE 341 Midterm Exam

ECE 341 Midterm Exam ECE 341 Midterm Exam Time allowed: 90 minutes Total Points: 75 Points Scored: Name: Problem No. 1 (10 points) For each of the following statements, indicate whether the statement is TRUE or FALSE: (a)

More information

ECEU530. Schedule. ECE U530 Digital Hardware Synthesis. Datapath for the Calculator (HW 5) HW 5 Datapath Entity

ECEU530. Schedule. ECE U530 Digital Hardware Synthesis. Datapath for the Calculator (HW 5) HW 5 Datapath Entity ECE U530 Digital Hardware Synthesis Prof. Miriam Leeser mel@coe.neu.edu November 6, 2006 Classes November 6 and 8 are in 429 Dana! Lecture 15: Homework 5: Datapath How to write a testbench for synchronous

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

DIGITAL LOGIC DESIGN VHDL Coding for FPGAs

DIGITAL LOGIC DESIGN VHDL Coding for FPGAs IGITAL LOGIC SIGN VHL Coding for FPGAs SUNTIAL CIRCUITS Unit 5 Asynchronous sequential circuits: Latches Synchronous circuits: flip flops, counters, registers. Testbench: Generating stimulus COMBINATIONAL

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

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

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

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

Concurrent & Sequential Stmts. (Review)

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

More information

Hardware/Software Codesign for Wireless Systems (E168b) Lab 2: GPS Correlator

Hardware/Software Codesign for Wireless Systems (E168b) Lab 2: GPS Correlator Harris Hardware/Software Codesign for Wireless Systems (E168b) Lab 2: GPS Correlator Introduction In this lab, you will build a time-multiplexed correlator to search for and track GPS satellite signals.

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

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

Written exam for IE1204/5 Digital Design Thursday 29/

Written exam for IE1204/5 Digital Design Thursday 29/ Written exam for IE1204/5 Digital Design Thursday 29/10 2015 9.00-13.00 General Information Examiner: Ingo Sander. Teacher: William Sandqvist phone 08-7904487 Exam text does not have to be returned when

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

ECE337 Lab 1 Introduction to VHDL Simulation via Modelsim and Digital Logic Design Refresher

ECE337 Lab 1 Introduction to VHDL Simulation via Modelsim and Digital Logic Design Refresher ECE337 Lab 1 Introduction to VHDL Simulation via Modelsim and Digital Logic Design Refresher The purpose of this first lab exercise is to help you become familiar with the VHDL synthesizer, Design Compiler

More information

Used to perform operations many times. See previous Parallel to Serial Example

Used to perform operations many times. See previous Parallel to Serial Example Loops- I Used to perform operations many times See previous Parallel to Serial Example Several advantages Coding style (easier to read) Laziness! When used correctly can generate better results at synthesis

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

ECE U530 Digital Hardware Synthesis. Course Accounts and Tools

ECE U530 Digital Hardware Synthesis. Course Accounts and Tools ECE U530 Digital Hardware Synthesis Prof. Miriam Leeser mel@coe.neu.edu Sept 13, 2006 Lecture 3: Basic VHDL constructs Signals, Variables, Constants VHDL Simulator and Test benches Types Reading: Ashenden

More information

EKT 422/4 COMPUTER ARCHITECTURE. MINI PROJECT : Design of an Arithmetic Logic Unit

EKT 422/4 COMPUTER ARCHITECTURE. MINI PROJECT : Design of an Arithmetic Logic Unit EKT 422/4 COMPUTER ARCHITECTURE MINI PROJECT : Design of an Arithmetic Logic Unit Objective Students will design and build a customized Arithmetic Logic Unit (ALU). It will perform 16 different operations

More information

IE1204 Digital Design L7: Combinational circuits, Introduction to VHDL

IE1204 Digital Design L7: Combinational circuits, Introduction to VHDL IE24 Digital Design L7: Combinational circuits, Introduction to VHDL Elena Dubrova KTH / ICT / ES dubrova@kth.se This lecture BV 38-339, 6-65, 28-29,34-365 IE24 Digital Design, HT 24 2 The multiplexer

More information

Chapter 2 Basic Logic Circuits and VHDL Description

Chapter 2 Basic Logic Circuits and VHDL Description Chapter 2 Basic Logic Circuits and VHDL Description We cannot solve our problems with the same thinking we used when we created them. ----- Albert Einstein Like a C or C++ programmer don t apply the logic.

More information

VHDL for FPGA Design. by : Mohamed Samy

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

More information

Introduction to WebPACK 3.1. Using XILINX WebPACK Software to Create CPLD Designs

Introduction to WebPACK 3.1. Using XILINX WebPACK Software to Create CPLD Designs Introduction to WebPACK 3.1 Using XILINX WebPACK Software to Create CPLD Designs RELEASE DATE: 8/28/2000 All XS-prefix product designations are trademarks of XESS Corp. All XC-prefix product designations

More information

Actel Libero TM Integrated Design Environment v2.3 Structural Schematic Flow Design Tutorial

Actel Libero TM Integrated Design Environment v2.3 Structural Schematic Flow Design Tutorial Actel Libero TM Integrated Design Environment v2.3 Structural Schematic Flow Design Tutorial 1 Table of Contents Design Flow in Libero TM IDE v2.3 Step 1 - Design Creation 3 Step 2 - Design Verification

More information

MLR Institute of Technology

MLR Institute of Technology MLR Institute of Technology Laxma Reddy Avenue, Dundigal, Quthbullapur (M), Hyderabad 500 043 Course Name Course Code Class Branch ELECTRONICS AND COMMUNICATIONS ENGINEERING QUESTION BANK : DIGITAL DESIGN

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

CPEN 230L: Introduction to Digital Logic Laboratory Lab 7: Multiplexers, Decoders, and Seven Segment Displays

CPEN 230L: Introduction to Digital Logic Laboratory Lab 7: Multiplexers, Decoders, and Seven Segment Displays CPEN 230L: Introduction to Digital Logic Laboratory Lab 7: Multiplexers, Decoders, and Seven Segment Displays Purpose Learn about multiplexers (MUXs), decoders and seven segment displays. Learn about hierarchical

More information