ENGN3213 Digital Systems and Microprocessors Course Overview with MU0

Size: px
Start display at page:

Download "ENGN3213 Digital Systems and Microprocessors Course Overview with MU0"

Transcription

1 ENGN3213 Digital Systems and Microprocessors Course Overview with MU0 1 ENGN3213: Digital Systems and Microprocessors L#3-4

2 The MU0 Microprocessor...Our road map for the course A tour of the course by looking at the design of a working microprocessor called MU0 The MU0 design in Verilog HDL can be downloaded from the course web site. This code can be used for simulation using ICARUS VERILOG Dont worry if you dont understand everything. Just keep your eye on the map. Colour coded viewgraphs... GREEN COLOUR: Take good notice of this, BLUE COLOUR: Look here for more information and RED COLOUR: Be careful of this: either unlearn it or fix it 2 ENGN3213: Digital Systems and Microprocessors L#3-4

3 Microprocessor Design The central processing unit of a computer is a microprocessor. The CPU is usually the most complex part of a computer system. The following two lectures outline the detailed design and implementation of a simple microprocessor. We will answer the question: How do we do the detailed design of a complex digital system such as a microprocessor? The approach taken will be based on the Register Transfer Level Abstraction. Our vehicule in the discussion will be the design of a realistic but simplistic microprocessor known as MU0. MU0 is a complete microprocessor and is quite capable of running useful programs. It is also simple enough for a complete RTL based design and HDL implementation to be discussed from scratch in just two - three lectures. 3 ENGN3213: Digital Systems and Microprocessors L#3-4

4 Overview of the Overview: A top down design of microprocessor MU0 What we do in the overview... MU0 design assumptions - Specifications Present some ideas about microprocessors, Verilog hardware definition language (HDL) and some electronic circuits (L5 - L6) Simulate the design (L5, L6) Discuss Finite State Machines (FSM) (L12-L13) and do a Register Transfer Level Design and implement the design showing some design tips (L16,L17) Understand how microprocessors work (L18-22) What we do NOT do in the overview... Do not discuss Picoblaze or C, certain combinational and sequential circuits in detail, detailed design of finite state machines and the non-ideal characteristics of digital devices 4 ENGN3213: Digital Systems and Microprocessors L#3-4

5 Introduction to MU0 University of Manchester design (although the resultant design here is my own based on their descriptions) Very simple processor but somewhat like the Manchester Mark I a Small Scale Experimental Machine. The SSEM was built using valves and would just fit into a reasonably sized room. The same machine these days would take just a fraction of a percent of the resources of the XC3S500E Xilinx FPGA (Field Programmable Gate Array) 5 ENGN3213: Digital Systems and Microprocessors L#3-4

6 6 ENGN3213: Digital Systems and Microprocessors L#3-4

7 How can we make MU0 so small? (L8: Configurable logic devices) Very Large Scale Integration Field Programmable Gate Arrays consist of thousands of logic blocks Interconnect them using software called Hardware Definition Language FPGA main building block is the Configurable Logic Block (CLB) The basic building block of the Spartan-II CLB is the logic cell (LC). An LC includes a 4-input function generator, carry logic, and storage element. Output from the function generator in each LC drives the CLB output and the D input of the flip-flop. Each Spartan-II CLB contains four LCs, organized in two similar slices; a single slice is shown in the figure. 7 ENGN3213: Digital Systems and Microprocessors L#3-4

8 8 ENGN3213: Digital Systems and Microprocessors L#3-4

9 9 ENGN3213: Digital Systems and Microprocessors L#3-4

10 10 ENGN3213: Digital Systems and Microprocessors L#3-4

11 ...How do we design complex digital systems? Top down design Register Transfer Level Abstraction 11 ENGN3213: Digital Systems and Microprocessors L#3-4

12 Top Down design: ISE WebPACK Work Flow 12 ENGN3213: Digital Systems and Microprocessors L#3-4

13 The figure is someone s idea of a top-down design approach to a digital design. 1. MATLAB is a useful tool for the simulation of physical systems. Even in MATLAB simulations can occur at several levels. Microprocessors are simulated at the fixed point/boolean level. The simulation of a wireless communications link would also require the modelling of antennas and analogue circuits. These affect the specifications but are not involved in the final digital system. You have no doubt had some exposure to MATLAB modelling. MATLAB could also be used to model MU0 for the purpose of estimating its overall performance for the assumed architecture. 2. At the culmination of this activity emerges a specification for how to realise this system in a digital design. 3. We will be concerned in this course with the Register transfer level design. 4. RTL (Behavioural) simulation provides a description at the system level. This first pass simulation is typically performed to verify code syntax and to confirm that the code is functioning as intended. At this step, real physical effects at the gate level are not relevant. An RTL simulation can be performed as soon as the circuit schematic has been drawn. 5. Synthesis will take the RTL and generate a gate level description that can then be placed and routed. 6. The gate level simulation allows you to verify that your design has been synthesised correctly, and you can begin to identify any differences due to the lower level of abstraction. In particular that the: * RTL written is SYNTHESISABLE. * have any un-initialized outputs. * design works at the targeted FREQUENCY. * timing violations. * Power requirements. RTL simulation is not architecture-specific. It can be performed using either ICARUS VERILOG, MODELSIM (Mentor Graphics) or Xilinx XST simulator while steps 5 and 6 will be done in the Electronic Design Automation (EDA) software, ISE WebPACK 9.2i, in this course ENGN3213: Digital Systems and Microprocessors L#3-4

14 Design I: Register Transfer Level Abstraction (L14-15) Use this approach for all complex digital designs Split the design into a control path and a data path The data path consists of the basic functional digital blocks that comprise the system. The control path is a Finite State Machine that controls the execution sequence of the different digital blocks in the data path 14 ENGN3213: Digital Systems and Microprocessors L#3-4

15 Design II: Register Transfer Level Abstraction (ctd) 15 ENGN3213: Digital Systems and Microprocessors L#3-4

16 The purpose of the RTL design approach is to break down a complex system into manageable bits that we can treat in a unified manner. The control path is a Finite State Machine (FSM). We will look at these a little in a minute once we have a definition of a sequential circuit. We will also dedicate several lectures and labs specifically to FSMs. FSMs have a simple VERILOG coding style that we will always adhere to. The standard VERILOG code for an FSM is on page 651 Table 7-58 of the Fourth Edition book by Wakerly and coding and synthesis with verilog.pdf The approach to the design of the data path is a less clear. It is the creative part of the design. The data path is the block diagram of the system and therefore attracts most attention in the RTL design. We will also adhere to VERILOG coding rules here as most of the pitfalls of digital design occur in the data path. When using VERILOG to describe hardware we will find it advantageous to think of the data path as a bunch of interconnected devices with precisely defined functionality. We will generate the HDL description from these blocks rather than churning out a spaghetti of behavioural VERILOG. We will then better understand the hardware produced by the EDA synthesiser. We will learn VERILOG code that describes basic functional blocks such as flip flops, arithmetic logic units etc. In the case of MU0 we will see that the system blocks (Multiplexer, Arithmetic Logic Unit, program counter, memory etc) will have enable / disable switches that connect them to the control path FSM. The microprocesor will therefore resemble a FSM controlling switches - very intuitive. The formal theory of data path design will also be treated in the course. RTL datapath design is discussed in chapters of the book by Ercegovac. 16 ENGN3213: Digital Systems and Microprocessors L#3-4

17 Electronic Device Abstractions: Combinational Devices (L7, L8) A combinational circuit is a device that takes a digital input and produces a unique instantaneous digital output (save propagation delays etc) A combinational circuit is like a function y = f(x) and we must allow sufficient time for its outputs to settle. 17 ENGN3213: Digital Systems and Microprocessors L#3-4

18 Electronic Device Abstractions: Sequential Devices (L9, L10) In a sequential device the result is only transferred to the output at the active edge of a clock (e.g. D-type flip flop) 18 ENGN3213: Digital Systems and Microprocessors L#3-4

19 The above are actually idealised definitions of combinational and sequential circuits. Hence the use of the term abstraction. Real combinational circuits are subjected to propagation delays which delay the output y with respect to the input x. The circuit will not operate correctly if the inputs are changing too quickly. The function f(x) is therefore a complex time delayed function. When the combinational circuit operates in a design where there are also sequential circuits, the period of the clock that controls the sequential circuits may be limited by the propagation delays of the combinational circuits. In sequential circuits, propagation delays affect the stability of of the outputs when the inputs are changing with time. Firstly, the clock speed has to be low enough that the outputs can settle. The inputs must also be setup sufficiently early before the active clock edge for the output to be valid and the output is only valid if it remains in a stable state for a sufficiently long period of time after the active clock edge. In sequential circuit design, minimum setup and hold times have to be observed. 19 ENGN3213: Digital Systems and Microprocessors L#3-4

20 The Finite State Machine Abstraction (L12-13) Changes state according to different inputs. In each state there is a unique output. (Moore machine) (c.f. (Mealy machine)) FSMs are sequential systems (use flip-flops to make transitions). In each state combinational circuits produce the outputs from inputs. Only use synchronous state machines in this course 20 ENGN3213: Digital Systems and Microprocessors L#3-4

21 The control path of an RTL system is based on a finite state machine. An FSM is quite abstract, but for this discussion one can think of an FSM as a system that possesses a finite number of states. In each state the output of the system is fully deterministic. When a new set of inputs is applied, the system undergoes a transition to a different state with different outputs. The bubbles in the above figures represent the states and the arrow loops represent the transitions. Notice that the inputs are written on the loops in the case of the Moore machine. Generally the outputs can be written inside the state bubbles of the Moore machine. In the case of the Mealy machine both the inputs and the outputs are written on the loops. (WHY?) In this course we will only consider synchronous FSMs. Synchronous FSMs are FSMs in which all transitions occur on the active edge of the clock. Moreover, even external inputs to the FSM, though naturally asynchronous because they cannot know about the clock, will be rendered synchronous through an appropriate circuit. Apart from the above state diagrams one can also represent a FSM with a state transition table as follows... Present State Inputs Next State Outputs State transition table 21 ENGN3213: Digital Systems and Microprocessors L#3-4

22 Example: Pedx Controller: Circuit (CLOCK not shown) Input: Push-button W Car outputs: GYR light Pedestrian outputs: HALT/WALK s0 G, HALT W s1 Y, HALT W s2 R, WALK s3 R, HALT RESET 22 ENGN3213: Digital Systems and Microprocessors L#3-4

23 Example: Pedx Controller: Circuit 23 ENGN3213: Digital Systems and Microprocessors L#3-4

24 Simple Datapath 24 ENGN3213: Digital Systems and Microprocessors L#3-4

25 ...How do we describe and design circuits? Schematics and Hardware Definition Language 25 ENGN3213: Digital Systems and Microprocessors L#3-4

26 Circuit Design I: Schematics Schematics: Circuits are drawn and connected using software. E.g. PSPICE. An extension of the old days of hand sketching. Normally components can be loaded from libraries. Works OK for small circuits. Impossible as the sole design tool for complex circuits (millions of gates). Schematics are a very inefficient representation of hardware. They require attention to ALL levels of detail at the same time => incapable of abstraction. Generally we will not use schematics in the course, however they are intuitive and we will meet them in the early labs. 26 ENGN3213: Digital Systems and Microprocessors L#3-4

27 Circuit Design II: Hardware Definition Language Hardware Definition Language (HDL): is a programming language to simulate and implement hardware in much the same way that JAVA is a programming language to implement algorithms on a computer. Verilog and VHDL are the major HDLs. We will use Verilog (but VHDL for PICOBLAZE) HDLs are a much more efficient representation of hardware. Capable of hierarchical abstractions... as we shall now see. Any HDL can be combined with a schematic in a design thanks to the Xilinx ISE WebPACK IDE. We will do this from time to time. There are concrete conceptual differences between HDLs and ordinary programming languages such as JAVA, C and assembler. HDL programs cannot be used in the same way 27 ENGN3213: Digital Systems and Microprocessors L#3-4

28 Verilog HDL (L5, L6 ) Verilog is based on the combinational and sequential abstractions This is consistent with the fact that FSMs, datapaths and RTL systems all contain combinational and sequential sub-circuits Verilog can be either for simulation or for synthesis. Simulation is for modelling on a computer (ICARUS VERILOG or XST Xilinx ISE WebPACK simulator) Synthesis is the hardware implementation process (XST Xilinx ISE WebPACK synthesiser) The following figure shows a RTL cartoon of a Verilog program. 28 ENGN3213: Digital Systems and Microprocessors L#3-4

29 Intro to Verilog I: Verilog RTL Program Structure (L5 ) 29 ENGN3213: Digital Systems and Microprocessors L#3-4

30 Intro to Verilog II: Anatomy of a Verilog Module (L5) 30 ENGN3213: Digital Systems and Microprocessors L#3-4

31 Intro to Verilog III: Modelling sequential and combinational circuits (L5 ) 31 ENGN3213: Digital Systems and Microprocessors L#3-4

32 The main construct in VERILOG for modelling circuit behaviour is the always block. The ampersand character is placed before a parenthesised list of sensitivity parameters. If the sensitivity list contains a posedge clk or negedge clk, where clk is a clock variable then the contents of the always block will be executed at the positive (resp. negative) edge of the clock. This clock can represent any clock in the design: not just the system clock which is the main clock into the FPGA. In this case the always block is edge sensitive. This is the verilog construct for modelling a sequential circuit. If more than one parameter is present in the sensitivity list then they are each separated by an or. If the sensitive list only contains parameters without a posedge or negedge, then the contents of the always block is executed whenever any of the parameters in this list changes. In this case the always block is level sensitive. This is the verilog construct for modelling a combinational circuit. Notice that edge sensitive always blocks can also contain level sensitivities. These can be thought of as sequential circuits with enables. But they are still sequential circuits. It is important that all the inputs to which your circuit is sensitive appear in the always block sensitivity list. Failure to do so is akin to clipping the input wire from that input to your circuit. Erratic unpredictable behaviour will ensue as one would expect for the case of a real circuit. Important Concept: Blocking and Non-blocking assignments. Notice that the sequential VERILOG circuit which triggers on the clock edge transitions uses a <= operator to make assignments whereas the combinational VERILOG circuit which triggers on input levels uses a = operator to make assignments. These are known respectively as non-blocking (<=) and blocking assignments (=). (PTO). 32 ENGN3213: Digital Systems and Microprocessors L#3-4

33 Non-blocking assignments do exactly what you would expect for sequential circuits. When the clock transitions occur the variable on the left hand side is set to the value of that at the right hand side at the instant of the clock transition. Thus in the example X would take on the value that Y had when the clock transition occurred. Y takes on the value that A had when the clock transition occurred. After the clock transition X and Y may or may not have the same value (depending on the value of A). Blocking assignments do exactly what you would expect for combinational circuits. When some input level changes, the variables on the left hand side of the = sign settle to the values on the right. The settling process implies that assignment is blocked until all variables take on their time asymptotic values. This is exactly what one would hope for a combinational circuit. In some (infinitely short) time the left hand sides will settle to the right hand sides. Question 1: In a sequential ALWAYS block can the same variable appear on both sides of the equations in the assignment block? (WHY?) Question 2: In a combinational ALWAYS block can the same variable appear on both sides of the equations in the assignment block? (WHY?) Sometimes you will read that the blocking equals sign is executed sequentially as in C or JAVA. Thus in the above example, if we first have D = B and instead follow this with B = A, then after settling we would find that D takes on the initial value of B and B settles to the initial value of A. This is in fact what Verilog simulators DO. However combinational circuits do NOT do this. Consequently, when using blocking assignments in Verilog we will NOT have the same variable on both the left and the right handside Moreover we will not use both blocking and non-blocking assignments in the same always block Finally note that blocking and non-blocking assignments only ever appear inside ALWAYS blocks 33 ENGN3213: Digital Systems and Microprocessors L#3-4

34 Verilog Description of an FSM (L5 ) Verilog can be used to describe higher levels of abstraction than combinational and sequential circuits. The transition between states is a sequential operation (in the sense of a sequential circuit) In a FSM the actions that produce outputs from the inputs are combinational Consider the following Verilog template for a synchronous FSM 34 ENGN3213: Digital Systems and Microprocessors L#3-4

35 Verilog Description of an FSM (L5 ) 35 ENGN3213: Digital Systems and Microprocessors L#3-4

36 RTL design of MU ENGN3213: Digital Systems and Microprocessors L#3-4

37 MU0 Design: Step 1 Specifications MU0 is a microprocessor with a Von Neumann architecture A 16 bit machine with a 12 bit address space. One instruction will execute in two clock cycles An instruction consists of fetch, store, decode and execute Instruction format: 4 bit instruction (opcode) with a 12 bit address. No immediate operand. 37 ENGN3213: Digital Systems and Microprocessors L#3-4

38 MU0 Design: Step 1 Specifications: Assembly Language Instructions (L21) 38 ENGN3213: Digital Systems and Microprocessors L#3-4

39 Example: An assembly language program (L16-17: RTL Systems) 39 ENGN3213: Digital Systems and Microprocessors L#3-4

40 A microprocessor is a device that can perform mathematical operations on data stored in memory by following instructions that are also stored in memory. If the instructions are stored in the same memory as the data, the microprocessor is said to have a Von Neumann Architecture. It is also possible to store the instructions in a separate memory. Such an architecture is a Harvard Architecture. A 16 bit machine is one in which the data words are 16 bits wide. A 16 bit word can represent the integers from 1 to (WHY?). Can it represent negative integers as well? A 12 bit memory address space refers to the number of locations where data bits can be stored in the memory of the microprocessor. How many memory locations are possible with 12 bit addresses? Note that even though the address is only 12 bits deep, the data stored at the addresses must still be 16 bits wide The instruction has the same width as a data word (16 bits). It consists opcode which in the case of MU0 is a 4 bit numerical mneumonic that represents the operators. Having 4 bit opcodes means that MU0 can interpret up to 16 instructions. In fact MU0 will only have eight instructions defined for it and this is quite minimal by modern standards. Finally notice that the remainder of the instruction word is 12 bits. This has the same length as the memory depth. Thus the instruction word consists of the opcode and the address in memory of the operand (data word on which the operation will be performed). It is the job of the control path FSM to interpret the opcodes and instigate the execution of instructions. We will show how this is done. The requirements listed above more or less completely specify the RTL design of MU0. 40 ENGN3213: Digital Systems and Microprocessors L#3-4

41 Review: RTL Design 41 ENGN3213: Digital Systems and Microprocessors L#3-4

42 MU0 Design Step 2: Datapath - Specify the basic hardware blocks A program counter (PC). A register from which the address of the current instruction is fetched. The PC is incremented everytime an instruction is executed. This is how programs run sequentially An instruction register (IR) which stores the current instruction word while it is being executed A memory bank in which program and data are stored. In the Von Neumann architecture we assume that the program data comes first in memory and the data follows An arithmetic logic unit (ALU) that does arithmetic and other functions An accumulator (or working register). A register in which data can be temporarily stored Some multiplexers to allow datapaths to be switched 42 ENGN3213: Digital Systems and Microprocessors L#3-4

43 What does this example teach us about digital design? Always design hardware systems using well defined hardware blocks with clean interfaces and avoid coding Verilog in a logical fashion like ir were C Always be prepared and able to draw schematics that clearly describe your hardware Be able to relate your VERILOG to hardware 43 ENGN3213: Digital Systems and Microprocessors L#3-4

44 Always design hardware systems using well defined hardware blocks with clean interfaces and avoid coding Verilog in a procedural fashion It might seem that any requirement to treat the data path design from a hardware block approach with well defined interfaces would appear to detract from Verilog s heirarchical advantage. However this is not the case. Already we have seen several Verilog abstractions. The abstraction of combinational and sequential circuits, the FSM abstraction and soon an RTL abstraction. These abstractions represent different heirarchies of design. Once you understand Verilog well enough you will be able to design functional blocks with well defined interfaces such that you will understand what they do and have a pretty good idea of how they synthesise into hardware. 44 ENGN3213: Digital Systems and Microprocessors L#3-4

45 Program Counter, Instruction Register and Accumulator are Registers Whenever we need to take a snapshot of a data word we need a one address memory A one address memory is known as a register When enabled a register latches data present at its input to its output on the active edge of a clock A register is a sequential circuit (or D-type flip-flop) 45 ENGN3213: Digital Systems and Microprocessors L#3-4

46 Memory A memory is a sequential circuit which can store a bank of data words according to their addresses. The width of the memory is the length of the data words that it stores. The depth of the memory is the number of addresses where it can store data. Memory is just a bunch of registers numbering the depth of the memory. A memory is written to by applying a voltage level to its write-enable (Wen) port while applying the data word to be stored on its input bus. As for a register, the input word is latched into memory by an active clock transition. A memory is read from by applying a voltage level to its read-enable (Ren) port while reading the data word on its output bus after an active clock transition. Examples of memory are RAM and ROM. 46 ENGN3213: Digital Systems and Microprocessors L#3-4

47 Memory 47 ENGN3213: Digital Systems and Microprocessors L#3-4

48 A Multiplexer (MUX) A MUX allows us to choose between two inputs X or Y by applying a voltage level to a select input, Sel. A MUX is a combinational circuit because it acts instantaneously and does not use a clock. 48 ENGN3213: Digital Systems and Microprocessors L#3-4

49 Arithmetic Logic Unit (L6: Digital system components) An ALU takes two inputs X and Y and performs a mathematical operation on them to produce output Z. ALUs may perform several functions according to a programmable multibit select input, M. The MU0 ALU performs addition, subtraction, incrementation of one input port and thru connection on one input port. The MU0 ALU is combinational. Unlike most ALUs, the MU0 ALU does not perform Boolean operations. 49 ENGN3213: Digital Systems and Microprocessors L#3-4

50 MU0 Arithmetic Logic Unit (L6: Digital system components) 50 ENGN3213: Digital Systems and Microprocessors L#3-4

51 Each of these building blocks can be easily realised in hardware and described in Verilog. Not mentioned is the clock signal which is the MU0 heart beat. The rising edge of the clock will be considererd the active edge. However there is an important exception to this in which for one process (memory transfers) that the negative clock will be the active edge. This is a contradiction of the design spec since it effectively doubles the FPGA performance requirements. Take a look at the Verilog code for the memory: mem.v to see this negedge clock. 51 ENGN3213: Digital Systems and Microprocessors L#3-4

52 A VERILOG Memory for MU0 (Not synthesisable!!! ) 52 ENGN3213: Digital Systems and Microprocessors L#3-4

53 A VERILOG Multiplexer for MU0 (L8: Verilog ) 53 ENGN3213: Digital Systems and Microprocessors L#3-4

54 A VERILOG Register for MU0 (PC, Accumulator, Instruction register (L8: Verilog ) 54 ENGN3213: Digital Systems and Microprocessors L#3-4

55 MU0 Design Step 3: The Control Path (FSM) - The Instruction Cycle 55 ENGN3213: Digital Systems and Microprocessors L#3-4

56 MU0 Design Step 3: The Control Path FSM The above control path algorithm can be achieved with just a two state FSM with a fetch/store state (FETCH) and a decode/execute state (EXEC) In the FETCH state, the PC is connected to the memory address bus by the address mux, the next instruction from memory is then read and stored in the IR. The PC is also incremented. In the EXEC state the first four bits (opcode) in the IR is decoded. The action to be taken given the opcode is then handled by a bunch of CASE statements in the EXEC state. The operand for the opcode is located in the memory address referred to in the last 12 bits of the IR. Some of the opcodes refer to JUMP instructions. When this is the case the last 12 bits of the IR refer to the next memory location to which the PC should point. This new memory location becomes the new PC value even though the PC was incremented in the FETCH state. 56 ENGN3213: Digital Systems and Microprocessors L#3-4

57 MU0 Design Step 3: Data Path Control The controller controls the microprocessor through switches that are assigned definite values in the EXEC state These switches are the enables on the data path hardware blocks Note that the switches are already on before the active edge of the clock 57 ENGN3213: Digital Systems and Microprocessors L#3-4

58 MU0 Datapath Block Diagram 58 ENGN3213: Digital Systems and Microprocessors L#3-4

59 The way that MU0 uses datapath hardware blocks to execute a program with just these two states in the control path FSM is as follows. To start an operation the contents of the memory location pointed to by the address stored in the PC are read. This is a two step process. By this step the PC has already been disabled. The contents of the PC register are muxed onto the memory address bus by deasserting Asel (i.e. set Asel = 0). This occurs in the fetch state at the positive edge of the clock. At the negative of the clock with an asserted Ren (read enable on the memory set to Ren = 1), the contents of the memory location are transferred into the instruction register. The next positive edge of the clock sees the instruction register latch this 16 bit word to its output. The fetch and store process is now complete. Since the PC points to an instruction (as opposed to data) in the memory, this location will contain a 16 bit word in which the first 4 bits is the opcode and the last 12 bits is the location in memory of the operand of the assembly language instruction belonging to the opcode. In the EXEC state, there are eight cases to consider, one for each opcode. In each case statement the outputs of the FSM are the new values for all the switches (Xsel, Ysel, Asel, Wen, Ren, PCen, IRen, AccEn and M) for the data path hardware blocks that perform the operation specified by the opcode. The best thing to do now is to go to the Verilog source code for mu0 ctrl.v and read the comments in the combinational ALWAYS block of the decoder. Note that there are some dont care states in which certain signals have no effect in certain states. The timing diagram may also help. 59 ENGN3213: Digital Systems and Microprocessors L#3-4

60 MU0 Control Path FSM Implementation (L12-13: FSM ) 60 ENGN3213: Digital Systems and Microprocessors L#3-4

61 Example: ADD Instruction (L16-17: RTL systems) 61 ENGN3213: Digital Systems and Microprocessors L#3-4

62 MU0 Control Path: The State Transition Diagram (L12-13: FSMs) 62 ENGN3213: Digital Systems and Microprocessors L#3-4

63 mu0 ctrl.c (A VERILOG Controller for MU0): FETCH case 63 ENGN3213: Digital Systems and Microprocessors L#3-4

64 mu0 ctrl.c (A VERILOG Controller for MU0): LDA Instruction 64 ENGN3213: Digital Systems and Microprocessors L#3-4

65 The End Exercise: Try and understand the operation of mu0 ctrl.v in terms of the state transition diagram See 65 ENGN3213: Digital Systems and Microprocessors L#3-4

66 GTKWAVE 66 ENGN3213: Digital Systems and Microprocessors L#3-4

67 GTKWAVE 67 ENGN3213: Digital Systems and Microprocessors L#3-4

68 C.F. PIC16F84C Datapath Block Diagram 68 ENGN3213: Digital Systems and Microprocessors L#3-4

69 PICOBLAZE Datapath Block Diagram 69 ENGN3213: Digital Systems and Microprocessors L#3-4

70 PICOBLAZE Schematic (L12-13: FSM ) 70 ENGN3213: Digital Systems and Microprocessors L#3-4

Outline. EECS Components and Design Techniques for Digital Systems. Lec 11 Putting it all together Where are we now?

Outline. EECS Components and Design Techniques for Digital Systems. Lec 11 Putting it all together Where are we now? Outline EECS 5 - Components and Design Techniques for Digital Systems Lec Putting it all together -5-4 David Culler Electrical Engineering and Computer Sciences University of California Berkeley Top-to-bottom

More information

ECE 2300 Digital Logic & Computer Organization. More Sequential Logic Verilog

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

Two hours - online EXAM PAPER MUST NOT BE REMOVED FROM THE EXAM ROOM UNIVERSITY OF MANCHESTER SCHOOL OF COMPUTER SCIENCE

Two hours - online EXAM PAPER MUST NOT BE REMOVED FROM THE EXAM ROOM UNIVERSITY OF MANCHESTER SCHOOL OF COMPUTER SCIENCE COMP 12111 Two hours - online This paper version is made available as a backup In this event, only MCQ answers written in the boxes on the exam paper will be marked. EXAM PAPER MUST NOT BE REMOVED FROM

More information

PINE TRAINING ACADEMY

PINE TRAINING ACADEMY PINE TRAINING ACADEMY Course Module A d d r e s s D - 5 5 7, G o v i n d p u r a m, G h a z i a b a d, U. P., 2 0 1 0 1 3, I n d i a Digital Logic System Design using Gates/Verilog or VHDL and Implementation

More information

Control and Datapath 8

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

More information

One and a half hours. Section A is COMPULSORY UNIVERSITY OF MANCHESTER SCHOOL OF COMPUTER SCIENCE

One and a half hours. Section A is COMPULSORY UNIVERSITY OF MANCHESTER SCHOOL OF COMPUTER SCIENCE COMP 12111 One and a half hours Section A is COMPULSORY UNIVERSITY OF MANCHESTER SCHOOL OF COMPUTER SCIENCE Fundamentals of Computer Engineering Date: Monday 23rd January 2017 Time: 09:45-11:15 Answer

More information

Module 5 - CPU Design

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

Finite State Machines (FSMs) and RAMs and CPUs. COS 116, Spring 2011 Sanjeev Arora

Finite State Machines (FSMs) and RAMs and CPUs. COS 116, Spring 2011 Sanjeev Arora Finite State Machines (FSMs) and RAMs and CPUs COS 116, Spring 2011 Sanjeev Arora Recap Combinational logic circuits: no cycles, hence no memory Sequential circuits: cycles allowed; can have memory as

More information

VERILOG HDL. (and C) 1 ENGN3213: Digital Systems and Microprocessors L#5-6

VERILOG HDL. (and C) 1 ENGN3213: Digital Systems and Microprocessors L#5-6 VERILOG HDL (and C) 1 ENGN3213: Digital Systems and Microprocessors L#5-6 Some Reference Material The following are suggested reading.. http://engnet.anu.edu.au/decourses/engn3213/documents/verilog/ VerilogIntro.pdf

More information

Recommended Design Techniques for ECE241 Project Franjo Plavec Department of Electrical and Computer Engineering University of Toronto

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

CSCB58 - Lab 3. Prelab /3 Part I (in-lab) /2 Part II (in-lab) /2 TOTAL /8

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

Date Performed: Marks Obtained: /10. Group Members (ID):. Experiment # 11. Introduction to Verilog II Sequential Circuits

Date Performed: Marks Obtained: /10. Group Members (ID):. Experiment # 11. Introduction to Verilog II Sequential Circuits Name: Instructor: Engr. Date Performed: Marks Obtained: /10 Group Members (ID):. Checked By: Date: Experiment # 11 Introduction to Verilog II Sequential Circuits OBJECTIVES: To understand the concepts

More information

EECS150 - Digital Design Lecture 20 - Finite State Machines Revisited

EECS150 - Digital Design Lecture 20 - Finite State Machines Revisited EECS150 - Digital Design Lecture 20 - Finite State Machines Revisited April 2, 2009 John Wawrzynek Spring 2009 EECS150 - Lec20-fsm Page 1 Finite State Machines (FSMs) FSM circuits are a type of sequential

More information

Verilog for Synthesis Ing. Pullini Antonio

Verilog for Synthesis Ing. Pullini Antonio Verilog for Synthesis Ing. Pullini Antonio antonio.pullini@epfl.ch Outline Introduction to Verilog HDL Describing combinational logic Inference of basic combinational blocks Describing sequential circuits

More information

Hardware Design Environments. Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University

Hardware Design Environments. Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University Hardware Design Environments Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University Outline Welcome to COE 405 Digital System Design Design Domains and Levels of Abstractions Synthesis

More information

EECS Components and Design Techniques for Digital Systems. Lec 20 RTL Design Optimization 11/6/2007

EECS Components and Design Techniques for Digital Systems. Lec 20 RTL Design Optimization 11/6/2007 EECS 5 - Components and Design Techniques for Digital Systems Lec 2 RTL Design Optimization /6/27 Shauki Elassaad Electrical Engineering and Computer Sciences University of California, Berkeley Slides

More information

Welcome to ENGN ! Digital Systems and Microprocessors. 1 ENGN3213: Digital Systems and Microprocessors L#1-2

Welcome to ENGN ! Digital Systems and Microprocessors. 1 ENGN3213: Digital Systems and Microprocessors L#1-2 Welcome to ENGN3213 2010! Digital Systems and Microprocessors 1 ENGN3213: Digital Systems and Microprocessors L#1-2 Contact Details Lecturer: Gerard Borg email: gerard.borg@anu.edu.au RSISE B148. ph. 6125

More information

Two HDLs used today VHDL. Why VHDL? Introduction to Structured VLSI Design

Two HDLs used today VHDL. Why VHDL? Introduction to Structured VLSI Design Two HDLs used today Introduction to Structured VLSI Design VHDL I VHDL and Verilog Syntax and ``appearance'' of the two languages are very different Capabilities and scopes are quite similar Both are industrial

More information

One and a half hours. Section A is COMPULSORY UNIVERSITY OF MANCHESTER SCHOOL OF COMPUTER SCIENCE

One and a half hours. Section A is COMPULSORY UNIVERSITY OF MANCHESTER SCHOOL OF COMPUTER SCIENCE One and a half hours Section A is COMPULSORY UNIVERSITY OF MANCHESTER SCHOOL OF COMPUTER SCIENCE Fundamentals of Computer Engineering Date: Thursday 21st January 2016 Time: 14:00-15:30 Answer BOTH Questions

More information

In this lecture, we will go beyond the basic Verilog syntax and examine how flipflops and other clocked circuits are specified.

In this lecture, we will go beyond the basic Verilog syntax and examine how flipflops and other clocked circuits are specified. 1 In this lecture, we will go beyond the basic Verilog syntax and examine how flipflops and other clocked circuits are specified. I will also introduce the idea of a testbench as part of a design specification.

More information

Verilog for High Performance

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

More information

BUILDING BLOCKS OF A BASIC MICROPROCESSOR. Part 1 PowerPoint Format of Lecture 3 of Book

BUILDING BLOCKS OF A BASIC MICROPROCESSOR. Part 1 PowerPoint Format of Lecture 3 of Book BUILDING BLOCKS OF A BASIC MICROPROCESSOR Part PowerPoint Format of Lecture 3 of Book Decoder Tri-state device Full adder, full subtractor Arithmetic Logic Unit (ALU) Memories Example showing how to write

More information

VHDL for Synthesis. Course Description. Course Duration. Goals

VHDL for Synthesis. Course Description. Course Duration. Goals VHDL for Synthesis Course Description This course provides all necessary theoretical and practical know how to write an efficient synthesizable HDL code through VHDL standard language. The course goes

More information

a, b sum module add32 sum vector bus sum[31:0] sum[0] sum[31]. sum[7:0] sum sum overflow module add32_carry assign

a, 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 information

ENGN3213. Digital Systems & Microprocessors. CLAB 1: ICARUS Verilog and ISE WebPACK

ENGN3213. Digital Systems & Microprocessors. CLAB 1: ICARUS Verilog and ISE WebPACK Department of Engineering Australian National University ENGN3213 Digital Systems & Microprocessors CLAB 1: ICARUS Verilog and ISE WebPACK V3.0 Copyright 2010 G.G. Borg ANU Engineering 1 Contents 1 CLAB1:

More information

Verilog Design Entry, Synthesis, and Behavioral Simulation

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

More information

ECE 551: Digital System *

ECE 551: Digital System * ECE 551: Digital System * Design & Synthesis Lecture Set 5 5.1: Verilog Behavioral Model for Finite State Machines (FSMs) 5.2: Verilog Simulation I/O and 2001 Standard (In Separate File) 3/4/2003 1 Explicit

More information

Topics. Midterm Finish Chapter 7

Topics. Midterm Finish Chapter 7 Lecture 9 Topics Midterm Finish Chapter 7 Xilinx FPGAs Chapter 7 Spartan 3E Architecture Source: Spartan-3E FPGA Family Datasheet CLB Configurable Logic Blocks Each CLB contains four slices Each slice

More information

Multi Cycle Implementation Scheme for 8 bit Microprocessor by VHDL

Multi Cycle Implementation Scheme for 8 bit Microprocessor by VHDL Multi Cycle Implementation Scheme for 8 bit Microprocessor by VHDL Sharmin Abdullah, Nusrat Sharmin, Nafisha Alam Department of Electrical & Electronic Engineering Ahsanullah University of Science & Technology

More information

EE 3170 Microcontroller Applications

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

Verilog Fundamentals. Shubham Singh. Junior Undergrad. Electrical Engineering

Verilog Fundamentals. Shubham Singh. Junior Undergrad. Electrical Engineering Verilog Fundamentals Shubham Singh Junior Undergrad. Electrical Engineering VERILOG FUNDAMENTALS HDLs HISTORY HOW FPGA & VERILOG ARE RELATED CODING IN VERILOG HDLs HISTORY HDL HARDWARE DESCRIPTION LANGUAGE

More information

EMBEDDED SYSTEM DESIGN (10EC74)

EMBEDDED SYSTEM DESIGN (10EC74) UNIT 2 The Hardware Side: An Introduction, The Core Level, Representing Information, Understanding Numbers, Addresses, Instructions, Registers-A First Look, Embedded Systems-An Instruction Set View, Embedded

More information

In this lecture, we will focus on two very important digital building blocks: counters which can either count events or keep time information, and

In this lecture, we will focus on two very important digital building blocks: counters which can either count events or keep time information, and In this lecture, we will focus on two very important digital building blocks: counters which can either count events or keep time information, and shift registers, which is most useful in conversion between

More information

Writing Circuit Descriptions 8

Writing Circuit Descriptions 8 8 Writing Circuit Descriptions 8 You can write many logically equivalent descriptions in Verilog to describe a circuit design. However, some descriptions are more efficient than others in terms of the

More information

2015 Paper E2.1: Digital Electronics II

2015 Paper E2.1: Digital Electronics II s 2015 Paper E2.1: Digital Electronics II Answer ALL questions. There are THREE questions on the paper. Question ONE counts for 40% of the marks, other questions 30% Time allowed: 2 hours (Not to be removed

More information

Computer Science 324 Computer Architecture Mount Holyoke College Fall Topic Notes: Data Paths and Microprogramming

Computer Science 324 Computer Architecture Mount Holyoke College Fall Topic Notes: Data Paths and Microprogramming Computer Science 324 Computer Architecture Mount Holyoke College Fall 2007 Topic Notes: Data Paths and Microprogramming We have spent time looking at the MIPS instruction set architecture and building

More information

N-input EX-NOR gate. N-output inverter. N-input NOR gate

N-input EX-NOR gate. N-output inverter. N-input NOR gate Hardware Description Language HDL Introduction HDL is a hardware description language used to design and document electronic systems. HDL allows designers to design at various levels of abstraction. It

More information

Block diagram view. Datapath = functional units + registers

Block diagram view. Datapath = functional units + registers Computer design an application of digital logic design procedures Computer = processing unit + memory system Processing unit = control + datapath Control = finite state machine inputs = machine instruction,

More information

Laboratory Memory Components

Laboratory Memory Components Laboratory 3 3. Memory Components 3.1 Objectives Design, implement and test Register File Read only Memories ROMs Random Access Memories RAMs Familiarize the students with Xilinx ISE WebPack Xilinx Synthesis

More information

Design an 8 bit Microprocessor with all the Operations of 8051 Microcontroller with the help of VHDL

Design an 8 bit Microprocessor with all the Operations of 8051 Microcontroller with the help of VHDL Design an 8 bit Microprocessor with all the Operations of 8051 Microcontroller with the help of VHDL Annu Verma 1, Ashwani Depuria 2, Bhavesh Vaidya 3, Snehlata Haldkar 4, Prem Ratan Agrawal 5 1 to 4 BE

More information

VERILOG HDL. 1 ENGN3213: Digital Systems and Microprocessors L#5-6

VERILOG HDL. 1 ENGN3213: Digital Systems and Microprocessors L#5-6 VERILOG HDL 1 ENGN3213: Digital Systems and Microprocessors L#5-6 Some Reference Material (mostly advanced) \vspace{10mm} http://engnet.anu.edu.au/decourses/engn3213/documents/verilog/ VerilogIntro SASAKI.pdf

More information

Digital Design with SystemVerilog

Digital Design with SystemVerilog Digital Design with SystemVerilog Prof. Stephen A. Edwards Columbia University Spring 25 Synchronous Digital Design Combinational Logic Sequential Logic Summary of Modeling Styles Testbenches Why HDLs?

More information

Sequential Logic Design

Sequential Logic Design Sequential Logic Design Design of Digital Circuits 2017 Srdjan Capkun Onur Mutlu (Guest starring: Frank K. Gürkaynak and Aanjhan Ranganathan) http://www.syssec.ethz.ch/education/digitaltechnik_17 Adapted

More information

Lecture 32: SystemVerilog

Lecture 32: SystemVerilog Lecture 32: SystemVerilog Outline SystemVerilog module adder(input logic [31:0] a, input logic [31:0] b, output logic [31:0] y); assign y = a + b; Note that the inputs and outputs are 32-bit busses. 17:

More information

CSE140L: Components and Design Techniques for Digital Systems Lab

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

I 3 I 2. ! Language of logic design " Logic optimization, state, timing, CAD tools

I 3 I 2. ! Language of logic design  Logic optimization, state, timing, CAD tools Course Wrap-up Let s Try the Priority Encoder One More Time = =! Priority Encoder Revisited! What (We Hope) You Learned I 3 O 3 I j O j! Design Methodology! I 2 O 2 I O I O Zero Oj Ij Ij CS 5 - Spring

More information

Verilog introduction. Embedded and Ambient Systems Lab

Verilog introduction. Embedded and Ambient Systems Lab Verilog introduction Embedded and Ambient Systems Lab Purpose of HDL languages Modeling hardware behavior Large part of these languages can only be used for simulation, not for hardware generation (synthesis)

More information

VHDL: RTL Synthesis Basics. 1 of 59

VHDL: RTL Synthesis Basics. 1 of 59 VHDL: RTL Synthesis Basics 1 of 59 Goals To learn the basics of RTL synthesis. To be able to synthesize a digital system, given its VHDL model. To be able to relate VHDL code to its synthesized output.

More information

FPGA for Software Engineers

FPGA for Software Engineers FPGA for Software Engineers Course Description This course closes the gap between hardware and software engineers by providing the software engineer all the necessary FPGA concepts and terms. The course

More information

Topics. Midterm Finish Chapter 7

Topics. Midterm Finish Chapter 7 Lecture 9 Topics Midterm Finish Chapter 7 ROM (review) Memory device in which permanent binary information is stored. Example: 32 x 8 ROM Five input lines (2 5 = 32) 32 outputs, each representing a memory

More information

Register Transfer Level

Register Transfer Level Register Transfer Level Something between the logic level and the architecture level A convenient way to describe synchronous sequential systems State diagrams for pros Hierarchy of Designs The design

More information

Computer Organization

Computer Organization Computer Organization! Computer design as an application of digital logic design procedures! Computer = processing unit + memory system! Processing unit = control + datapath! Control = finite state machine

More information

3 Designing Digital Systems with Algorithmic State Machine Charts

3 Designing Digital Systems with Algorithmic State Machine Charts 3 Designing with Algorithmic State Machine Charts An ASM chart is a method of describing the sequential operations of a digital system which has to implement an algorithm. An algorithm is a well defined

More information

EECS Components and Design Techniques for Digital Systems. Lec 07 PLAs and FSMs 9/ Big Idea: boolean functions <> gates.

EECS Components and Design Techniques for Digital Systems. Lec 07 PLAs and FSMs 9/ Big Idea: boolean functions <> gates. Review: minimum sum-of-products expression from a Karnaugh map EECS 5 - Components and Design Techniques for Digital Systems Lec 7 PLAs and FSMs 9/2- David Culler Electrical Engineering and Computer Sciences

More information

CSE140L: Components and Design

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

State Machine Descriptions

State Machine Descriptions State Machine Descriptions Can be modelled using many different coding styles Style guidelines available for Moore or Mealy type machines Several encoding schemes for state variables used in FSM descriptions

More information

A3 Computer Architecture

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

In the previous lecture, we examined how to analyse a FSM using state table, state diagram and waveforms. In this lecture we will learn how to design

In the previous lecture, we examined how to analyse a FSM using state table, state diagram and waveforms. In this lecture we will learn how to design 1 In the previous lecture, we examined how to analyse a FSM using state table, state diagram and waveforms. In this lecture we will learn how to design a fininte state machine in order to produce the desired

More information

In the previous lecture, we examined how to analyse a FSM using state table, state diagram and waveforms. In this lecture we will learn how to design

In the previous lecture, we examined how to analyse a FSM using state table, state diagram and waveforms. In this lecture we will learn how to design In the previous lecture, we examined how to analyse a FSM using state table, state diagram and waveforms. In this lecture we will learn how to design a fininte state machine in order to produce the desired

More information

Lecture 3. Behavioral Modeling Sequential Circuits. Registers Counters Finite State Machines

Lecture 3. Behavioral Modeling Sequential Circuits. Registers Counters Finite State Machines Lecture 3 Behavioral Modeling Sequential Circuits Registers Counters Finite State Machines Behavioral Modeling Behavioral Modeling Behavioral descriptions use the keyword always, followed by optional event

More information

EECS 270 Verilog Reference: Sequential Logic

EECS 270 Verilog Reference: Sequential Logic 1 Introduction EECS 270 Verilog Reference: Sequential Logic In the first few EECS 270 labs, your designs were based solely on combinational logic, which is logic that deps only on its current inputs. However,

More information

MASSACHUSETTS INSTITUTE OF TECHNOLOGY Department of Electrical Engineering and Computer Sciences

MASSACHUSETTS INSTITUTE OF TECHNOLOGY Department of Electrical Engineering and Computer Sciences MASSACHUSETTS INSTITUTE OF TECHNOLOGY Department of Electrical Engineering and Computer Sciences Introductory Digital Systems Lab (6.111) uiz - Spring 2004 Prof. Anantha Chandrakasan Student Name: Problem

More information

: : (91-44) (Office) (91-44) (Residence)

:  : (91-44) (Office) (91-44) (Residence) Course: VLSI Circuits (Video Course) Faculty Coordinator(s) : Prof. S. Srinivasan Department of Electrical Engineering Indian Institute of Technology Madras Chennai 600036 Email Telephone : srinis@iitm.ac.in,

More information

Programmable machines

Programmable machines Page 1 of 9 Programmable machines indicates problems that have been selected for discussion in section, time permitting. Problem 1. Consider the following circuit: The heavy lines represent busses, which

More information

V8-uRISC 8-bit RISC Microprocessor AllianceCORE Facts Core Specifics VAutomation, Inc. Supported Devices/Resources Remaining I/O CLBs

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

Chapter 4. MARIE: An Introduction to a Simple Computer. Chapter 4 Objectives. 4.1 Introduction. 4.2 CPU Basics

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

Chapter 4. The Processor

Chapter 4. The Processor Chapter 4 The Processor Introduction CPU performance factors Instruction count Determined by ISA and compiler CPI and Cycle time Determined by CPU hardware We will examine two MIPS implementations A simplified

More information

Hardware Modeling using Verilog Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

Hardware Modeling using Verilog Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Hardware Modeling using Verilog Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture 01 Introduction Welcome to the course on Hardware

More information

11/22/1999 7pm - 9pm. Name: Login Name: Preceptor Name: Precept Number:

11/22/1999 7pm - 9pm. Name: Login Name: Preceptor Name: Precept Number: Login Preceptor Precept Number: Computer Science 126 Second Midterm Exam 11/22/1999 7pm - 9pm This exam has 10 questions. The weight of each question is printed in the table below and next to each question.

More information

1 ST SUMMER SCHOOL: VHDL BOOTCAMP PISA, JULY 2013

1 ST SUMMER SCHOOL: VHDL BOOTCAMP PISA, JULY 2013 MARIE CURIE IAPP: FAST TRACKER FOR HADRON COLLIDER EXPERIMENTS 1 ST SUMMER SCHOOL: VHDL BOOTCAMP PISA, JULY 2013 Introduction to VHDL Calliope-Louisa Sotiropoulou PhD Candidate/Researcher Aristotle University

More information

TDT4255 Computer Design. Lecture 4. Magnus Jahre. TDT4255 Computer Design

TDT4255 Computer Design. Lecture 4. Magnus Jahre. TDT4255 Computer Design 1 TDT4255 Computer Design Lecture 4 Magnus Jahre 2 Outline Chapter 4.1 to 4.4 A Multi-cycle Processor Appendix D 3 Chapter 4 The Processor Acknowledgement: Slides are adapted from Morgan Kaufmann companion

More information

Lecture 2 Hardware Description Language (HDL): VHSIC HDL (VHDL)

Lecture 2 Hardware Description Language (HDL): VHSIC HDL (VHDL) Lecture 2 Hardware Description Language (HDL): VHSIC HDL (VHDL) Pinit Kumhom VLSI Laboratory Dept. of Electronic and Telecommunication Engineering (KMUTT) Faculty of Engineering King Mongkut s University

More information

structure syntax different levels of abstraction

structure syntax different levels of abstraction This and the next lectures are about Verilog HDL, which, together with another language VHDL, are the most popular hardware languages used in industry. Verilog is only a tool; this course is about digital

More information

Here is a list of lecture objectives. They are provided for you to reflect on what you are supposed to learn, rather than an introduction to this

Here is a list of lecture objectives. They are provided for you to reflect on what you are supposed to learn, rather than an introduction to this This and the next lectures are about Verilog HDL, which, together with another language VHDL, are the most popular hardware languages used in industry. Verilog is only a tool; this course is about digital

More information

Quick Introduction to SystemVerilog: Sequental Logic

Quick Introduction to SystemVerilog: Sequental Logic ! Quick Introduction to SystemVerilog: Sequental Logic Lecture L3 8-545 Advanced Digital Design ECE Department Many elements Don Thomas, 24, used with permission with credit to G. Larson Today Quick synopsis

More information

VHDL. VHDL History. Why VHDL? Introduction to Structured VLSI Design. Very High Speed Integrated Circuit (VHSIC) Hardware Description Language

VHDL. VHDL History. Why VHDL? Introduction to Structured VLSI Design. Very High Speed Integrated Circuit (VHSIC) Hardware Description Language VHDL Introduction to Structured VLSI Design VHDL I Very High Speed Integrated Circuit (VHSIC) Hardware Description Language Joachim Rodrigues A Technology Independent, Standard Hardware description Language

More information

Statement of Research

Statement of Research On Exploring Algorithm Performance Between Von-Neumann and VLSI Custom-Logic Computing Architectures Tiffany M. Mintz James P. Davis, Ph.D. South Carolina Alliance for Minority Participation University

More information

TEACHING COMPUTER ARCHITECTURE THROUGH DESIGN PRACTICE. Guoping Wang 1. INTRODUCTION

TEACHING COMPUTER ARCHITECTURE THROUGH DESIGN PRACTICE. Guoping Wang 1. INTRODUCTION TEACHING COMPUTER ARCHITECTURE THROUGH DESIGN PRACTICE Guoping Wang Indiana University Purdue University Fort Wayne, Indiana; Email:wang@engr.ipfw.edu 1. INTRODUCTION Computer Architecture is a common

More information

EPC6055 Digital Integrated Circuits EXAM 1 Fall Semester 2013

EPC6055 Digital Integrated Circuits EXAM 1 Fall Semester 2013 EPC6055 Digital Integrated Circuits EXAM 1 Fall Semester 2013 Print Here Student ID Signature This is a closed book exam. The exam is to be completed in one-hundred ten (110) minutes. Don t use scratch

More information

ECE 2300 Digital Logic & Computer Organization. More Verilog Finite State Machines

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

The Processor: Datapath & Control

The Processor: Datapath & Control Chapter Five 1 The Processor: Datapath & Control We're ready to look at an implementation of the MIPS Simplified to contain only: memory-reference instructions: lw, sw arithmetic-logical instructions:

More information

MCMASTER UNIVERSITY EMBEDDED SYSTEMS

MCMASTER UNIVERSITY EMBEDDED SYSTEMS MCMASTER UNIVERSITY EMBEDDED SYSTEMS Computer Engineering 4DS4 Lecture Revision of Digital Systems Amin Vali January 26 Course material belongs to DrNNicolici Field programmable gate arrays (FPGAs) x x

More information

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

EECS150 - Digital Design Lecture 6 - Field Programmable Gate Arrays (FPGAs)

EECS150 - Digital Design Lecture 6 - Field Programmable Gate Arrays (FPGAs) EECS150 - Digital Design Lecture 6 - Field Programmable Gate Arrays (FPGAs) September 12, 2002 John Wawrzynek Fall 2002 EECS150 - Lec06-FPGA Page 1 Outline What are FPGAs? Why use FPGAs (a short history

More information

University of Hawaii EE 361L. Getting Started with Spartan 3E Digilent Basys2 Board. Lab 4.1

University of Hawaii EE 361L. Getting Started with Spartan 3E Digilent Basys2 Board. Lab 4.1 University of Hawaii EE 361L Getting Started with Spartan 3E Digilent Basys2 Board Lab 4.1 I. Test Basys2 Board Attach the Basys2 board to the PC or laptop with the USB connector. Make sure the blue jumper

More information

Finite-State Machine (FSM) Design

Finite-State Machine (FSM) Design 1 Finite-State Machine (FSM) Design FSMs, an important category of sequential circuits, are used frequently in designing digital systems. From the daily used electronic machines to the complex digital

More information

Sequential Circuit Design: Principle

Sequential Circuit Design: Principle Sequential Circuit Design: Principle Chapter 8 1 Outline 1. Overview on sequential circuits 2. Synchronous circuits 3. Danger of synthesizing asynchronous circuit 4. Inference of basic memory elements

More information

FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1

FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1 FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1 Anurag Dwivedi Digital Design : Bottom Up Approach Basic Block - Gates Digital Design : Bottom Up Approach Gates -> Flip Flops Digital

More information

Chapter 4. The Processor. Instruction count Determined by ISA and compiler. We will examine two MIPS implementations

Chapter 4. The Processor. Instruction count Determined by ISA and compiler. We will examine two MIPS implementations Chapter 4 The Processor Part I Introduction CPU performance factors Instruction count Determined by ISA and compiler CPI and Cycle time Determined by CPU hardware We will examine two MIPS implementations

More information

One and a half hours. Section A is COMPULSORY

One and a half hours. Section A is COMPULSORY One and a half hours Section A is COMPULSORY An additional answersheet is provided for Question 4. Please remember to complete the additional answersheet with your University ID number and attach it to

More information

Topic #6. Processor Design

Topic #6. Processor Design Topic #6 Processor Design Major Goals! To present the single-cycle implementation and to develop the student's understanding of combinational and clocked sequential circuits and the relationship between

More information

EECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis

EECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis EECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis Jan 31, 2012 John Wawrzynek Spring 2012 EECS150 - Lec05-verilog_synth Page 1 Outline Quick review of essentials of state elements Finite State

More information

Laboratory 05. Single-Cycle MIPS CPU Design smaller: 16-bits version One clock cycle per instruction

Laboratory 05. Single-Cycle MIPS CPU Design smaller: 16-bits version One clock cycle per instruction Laboratory 05 Single-Cycle MIPS CPU Design smaller: 16-bits version One clock cycle per instruction 1. Objectives Study, design, implement and test Instruction Fetch Unit for the 16-bit Single-Cycle MIPS

More information

Outline. EECS150 - Digital Design Lecture 6 - Field Programmable Gate Arrays (FPGAs) FPGA Overview. Why FPGAs?

Outline. EECS150 - Digital Design Lecture 6 - Field Programmable Gate Arrays (FPGAs) FPGA Overview. Why FPGAs? EECS150 - Digital Design Lecture 6 - Field Programmable Gate Arrays (FPGAs) September 12, 2002 John Wawrzynek Outline What are FPGAs? Why use FPGAs (a short history lesson). FPGA variations Internal logic

More information

Computer Organization. Structure of a Computer. Registers. Register Transfer. Register Files. Memories

Computer Organization. Structure of a Computer. Registers. Register Transfer. Register Files. Memories Computer Organization Structure of a Computer Computer design as an application of digital logic design procedures Computer = processing unit + memory system Processing unit = control + Control = finite

More information

Chapter 5 Embedded Soft Core Processors

Chapter 5 Embedded Soft Core Processors Embedded Soft Core Processors Coarse Grained Architecture. The programmable gate array (PGA) has provided the opportunity for the design and implementation of a soft core processor in embedded design.

More information

Lecture 5: The Processor

Lecture 5: The Processor Lecture 5: The Processor CSCE 26 Computer Organization Instructor: Saraju P. ohanty, Ph. D. NOTE: The figures, text etc included in slides are borrowed from various books, websites, authors pages, and

More information

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

The QR code here provides a shortcut to go to the course webpage.

The QR code here provides a shortcut to go to the course webpage. Welcome to this MSc Lab Experiment. All my teaching materials for this Lab-based module are also available on the webpage: www.ee.ic.ac.uk/pcheung/teaching/msc_experiment/ The QR code here provides a shortcut

More information

DESIGN AND IMPLEMENTATION OF 8 BIT AND 16 BIT ALU USING VERILOG LANGUAGE

DESIGN AND IMPLEMENTATION OF 8 BIT AND 16 BIT ALU USING VERILOG LANGUAGE DESIGN AND IMPLEMENTATION OF 8 BIT AND 16 BIT USING VERILOG LANGUAGE MANIT KANTAWALA Dept. of Electronic & Communication Global Institute of Technology, Jaipur Rajasthan, India Abstract: In this Paper

More information