Lab 4: Register File and Memory 50 points Instructor: Yifeng Zhu Due: One week
|
|
- Darcy Riley
- 6 years ago
- Views:
Transcription
1 Objectives: Lab 4: Register File and Memory 50 points Instructor: Yifeng Zhu Due: One week Build Register File Build Instruction Memory and Data Memory 1. Overview A combinational circuit neither contains a periodic clock signal nor has any provisions for storage. There are no feedbacks involved and the output at all time is dependent on the inputs provided. The name combinational is derived from the combinations of logic gates used for such circuits. A sequential circuit involves feedback and has memory (such as registers and RAM). It also has a periodic clock signal and hence the output is also a function of time in addition to being a function of inputs and previous outputs. The name sequential is derived as the output is produced in sequences as the clock circuit enables and disables the functioning. (A latch is also a sequential circuit but has no clock signal and hence is a special case. It is also the basic building block of any sequential circuit.) Registers have the following key features. Their current "state" depends on the past sequence of inputs they've seen. They respond to a "clock" signal, i.e. they only change behavior or state at the instant in time when the clock signal changes from 0 to 1. This instant is called the "positive edge" of the clock signal. In the pipelined processor design, you need to use on-board RAM for instruction memory and data memory. Note that the instruction memory and data memory are separated. We are following Harvard Architecture. The following documents on the course website are helpful to access RAM. RAM Megafunction User Guide Using the SDRAM Memory on Altera s DE2 Board with VHDL or Verilog Design You will instantiate a register and memory components, store values in them, and retrieve those values in this lab. 2. Register A register is used to remember a multi-bit value for later use. Each register can remember exactly one multi-bit value. We call the value currently remembered in the register the register's value or the value stored by the register. The author (Yifeng Zhu) gratefully acknowledges borrowing parts of this homework assignment from ENGINEERING 100 (Section 700) Introduction to Computing Systems 2006 by Dr. Peter Chen. 1
2 The operation of a register is controlled by four input signals: clock, reset, WriteEnable, and data_in. The data_in has 4 bits in this lab. A register supports two operations (based on the values of these signals): Reset: sets the value of the register to all 0s. A reset operation will occur at the positive edge of the clock if the value of the reset signal at that time is 1. WriteEnable changes the value currently stored in the register to equal the value of the input parameter data_in. For shorthand, we say that we are "writing data_in to the register". A write will occur at the positive edge of the clock if the value of the write signal at that time is 1. The register outputs a multi-bit value, data_out, which is the 4-bit value currently stored in the register. This value changes immediately after the value stored in the register changes. data_in 4 WriteEnable reset A Register 4 data_out clock Figure 1. A simple register that has only 4-bit // file register.v module register( input wire clock, input wire reset, input wire write, input wire [3:0] data_in, output reg [3:0] data_out); clock) begin if (reset == 1'b1) begin data_out <= 4'h0; end else if (write == 1'b1) begin data_out <= data_in; end else begin data_out <= data_out; end end endmodule Read register.v and identify the operations supported by this component (which is a 4-bit register). This module introduces two new Verilog constructs: clock) specifies that the actions in this always block should occur only at the positive edge of the clock. These are called "edge triggered" always blocks. 2
3 <= is used as the assignment operator (instead of the normal = operator) within an edgetriggered always block. 3. Register File A register file is an array of registers. Like a register, a register file is controlled by the signals including clock, reset, WriteEnable and data_in. Like a register, a register file outputs a signal data_out. However, because memory is an array of registers, it needs additional information to control which element of the array is being operated on. This additional information is called the memory's address; it is similar to an array index. For debug purposes, the register file has two extra inputs (read_address_debug, and clock_debug) and one extra output (data_out_debug). The read_address_debug can be set up by the switches on the board, and the data_out_debug can be displayed on the 7-segment LEDs or the LCD. A separate clock_debug allows you to check the value a specific register even when the processor is not running. read_address_1 5 read_address_2 write_data_in data_out_1 write_address WriteEnable 5 A Register File (32 Registers) 32 data_out_2 reset clock read_address_debug 5 32 data_out_debug clock_debug Figure 2. A register file with 32 registers and each register has 32 bits The address is stored in an internal register of the memory. To operate on the register file, one must first write an address to the address port. The current value of the address determines which register is written to or read from on subsequent access operations. 4. Programming RAM and ROM In the pipelined processor design, you need to use RAM on the DE2 boards for instruction memory and data memory, respectively. The following documents on the project website are helpful to access RAM. RAM Megafunction User Guide Using the SDRAM Memory on Altera s DE2 Board with VHDL or Verilog Design 4.1 The RAM Interface The DE2 board provides three types of memory, including 512-Kbyte SRAM, 8-Mbyte SDRAM and 4- Mbyte Flash memory. The SRAM is organized as 256K 16bits, the SDRAM is organized as 3
4 1M 16bits 4 banks, and the Flash memory is 8-bit data bus. The signals needed to communicate with this chip are shown in the figure below. All of the signals, except the clock, can be provided by the SDRAM Controller. The clock signal is provided separately. It has to meet the clock-skew requirements. Note that some signals are active low, which is denoted by the suffix N. 4.2 Using LPM to Access SDRAM and ROM You can use altsyncram LPM provide in Quartus II to access the RAM on the DE2 board. (Quartus II also provides lpm_ram_dq and lpm_rom functions, but they are only for backward compatibility. The altsyncram megafunction is recommended by Altera.) The following briefly summarizes the procedure of using altsyncram. The tutorial Using Library Modules in VHDL Designs describes the usage of MegaWizard to build a desired LPM module. i. In the Memory Compiler category, you can find RAM: 1-PORT LPM ii. Select VHDL or Verilog HDL as the type of output file to create iii. Give the file the name ramlpm.vhd (for VHDL) or ramlpm.v (for verilog) iv. In the next windows, you can customize the RAM configurations, such as the width, clock. You can also initiate the values of RAM using a MIF file. The format of MIF is given in this handout. 4
5 5
6 The following notes are copied from Atlera s RAM Megafunction User Guide. The RAM: 1-PORT MegaWizard Plug-In Manager allows you to specify either of two clocking modes: a single clock mode or a dual clock (input/output) mode. In single clock mode, the read and write operations are synchronous with the same clock. In the Stratix and Cyclone series of devices, a single clock with a clock enable controls all registers of the memory block. Dual clock (input/output) mode operates with two independent clocks: inclock (input clock for write operation) and outclock (output clock for read operation). The input clock controls all registers related to the data input to the memory block, including data, address, byte enables, read enables, and write enables. The output clock controls the data output registers. Synchronous write operations into the memory block use the address[] and data[] ports, which are triggered by the rising edge of the inclock while the we (write enable) port is 6
7 enabled. For asynchronous operation, the address[] and data[] signals must be valid at both edges of the write enable signal. Ideally, the values on the data and address lines should not be changed while the we port is active. 4.3 Memory Initialization Format (MIF) The data of the RAM and Rom can be initialized according to an ASCII text file named Memory Initialization Format (with the extension.mif). The following gives two example MIF files. DEPTH = 256; % Memory depth and width are required % WIDTH = 16; % Enter a decimal number % ADDRESS _RADIX = HEX; % Address and value radixes are optional % DATA-RADIX = HEX; % Enter BIN, DEC, HEX, or OCT; unless % % otherwise specified, radixes = HEX % -- Specify initial data values for memory, format is address : data CONTENT BEGIN [00..FF] : 0000; % Range - Every address from 00 to FF = 0000 % -- Computer Program for A = B + C 00 : 0210; % LOAD A with MEM(10) % 01 : 0011; % ADD MEM(11) to A % 02 : 0112; % STORE A in MEM(12) % 03 : 0212; % LOAD A with MEM(12) check for new value of FFFF % 04 : 0304; % JUMP to 04 (loop forever) % 10 : AAAA; % Data Value of B % 11 : 5555; % Data Value of C % 12 : 0000; % Data Value of A - should be FFFF after running program $ END; Note: If multiple values are specified for the same address, only the last value is used. 5 Lab Instructions and Requirements Please note the following should be implemented in the same project. 7
8 5.1 Build the Register File. a. Implement the simple register shown in Figure 1. Initialize the register value as 0xF0F0F0F0. Verify the correctness of your design via simulation. b. Implement the register file shown in Figure 2. Initialize the register i with a value of i, where i = 0,1,,31. For example, register 11 is initialized as 0x A. Verify the correctness of your design via simulation. 5.2 Build the Data Memory. a. You should be able to read and write SDRAM by using RAM: 1-PORT MegaWizard Plug-In Manager. The output of SDRAM is 32 bits. The SDRAM will be used as the data memory in the project. Note that we are using 32-bit wide data memory to simplify the design since we will use load word (lw). As a result, in one cycle, we can get the data out. b. In MegaWizard, both the input and output can be registered or not registered. First of all, make both registered and test it on the board. Then make the output not registered and test it again on the board. Find out the difference between registered and not registered. c. In MegaWizard, you can use single clock or dual clocks. The dual clocks have separated clocks for inputs and outputs. Make the right choice. d. Initialize the data memory as the following. Please note the data memory address in MIPS code is in terms of bytes, not words. Test your design on the Altera DE2 board using the display and control specification given at the end of this handout. e. Please note that in the MIPS programs, the data segment starts at 0x Since the data size of our test programs is small, thus you can ignore the most significant four bits in the data address. Address Code 1 0x x x x x x x c 0x x x x x x x x c 0x x x x x A 11 0x c 0x B 12 0x x C 13 0x x D 14 0x x E 15 0x c 0x F 16 0x x
9 5.3 Build the Instruction Memory. a. In the project built in Step 1, add a new component that can read ROM by using ROM: 1- PORT MegaWizard Plug-In Manager. The output of ROM is 32 bits. The ROM will be used as the instruction memory in the project. b. In MegaWizard, both the input and output can be registered or not registered. You need to make the right choice for both input and output. c. MegaWizard allow to select single clock or dual clocks. The dual clocks have separated clocks for inputs and outputs. Make the right choice. d. Initialize the instruction memory as the following. Please note the instruction memory address in MIPS code is in terms of bytes, not words. Test your design on the Altera DE2 board using the display and control specification given at the end of this handout. e. Please note that in the MIPS programs, the instruction segment starts at 0x Since the data size of our test programs is small, thus you can ignore the most significant 12 bits in the data address. Instruction Address Code 1 add $3, $2, $1 0x x addu $3, $2, $1 0x x sub $3, $2, $1 0x x subu $3, $2, $1 0x c 0x and $3, $2, $1 0x x or $3, $2, $1 0x x nor $3, $2, $1 0x x slt $3, $2, $1 0x c 0x a 9 sll $3, $2, 1 0x x srl $3, $2, 1 0x x jr $2 0x c 0x nop 0x x
10 5.4 On Board Display and Control Setup INSTR=FFFFFFFF LCD Value = EEEEEEEE HEX7 HEX6 HEX5 HEX4 HEX4 HEX2 HEX1 HEX0 Toggle swiches Register, Instruction Memory or Data Memory Address Program Counter Clock Counter = Clock Control 0: manual clock 1: 1Hz clock 15,16 = LCD Value 00: Register 01: Data 10: Instruction SW[10-14] Instruction Memory Address SW[5-9] Data Memory Address SW[0-4] Register Address 0 Pushbutton Swiches Manual Clock RESET The project is reset by the push button 0 (KEY[0]). The program counter (HEX5 and HEX4) shows the instruction memory address. You might need to modify your register file to add one address input and one data output. The clock counter (HEX0-4) shows how many cycles you design has run and it starts from 0. The LCD has two rows. The first row shows the instruction addressed by the program counter (HEX5 and HEX4). The second row shows the value which is controlled by SW[15-16], which could be a value pointed by a register address SW[0-4], or a data memory address SW[5-9] or an instruction memory address SW[10-14]. The actual address should be shown in HEX7 and HEX6. You might need to modify your memory module to add one address input and one data output. Your lab should be able to run by using two different clocks: (1) a system 1-Hz clock and (2) a manual clock. Use the switch SW[17] to switch between these two clocks. (If SW[17] = 0, the system 1Hz clock is used. Otherwise the manual clock is used.) Using the system clock allows your code to 10
11 automatically complete the test programs. The manual clock is generated by the push button 1 (KEY[1]). For each push, generate a HIGH signal for only one second no matter how long the push button is pressed. Note that the LCD still needs the on-board clock. You can use other LED lights to monitor your control signals. Part 2: Show your Results on LCD and LED Download your code into the DE2 board and dynamically show the Ulam sequence numbers on the LCD screen. You might need to follow some tutorials of DE2 on our project website or altera.com. You can find LCD information (HITACHI HD44780 Dot Matrix LCD) and the DE2 PIN assignment documents on the course project website. Each digit should stay on the LCD for a sufficient amount of time so that we can read it. For example, you could set the clock rate to 0.5Hz. Then every 2 seconds, an Ulam number is shown on the LCD. The numbers should be dynamically shown on the screen, i.e., you cannot just show all numbers together at the first step. Similarly your results should also be shown on the LED simultaneously. A sample Clock, LED LCD driver will be provided. The following shows some diagram of some drivers. LED Controller Push bottom Debounce 11
12 LCD controller Clock Divider The LCD_Display is used to display static ASCII characters and changing hex values from hardware on a two-line LCD display panel. Number_Hex_Digits is used to set the size of the Hex_Display_Data input. Each hex digit displayed requires a 4-bit signal. The reset signal should be active high whenever you want update the LCD display. Make sure that the pins LCD_ON and LCD_BLON are set as active high. These two pins are not set by the controller. You can find more information about the LCD controller in the course project website. LCD_E is actually LCD_EN. The debounce circuit is used to filter mechanical contact bounce in the DE2 s push buttons. A shift register is used to filter out the switch contact bounce. The shift register takes several time spaced samples of the push button input and changes the output only after several sequential samples are the same value. Clock is a clock signal of approximately 100Hz that is used for the internal 50ms switch debounce filter design. The pb_debounced is the output. The output will remain Low until the pushbutton is released. 12
13 ECE 473 Lab 4 TA Checkoff Sheet Total: 50 points Name: Date: Final Grade: TA Signature: You need to demo the following three requirements on the DE2 board. 1) Register file works correctly with manual clock and 1Hz clock (20 points) 2) The instruction memory works correctly with manual clock and 1Hz clock (10 points) 3) The data memory works correctly with manual clock and 1Hz clock (10 points) 13
ECE 437 Computer Architecture and Organization Lab 6: Programming RAM and ROM Due: Thursday, November 3
Objectives: ECE 437 Computer Architecture and Organization Lab 6: Programming RAM and ROM Due: Thursday, November 3 Build Instruction Memory and Data Memory What to hand in: Your implementation source
More informationLab 2 EECE473 Computer Organization & Architecture University of Maine
Lab 2: Verilog Programming Instructor: Yifeng Zhu 50 Points Objectives: 1. Quatus II Programming assignment: PIN assignments, LEDs, switches; 2. Download and test the design on Altera DE2 board 3. Create
More informationECE 473 Computer Architecture and Organization Project: Design of a Five Stage Pipelined MIPS-like Processor Project Team TWO Objectives
ECE 473 Computer Architecture and Organization Project: Design of a Five Stage Pipelined MIPS-like Processor Due: December 8, 2011 Instructor: Dr. Yifeng Zhu Project Team This is a team project. All teams
More informationLaboratory Exercise 8
Laboratory Exercise 8 Memory Blocks In computer systems it is necessary to provide a substantial amount of memory. If a system is implemented using FPGA technology it is possible to provide some amount
More informationFinal Project: MIPS-like Microprocessor
Final Project: MIPS-like Microprocessor Objective: The objective of this project is to design, simulate, and implement a simple 32-bit microprocessor with an instruction set that is similar to a MIPS.
More informationDesigning with ESBs in APEX II Devices
Designing with ESBs in APEX II Devices March 2002, ver. 1.0 Application Note 179 Introduction In APEX TM II devices, enhanced embedded system blocks (ESBs) support memory structures, such as single-port
More informationDigital Systems Design
Digital Systems Design Memory Implementation on Altera CYCLONE V Devices Electrical & Computer Engineering Dr. D. J. Jackson Lecture 6-1 Embedded Memory 10 Kb M10K blocks blocks of dedicated memory resources
More informationLaboratory Exercise 9
Laboratory Exercise 9 Figure 1 shows a digital system that contains a number of -bit registers, a multiplexer, an adder/subtracter unit, a counter, and a control unit. Data is input to this system via
More informationLaboratory Exercise 7
Laboratory Exercise 7 Finite State Machines This is an exercise in using finite state machines. Part I We wish to implement a finite state machine (FSM) that recognizes two specific sequences of applied
More informationL10: Major/Minor FSMs, Lab 3, and RAM/ROM Instantiation
L10: Major/Minor FSMs, Lab 3, and RAM/ROM Instantiation Acknowledgements: Rex Min 1 Toward FSM Modularity Consider the following abstract FSM: S 0 S 1 S S 3 S 4 S 5 S 6 S 7 S S 9 a 1 d 1 a d a 3 d 3 b
More informationCPE 200L LABORATORY 4: INTRODUCTION TO DE2 BOARD UNIVERSITY OF NEVADA, LAS VEGAS GOALS: BACKGROUND:
CPE 200L LABORATORY 4: INTRODUCTION TO DE2 BOARD DEPARTMENT OF ELECTRICAL AND COMPUTER ENGINEERING UNIVERSITY OF NEVADA, LAS VEGAS GOALS: Getting familiar with DE2 board installation, properties, usage.
More informationNIOS CPU Based Embedded Computer System on Programmable Chip
NIOS CPU Based Embedded Computer System on Programmable Chip 1 Lab Objectives EE8205: Embedded Computer Systems NIOS-II SoPC: PART-I This lab has been constructed to introduce the development of dedicated
More informationOn-Chip Memory Implementations
On-Chip Memory Implementations Using Cyclone Memory Blocks March 2003, ver. 1.1 Application Note 252 Introduction Cyclone devices feature embedded memory blocks that can be easily configured to support
More informationlpm_rom Megafunction User Guide
lpm_rom Megafunction User Guide 101 Innovation Drive San Jose, CA 95134 (408) 544-7000 www.altera.com Software Version: 4.2 Document Version: 1.0 Document Date: March 2005 Copyright 2005 Altera Corporation.
More informationENGR 2031 Digital Design Laboratory Lab 7 Background
ENGR 2031 Digital Design Laboratory Lab 7 Background What we will cover Overview of the Simple Computer (scomp) Architecture Register Flow Diagrams VHDL Implementation of scomp Lab 7 scomp Architecture
More informationVerilog HDL: Behavioral Counter
Verilog HDL: Behavioral Counter This example describes an 8-bit loadable counter with count enable. The always construct, highlighted in red text, describes how the counter should behave. behav_counter.v
More informationECE 2300 Digital Logic & Computer Organization. More Sequential Logic Verilog
ECE 2300 Digital Logic & Computer Organization Spring 2018 More Sequential Logic Verilog Lecture 7: 1 Announcements HW3 will be posted tonight Prelim 1 Thursday March 1, in class Coverage: Lectures 1~7
More informationCSCB58 - Lab 3. Prelab /3 Part I (in-lab) /2 Part II (in-lab) /2 TOTAL /8
CSCB58 - Lab 3 Latches, Flip-flops, and Registers Learning Objectives The purpose of this exercise is to investigate the fundamental synchronous logic elements: latches, flip-flops, and registers. Prelab
More informationDKAN0011A Setting Up a Nios II System with SDRAM on the DE2
DKAN0011A Setting Up a Nios II System with SDRAM on the DE2 04 November 2009 Introduction This tutorial details how to set up and instantiate a Nios II system on Terasic Technologies, Inc. s DE2 Altera
More informationALTERA M9K EMBEDDED MEMORY BLOCKS
ALTERA M9K EMBEDDED MEMORY BLOCKS M9K Overview M9K memories are Altera s embedded high-density memory arrays Nearly all modern FPGAs include something similar of varying sizes 8192 bits per block (9216
More informationUniversity of Florida EEL 3701 Drs. Eric M. Schwartz & Karl Gugel. Quartus ROM Creation Instructions (in Quartus Prime Lite 17.1)
Page 1/5 Problem: You have an ASM or CPU that you would like to control/test from a ROM (EEPROM or Flash). How can you simulate the ROM under Quartus? Solution: Pick a device that has memory, e.g., Cyclone
More informationPhase-Locked Loop Reconfiguration (ALTPLL_RECONFIG) Megafunction
Phase-Locked Loop Reconfiguration (ALTPLL_RECONFIG) Megafunction UG-032405-6.0 User Guide This user guide describes the features and behavior of the ALTPLL_RECONFIG megafunction that you can configure
More informationLaboratory Exercise 3
Laboratory Exercise 3 Latches, Flip-flops, and egisters The purpose of this exercise is to investigate latches, flip-flops, and registers. Part I Altera FPGAs include flip-flops that are available for
More informationLeonardoSpectrum & Quartus II Design Methodology
LeonardoSpectrum & Quartus II Design Methodology September 2002, ver. 1.2 Application Note 225 Introduction As programmable logic device (PLD) designs become more complex and require increased performance,
More informationUniversity of Massachusetts Amherst Computer Systems Lab 1 (ECE 354) LAB 1 Reference Manual
University of Massachusetts Amherst Computer Systems Lab 1 (ECE 354) LAB 1 Reference Manual Lab 1: Using NIOS II processor for code execution on FPGA Objectives: 1. Understand the typical design flow in
More informationDigital Systems Laboratory
2014 Fall CSE140L Digital Systems Laboratory Lecture #8910 by Dr. Choon Kim CSE Department, UCSD Lecture #9 1 Practical Sequential Logic Design (Small computer/cpu example) LAB4_tinycpu.pdf Lecture #9
More informationDigital Systems Laboratory
2014 Spring CSE140L Digital Systems Laboratory Lecture #7, 8, 9 by Dr. Choon Kim CSE Department, UCSD Lecture #7,8,9 1 A Practical FSM Example: Small(Tiny) Computer System Design LAB4_tinycpu.pdf Lecture
More informationMy First FPGA for Altera DE2-115 Board
My First FPGA for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen Outline Complete Your Verilog Design Assign The Device Add a PLL Megafunction Assign the Pins Create a Default TimeQuest SDC File Compile
More informationALTERA FPGAs Architecture & Design
ALTERA FPGAs Architecture & Design Course Description This course provides all theoretical and practical know-how to design programmable devices of ALTERA with QUARTUS-II design software. The course combines
More informationNIOS CPU Based Embedded Computer System on Programmable Chip
1 Objectives NIOS CPU Based Embedded Computer System on Programmable Chip EE8205: Embedded Computer Systems This lab has been constructed to introduce the development of dedicated embedded system based
More informationVerilog 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 informationUsing Library Modules in Verilog Designs
Using Library Modules in Verilog Designs This tutorial explains how Altera s library modules can be included in Verilog-based designs, which are implemented by using the Quartus R II software. Contents:
More informationName EGR 2131 Lab #6 Number Representation and Arithmetic Circuits
Name EGR 2131 Lab #6 Number Representation and Arithmetic Circuits Equipment and Components Quartus software and Altera DE2-115 board PART 1: Number Representation in Microsoft Calculator. First, let s
More informationCSE140L: Components and Design Techniques for Digital Systems Lab
CSE140L: Components and Design Techniques for Digital Systems Lab Tajana Simunic Rosing Source: Vahid, Katz, Culler 1 Announcements & Outline Lab 4 due; demo signup times listed on the cse140l site Check
More informationECE 2300 Digital Logic & Computer Organization. More Verilog Finite State Machines
ECE 2300 Digital Logic & Computer Organization Spring 2018 More Verilog Finite Machines Lecture 8: 1 Prelim 1, Thursday 3/1, 1:25pm, 75 mins Arrive early by 1:20pm Review sessions Announcements Monday
More informationCSE P567 - Winter 2010 Lab 1 Introduction to FGPA CAD Tools
CSE P567 - Winter 2010 Lab 1 Introduction to FGPA CAD Tools This is a tutorial introduction to the process of designing circuits using a set of modern design tools. While the tools we will be using (Altera
More informationLab 4 Report. Single Cycle Design BAOTUNG C. TRAN EEL4713C
Lab 4 Report Single Cycle Design BAOTUNG C. TRAN EEL4713C Added Hardware : Andi and Ori : For this instruction, I had to add a zero extender into my design. Which therefore required me to add a mux that
More informationECE-6170 Embedded Systems Laboratory Exercise 3
ECE-6170 Embedded Systems Laboratory Exercise 3 The purpose of this exercise is to learn how to connect simple input and output devices to an FPGA chip and use the Nios II processor to interface with parallel
More informationUniversity of Toronto Faculty of Applied Science and Engineering Edward S. Rogers Sr. Department of Electrical and Computer Engineering
University of Toronto Faculty of Applied Science and Engineering Edward S. Rogers Sr. Department of Electrical and Computer Engineering Final Examination ECE 241F - Digital Systems Examiners: S. Brown,
More information9. Building Memory Subsystems Using SOPC Builder
9. Building Memory Subsystems Using SOPC Builder QII54006-6.0.0 Introduction Most systems generated with SOPC Builder require memory. For example, embedded processor systems require memory for software
More informationFPGA: FIELD PROGRAMMABLE GATE ARRAY Verilog: a hardware description language. Reference: [1]
FPGA: FIELD PROGRAMMABLE GATE ARRAY Verilog: a hardware description language Reference: [] FIELD PROGRAMMABLE GATE ARRAY FPGA is a hardware logic device that is programmable Logic functions may be programmed
More informationCOMP 303 MIPS Processor Design Project 3: Simple Execution Loop
COMP 303 MIPS Processor Design Project 3: Simple Execution Loop Due date: November 20, 23:59 Overview: In the first three projects for COMP 303, you will design and implement a subset of the MIPS32 architecture
More informationCSE140 L. Instructor: Thomas Y. P. Lee. March 1, Agenda. Computer System Design. Computer Architecture. Instruction Memory design.
CSE4 L Instructor: Thomas Y. P. Lee March, 26 Agenda Computer System Design Computer Architecture Instruction Memory design Datapath Registers Program Counter Instruction Decoder Lab4 Simple Computer System
More informationLab 7 (All Sections) Prelab: Verilog Review and ALU Datapath and Control
Lab 7 (All Sections) Prelab: Verilog Review and ALU Datapath and Control Name: Sign the following statement: On my honor, as an Aggie, I have neither given nor received unauthorized aid on this academic
More informationR-type Instructions. Experiment Introduction. 4.2 Instruction Set Architecture Types of Instructions
Experiment 4 R-type Instructions 4.1 Introduction This part is dedicated to the design of a processor based on a simplified version of the DLX architecture. The DLX is a RISC processor architecture designed
More informationIntroduction to the Altera SOPC Builder Using Verilog Design
Introduction to the Altera SOPC Builder Using Verilog Design This tutorial presents an introduction to Altera s SOPC Builder software, which is used to implement a system that uses the Nios II processor
More information13. Recommended HDL Coding Styles
13. Recommed HDL Coding Styles November 2013 QII51007-13.1.0 QII51007-13.1.0 This chapter provides Hardware Description Language (HDL) coding style recommations to ensure optimal synthesis results when
More informationTutorial 3. Appendix D. D.1 Design Using Verilog Code. The Ripple-Carry Adder Code. Functional Simulation
Appendix D Tutorial 3 This tutorial introduces more advanced capabilities of the Quartus II system. We show how Verilog code is organized and compiled and illustrate how multibit signals are represented
More informationUniversity of California, Davis Department of Electrical and Computer Engineering. Lab 1: Implementing Combinational Logic in the MAX10 FPGA
1 University of California, Davis Department of Electrical and Computer Engineering EEC180B DIGITAL SYSTEMS II Winter Quarter 2018 Lab 1: Implementing Combinational Logic in the MAX10 FPGA Objective: This
More informationProblem Set 10 Solutions
CSE 260 Digital Computers: Organization and Logical Design Problem Set 10 Solutions Jon Turner thru 6.20 1. The diagram below shows a memory array containing 32 words of 2 bits each. Label each memory
More information4DM4 Lab. #1 A: Introduction to VHDL and FPGAs B: An Unbuffered Crossbar Switch (posted Thursday, Sept 19, 2013)
1 4DM4 Lab. #1 A: Introduction to VHDL and FPGAs B: An Unbuffered Crossbar Switch (posted Thursday, Sept 19, 2013) Lab #1: ITB Room 157, Thurs. and Fridays, 2:30-5:20, EOW Demos to TA: Thurs, Fri, Sept.
More informationa, b sum module add32 sum vector bus sum[31:0] sum[0] sum[31]. sum[7:0] sum sum overflow module add32_carry assign
I hope you have completed Part 1 of the Experiment. This lecture leads you to Part 2 of the experiment and hopefully helps you with your progress to Part 2. It covers a number of topics: 1. How do we specify
More information2. Stratix II Architecture
2. Stratix II Architecture SII51002-4.3 Functional Description Stratix II devices contain a two-dimensional row- and column-based architecture to implement custom logic. A series of column and row interconnects
More informationImplementing PLL Reconfiguration in Stratix & Stratix GX Devices
December 2005, ver. 2.0 Implementing PLL Reconfiguration in Stratix & Stratix GX Devices Application Note 282 Introduction Phase-locked loops (PLLs) use several divide counters and delay elements to perform
More informationEE 231 Fall Lab 1: Introduction to Verilog HDL and Altera IDE
Lab 1: Introduction to Verilog HDL and Altera IDE Introduction In this lab you will design simple circuits by programming the Field-Programmable Gate Array (FPGA). At the end of the lab you should be able
More informationCSC / EE Digital Systems Design. Summer Sample Project Proposal 01
THE CATHOLIC UNIVERSITY OF AMERICA SCHOOL OF ENGINEERING DEPARTMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE CSC / EE 519-01 Digital Systems Design Summer 2013 Sample Project Proposal 01 Thursday
More informationECE 574: Modeling and Synthesis of Digital Systems using Verilog and VHDL. Fall 2017 Final Exam (6.00 to 8.30pm) Verilog SOLUTIONS
ECE 574: Modeling and Synthesis of Digital Systems using Verilog and VHDL Fall 2017 Final Exam (6.00 to 8.30pm) Verilog SOLUTIONS Note: Closed book no notes or other material allowed apart from the one
More informationChapter 2: Hardware Design Flow Using Verilog in Quartus II
Chapter 2: Hardware Design Flow Using Verilog in Quartus II 2.1 Introduction to Quartus II System Development Software This chapter is an introduction to the Quartus II software that will be used for analysis
More informationMemories. Design of Digital Circuits 2017 Srdjan Capkun Onur Mutlu.
Memories Design of Digital Circuits 2017 Srdjan Capkun Onur Mutlu http://www.syssec.ethz.ch/education/digitaltechnik_17 Adapted from Digital Design and Computer Architecture, David Money Harris & Sarah
More informationEE 3170 Microcontroller Applications
EE 3170 Microcontroller Applications Lecture 4 : Processors, Computers, and Controllers - 1.2 (reading assignment), 1.3-1.5 Based on slides for ECE3170 by Profs. Kieckhafer, Davis, Tan, and Cischke Outline
More informationImplementing Double Data Rate I/O Signaling in Stratix & Stratix GX Devices. Introduction. DDR I/O Elements. Input Configuration
Implementing Double Data Rate I/O Signaling in Stratix & Stratix GX Devices November 2002, ver. 2.0 Application Note 212 Introduction Typical I/O architectures transmit a single data word on each positive
More informationTutorial for Altera DE1 and Quartus II
Tutorial for Altera DE1 and Quartus II Qin-Zhong Ye December, 2013 This tutorial teaches you the basic steps to use Quartus II version 13.0 to program Altera s FPGA, Cyclone II EP2C20 on the Development
More information378 Lab Survival Guide Lab tips, Verilog tricks, and other useful info
378 Lab Surial Guide Lab tips, Verilog tricks, and other useful info Aaron Miller Steen Lockhart Winter 2011 Some content graciously borrowed from Jacob Nelson Agenda Lab/Section Info Lab Oeriew Why care?
More information(a) Implement processor with the following instructions: addi, sw, lw, add, sub, and, andi, or, ori, nor, sll, srl, mul
Brown University School of Engineering EN1640 Design of Computing Systems Professor Sherief Reda LAB 04 (200 points) Final report due on April 4th (Milestones on March 21 st ) In this lab you are required
More informationCSE140L: Components and Design
CSE140L: Components and Design Techniques for Digital Systems Lab Tajana Simunic Rosing Source: Vahid, Katz, Culler 1 Grade distribution: 70% Labs 35% Lab 4 30% Lab 3 20% Lab 2 15% Lab 1 30% Final exam
More informationUsing the SDRAM on Altera s DE1 Board with Verilog Designs. 1 Introduction. For Quartus II 13.0
Using the SDRAM on Altera s DE1 Board with Verilog Designs For Quartus II 13.0 1 Introduction This tutorial explains how the SDRAM chip on Altera s DE1 Development and Education board can be used with
More informationIntroduction to the Altera SOPC Builder Using Verilog Designs. 1 Introduction
Introduction to the Altera SOPC Builder Using Verilog Designs 1 Introduction This tutorial presents an introduction to Altera s SOPC Builder software, which is used to implement a system that uses the
More informationALTDQ_DQS2 Megafunction User Guide
ALTDQ_DQS2 Megafunction ALTDQ_DQS2 Megafunction 101 Innovation Drive San Jose, CA 95134 www.altera.com UG-01089-2.2 Feedback Subscribe 2013 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE,
More informationZBT SRAM Controller Reference Design
ZBT SRAM Controller Reference Design for APEX II Devices December 2001, ver. 1.0 Application Note 183 Introduction As communication systems require more low-latency, high-bandwidth interfaces for peripheral
More informationUniversity of Massachusetts Amherst Computer Systems Lab 2 (ECE 354) Spring Lab 1: Using Nios 2 processor for code execution on FPGA
University of Massachusetts Amherst Computer Systems Lab 2 (ECE 354) Spring 2007 Lab 1: Using Nios 2 processor for code execution on FPGA Objectives: After the completion of this lab: 1. You will understand
More informationDigital Systems Laboratory
2012 Fall CSE140L Digital Systems Laboratory by Dr. Choon Kim CSE Department UCSD 1 Welcome to CSE140L! 2 3-way Light Controller, 2-1 MUX, Majority Detector, 7- seg Display, Binary-to- Decimal converter.
More informationReadings: Storage unit. Can hold an n-bit value Composed of a group of n flip-flops. Each flip-flop stores 1 bit of information.
Registers Readings: 5.8-5.9.3 Storage unit. Can hold an n-bit value Composed of a group of n flip-flops Each flip-flop stores 1 bit of information ff ff ff ff 178 Controlled Register Reset Load Action
More informationLab 7 (Sections 300, 301 and 302) Prelab: Introduction to Verilog
Lab 7 (Sections 300, 301 and 302) Prelab: Introduction to Verilog Name: Sign the following statement: On my honor, as an Aggie, I have neither given nor received unauthorized aid on this academic work
More informationUsing Library Modules in Verilog Designs. 1 Introduction. For Quartus II 13.0
Using Library Modules in Verilog Designs For Quartus II 13.0 1 Introduction This tutorial explains how Altera s library modules can be included in Verilog-based designs, which are implemented by using
More informationLab 7 (All Sections) Prelab: Introduction to Verilog
Lab 7 (All Sections) Prelab: Introduction to Verilog Name: Sign the following statement: On my honor, as an Aggie, I have neither given nor received unauthorized aid on this academic work 1 Objective The
More informationWhite Paper Using the MAX II altufm Megafunction I 2 C Interface
White Paper Using the MAX II altufm Megafunction I 2 C Interface Introduction Inter-Integrated Circuit (I 2 C) is a bidirectional two-wire interface protocol, requiring only two bus lines; a serial data/address
More informationRecommended Design Techniques for ECE241 Project Franjo Plavec Department of Electrical and Computer Engineering University of Toronto
Recommed Design Techniques for ECE241 Project Franjo Plavec Department of Electrical and Computer Engineering University of Toronto DISCLAIMER: The information contained in this document does NOT contain
More informationIntroduction to VHDL Design on Quartus II and DE2 Board
ECP3116 Digital Computer Design Lab Experiment Duration: 3 hours Introduction to VHDL Design on Quartus II and DE2 Board Objective To learn how to create projects using Quartus II, design circuits and
More informationNios Soft Core Embedded Processor
Nios Soft Core Embedded Processor June 2000, ver. 1 Data Sheet Features... Preliminary Information Part of Altera s Excalibur TM embedded processor solutions, the Nios TM soft core embedded processor is
More information2. TriMatrix Embedded Memory Blocks in Stratix II and Stratix II GX Devices
2. TriMatrix Embedded Memory Blocks in Stratix II and Stratix II GX Devices SII52002-4.5 Introduction Stratix II and Stratix II GX devices feature the TriMatrix memory structure, consisting of three sizes
More informationEE431 April 6, 2009 Midterm Material on Assignments 6 to 10
EE431 April 6, 2009 midterm 1 EE431 April 6, 2009 Midterm Material on Assignments 6 to 10 Date: Monday April 6, 2009 Time = 2 hours Text Books, Notes and Computer Files Only NO CELL PHONES or LAPTOPS Preamble
More informationStratix. Introduction. Features... Programmable Logic Device Family. Preliminary Information
Stratix Programmable Logic Device Family February 2002, ver. 1.0 Data Sheet Introduction Preliminary Information The Stratix family of programmable logic devices (PLDs) is based on a 1.5-V, 0.13-µm, all-layer
More informationALTERA FPGA Design Using Verilog
ALTERA FPGA Design Using Verilog Course Description This course provides all necessary theoretical and practical know-how to design ALTERA FPGA/CPLD using Verilog standard language. The course intention
More informationHomework deadline extended to next friday
Norm Midterm Grading Finished Stats on course homepage Pickup after this lab lec. Regrade requests within 1wk of posted solution Homework deadline extended to next friday Description Design Conception
More informationLab 6: Integrated the Decoder with Muti-bit Counter and Programming a FPGA
Lab 6: Integrated the Decoder with Muti-bit Counter and Programming a FPGA For your report: The problem written in English The flowchart or function table to solve the problem if it is necessary The design
More informationFPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1
FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1 Anurag Dwivedi Digital Design : Bottom Up Approach Basic Block - Gates Digital Design : Bottom Up Approach Gates -> Flip Flops Digital
More informationExp#8: Designing a Programmable Sequence Detector
Exp#8: Designing a Programmable Sequence Detector Objectives Learning how to partition a system into data-path and control unit. Integrating Schematics and Verilog code together Overview In this lab you
More informationEECS150 - Digital Design Lecture 16 Memory 1
EECS150 - Digital Design Lecture 16 Memory 1 March 13, 2003 John Wawrzynek Spring 2003 EECS150 - Lec16-mem1 Page 1 Memory Basics Uses: Whenever a large collection of state elements is required. data &
More informationAN 367: Implementing PLL Reconfiguration in Stratix II Devices
AN 367: Implementing PLL Reconfiguration in Stratix II Devices July 2012 AN-367-2.2 Introduction Phase-locked loops (PLLs) use several divide counters and different voltage-controlled oscillator (VCO)
More information4. TriMatrix Embedded Memory Blocks in HardCopy IV Devices
January 2011 HIV51004-2.2 4. TriMatrix Embedded Memory Blocks in HardCopy IV Devices HIV51004-2.2 This chapter describes TriMatrix memory blocks, modes, features, and design considerations in HardCopy
More informationComputer Aided Design Basic Syntax Gate Level Modeling Behavioral Modeling. Verilog
Verilog Radek Pelánek and Šimon Řeřucha Contents 1 Computer Aided Design 2 Basic Syntax 3 Gate Level Modeling 4 Behavioral Modeling Computer Aided Design Hardware Description Languages (HDL) Verilog C
More information8. Migrating Stratix II Device Resources to HardCopy II Devices
8. Migrating Stratix II Device Resources to HardCopy II Devices H51024-1.3 Introduction Altera HardCopy II devices and Stratix II devices are both manufactured on a 1.2-V, 90-nm process technology and
More informationLaboratory 4 Design a Muti-bit Counter
Laboratory 4 Design a Muti-bit Counter Background A. Approach I: Design 3-bit counter with and clear T-type flip-flop is shown in Figure 1. A T flip-flop is obtained from a JK flip-flop by tying the J
More informationMemory and Programmable Logic
Memory and Programmable Logic Memory units allow us to store and/or retrieve information Essentially look-up tables Good for storing data, not for function implementation Programmable logic device (PLD),
More informationEN2911X: Reconfigurable Computing Topic 02: Hardware Definition Languages
EN2911X: Reconfigurable Computing Topic 02: Hardware Definition Languages Professor Sherief Reda http://scale.engin.brown.edu School of Engineering Brown University Spring 2014 1 Introduction to Verilog
More informationECE 2300 Digital Logic & Computer Organization. More Verilog Finite State Machines
ECE 2300 Digital Logic & Computer Organization Spring 2017 More Verilog Finite State Machines Lecture 8: 1 Announcements 1 st batch of (raw) quiz scores released on CMS Solutions to HW 1-3 released on
More informationASIC = Application specific integrated circuit
ASIC = Application specific integrated circuit CS 2630 Computer Organization Meeting 19: Building a MIPS processor Brandon Myers University of Iowa The goal: implement most of MIPS So far Implementing
More informationENEE245 Digital Circuits and Systems Lab Manual
ENEE245 Digital Circuits and Systems Lab Manual Department of Engineering, Physical & Computer Sciences Montgomery College Version 1.1 Copyright Prof. Lan Xiang (Do not distribute without permission) 1
More informationAsynchronous FIFO Design
Asynchronous FIFO Design 2.1 Introduction: An Asynchronous FIFO Design refers to a FIFO Design where in the data values are written to the FIFO memory from one clock domain and the data values are read
More informationLAB#2 ( Due Date & Time: See course web page )
UCSD CSE140L Fall 2014 LAB#2 ( Due Date & Time: See course web page ) Instructor: Dr. Choon Kim Objective Based on the experience gained from LAB#1, learn how to design, simulate, synthesize, program on
More information