ENGR 2031 Digital Design Laboratory Lab 7 Background
|
|
- Derick Ray
- 6 years ago
- Views:
Transcription
1 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 Figure 1, scomp Architecture for Labs 7 and 8 The scomp architecture for lab 7 is similar, but not the same, as that discussed in Chapter 9, Rapid Prototyping of Digital Systems, SOPC edition, Hamblen, Hall, and Furman. The version for lab has access to more memory and allows for external peripherals. The differences between the textbook version and the version discussed here and used in labs 7 and 8 are summarized below: The textbook allocates bits in the instruction word differently (8 bit opcode and operand vs 6 bit opcode and 10 bit operand). The textbook chooses the opcodes differently. The VHDL code for the scomp differs in many areas, for example signal names are different and computer memory is larger and implemented differently The textbook does not have a specific I/O subsystem and I/O buses. The textbook does not consider subroutine calls and returns. The simple computer (scomp) processor consists of the arithmetic logic unit (ALU), control unit (CU), and internal registers. The scomp processor will have access to a bank of external memory and I/O peripherals. The scomp can access up to 1024 words of internal Cyclone memory. This can be used for either program or data storage. The accumulator (AC) is the only internal register for data storage local to scomp. The accumulator can be loaded with data from memory or I/O or receive the result from the ALU. The program counter (PC) holds the address of the next instruction. The instruction register (IR) holds the most recently fetched instruction.
2 Instruction Format The scomp has a 16-bit instructions and a 16 bit data width (data and address widths vary among computer architectures). The instruction format is shown in Figure 2. Figure 2, scomp Instruction Format The 6-bit opcode specifies the operation (up to 64 different operations) and the 10-bit operand specifies the data to be operated on (address of data, immediate data, or not used). A 10-bit operand is necessary to hold the 10 bit memory address needed to access the 1024 words of scomp memory. Note that the textbook describes an 8-bit opcode and 8-bit operand. ALU The arithmetic logic unit (ALU) is a combinational circuit that performs arithmetic and logical operations. The data for the operation comes from the accumulator (AC) and the contents of a specified memory location via the memory data register (MDR). The result of the ALU always goes to the accumulator (AC). The ALUs operation is controlled via the control unit. Memory and I/O All data comes from or goes to memory or I/O devices. I/O registers, busses, IO_ADDR, and IO_Data will be covered in the next lecture. The memory (RAM) and memory buses are internal to the cyclone chip. The memory is implemented as a single bank of random access memory (RAM) that can hold instructions and data. The memory address bus is driven by either the program counter (PC) for an instruction fetch or the memory address register (MAR) for an operand (data) fetch. For a memory read operation: The address in the MAR or PC drives the address bus Memory places the requested data on the data bus The data must be latched in the memory data register (MDR) at the correct time by the control unit For a memory write operation: The address in the MAR drives the address bus The data to be written comes from the accumulator (AC) The data is written to the location specified on the address bus Fetch, Decode, and Execute Cycle There are three stages (after reset) in the operation of the simple computer (see Figure 3) and this cycle repeats forever. Each stage consists of one or more states. The fetch and decode stages are the same for all operations however the execute stage will have different states for each operation. The decode stage will determine which execute states are used for the operations. See Figure 3. During the fetch stage, the next instruction is obtained. During the decode stage, the instruction is decoded to determine what operations will need to be done. During the execute stage, the operations specified by the instruction are performed. The reset takes the scomp to the fetch stage.
3 Figure 3, Fetch, Decode, Execute Cycle scomp Instructions The following instructions (Table 1) for the scomp have already been implemented, will be implemented as part of the labs 7 and 8, or can be implemented later as additional exercises. One could also modify the scomp to support instructions of their own design. The choice of opcodes is arbitrary. Mnemonics are often used in place of the opcodes fro assembly language programming. Instruction Mnemonic Operation Opcode (Hex) NOP Do nothing (no operation) 0x00 LOAD Address AC <= MEM(Address) 0x01 STORE Address MEM(Address ) <= AC 0x02 ADD Address AC <= AC + MEM(Address) 0x03 SUB Address AC <= AC - MEM(Address) 0x04 JUMP Address PC <= Address 0x05 JNEG Address If AC < 0, PC <= Address 0x06 JPOS Address If AC > 0, PC <= Address 0x07 JZERO Address If AC = 0, PC< = Address 0x08 AND Address AC <= AC AND MEM(Address) 0x09 OR Address AC <= AC OR MEM(Address) 0x0A XOR Address AC <= AC XOR MEM(Address) 0x0B SHIFT Bits If Bits > 0, AC <= AC Shifted Bits left 0x0C If Bits < 0, AC <= AC Shifted Bits right Bits is in sign magnitude format ADDI Immediate AC = AC + Immediate (sign extended) 0x0D ILOAD Address AC <= MEM(MEM(Address )) 0x0E ISTORE Address MEM(MEM(Address )) <= AC 0x0F CALL Address Push PC onto stack, PC <= Address 0x10 RETURN Pop PC off of stack 0x11 IN I/O Address AC <= IO_IN 0x12 OUT I/O Address IO_DATA <= AC 0x13 Table 1, scomp Instructions
4 Sample Assembly Language Program, A = B + C For now, ignore where the data is located Start: LOAD B ADD C STORE A Here: JUMP Here Figure 4a, scomp Assembly Language Code (A = B + C) 000 : 0411; -- Start: LOAD B 001 : 0C12; -- ADD C 002 : 0810; -- STORE A 003 : 1403; -- Here: JUMP Here 010 : 0000; -- A 011 : 0004; -- B 012 : 0003; -- C Figure 4b, scomp Machine Language Code (A = B + C) The program first brings B into the accumulator, then adds C to the accumulator contents, and stores the result in A. The typical code listing of a machine language program shows the memory address (1 st column of Figure 4b), memory contents (column after the : in Figure 4b), and comments (stuff after the --). The comments shown in Figure 4b are the assembly language mnemonics. Instructions should start at address 0 in memory as that will be what the PC is initialized to. Data can be placed anywhere in memory that does not contain instructions. In figure 4b the data for A, B, and C are placed in memory locations 0x10, 0x11, and 0x12 respectively. In line 000 of Figure 4b, the 6-bit opcode for the LOAD instruction is 0x01 (000001) and B refers to the 10-bit memory address 0x011 ( ). Thus the LOAD B instruction is or 0x0411. Labels like B will be useful when we do assembly language programming. Note that in the hex shorthand, extra 0s are appended to the front to extend the bits to a multiple of 4 bits. When generating the machine code by hand you must use the exact number of bits for the opcode (6) and operand (10) to generate the instruction. Register Flow for A = B + C The reset operation (Figure 5a) initializes the computer: Figure 5a, scomp after Reset Figure 5b, scomp in Fetch
5 During reset (Note that the memory starts to show the contents of the specified address) MW <= 0 PC <= 0x000 AC <= 0x0000 State < = fetch Figure 5b shows the fetch stage. During the fetch stage MW <= 0 IR <= MDR MAR <= MDR(9 downto 0) PC <= PC + 1 State <= decode Since the IR is a register (clocked), the contents of the data bus from the memory read are not latched in until the next state (decode). The MAR and PC are also registers and new values are not latched in until start of next state. Figure 5c shows the decode stage. During the decode stage CASE IR(15 downto 10) IS WHEN "000000" => -- No Op WHEN "000001" => -- LOAD STATE <= EX_LOAD;... Notice that the IR, MAR, and PC of Figure 5b now have the values assigned in the previous state. The control unit knows which execute state to go to based on the opcode field of the IR. During the decode state, memory has time to fetch the contents of the address loaded into the MAR during the previous state. This data is needed for instructions such as LOAD and ADD. If data is not needed by the instruction the data is not used. Figure 5c, scomp in Decode Figure 5d, scomp in Execute (LOAD) Figure 5d shows the execute stage for a LOAD operations. The LOAD operation requires only one state for the execute stage. During the execute stage WHEN EX_LOAD => -- Latch data from MDR to AC AC <= MDR;
6 The execute stage varies depending upon the instruction. Some instructions such as STORE require more than one state for the execute stage. After being reset, the computer will go through the fetch, decode, execute cycle as long as the clock is active. VHDL Implementation of the Simple Computer The VHDL framework for scomp is LIBRARY USE ENTITY SCOMP IS ARCHITECTURE a OF SCOMP IS declarations BEGIN other modules (like memory) assignments PROCESS (CLOCK, RESET) BEGIN CASE STATE IS WHEN RESET_PC => WHEN OTHERS => END PROCESS; END a; The VHDL entity for scomp is ENTITY SCOMP IS PORT(CLOCK,RESETN : IN STD_LOGIC; PC_OUT : OUT STD_LOGIC_VECTOR( 9 DOWNTO 0 ); AC_OUT : OUT STD_LOGIC_VECTOR(15 DOWNTO 0 ); MDR_OUT : OUT STD_LOGIC_VECTOR(15 DOWNTO 0 ); MAR_OUT : OUT STD_LOGIC_VECTOR(9 DOWNTO 0 ); IO_WRITE : OUT STD_LOGIC; IO_CYCLE : OUT STD_LOGIC; IO_ADDR : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); IO_DATA : INOUT STD_LOGIC_VECTOR(15 DOWNTO 0) ); END SCOMP; The entity symbol block is shown in Figure 6 Figure 6, scomp Entity
7 Assuming a program is loaded into scomp memory, for the scomp to operate only two inputs are needed, RESETN to initialize and CLOCK to run. The VHDL architecture (beginning only) for scomp is ARCHITECTURE a OF SCOMP IS TYPE STATE_TYPE IS (RESET_PC, FETCH, DECODE, EX_LOAD, EX_STORE, EX_STORE2, EX_ADD, EX_JUMP,EX_AND); SIGNAL STATE : STATE_TYPE; SIGNAL AC, IR, MDR : STD_LOGIC_VECTOR(15 DOWNTO 0); SIGNAL PC, MAR : STD_LOGIC_VECTOR(9 DOWNTO 0); SIGNAL MW : STD_LOGIC; The VHDL for implementing the RESET and FETCH states is CASE STATE IS WHEN RESET_PC => MW <= '0'; -- Clear memory write flag PC <= " "; -- Reset PC AC <= x"0000"; -- Clear AC register WHEN FETCH => MW <= '0'; -- Clear memory write flag IR <= MDR; -- Latch instruction into IR PC <= PC + 1; -- Increment PC to next address STATE <= DECODE; The VHDL for implementing the DECODE state is WHEN DECODE => CASE IR(15 downto 10) IS WHEN "000000" => -- No Operation (NOP) WHEN "000001" => -- LOAD STATE <= EX_LOAD; WHEN "000010" => -- STORE STATE <= EX_STORE;... The VDL for implementing the ADD execute state is WHEN EX_ADD => -- Add MDR (memory contents) to AC AC <= AC + MDR; The VHDL for implementing the STORE execute states is (see Figure 7 for when MW changes) WHEN EX_STORE => MW <= '1'; -- Raise MW to write AC to MEM STATE <= EX_STORE2; WHEN EX_STORE2 => MW <= '0'; -- Drop MW to end write cycle Figure 7, MW Timing for STORE
8 The memory bank is implemented using a Quartus parametric module, altsyncram. Using the module saves you from having to implement memory from scratch. The memory is 1024 words, each 16 bits wide. The VHDL to implement the bank of memory using altsyncram is -- Use altsyncram component for unified program and data memory MEMORY : altsyncram GENERIC MAP ( intended_device_family => "Cyclone", width_a => 16, widthad_a => 10, numwords_a => 1024, operation_mode => "SINGLE_PORT", outdata_reg_a => "UNREGISTERED", indata_aclr_a => "NONE", wrcontrol_aclr_a => "NONE", address_aclr_a => "NONE", outdata_aclr_a => "NONE", init_file => "example.mif", lpm_hint => "ENABLE_RUNTIME_MOD=NO", lpm_type => "altsyncram" ) PORT MAP ( wren_a => MW, clock0 => NOT(CLOCK), address_a => MAR, data_a => AC, q_a => MDR ); The specifics for the scomp memory are shown in Figure 8a and the memory block symbol created using the altsyncram module is shown in Figure 8b. Figure 8b, Memory Block Figure 8b, Memory Details
9 Lab 7 Read Chapter 9 of Rapid Prototyping of Digital Systems, note there are some differences between the architecture described in the textbook and the one in the lab manual. You will not use the scomp files from the textbook CD, the scomp files should be obtained from the handouts page course website. Download the following from the handouts page course website: scomp files, simple computer assembler (SCASM), and Crimson editor. The example.asm file is part of the scomp files. Install Crimson editor and SCASM on your computer. Documentation on how to correctly install Crimson editor and SCASM is provided on the handouts page course website. Additional Pointers for Lab 7 Lab step 1, Add instructions to scomp The scomp for lab 7 has 6-bit opcodes and 10-bit operands for a 16-bit instruction. Bits are the opcode and bits 9..0 are the operand. A 6-bit opcode means the scomp supports up to 64 instructions and a 10-bit operand means the scomp can address up to 2 10 words of memory or use a 10-bit immediate data value. For example, the 16-bit instructions (four hexadecimal digits) 0x opcode operand Opcode 1 is LOAD, the operand is hex address 0x0011 0x0C opcode operand Opcode 3 is ADD, the operand is hex address 0x0012 When hand assembling scomp code, make sure to use a 6-bit opcode not an 8-bit opcode. Immediate arithmetic and logic instructions will require the operand to be sign extended to 16-bits. Signed integers are represented in two s complement and sign extension can be done with concatentation. Jump instructions will require conditional logic: If ELSE. To check if numbers are positive, negative, and zero the >, <, and = logic operators will not work as you might expect as the data in the accumulator is a 16 bit standard logic vector not an arithmetic value. So it is not as simple as just comparing the accumulator to zero. Instead think of how one determines if a number is positive or negative when represented in a signed two's complement representation. Comparisons for the immediate add instructions will need to be handled similarly to implement sign extension. Lab step 2, Simulation of test_code.mif Notice in the altsyncram LPM in the scomp VHDL there is the line init_file => example.mif This mif file (memory initialization file) is what memory is initialized to. This is how your program and data get into memory. Any time you wish to use a different program, you must change the memory initialization file and recompile the project. The scomp takes at least three clock cycles to perform an instruction: fetch one clock cycle, decode one clock cycle, execute one or two clock cycles. Thus to simulate a program consisting of ten lines (with no loops) requires at least 30 clock cycles. Programs containing loops will require even longer simulations.
10 To get internal signals such as PC and IR in the simulation you may need to change what the node finder looks for. PINS only will give the inputs nad outputs defined in the PORT statement of the entity. Lab step 8, Oscilloscope capture of scomp clock on DE2 The bandwidth of the oscilloscopes in the digital design lab is 100MHz and we will be capturing clock signals in the 50 70MHz range. Make sure to restore the default settings on the oscilloscope (see scope checkout procedure from Lab 2 lab step 13, page 32 of the DDLM. After the scope checkout is performed check and make sure that the bandwidth limit (BW Limit) on the channel you are using to capture the clock signal is off thus using the full 100MHz bandwidth of the scope. Also make sure that the probe that you are using is set to 10x and that the probe attenuation for the channel you are using is set to 10x. Pre Lab 7 Pre lab step 3, modified example.asm and example.mif for computing A = (B + C) + D Pre lab step 5, screenshot of simple computer simulation results for example.mif of Pre lab step 3 Pre lab step 6, total logic elements, total pins, and total memory bits from fitter summary results Lab 7 Results Pre lab step 3, modified example.asm and example.mif Pre lab step 5, simulation results for example.mif of Pre lab step 3 Lab step 2, simulation results for test_code.mif Lab steps 4-7, simple computer schematic for DE2 board Lab step 8, oscilloscope capture of clock waveform scomp.vhd VHDL code (can be as an appendix at the end of the results)
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 informationSingle-Cycle CPU VITO KLAUDIO CSC343 FALL 2015 PROF. IZIDOR GERTNER
Single-Cycle CPU CSC343 FALL 2015 PROF. IZIDOR GERTNER 1 Single-Cycle CPU Table of contents 1. Objective... pg. 2 2. Functionality... pg. 3 2.1 Part I (ADD/SUB)... pg. 7 2.2 Part II (ORI & BITWISE OPERATIONS)...
More informationECE 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 informationLecture1: introduction. Outline: History overview Central processing unite Register set Special purpose address registers Datapath Control unit
Lecture1: introduction Outline: History overview Central processing unite Register set Special purpose address registers Datapath Control unit 1 1. History overview Computer systems have conventionally
More informationMicrocomputer Architecture and Programming
IUST-EE (Chapter 1) Microcomputer Architecture and Programming 1 Outline Basic Blocks of Microcomputer Typical Microcomputer Architecture The Single-Chip Microprocessor Microprocessor vs. Microcontroller
More informationLab 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 informationCHAPTER 5 : Introduction to Intel 8085 Microprocessor Hardware BENG 2223 MICROPROCESSOR TECHNOLOGY
CHAPTER 5 : Introduction to Intel 8085 Hardware BENG 2223 MICROPROCESSOR TECHNOLOGY The 8085A(commonly known as the 8085) : Was first introduced in March 1976 is an 8-bit microprocessor with 16-bit address
More informationE3940 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 informationThe MARIE Architecture
The MARIE Machine Architecture that is Really Intuitive and Easy. We now define the ISA (Instruction Set Architecture) of the MARIE. This forms the functional specifications for the CPU. Basic specifications
More informationChapter 4. MARIE: An Introduction to a Simple Computer. Chapter 4 Objectives. 4.1 Introduction. 4.2 CPU Basics
Chapter 4 Objectives Learn the components common to every modern computer system. Chapter 4 MARIE: An Introduction to a Simple Computer Be able to explain how each component contributes to program execution.
More informationThe von Neumann Architecture. IT 3123 Hardware and Software Concepts. The Instruction Cycle. Registers. LMC Executes a Store.
IT 3123 Hardware and Software Concepts February 11 and Memory II Copyright 2005 by Bob Brown The von Neumann Architecture 00 01 02 03 PC IR Control Unit Command Memory ALU 96 97 98 99 Notice: This session
More informationLab 3: Standard Combinational Components
Lab 3: Standard Combinational Components Purpose In this lab you will implement several combinational circuits on the DE1 development board to test and verify their operations. Introduction Using a high-level
More informationDigital System Design Using Verilog. - Processing Unit Design
Digital System Design Using Verilog - Processing Unit Design 1.1 CPU BASICS A typical CPU has three major components: (1) Register set, (2) Arithmetic logic unit (ALU), and (3) Control unit (CU) The register
More informationDesign Problem 5 Solutions
CS/EE 260 Digital Computers: Organization and Logical Design Design Problem 5 Solutions Jon Turner Due 5/4/04 1. (100 points) In this problem, you will implement a simple shared memory multiprocessor system
More informationDepartment of Computer and Mathematical Sciences. Lab 4: Introduction to MARIE
Department of Computer and Mathematical Sciences CS 3401 Assembly Language 4 Lab 4: Introduction to MARIE Objectives: The main objective of this lab is to get you familiarized with MARIE a simple computer
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 informationChapter 1 Microprocessor architecture ECE 3120 Dr. Mohamed Mahmoud http://iweb.tntech.edu/mmahmoud/ mmahmoud@tntech.edu Outline 1.1 Computer hardware organization 1.1.1 Number System 1.1.2 Computer hardware
More informationCC312: Computer Organization
CC312: Computer Organization Dr. Ahmed Abou EL-Farag Dr. Marwa El-Shenawy 1 Chapter 4 MARIE: An Introduction to a Simple Computer Chapter 4 Objectives Learn the components common to every modern computer
More informationThe 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 informationV8-uRISC 8-bit RISC Microprocessor AllianceCORE Facts Core Specifics VAutomation, Inc. Supported Devices/Resources Remaining I/O CLBs
V8-uRISC 8-bit RISC Microprocessor February 8, 1998 Product Specification VAutomation, Inc. 20 Trafalgar Square Nashua, NH 03063 Phone: +1 603-882-2282 Fax: +1 603-882-1587 E-mail: sales@vautomation.com
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 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 informationA3 Computer Architecture
A3 Computer Architecture Engineering Science 3rd year A3 Lectures Prof David Murray david.murray@eng.ox.ac.uk www.robots.ox.ac.uk/ dwm/courses/3co Michaelmas 2000 1 / 1 2: Introduction to the CPU 3A3 Michaelmas
More informationChapter 4. MARIE: An Introduction to a Simple Computer
Chapter 4 MARIE: An Introduction to a Simple Computer Chapter 4 Objectives Learn the components common to every modern computer system. Be able to explain how each component contributes to program execution.
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 informationENGG3380: Computer Organization and Design Lab5: Microprogrammed Control
ENGG330: Computer Organization and Design Lab5: Microprogrammed Control School of Engineering, University of Guelph Winter 201 1 Objectives: The objectives of this lab are to: Start Date: Week #5 201 Due
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 informationModule 5 - CPU Design
Module 5 - CPU Design Lecture 1 - Introduction to CPU The operation or task that must perform by CPU is: Fetch Instruction: The CPU reads an instruction from memory. Interpret Instruction: The instruction
More informationClass Notes. Dr.C.N.Zhang. Department of Computer Science. University of Regina. Regina, SK, Canada, S4S 0A2
Class Notes CS400 Part VI Dr.C.N.Zhang Department of Computer Science University of Regina Regina, SK, Canada, S4S 0A2 C. N. Zhang, CS400 83 VI. CENTRAL PROCESSING UNIT 1 Set 1.1 Addressing Modes and Formats
More informationGeneral purpose registers These are memory units within the CPU designed to hold temporary data.
Von Neumann Architecture Single processor is used Each instruction in a program follows a linear sequence of fetch decode execute cycle Program and data are held in same main memory Stored program Concept
More informationDC57 COMPUTER ORGANIZATION JUNE 2013
Q2 (a) How do various factors like Hardware design, Instruction set, Compiler related to the performance of a computer? The most important measure of a computer is how quickly it can execute programs.
More informationUNIVERSITY OF CALIFORNIA, DAVIS Department of Electrical and Computer Engineering. EEC180B DIGITAL SYSTEMS II Fall 1999
UNIVERSITY OF CALIFORNIA, DAVIS Department of Electrical and Computer Engineering EEC180B DIGITAL SYSTEMS II Fall 1999 Lab 7-10: Micro-processor Design: Minimal Instruction Set Processor (MISP) Objective:
More informationRegister Are Two Names For The Same Place
The Program Counter And The Instruction Register Are Two Names For The Same Place Hi I am wondering where the program counter goes when the program The interrupt will take place after the current iteration
More informationASSEMBLY LANGUAGE MACHINE ORGANIZATION
ASSEMBLY LANGUAGE MACHINE ORGANIZATION CHAPTER 3 1 Sub-topics The topic will cover: Microprocessor architecture CPU processing methods Pipelining Superscalar RISC Multiprocessing Instruction Cycle Instruction
More informationMicrocontroller Systems
µcontroller systems 1 / 43 Microcontroller Systems Engineering Science 2nd year A2 Lectures Prof David Murray david.murray@eng.ox.ac.uk www.robots.ox.ac.uk/ dwm/courses/2co Michaelmas 2014 µcontroller
More informationIntroduction to Computer Design
Introduction to Computer Design Memory (W 800-840) Basic processor operation Processor organization Executing instructions Processor implementation using VHDL 1 Random Access Memory data_in address read/write
More informationComputer Architecture Review CS 595
Computer Architecture Review CS 595 1 The von Neumann Model Von Neumann (1946) proposed that a fundamental model of a computer should include 5 primary components: Memory Processing Unit Input Device(s)
More informationProcessor design - MIPS
EASY Processor design - MIPS Q.1 What happens when a register is loaded? 1. The bits of the register are set to all ones. 2. The bit pattern in the register is copied to a location in memory. 3. A bit
More informationMARIE: An Introduction to a Simple Computer
MARIE: An Introduction to a Simple Computer Outline Learn the components common to every modern computer system. Be able to explain how each component contributes to program execution. Understand a simple
More informationAddress Modes effective address
Address Modes The MARIE supports only three addressing modes: immediate, direct, and indirect. We are now going to discuss addressing modes in general. Most computers support quite a few of these modes.
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 informationCSE 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 informationThe CPU and Memory. How does a computer work? How does a computer interact with data? How are instructions performed? Recall schematic diagram:
The CPU and Memory How does a computer work? How does a computer interact with data? How are instructions performed? Recall schematic diagram: 1 Registers A register is a permanent storage location within
More information1. INTRODUCTION TO MICROPROCESSOR AND MICROCOMPUTER ARCHITECTURE:
1. INTRODUCTION TO MICROPROCESSOR AND MICROCOMPUTER ARCHITECTURE: A microprocessor is a programmable electronics chip that has computing and decision making capabilities similar to central processing unit
More informationQUARTUS 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 informationComputer 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 informationMemory General R0 Registers R1 R2. Input Register 1. Input Register 2. Program Counter. Instruction Register
CPU Organisation Central Processing Unit (CPU) Memory General R0 Registers R1 R2 ALU R3 Output Register Input Register 1 Input Register 2 Internal Bus Address Bus Data Bus Addr. $ 000 001 002 Program Counter
More informationUNIVERSITY 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 information1 MALP ( ) Unit-1. (1) Draw and explain the internal architecture of 8085.
(1) Draw and explain the internal architecture of 8085. The architecture of 8085 Microprocessor is shown in figure given below. The internal architecture of 8085 includes following section ALU-Arithmetic
More informationMARIE: An Introduction to a Simple Computer
MARIE: An Introduction to a Simple Computer 4.2 CPU Basics The computer s CPU fetches, decodes, and executes program instructions. The two principal parts of the CPU are the datapath and the control unit.
More informationOutcomes. Lecture 13 - Introduction to the Central Processing Unit (CPU) Central Processing UNIT (CPU) or Processor
Lecture 13 - Introduction to the Central Processing Unit (CPU) Outcomes What is a CPU? How are instructions prepared by the CPU before execution? What registers and operations are involved in this preparation
More informationEngr 303 Digital Logic Design Fall 2018
Engr 303 Digital Logic Design Fall 2018 LAB 14 Single Cycle Computer You will implement the single cycle computer given in Figure 8-15 of the Chapter 8 handout. Implement these designs, compile, simulate,
More informationComputer 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 informationThe register set differs from one computer architecture to another. It is usually a combination of general-purpose and special purpose registers
Part (6) CPU BASICS A typical CPU has three major components: 1- register set, 2- arithmetic logic unit (ALU), 3- control unit (CU). The figure below shows the internal structure of the CPU. The CPU fetches
More informationVLSI Project. Phase 1 Documentation GROUP 7
GROUP 7 VLSI Project Phase 1 Documentation Group Members: 1. AbdelRahman Ahmed Amaar. 2. AbdelRahman Fawzy Mohamed. 3. AbdelRahman Nasr El-Shenawy. 4. Ayman Mohamed Abo El-Maaty. 24-Apr-12 Table of Contents
More informationMOXSYN. General Description. Features. Symbol
MOXSYN C68MX11 CPU General Description The C68MX11 CPU core is based on the Motorola M68HC11 microcontroller controller, but has an enhanced full 16 bit architecture, thus requiring less clock cycles for
More informationUNIVERSITY 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 informationMark 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 informationAssembly Language Programming of 8085
Assembly Language Programming of 8085 Topics 1. Introduction 2. Programming model of 8085 3. Instruction set of 8085 4. Example Programs 5. Addressing modes of 8085 6. Instruction & Data Formats of 8085
More informationCOS 140: Foundations of Computer Science
COS 140: Foundations of Computer Science CPU Organization and Assembly Language Fall 2018 CPU 3 Components of the CPU..................................................... 4 Registers................................................................
More informationMicro computer Organization
Micro computer Organization I Base Basic Components CPU SYSTEM BUSES VDD CLK RESET 1 MPU vs MCU Microprocessor Unit (MPU) CPU (called Microprocessor) is a die All components external to die Basically on
More informationELCT 501: Digital System Design
ELCT 501: Digital System Lecture 4: CAD tools (Continued) Dr. Mohamed Abd El Ghany, Basic VHDL Concept Via an Example Problem: write VHDL code for 1-bit adder 4-bit adder 2 1-bit adder Inputs: A (1 bit)
More informationCS 101, Mock Computer Architecture
CS 101, Mock Computer Architecture Computer organization and architecture refers to the actual hardware used to construct the computer, and the way that the hardware operates both physically and logically
More informationEXPERIMENT NUMBER 11 REGISTERED ALU DESIGN
11-1 EXPERIMENT NUMBER 11 REGISTERED ALU DESIGN Purpose Extend the design of the basic four bit adder to include other arithmetic and logic functions. References Wakerly: Section 5.1 Materials Required
More informationChapter 4. Chapter 4 Objectives. MARIE: An Introduction to a Simple Computer
Chapter 4 MARIE: An Introduction to a Simple Computer Chapter 4 Objectives Learn the components common to every modern computer system. Be able to explain how each component contributes to program execution.
More informationCHAPTER ASSEMBLY LANGUAGE PROGRAMMING
CHAPTER 2 8051 ASSEMBLY LANGUAGE PROGRAMMING Registers Register are used to store information temporarily: A byte of data to be processed An address pointing to the data to be fetched The vast majority
More informationCOSC 243. Computer Architecture 1. COSC 243 (Computer Architecture) Lecture 6 - Computer Architecture 1 1
COSC 243 Computer Architecture 1 COSC 243 (Computer Architecture) Lecture 6 - Computer Architecture 1 1 Overview Last Lecture Flip flops This Lecture Computers Next Lecture Instruction sets and addressing
More informationASSIGNMENT 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 informationIntroduction to CPU Design
١ Introduction to CPU Design Computer Organization & Assembly Language Programming Dr Adnan Gutub aagutub at uqu.edu.sa [Adapted from slides of Dr. Kip Irvine: Assembly Language for Intel-Based Computers]
More informationSCRAM Introduction. Philipp Koehn. 19 February 2018
SCRAM Introduction Philipp Koehn 19 February 2018 This eek 1 Fully work through a computer circuit assembly code Simple but Complete Random Access Machine (SCRAM) every instruction is 8 bit 4 bit for op-code:
More informationWilliam Stallings Computer Organization and Architecture
William Stallings Computer Organization and Architecture Chapter 16 Control Unit Operations Rev. 3.2 (2009-10) by Enrico Nardelli 16-1 Execution of the Instruction Cycle It has many elementary phases,
More informationLab 7: RPN Calculator
University of Pennsylvania Department of Electrical and Systems Engineering ESE171 - Digital Design Laboratory Lab 7: RPN Calculator The purpose of this lab is: Purpose 1. To get familiar with the use
More informationENGG3380: Computer Organization and Design Lab4: Buses and Peripheral Devices
ENGG3380: Computer Organization and Design Lab4: Buses and Peripheral Devices School of Engineering, University of Guelph Winter 2017 1 Objectives: The purpose of this lab is : Learn basic bus design techniques.
More informationChapter 3 : Control Unit
3.1 Control Memory Chapter 3 Control Unit The function of the control unit in a digital computer is to initiate sequences of microoperations. When the control signals are generated by hardware using conventional
More informationArchitecture & Instruction set of 8085 Microprocessor and 8051 Micro Controller
of 8085 microprocessor 8085 is pronounced as "eighty-eighty-five" microprocessor. It is an 8-bit microprocessor designed by Intel in 1977 using NMOS technology. It has the following configuration 8-bit
More informationPROGRAM CONTROL UNIT (PCU)
nc. SECTION 5 PROGRAM CONTROL UNIT (PCU) MOTOROLA PROGRAM CONTROL UNIT (PCU) 5-1 nc. SECTION CONTENTS 5.1 INTRODUCTION........................................ 5-3 5.2 PROGRAM COUNTER (PC)...............................
More information538 Lecture Notes Week 1
538 Clowes Lecture Notes Week 1 (Sept. 6, 2017) 1/10 538 Lecture Notes Week 1 Announcements No labs this week. Labs begin the week of September 11, 2017. My email: kclowes@ryerson.ca Counselling hours:
More informationHave difficulty identifying any products Not incorporating embedded processor FPGA or CPLD In one form or another
Introduction Embedded systems Continue pervasive expansion into Vast variety of electronic systems and products Aircraft and automobiles games and medical equipment Have difficulty identifying any products
More informationBasics of Microprocessor
Unit 1 Basics of Microprocessor 1. Microprocessor Microprocessor is a multipurpose programmable integrated device that has computing and decision making capability. This semiconductor IC is manufactured
More informationCSEE 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 informationChapter 5. Computer Architecture Organization and Design. Computer System Architecture Database Lab, SANGJI University
Chapter 5. Computer Architecture Organization and Design Computer System Architecture Database Lab, SANGJI University Computer Architecture Organization and Design Instruction Codes Computer Registers
More informationCPU ARCHITECTURE. QUESTION 1 Explain how the width of the data bus and system clock speed affect the performance of a computer system.
CPU ARCHITECTURE QUESTION 1 Explain how the width of the data bus and system clock speed affect the performance of a computer system. ANSWER 1 Data Bus Width the width of the data bus determines the number
More informationCS 265. Computer Architecture. Wei Lu, Ph.D., P.Eng.
CS 265 Computer Architecture Wei Lu, Ph.D., P.Eng. Part 3: von Neumann Architecture von Neumann Architecture Our goal: understand the basics of von Neumann architecture, including memory, control unit
More informationCHAPTER 5 Basic Organization and Design Outline Instruction Codes Computer Registers Computer Instructions Timing and Control Instruction Cycle
CS 224: Computer Organization S.KHABET CHAPTER 5 Basic Organization and Design Outline Instruction Codes Computer Registers Computer Instructions Timing and Control Instruction Cycle Memory Reference Instructions
More informationMICROPROGRAMMED CONTROL
MICROPROGRAMMED CONTROL Hardwired Control Unit: When the control signals are generated by hardware using conventional logic design techniques, the control unit is said to be hardwired. Micro programmed
More informationLaboratory 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 informationConcurrent & 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 informationDesign Problem 5 Solution
CSE 260 Digital Computers: Organization and Logical Design Design Problem 5 Solution Jon Turner Due 5/3/05 1. (150 points) In this problem, you are to extend the design of the basic processor to implement
More informationMicroprocessors. Microprocessors and rpeanut. Memory. Eric McCreath
Microprocessors Microprocessors and rpeanut Eric McCreath There are many well known microprocessors: Intel x86 series, Pentium, Celeron, Xeon, etc. AMD Opteron, Intel Itanium, Motorola 680xx series, PowerPC,
More informationChapter 2 68HC11 Based Temperature Monitoring Board
Chapter 2 68HC11 Based Temperature Monitoring Board Before we discuss the testing approach, it is helpful to know the system on which it is being applied. In this chapter, we will describe the design and
More informationMicroprocessors and rpeanut. Eric McCreath
Microprocessors and rpeanut Eric McCreath Microprocessors There are many well known microprocessors: Intel x86 series, Pentium, Celeron, Xeon, etc. AMD Opteron, Intel Itanium, Motorola 680xx series, PowerPC,
More informationVARDHAMAN COLLEGE OF ENGINEERING (AUTONOMOUS) Shamshabad, Hyderabad
Introduction to MS-DOS Debugger DEBUG In this laboratory, we will use DEBUG program and learn how to: 1. Examine and modify the contents of the 8086 s internal registers, and dedicated parts of the memory
More informationGrundlagen Microcontroller Processor Core. Günther Gridling Bettina Weiss
Grundlagen Microcontroller Processor Core Günther Gridling Bettina Weiss 1 Processor Core Architecture Instruction Set Lecture Overview 2 Processor Core Architecture Computes things > ALU (Arithmetic Logic
More informationMCPU - A Minimal 8Bit CPU in a 32 Macrocell CPLD.
MCPU - A Minimal 8Bit CPU in a 32 Macrocell CPLD. Tim Böscke, cpldcpu@opencores.org 02/2001 - Revised 10/2004 This documents describes a successful attempt to fit a simple VHDL - CPU into a 32 macrocell
More informationMajor and Minor States
Major and Minor States We now consider the micro operations and control signals associated with the execution of each instruction in the ISA. The execution of each instruction is divided into three phases.
More informationArchitecture Project Phase (1)
Objective Cairo University CMP 301B Faculty of Engineering Spring 2013 Computer Engineering Department Architecture Project Phase (1) In this phase, it is required to design and implement a simple pipelined
More informationQUESTION BANK. EE 6502 / Microprocessor and Microcontroller. Unit I Processor. PART-A (2-Marks)
QUESTION BANK EE 6502 / Microprocessor and Microcontroller Unit I- 8085 Processor PART-A (2-Marks) YEAR/SEM : III/V 1. What is meant by Level triggered interrupt? Which are the interrupts in 8085 level
More informationCPE 323 MSP430 INSTRUCTION SET ARCHITECTURE (ISA)
CPE 323 MSP430 INSTRUCTION SET ARCHITECTURE (ISA) Aleksandar Milenković Email: milenka@uah.edu Web: http://www.ece.uah.edu/~milenka Objective Introduce MSP430 Instruction Set Architecture (Class of ISA,
More informationUsing Library Modules in VHDL Designs
Using Library Modules in VHDL Designs This tutorial explains how Altera s library modules can be included in VHDL-based designs, which are implemented by using the Quartus R II software. Contents: Example
More informationThis simulated machine consists of four registers that will be represented in your software with four global variables.
CSCI 4717 Computer Architecture Project 1: Two-Stage Instuction Decoder Due: Monday, September 21, 26 at 11:59 PM What to submit: You will be submitting a text file containing two C functions, fetchnextinstruction()
More information