LAB 7: G-CPU: Assembly Programming and Hand Assembly

Size: px
Start display at page:

Download "LAB 7: G-CPU: Assembly Programming and Hand Assembly"

Transcription

1 Page 1/5 OBJECTIVE The objectives of this lab are to understand the structure of a functioning simple computer (the G-CPU), to learn how to write assembly code, and to understand the correspondence of the assembly language with the timing simulation. MATERIALS G-CPU documentation (on the web site) Assembly_List.xlsx (on the website) INTRODUCTION With the knowledge gained in earlier labs, you now have a detailed understanding of the internal structure of a simple Central Processing Unit (CPU). Instead of continuing with your previous existing hardware designs, you are now given a more complete CPU, which is denoted as the General CPU (or G-CPU). In Part A of this lab you will dissect and simulate the assembly code that is given with the G-CPU. In Part B, you will write a G-CPU assembly code program. You will then simulate this new code in Quartus in order to observe the G-CPU bus and register changes during program execution. MATERIALS The website has several files that describe the G-CPU. These files are available in both zipped and un-zipped formats. You may want to print out each of the documents in the zip file found under the heading Zipped G-CPU Documentation and Simulation files or these same files in the folder called Documentation and Simulation files. Printable Quartus bdf and mif can be downloaded and printed from the website under the heading Documentation and Simulation files. Printing is NOT necessary. I distributed these printouts in class. SPECIFICATIONS 1. Since the G-CPU is too large to fit into our CPLD device, we will need to do a functional compilation/simulation for the G-CPU. Change the device to a Cyclone V, use the last device in the Cyclone V list of devices, and use a functional qlation/simulation. If you have not already added the Cyclone V to your installation of Quartus, see the ROM Creation Tutorial for Quartus Prime Lite Edition 17.1 to learn how to do so. 2. Download GCPU archive file: gcpu-u18.qar. 3. Double click on the file gcpu-u18.qar (or Open Quartus and select Project Restore Archived Project ). a. Specify a Destination folder:. I suggest c:/3701/gcpu. b. In Quartus, open the file computer.vwf. This will open the MultiSim Simulator Waveform Editor. Select Simulation, then Simulation Settings, then the Restore Defaults button on the bottom of this screen, and then select Save. This will fix the path information for the destination you used for the GCPU files. 4. The project has many folders, all under the destination folder you selected above. The main (top level) file, computer.bdf, is in this folder. The mif files and the simulation (.vwf) files are also in this folder. MIF FILE CREATION INFORMATION Note: When opening a MIF file in Quartus, be sure to select Open as: Text (not Auto). If you use auto, all the comments described below will disappear! When you write new code, you will hand assemble your code and put it into the eprom.mif file. As observed in Part I., this file already has a sample program, which you can use as a template. Key points related to this file are: 1. The comments are surrounded by % signs. The left most number (or numbers) represents the address (or range of addresses) followed by the hex value to the right. For example: 37 :7C % Address=$37, Data=$7C% [37..42] :A3 % Address=$37-$42, Data=$A3% 2. The last line of code in the eprom.mif, file (after your program) should insert zeroes for all the remaining data in the ROM. This is accomplished as shown below: [XX..FFF] :00 %zero remaining memory% where XX represents the next address after the last address of your code. For example, if the last byte of your assembly program resides in memory location $25, then replace XX by $26 as shown below: [26..FFF] :00 %zero remaining memory% This will initialize all your remaining unused memory to a known value of zero. (A zero happens to represent the TAB instruction.) Note: When opening a MIF file in Quartus, be sure to select Open as: Text (not Auto). If you use auto, all the comment described below will disappear! PART A. SIMULATING EXISTING CODE (Prelab) 1. Open the file called eprom.mif in the main folder. IMPORTANT: Open this file after setting Open as to Text from the default Auto. If you already opened the file with Auto, do not save any changes you make. Close it and open it with Open as: set to Text. The file eprom.mif is the code that is run out of reset (Address = 0) at start. 2. Describe the purpose of this program. 3. The data for the program in eprom.mif can be found in the file sram.mif. This is just a sample data file; later you will modify this file to create different data to test the program. Create a small table (see Table 1) that describes how the registers change as the program is executed. For each row in the table, enter the value

2 Page 2/5 in columns labeled A through PC, assuming that the instruction has already been completed. 4. Compile the computer.bdf file (functionally) with the give program file eprom.mif and data file sram.mif. Before simulating the first time (after restoring the archive), in the Simulation Waveform Editor, select Simulation Simulation Settings; then select Restore Defaults at the bottom. Functionally simulate this design. The simulation should include MCLK, CLOCK, RESET, STATE, ADDR, DATA, R_/W, IR, A, B, X, Y, ALU, N_FLG, and Z_FLG. 5. I suggest that you use the file computer.vwf already available after you open the gcpu_f12.qar file. Perform a functional simulation with the computer.vwf file. 6. Compare the hand simulation results in your table with the Quartus simulation results in computer.vwf. 7. Use your table to identify when the flags (i.e., status bits Z and N) change and specify why they are set at a particular time. Annotate your table and the Quartus-generated simulation to indicate what is going on during each step of the simulation. You do not have to include the entire simulation in your submitted lab document, just enough to prove that you understand what is happening. 8. Use your table and the simulation to identify where data is being written into memory or read from memory. Pay close attention to the address bus. Annotate your table and the Quartus-generated simulation with this information. 9. Modify the data in sram.mif and repeat steps 4-7 above. Note: When you change data in either the eprom.mif file or the sram.mif file, you must recompile the computer.bdf file. Include the simulation results in your submitted lab document. 10. Compile all the documents described above into your lab document. PART B. NEW PROGRAM CREATION (Prelab) 1. Write a program to get the higher of Input Data Table two numbers. The input table is OutAddrLow arranged as following: OutAddr, OutAddrHigh TabSize, Num1a, Num1b, Num2a, TabSize Num2b, The input table is Num1a arranged as following: OutAddr, Num1b TabSize, Num1a, Num1b, Num2a, Num2a Num2b Num2b, Your task is to write a Num3a program that creates an output table Num3b that starts with max(num1a, Num4a Num1b), then has max(num2a, Num4b Num2b), etc. OutAddr is the starting address of the output table. TabSize is the number of number pairs for NumTabSizea which the maximum will be NumTabSizeb determined. When you have completed the data processing, execute an endless loop (like a dog chasing its tail). 2. Assume that the input table is in ROM starting at $037E. It could just as well be in SRAM at address $137E, for example. (Note that the output table must be in SRAM, since you don t write to ROM.) To test your program, you will have to create the program and some data in the ROM (eprom.mif) file as well as setup the SRAM (sram.mif) file for storing your results. (If the data was instead in the sram.mif file, your program should still work, as long as you knew the starting location.) 3. Use the X register to point to the data that is read from the input table and use the Y register to point to the output table. 4. REG A should be used as a loop counter. REG B should be used for calculations. (Hint: You may need to temporarily store the loop counter in memory, i.e., SRAM, while REG A is used for other purposes.) 5. Hand assemble your program and write a list file that has addresses, opcodes (machine codes), assembly language instructions, and comments. To create the list file, use Table 2 or one of the following two documents on our website: Assembly_List.docx or Assembly_List.xlsx. Copy the completed table into your lab document. 6. Verify the program works by creating a eprom.mif. For this verification, use OutAdd = $1F00, TabSize = 3, and use three sets of data. Predict the simulation result with a table like that described in Part 1. Annotate this table as in Part 1. The simulation results and annotations with the instructions should be submitted in your lab document. Your program must work (with no changes) for a completely different sram.mif file, i.e., do not embed the number $1F00 for the output or 3 (the table size) in your program. 7. Copy the list file into your lab document. Also include the annotated table from Part A in your lab document. Submit (through Canvas) this file along with your design archives, and summary document. Also as usual, bring a printout of your Summary document to lab. Finally, bring a copy of the GCPU documents to your lab. Note: If you wish to use variables or store values in your code, you must reference the RAM area of you memory space. RAM is located in $ $1FFF. ROM is read only. Note: When you change data in either the eprom.mif file or the sram.mif file, you must recompile the computer.bdf file before trying to simulate. IN-LAB REQUIREMENTS 1. Show your TA the pre-lab work associated with Part A results. Your TA will ask you general questions on the operation of the code in simulation. 2. Show your TA the pre-lab work associated with Part B results. Your TA will again ask you general questions on the operation of the code in simulation.

3 Page 3/5 3. Your TA will give you another input table with which to test your algorithm from Part B. Your TA will then ask you to make another table. You might want to make a blank table for this purpose and bring it to your lab. 4. The TA will now ask you to write a short program (very simple task). Create and simulate the desired program (by making another table). You might want to make another blank table for this purpose and bring it to your lab. Table 1: Sample table for Prelab Part A, #3 (and elsewhere). Notes: All values in hexadecimal except Z & N. The first row past the header row is an example row. Address(es) Opcodes Instruction A B X Y Z N PC LDX #$

4 Page 4/5

5 Page 5/5 Table 2: Sample table for Prelab Part B, #5. This table is also available on our website in Assembly_List.docx and Assembly_List.xlsx. Address (hex) Opcodes (hex) Assembly Language Instructions Comments

University of Florida EEL 3701 Drs. Eric M. Schwartz & Karl Gugel. Quartus ROM Creation Instructions (in Quartus Prime Lite 17.1)

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

University of Florida EEL 3701 Dr. Eric M. Schwartz Madison Emas, TA Department of Electrical & Computer Engineering Revision 1 5-Jun-17

University of Florida EEL 3701 Dr. Eric M. Schwartz Madison Emas, TA Department of Electrical & Computer Engineering Revision 1 5-Jun-17 Page 1/14 Example Problem Given the logic equation Y = A*/B + /C, implement this equation using a two input AND gate, a two input OR gate and two inverters under the Quartus environment. Upon completion

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

University of Florida EEL 3701 Dr. Eric M. Schwartz Department of Electrical & Computer Engineering Revision 0 12-Jun-16

University of Florida EEL 3701 Dr. Eric M. Schwartz Department of Electrical & Computer Engineering Revision 0 12-Jun-16 Page 1/14 Quartus Tutorial with Basic Graphical Gate Entry and Simulation Example Problem Given the logic equation Y = A*/B + /C, implement this equation using a two input AND gate, a two input OR gate

More information

EE 231 Fall EE 231 Lab 2

EE 231 Fall EE 231 Lab 2 EE 231 Lab 2 Introduction to Verilog HDL and Quartus In the previous lab you designed simple circuits using discrete chips. In this lab you will do the same but by programming the CPLD. At the end of the

More information

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

CPE 200L LABORATORY 4: INTRODUCTION TO DE2 BOARD UNIVERSITY OF NEVADA, LAS VEGAS GOALS: BACKGROUND:

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

EE 231 Fall Lab 1: Introduction to Verilog HDL and Altera IDE

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

Mark II Aiken Relay Calculator

Mark II Aiken Relay Calculator Introduction to Embedded Microcomputer Systems Lecture 6.1 Mark II Aiken Relay Calculator 2.12. Tutorial 2. Arithmetic and logical operations format descriptions examples h 8-bit unsigned hexadecimal $00

More information

Laboratory Exercise 5

Laboratory Exercise 5 Laboratory Exercise 5 Bus Communication The purpose of this exercise is to learn how to communicate using a bus. In the designs generated by using Altera s SOPC Builder, the Nios II processor connects

More information

CSE 141L Computer Architecture Lab Fall Lecture 3

CSE 141L Computer Architecture Lab Fall Lecture 3 CSE 141L Computer Architecture Lab Fall 2005 Lecture 3 Pramod V. Argade November 1, 2005 Fall 2005 CSE 141L Course Schedule Lecture # Date Day Lecture Topic Lab Due 1 9/27 Tuesday No Class 2 10/4 Tuesday

More information

Laboratory Exercise 8

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

Lab3: I/O Port Expansion

Lab3: I/O Port Expansion Page 1/5 Revision 2 6-Oct-15 OBJECTIVES Explore and understand the implementation of memory-mapped I/O. Add an 8-bit input port and an 8-bit output port. REQUIRED MATERIALS EEL 3744 (upad and upad Proto

More information

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

EMT1250 LABORATORY EXPERIMENT. EXPERIMENT # 6: Quartus II Tutorial and Practice. Name: Date:

EMT1250 LABORATORY EXPERIMENT. EXPERIMENT # 6: Quartus II Tutorial and Practice. Name: Date: EXPERIMENT # 6: Quartus II Tutorial and Practice Name: Date: Equipment/Parts Needed: Quartus II R Web Edition V9.1 SP2 software by Altera Corporation USB drive to save your files Objective: Learn how to

More information

NIOS CPU Based Embedded Computer System on Programmable Chip

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

Laboratory 4 Design a Muti-bit Counter

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

Lab3: I/O Port Expansion

Lab3: I/O Port Expansion Page 1/6 Revision 0 26-Jan-16 OBJECTIVES Explore and understand the implementation of memory-mapped I/O. Add an 8-bit input port and an 8-bit output port. REQUIRED MATERIALS EEL 3744 (upad and upad Proto

More information

Total: EEL 3701 Digital Logic & Computer Systems Final Exam Fall Semester 2007 COVER SHEET: Re-Grade Information: 1 (10) 2 (10) 3 (10) 4 (14) 5 (14)

Total: EEL 3701 Digital Logic & Computer Systems Final Exam Fall Semester 2007 COVER SHEET: Re-Grade Information: 1 (10) 2 (10) 3 (10) 4 (14) 5 (14) COVER SHEET: Prob. Points: Re-Grade Information: Total: 1 (10) 2 (10) 3 (10) 4 (14) 5 (14) 6 (15) 7 (15) 8 (12) (100) 1 Remember to show ALL work here and in EVERY problem on this exam. [10%] 1. Circuit

More information

Computer Systems and -architecture

Computer Systems and -architecture Computer Systems and -architecture Project 5: Datapath 1 Ba INF 2018-2019 Brent van Bladel brent.vanbladel@uantwerpen.be Don t hesitate to contact the teaching assistant of this course. M.G.305 or by e-mail.

More information

If the display shift operation is used on a 20 x 4 display, the addressing is shifted as follows:

If the display shift operation is used on a 20 x 4 display, the addressing is shifted as follows: If the display shift operation is used on a 2 x 4 display, the addressing is shifted as follows: Left Shift Column 2 3... 8 9 2 line 2 3 2 3 4 line 2 4 42 43 52 53 54 line 3 5 6 7 26 27 28 line 4 55 56

More information

ENGR 2031 Digital Design Laboratory Lab 7 Background

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

Lab 2: Introduction to Verilog HDL and Quartus

Lab 2: Introduction to Verilog HDL and Quartus Lab 2: Introduction to Verilog HDL and Quartus September 16, 2008 In the previous lab you designed simple circuits using discrete chips. In this lab you will do the same but by programming the CPLD. At

More information

NIOS CPU Based Embedded Computer System on Programmable Chip

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

University of California, Davis Department of Electrical and Computer Engineering. Lab 1: Implementing Combinational Logic in the MAX10 FPGA

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

7 8 9 C. PRELAB REQUIREMENTS You must adhere to the Lab Rules and Policies document for every lab.

7 8 9 C. PRELAB REQUIREMENTS You must adhere to the Lab Rules and Policies document for every lab. Page 1/ Revision 1 OBJECTIVES To understand how a keypad functions as a raster scan input device and to learn how to interface a keypad to a microprocessor. Further explore and understand the implementation

More information

SCHEMATIC DESIGN IN QUARTUS

SCHEMATIC DESIGN IN QUARTUS SCHEMATIC DESIGN IN QUARTUS Consider the design of a three-bit prime number detector. Figure 1 shows the block diagram and truth table. The inputs are binary signals A, B, and C while the output is binary

More information

Final Project: MIPS-like Microprocessor

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

Laboratory 4 Design a Muti-bit Counter and Programming a FPGA

Laboratory 4 Design a Muti-bit Counter and Programming a FPGA Laboratory 4 Design a 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 entry included

More information

Quartus II Prime Foundation

Quartus II Prime Foundation Quartus II Prime Foundation Course Description This course provides all theoretical and practical know-how to design programmable devices of ALTERA with Quartus Prime design software. The course combines

More information

ECE 437 Computer Architecture and Organization Lab 6: Programming RAM and ROM Due: Thursday, November 3

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 information

CET4805 Component and Subsystem Design II. EXPERIMENT # 5: Adders. Name: Date:

CET4805 Component and Subsystem Design II. EXPERIMENT # 5: Adders. Name: Date: EXPERIMENT # 5: Adders Name: Date: Equipment/Parts Needed: Quartus II R Web Edition V9.1 SP2 software by Altera Corporation USB drive to save your files Objective: Design a half adder by extracting the

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

Synaptic Labs (S/Labs) HyperBus Memory Controller (HBMC) Tutorial for Intel FPGA devices

Synaptic Labs (S/Labs) HyperBus Memory Controller (HBMC) Tutorial for Intel FPGA devices Benjamin Gittins Chief Technical Officer Mbl: +995 551 026 588 b.gittins@synaptic-labs.com Synaptic Laboratories Ltd. Company ID 41272593 www.synaptic-labs.com info@synaptic-labs.com Monday, July 16, 2018

More information

PRELAB! Read the entire lab, and complete the prelab questions (Q1-Q3) on the answer sheet before coming to the laboratory.

PRELAB! Read the entire lab, and complete the prelab questions (Q1-Q3) on the answer sheet before coming to the laboratory. PRELAB! Read the entire lab, and complete the prelab questions (Q1-Q3) on the answer sheet before coming to the laboratory. 1.0 Objectives In the last lab we learned that Verilog is a fast and easy way

More information

EE 469 Project 5 Designing a Pipelined CPU. Bring it Together Phase 2. University of Washington - Department of Electrical Engineering

EE 469 Project 5 Designing a Pipelined CPU. Bring it Together Phase 2. University of Washington - Department of Electrical Engineering EE 469 Project 5 Designing a Pipelined CPU Bring it Together Phase 2. University of Washington - Department of Electrical Engineering Matt Staniszewski, Hoon Kwon, Andrew Lawrence, and James K. Peckol

More information

Laboratory Exercise 3 Comparative Analysis of Hardware and Emulation Forms of Signed 32-Bit Multiplication

Laboratory Exercise 3 Comparative Analysis of Hardware and Emulation Forms of Signed 32-Bit Multiplication Laboratory Exercise 3 Comparative Analysis of Hardware and Emulation Forms of Signed 32-Bit Multiplication Introduction All processors offer some form of instructions to add, subtract, and manipulate data.

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

For questions please contact: Lei-Ann Arceneaux, 4/13/2011

For questions please contact: Lei-Ann Arceneaux,   4/13/2011 TMALab TMALab is a web-based function in Spectrum Plus, working for Tissue Microarrays (TMAs). TMAs allow researchers to validate new biomarkers or discover and dissect molecular pathways in hundreds of

More information

HyperBus Memory Controller (HBMC) Tutorial

HyperBus Memory Controller (HBMC) Tutorial Synaptic Labs' HyperBus Memory Controller (HBMC) Tutorial T001A: A Qsys based Nios II Reference design with a simple self test of the HyperFlash and HyperRAM device using S/Labs' HBMC IP This tutorial

More information

E3940 Microprocessor Systems Laboratory. Introduction to the Z80

E3940 Microprocessor Systems Laboratory. Introduction to the Z80 E3940 Microprocessor Systems Laboratory Introduction to the Z80 Andrew T. Campbell comet.columbia.edu/~campbell campbell@comet.columbia.edu E3940 Microprocessor Systems Laboratory Page 1 Z80 Laboratory

More information

SFWR ENG 2DA4 Lab 1. Announcements: Marking Scheme: Lab Safety Manual:

SFWR ENG 2DA4 Lab 1. Announcements: Marking Scheme: Lab Safety Manual: SFWR ENG 2DA4 Lab 1 First lab Week of: Sept. 17, 2018 Prep Due week of: (8:40/14:40), Sept. 24, 2018 Demo Due Week of: (11:20/17:20), Sept. 24, 2018 Assignment due in class: 13:40, Sept. 28, 2018 Announcements:

More information

The 8051 Microcontroller and Embedded Systems

The 8051 Microcontroller and Embedded Systems The 8051 Microcontroller and Embedded Systems CHAPTER 2 8051 ASSEMBLY LANGUAGE PROGRAMMING OBJECTIVES List the registers of the 8051 microcontroller Manipulate data using the registers and MOV instructions

More information

EXPERIMENT NO. 1 THE MKT 8085 MICROPROCESSOR TRAINER

EXPERIMENT NO. 1 THE MKT 8085 MICROPROCESSOR TRAINER OBJECT: EXPERIMENT NO. 1 THE MKT 8085 MICROPROCESSOR TRAINER To understand the structure and operating instruction of the microprocessor trainer. INTRODUCTION: The MKT 8085 is a single-board microcomputer,

More information

SOPC LAB1. I. Introduction. II. Lab contents. 4-bit count up counter. Advanced VLSI Due Wednesday, 01/08/2003

SOPC LAB1. I. Introduction. II. Lab contents. 4-bit count up counter. Advanced VLSI Due Wednesday, 01/08/2003 SOPC LAB1 I. Introduction The purpose of this lab is to familiarize you with all the items in the kit. This tutorial tells you how to develop FPGA system in Quartus II. You are ready to begin using the

More information

COMP 303 MIPS Processor Design Project 3: Simple Execution Loop

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

CPU. Fall 2003 CSE 207 Digital Design Project #4 R0 R1 R2 R3 R4 R5 R6 R7 PC STATUS IR. Control Logic RAM MAR MDR. Internal Processor Bus

CPU. Fall 2003 CSE 207 Digital Design Project #4 R0 R1 R2 R3 R4 R5 R6 R7 PC STATUS IR. Control Logic RAM MAR MDR. Internal Processor Bus http://www.engr.uconn.edu/~barry/cse207/fa03/project4.pdf Page 1 of 16 Fall 2003 CSE 207 Digital Design Project #4 Background Microprocessors are increasingly common in every day devices. Desktop computers

More information

ECE/CS 3710 Computer Design Lab Lab 2 Mini-MIPS processor Controller modification, memory mapping, assembly code

ECE/CS 3710 Computer Design Lab Lab 2 Mini-MIPS processor Controller modification, memory mapping, assembly code ECE/CS 3710 Computer Design Lab Lab 2 Mini-MIPS processor Controller modification, memory mapping, assembly code Due Tuesday, September 22nd, 2009 Laboratory Objectives Understand and extend a very very

More information

Computer Architecture 2/26/01 Lecture #

Computer Architecture 2/26/01 Lecture # Computer Architecture 2/26/01 Lecture #9 16.070 On a previous lecture, we discussed the software development process and in particular, the development of a software architecture Recall the output of the

More information

Altera Quartus II Tutorial

Altera Quartus II Tutorial Altera Quartus II Tutorial Part II (For ECE 465 Students at UIC) Sajjad Rahaman TA for ECE 465, Spring 2009 Department of Electrical and Computer Engineering University of Illinois at Chicago mrahaman@ece.uic.edu

More information

Lab 8: Debugging Embedded Devices and Software

Lab 8: Debugging Embedded Devices and Software Lab 8: Debugging Embedded Devices and Software Summary: Given pre-written code, isolate code and functional errors to create a working memory interfacing program. Learning Objectives: Debug and fix pre-written

More information

EECE.2160: ECE Application Programming

EECE.2160: ECE Application Programming Spring 2018 Programming Assignment #10: Instruction Decoding and File I/O Due Wednesday, 5/9/18, 11:59:59 PM (Extra credit ( 4 pts on final average), no late submissions or resubmissions) 1. Introduction

More information

Problem Set 1 Solutions

Problem Set 1 Solutions CSE 260 Digital Computers: Organization and Logical Design Jon Turner Problem Set 1 Solutions 1. Give a brief definition of each of the following parts of a computer system: CPU, main memory, floating

More information

Lab 4: Register File and Memory 50 points Instructor: Yifeng Zhu Due: One week

Lab 4: Register File and Memory 50 points Instructor: Yifeng Zhu Due: One week 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

More information

NEW CEIBO DEBUGGER. Menus and Commands

NEW CEIBO DEBUGGER. Menus and Commands NEW CEIBO DEBUGGER Menus and Commands Ceibo Debugger Menus and Commands D.1. Introduction CEIBO DEBUGGER is the latest software available from Ceibo and can be used with most of Ceibo emulators. You will

More information

MPLAB X IDE PROJECTS Microchip Technology Incorporated. All Rights Reserved DEV Slide 68

MPLAB X IDE PROJECTS Microchip Technology Incorporated. All Rights Reserved DEV Slide 68 MPLAB X IDE PROJECTS 2013 Microchip Technology Incorporated. All Rights Reserved. 17002 DEV Slide 68 MPLAB X IDE Projects What is a project? Definition A Project is defined by a collection of files within

More information

Board Update Portal based on Nios II Processor with EPCQ (Arria 10 GX FPGA Development Kit)

Board Update Portal based on Nios II Processor with EPCQ (Arria 10 GX FPGA Development Kit) Board Update Portal based on Nios II Processor with EPCQ (Arria 10 GX FPGA Development Kit) Date: 1 December 2016 Revision:1.0 2015 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, HARDCOPY,

More information

EMT1250 LABORATORY EXPERIMENT. EXPERIMENT # 7: VHDL and DE2 Board. Name: Date:

EMT1250 LABORATORY EXPERIMENT. EXPERIMENT # 7: VHDL and DE2 Board. Name: Date: EXPERIMENT # 7: VHDL and DE2 Board Name: Date: Equipment/Parts Needed: Quartus II R Web Edition V9.1 SP2 software by Altera Corporation USB drive to save your files Objective: Learn how to create and modify

More information

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

EXPERIMENT 1. INTRODUCTION TO ALTERA

EXPERIMENT 1. INTRODUCTION TO ALTERA EXPERIMENT 1. INTRODUCTION TO ALTERA I. Introduction I.I Objectives In this experiment, you will learn computer aided digital design and verification of it using Field Programmable Gate Arrays (FPGA).

More information

ASSIGNMENT ECE514 (COMPUTER ORGANIZATION) ASSIGNMENT NO. 3

ASSIGNMENT ECE514 (COMPUTER ORGANIZATION) ASSIGNMENT NO. 3 ASSIGNMENT ECE514 (COMPUTER ORGANIZATION) ASSIGNMENT NO. 3 This is an individual assignment for ECE514. It carries a mark of 10%. The rubric of marks is given in Appendix 3. This assignment is about designing

More information

Synaptic Labs HyperBus Memory Controller (HBMC) Tutorial for Intel FPGA devices

Synaptic Labs HyperBus Memory Controller (HBMC) Tutorial for Intel FPGA devices Benjamin Gittins Chief Technical Officer Mbl: +995 551 026 588 b.gittins@synaptic-labs.com Synaptic Laboratories Ltd. Company ID 41272593 www.synaptic-labs.com info@synaptic-labs.com Monday, July 16, 2018

More information

The assignments will help you learn Verilog as a Hardware Description Language and how hardware circuits can be developed using Verilog and FPGA.

The assignments will help you learn Verilog as a Hardware Description Language and how hardware circuits can be developed using Verilog and FPGA. General Instructions The assignments will help you learn Verilog as a Hardware Description Language and how hardware circuits can be developed using Verilog and FPGA. You have to come to the lab during

More information

Basic Concepts. Task One: The Basic Latch. Laboratory Nine Latches, RAM & Android Architecture

Basic Concepts. Task One: The Basic Latch. Laboratory Nine Latches, RAM & Android Architecture Laboratory Nine Latches, RAM & Android Architecture Basic Concepts 1. The most basic element of binary storage is the latch, consisting of 2 cross-coupled NAND (or NOR) gates. 2. The D-latch with Enable

More information

CSEE W4840 Embedded System Design Lab 1

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

More information

Tutorial for Altera DE1 and Quartus II

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

Homework #4 Processor Core Design

Homework #4 Processor Core Design Homework #4 Processor Core Design Last updated 2016-10-21, changes highlighted in yellow. For this homework, you will be building a single-cycle processor in Quartus II using Structural VHDL, downloading

More information

EE431 April 6, 2009 Midterm Material on Assignments 6 to 10

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

HyperBus Memory Controller (HBMC) Tutorial

HyperBus Memory Controller (HBMC) Tutorial Synaptic Labs' HyperBus Memory Controller (HBMC) Tutorial T002A: A Qsys based Nios II reference design using Intel s MSGDMA to benchmark memory copy operations on the HyperRAM device using S/Labs' HBMC

More information

HyperBus Memory Controller (HBMC) Tutorial

HyperBus Memory Controller (HBMC) Tutorial Synaptic Labs' HyperBus Memory Controller (HBMC) Tutorial T002A: A Qsys based Nios II reference design using Intel s MSGDMA to benchmark memory copy operations on the HyperRAM device using S/Labs' HBMC

More information

Lab #12: ArithmeticLogic Unit

Lab #12: ArithmeticLogic Unit Lab #12: ArithmeticLogic Unit Zack Mattis Lab: 3/27/17 Report: 4/8/17 Partner: Brendan Schuster Purpose In this lab, a fully functioning 4-bit Arithmetic Logic Unit (ALU) was designed and fully implemented

More information

PRELAB! Read the entire lab, and complete the prelab questions (Q1- Q3) on the answer sheet before coming to the laboratory.

PRELAB! Read the entire lab, and complete the prelab questions (Q1- Q3) on the answer sheet before coming to the laboratory. PRELAB! Read the entire lab, and complete the prelab questions (Q1- Q3) on the answer sheet before coming to the laboratory. 1.0 Objectives In this lab you will get familiar with the concept of using the

More information

Tutorial on Quartus II Introduction Using Schematic Designs

Tutorial on Quartus II Introduction Using Schematic Designs Tutorial on Quartus II Introduction Using Schematic Designs (Version 15) 1 Introduction This tutorial presents an introduction to the Quartus II CAD system. It gives a general overview of a typical CAD

More information

Generic Serial Flash Interface Intel FPGA IP Core User Guide

Generic Serial Flash Interface Intel FPGA IP Core User Guide Generic Serial Flash Interface Intel FPGA IP Core User Guide Updated for Intel Quartus Prime Design Suite: 18.0 Subscribe Send Feedback Latest document on the web: PDF HTML Contents Contents 1. Generic

More information

ECE 3210 Laboratory 1: Develop an Assembly Program

ECE 3210 Laboratory 1: Develop an Assembly Program ECE 3210 Laboratory 1: Develop an Assembly Program Spring 2018 1 Objective To become familiar with the development system s software: screen editor, assembler, linker, and debugger. After finishing this

More information

The Itanium Bit Microprocessor Report

The Itanium Bit Microprocessor Report The Itanium - 1986 8 Bit Microprocessor Report By PRIYANK JAIN (02010123) Group # 11 Under guidance of Dr. J. K. Deka & Dr. S. B. Nair Department of Computer Science & Engineering Indian Institute of Technology,

More information

Digital Systems Design

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

Chapter 2 Getting Hands on Altera Quartus II Software

Chapter 2 Getting Hands on Altera Quartus II Software Chapter 2 Getting Hands on Altera Quartus II Software Contents 2.1 Installation of Software... 20 2.2 Setting Up of License... 21 2.3 Creation of First Embedded System Project... 22 2.4 Project Building

More information

Intel Stratix 10 Low Latency 40G Ethernet Design Example User Guide

Intel Stratix 10 Low Latency 40G Ethernet Design Example User Guide Intel Stratix 10 Low Latency 40G Ethernet Design Example User Guide Updated for Intel Quartus Prime Design Suite: 18.1 Subscribe Latest document on the web: PDF HTML Contents Contents 1. Quick Start Guide...

More information

Computer Organization II CMSC 3833 Lecture 33

Computer Organization II CMSC 3833 Lecture 33 Term MARIE Definition Machine Architecture that is Really Intuitive and Easy 4.8.1 The Architecture Figure s Architecture Characteristics: Binary, two s complement Stored program, fixed word length Word

More information

Tutorial 2 Implementing Circuits in Altera Devices

Tutorial 2 Implementing Circuits in Altera Devices Appendix C Tutorial 2 Implementing Circuits in Altera Devices In this tutorial we describe how to use the physical design tools in Quartus II. In addition to the modules used in Tutorial 1, the following

More information

UNIVERSITY OF HONG KONG DEPARTMENT OF ELECTRICAL AND ELECTRONIC ENGINEERING

UNIVERSITY OF HONG KONG DEPARTMENT OF ELECTRICAL AND ELECTRONIC ENGINEERING UNIVERSITY OF HONG KONG DEPARTMENT OF ELECTRICAL AND ELECTRONIC ENGINEERING Experiment PCO: Principles of Computer Operation Location: Part I Lab., CYC 102. Objective: The objective is to learn the basic

More information

Lab 2: Introduction to LabVIEW 8.5

Lab 2: Introduction to LabVIEW 8.5 Lab 2: Introduction to LabVIEW 8.5 INTRODUCTION: This lab is designed as an introduction to using LabVIEW. In this lab you will run through some tutorials to get a basic understanding of some of the LabVIEW

More information

University Program 3 Kit

University Program 3 Kit University Program 3 Kit VLSI Tutorial : LEDs & Push Buttons Version 02.00 System Level Solutions Inc. (USA) 14702 White Cloud Ct. Morgan Hill, CA 95037 2 System Level Solutions Copyright 2003-2005 System

More information

TUTORIALS FOR MAX3000A CPLD DEVICES

TUTORIALS FOR MAX3000A CPLD DEVICES TUTORIALS FOR MAX3000A CPLD DEVICES WEL LAB 6-BIT-UP-DOWN-COUNTER CONTENTS: INTRODUCTION.. GETTING STARTED. DESIGN ENTRY. PIN ASSIGNMENT. PROGRAMMING CPLD DEVICE. REFERENCES. WEL LAB, IIT BOMBAY Page 2

More information

Designing with Nios II Processor for Hardware Engineers

Designing with Nios II Processor for Hardware Engineers Designing with Nios II Processor for Hardware Engineers Course Description This course provides all theoretical and practical know-how to design ALTERA SoC FPGAs based on the Nios II soft processor under

More information

Menu Computer Organization Programming Model for the an example microprocessors (the G-CPU & Motorola 68HC11) Assembly Programming Look into my...

Menu Computer Organization Programming Model for the an example microprocessors (the G-CPU & Motorola 68HC11) Assembly Programming Look into my... Menu Computer Organization Programming Model for the an example microprocessors (the G-CPU & Motorola 68HC11) Assembly Programming Look into my... See examples on web: DirAddr.asm, ExtAddr.asm, IndAddr.asm,

More information

LAB 2: INTRODUCTION TO LOGIC GATE AND ITS BEHAVIOUR

LAB 2: INTRODUCTION TO LOGIC GATE AND ITS BEHAVIOUR LAB 2: INTRODUCTION TO LOGIC GATE AND ITS BEHAVIOUR OBJECTIVE 1. To verify the operation of OR, AND, INVERTER gates 2. To implement the operation of NAND and NOR gate 3. To construct a simple combinational

More information

Tutorial on Quartus II Introduction Using Verilog Code

Tutorial on Quartus II Introduction Using Verilog Code Tutorial on Quartus II Introduction Using Verilog Code (Version 15) 1 Introduction This tutorial presents an introduction to the Quartus II CAD system. It gives a general overview of a typical CAD flow

More information

2. (2 pts) If an external clock is used, which pin of the 8051 should it be connected to?

2. (2 pts) If an external clock is used, which pin of the 8051 should it be connected to? ECE3710 Exam 2. Name _ Spring 2013. 5 pages. 102 points, but scored out of 100. You may use any non-living resource to complete this exam. Any hint of cheating will result in a 0. Part 1 Short Answer 1.

More information

CS 105 Review Questions #3

CS 105 Review Questions #3 1 CS 105 Review Questions #3 These review questions only include topics since our second test. To study for the final, please look at the first two review documents as well. Almost all of these questions

More information

5 Computer Organization

5 Computer Organization 5 Computer Organization 5.1 Foundations of Computer Science Cengage Learning Objectives After studying this chapter, the student should be able to: List the three subsystems of a computer. Describe the

More information

CSCB58 - Lab 0. Intro to The Lab & The DE2 Board. Prelab /4 Part I (in-lab) /1 Part II (in-lab) /1

CSCB58 - Lab 0. Intro to The Lab & The DE2 Board. Prelab /4 Part I (in-lab) /1 Part II (in-lab) /1 CSCB58 - Lab 0 Intro to The Lab & The DE2 Board Learning Objectives This week we will be getting you familiar with the lab and the boards that we will be using in later labs. You will also learn how to

More information

ME4447/6405. Microprocessor Control of Manufacturing Systems and Introduction to Mechatronics. Instructor: Professor Charles Ume LECTURE 7

ME4447/6405. Microprocessor Control of Manufacturing Systems and Introduction to Mechatronics. Instructor: Professor Charles Ume LECTURE 7 ME4447/6405 Microprocessor Control of Manufacturing Systems and Introduction to Mechatronics Instructor: Professor Charles Ume LECTURE 7 Reading Assignments Reading assignments for this week and next

More information

(a) Implement processor with the following instructions: addi, sw, lw, add, sub, and, andi, or, ori, nor, sll, srl, mul

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

EE 231 Fall EE 231 Lab 3

EE 231 Fall EE 231 Lab 3 EE 231 Lab 3 Decoders and Multiplexers Decoders and multiplexers are important combinational circuits in many logic designs. Decoders convert n inputs to a maximum of unique 2 n outputs. A special case

More information

UNIVERSITY OF HONG KONG DEPARTMENT OF ELECTRICAL AND ELECTRONIC ENGINEERING. Principles of Computer Operation

UNIVERSITY OF HONG KONG DEPARTMENT OF ELECTRICAL AND ELECTRONIC ENGINEERING. Principles of Computer Operation UNIVERSITY OF HONG KONG DEPARTMENT OF ELECTRICAL AND ELECTRONIC ENGINEERING Experiment PCO: Principles of Computer Operation Location: Part I Lab., CYC 102. Objective: The objective is to learn the basic

More information

Contents. Appendix B HDL Entry Tutorial 2 Page 1 of 14

Contents. Appendix B HDL Entry Tutorial 2 Page 1 of 14 Appendix B HDL Entry Tutorial 2 Page 1 of 14 Contents Appendix B HDL Entry Tutorial 2...2 B.1 Getting Started...2 B.1.1 Preparing a Folder for the Project...2 B.1.2 Starting Quartus II...2 B.1.3 Creating

More information

TRAVEL AUTHORIZATIONS

TRAVEL AUTHORIZATIONS TRAVEL AUTHORIZATIONS TABLE OF CONTENTS Overview... 2 Responsibilities... 2 Delegate Entry Authority to Other Users... 2 Travel Authorization Tips & Reminders... 3 Create and Manage... 4 Create a Travel

More information