CSE140L: Components and Design Techniques for Digital Systems Lab. CPU design and PLDs. Tajana Simunic Rosing. Source: Vahid, Katz

Similar documents
CSE140L: Components and Design Techniques for Digital Systems Lab. FSMs. Tajana Simunic Rosing. Source: Vahid, Katz

L11/12: Reconfigurable Logic Architectures

L12: Reconfigurable Logic Architectures

Introduction Actel Logic Modules Xilinx LCA Altera FLEX, Altera MAX Power Dissipation

Examples of FPLD Families: Actel ACT, Xilinx LCA, Altera MAX 5000 & 7000

Why FPGAs? FPGA Overview. Why FPGAs?

Field Programmable Gate Arrays (FPGAs)

March 13, :36 vra80334_appe Sheet number 1 Page number 893 black. appendix. Commercial Devices

RELATED WORK Integrated circuits and programmable devices

Read-only memory (ROM) Digital logic: ALUs Sequential logic circuits. Don't cares. Bus

DIGITAL CIRCUIT LOGIC UNIT 9: MULTIPLEXERS, DECODERS, AND PROGRAMMABLE LOGIC DEVICES

CAD for VLSI Design - I Lecture 38. V. Kamakoti and Shankar Balachandran

9 Programmable Logic Devices

Lecture 2: Basic FPGA Fabric. James C. Hoe Department of ECE Carnegie Mellon University

FPGA Design. Part I - Hardware Components. Thomas Lenzi

Reconfigurable Architectures. Greg Stitt ECE Department University of Florida

CSE140: Components and Design Techniques for Digital Systems. More D-Flip-Flops. Tajana Simunic Rosing. Sources: TSR, Katz, Boriello & Vahid

Chapter 7 Memory and Programmable Logic

Lecture 6: Simple and Complex Programmable Logic Devices. EE 3610 Digital Systems

Microprocessor Design

EN2911X: Reconfigurable Computing Topic 01: Programmable Logic. Prof. Sherief Reda School of Engineering, Brown University Fall 2014

FPGA Design with VHDL

IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits

Computer Systems Architecture

Sequential Logic. Introduction to Computer Yung-Yu Chuang

Combinational vs Sequential

Register Transfer Level (RTL) Design Cont.

CSE 140 Exam #3 Tajana Simunic Rosing

IE1204 Digital Design. F11: Programmable Logic, VHDL for Sequential Circuits. Masoumeh (Azin) Ebrahimi

CDA 4253 FPGA System Design FPGA Architectures. Hao Zheng Dept of Comp Sci & Eng U of South Florida

Designing for High Speed-Performance in CPLDs and FPGAs

COE328 Course Outline. Fall 2007

Logic Design II (17.342) Spring Lecture Outline

Slide Set 6. for ENCM 369 Winter 2018 Section 01. Steve Norman, PhD, PEng

Register Files and Memories

CSE 140 Exam #3 Solution Tajana Simunic Rosing

Chapter Contents. Appendix A: Digital Logic. Some Definitions

PROGRAMMABLE ASIC LOGIC CELLS

Sequential Logic Design CS 64: Computer Organization and Design Logic Lecture #14

L14: Quiz Information and Final Project Kickoff. L14: Spring 2004 Introductory Digital Systems Laboratory

CSE115: Digital Design Lecture 23: Latches & Flip-Flops

Logic Devices for Interfacing, The 8085 MPU Lecture 4

Modeling Digital Systems with Verilog

6.3 Sequential Circuits (plus a few Combinational)

Principles of Computer Architecture. Appendix A: Digital Logic

DIGITAL SYSTEM FUNDAMENTALS (ECE421) DIGITAL ELECTRONICS FUNDAMENTAL (ECE422) LATCHES and FLIP-FLOPS

Lecture 10: Programmable Logic

ECE 250 / CPS 250 Computer Architecture. Basics of Logic Design ALU and Storage Elements

High Performance Carry Chains for FPGAs

EE 447/547 VLSI Design. Lecture 9: Sequential Circuits. VLSI Design EE 447/547 Sequential circuits 1

Design for Testability

Chapter. Sequential Circuits

CS/ECE 250: Computer Architecture. Basics of Logic Design: ALU, Storage, Tristate. Benjamin Lee

Introduction to Digital Logic Missouri S&T University CPE 2210 Exam 3 Logistics

Advanced Devices. Registers Counters Multiplexers Decoders Adders. CSC258 Lecture Slides Steve Engels, 2006 Slide 1 of 20

EE178 Spring 2018 Lecture Module 5. Eric Crabill

Testability: Lecture 23 Design for Testability (DFT) Slide 1 of 43

3/5/2017. A Register Stores a Set of Bits. ECE 120: Introduction to Computing. Add an Input to Control Changing a Register s Bits

Sequencing. Lan-Da Van ( 范倫達 ), Ph. D. Department of Computer Science National Chiao Tung University Taiwan, R.O.C. Fall,

Lecture 10: Sequential Circuits

Lab #12: 4-Bit Arithmetic Logic Unit (ALU)

11. Sequential Elements

Objectives. Combinational logics Sequential logics Finite state machine Arithmetic circuits Datapath

Integrated circuits/5 ASIC circuits

EECS150 - Digital Design Lecture 3 Synchronous Digital Systems Review. Announcements

EECS150 - Digital Design Lecture 18 - Circuit Timing (2) In General...

EECS150 - Digital Design Lecture 2 - CMOS

CSE 352 Laboratory Assignment 3

CHAPTER1: Digital Logic Circuits

CS 261 Fall Mike Lam, Professor. Sequential Circuits

ECE 263 Digital Systems, Fall 2015

XC4000E and XC4000X Series. Field Programmable Gate Arrays. Low-Voltage Versions Available. XC4000E and XC4000X Series. Features

Contents Slide Set 6. Introduction to Chapter 7 of the textbook. Outline of Slide Set 6. An outline of the first part of Chapter 7

EE178 Lecture Module 4. Eric Crabill SJSU / Xilinx Fall 2005

Computer Architecture and Organization

Unit 11. Latches and Flip-Flops

FPGA Implementation of Sequential Logic

Reconfigurable FPGA Implementation of FIR Filter using Modified DA Method

L14: Final Project Kickoff. L14: Spring 2006 Introductory Digital Systems Laboratory

L13: Final Project Kickoff. L13: Spring 2005 Introductory Digital Systems Laboratory

Lecture 23 Design for Testability (DFT): Full-Scan

BUSES IN COMPUTER ARCHITECTURE

Investigation of Look-Up Table Based FPGAs Using Various IDCT Architectures

Logic Design. Flip Flops, Registers and Counters

EE 459/500 HDL Based Digital Design with Programmable Logic. Lecture 9 Field Programmable Gate Arrays (FPGAs)

Electrical and Telecommunications Engineering Technology_TCET3122/TC520. NEW YORK CITY COLLEGE OF TECHNOLOGY The City University of New York

WELCOME. ECE 2030: Introduction to Computer Engineering* Richard M. Dansereau Copyright by R.M. Dansereau,

FPGA and CPLD Architectures: A Tutorial

Solution to Digital Logic )What is the magnitude comparator? Design a logic circuit for 4 bit magnitude comparator and explain it,

DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING

Good Evening! Welcome!

ACS College of Engineering. Department of Biomedical Engineering. HDL pre lab questions ( ) Cycle-1

Collections of flip-flops with similar controls and logic

Static Timing Analysis for Nanometer Designs

ispmach 4000 Timing Model Design and Usage Guidelines

Implementation of Dynamic RAMs with clock gating circuits using Verilog HDL

WINTER 15 EXAMINATION Model Answer

Design and Implementation of an AHB VGA Peripheral

Modeling Latches and Flip-flops

VHDL Design and Implementation of FPGA Based Logic Analyzer: Work in Progress

Transcription:

CSE140L: Components and Design Techniques for Digital Systems Lab CPU design and PLDs Tajana Simunic Rosing Source: Vahid, Katz 1

Lab #3 due Lab #4 CPU design Today: CPU design - lab overview PLDs Updates & Outline 2

CSE140L: Components and Design Techniques for Digital Systems Lab Lab #4 CPU design Tajana Simunic Rosing Source: Vahid, Katz 3

Simple in-order processor Objectives: Implementing a real processor on FPGA (challenging but fun!) Challenges: Design and implement the processor data path Design and implement the processor control units Make the whole thing work

Processor overview Control unit PC Address Instruction Memory Register File ALU 7-bit instruction

Instruction format Each Instruction has a size of 7 bits Instruction format 3-bit OP code 4-bit data Determines the instruction (i.e 100 = add)

Instruction set R3 = R1 + R2

Holds the whole program instructions Implemented as a ROM Can hold up to 16 instructions Instruction memory module instruction_rom(addr, inst); input [3:0] addr; output [6:0] inst; wire [6:0] memory [15:0]; assign memory[0] = 7'b0000000; assign memory[1] = 7'b0010001; assign memory[2] = 7'b0100010; assign memory[3] = 7'b1000000; assign memory[4] = 7'b0110000; assign memory[5] = 7'b0100100; assign memory[6] = 7'b1100000; assign memory[7] = 7'b1110011; assign memory[8] = 7'b0000000; assign memory[9] = 7'b0000000; assign memory[10] = 7'b0000000; assign memory[11] = 7'b0000000; assign memory[12] = 7'b0000000; assign memory[13] = 7'b0000000; assign memory[14] = 7'b0000000; assign memory[15] = 7'b0000000; assign inst = memory[addr]; endmodule Address Instruction Memory 7-bit instruction

Program counter Generate the next instruction address For non-control flow instructions PC = PC + 1 (Enable signal = 1) clk enable reset load For control flow instructions Branch address PC = Branch address (load signal = 1) PC Address to memory Think about how to implement this unit

Instruction decoder Decodes the instruction by reading the 3-bit OP code bits from the memory Generate the control signals to the rest of the processor (i.e. tells the ALU to add when there is an ADD instruction) Instruction 3bit OP Control unit Data path control signals Think about how to implement this unit

Register file Contains THREE 4-bit registers and the Flag bit Each register is made up of D-FF Control signals Challenge: Determine the appropriate interfacing with the rest of you processor Instruction (bit0-bit3) Register File ALU Compare flag ALU output

ALU Control Performs Addition, Multiplication and comparison Two input 4-bit operands Outputs: 4-bit results and 1-bit Compare Implement it! Input operands ALU Results Interfacing

Sample code

Test your design Testing phase is essential to ensure that your design is a bug free Here are some tips Generate test cases for all the instructions Generate test cases with various input conditions Generate test cases for some interesting combinations of instructions (e.g. control flow with non-control flow instructions) Good luck and have FUN!

CSE140L: Components and Design Techniques for Digital Systems Lab PLDs (cont.) Tajana Simunic Rosing Source: Xilinx 15

Programmable Logic Devices (PLD) PLDs combine PLA/PAL with memory and other advanced structures Similar to PLA/PAL, hence Field-Programmable Gate Arrays Types: Antifuse PLDs EPLD & EEPLD FPGAs with RAMs FPGA with processing Digital Signal Processing General purpose CPU 16

Field-Programmable Gate Arrays Logic blocks To implement combinational and sequential logic Interconnect Wires to connect inputs and outputs to logic blocks I/O blocks Special logic blocks at periphery of device for external connections Key questions: How to make logic blocks programmable? How to connect the wires? After the chip has been manufactured

Actel s Axcelerator Family Antifuse PLDs Antifuse: open when not programmed Low resistance when programmed 18

Actel s Axcelerator C-Cell C-Cell Basic multiplexer logic plus more inputs and support for fast carry calculation Carry connections are direct and do not require propagation through the programmable interconnect

Actel s Accelerator R-Cell R-Cell Core is D flip-flop Muxes for altering the clock and selecting an input Feed back path for current value of the flip-flop for simple hold Direct connection from one C-cell output of logic module to an R-cell input; Eliminates need to use the programmable interconnect Interconnection Fabric Partitioned wires Special long wires

Altera s EEPLD Altera s MAX 7k Block Diagram Global Routing: Programmable Interconnect Array Logic Array Blocks 21

EEPLD Altera s MAX 7k Logic Block 22

SRAM based PLD Altera s Flex 10k Block Diagram 23

SRAM based PLD Altera s Flex 10k Logic Array Block (LAB) 24

SRAM based PLD Altera s Flex 10k Logic Element (LE) 25

Slew Rate Control Passive Pull-Up, Pull-Down Vcc CLB CLB Switch Matrix D Q Output Buffer Pad CLB CLB Q D Delay Input Buffer Programmable Interconnect I/O Blocks (IOBs) C1 C2 C3 C4 H1 DIN S/R EC S/R Control G4 G3 G2 G1 F4 F3 F2 F1 G Func. Gen. F Func. Gen. H Func. Gen. DIN F' G' H' G' H' DIN F' G' H' 1 S/R Control SD D Q EC RD SD D Q Y Configurable Logic Blocks (CLBs) EC K H' F' 1 RD X

FPGA with DSP Altera s Stratix II: Block Diagram 28

FPGA with DSP Altera s Stratix II: DSP Detail 29

FPGA with General Purpose CPU & Analog Actel s Fusion Family Diagram FPGA with ARM 7 CPU and Analog Components 30

Discrete Gates Packaged Logic PLAs Programmable Logic Summary Ever more general architectures of programmable combinational + sequential logic and interconnect Altera Actel Xilinx