Computer Engineering 1502 Advanced Digital Design Professor Donald Chiarulli Computer Science Dept.

Slides:



Advertisements
Similar presentations
1 Lecture 13 VHDL 3/16/09. 2 VHDL VHDL is a hardware description language. The behavior of a digital system can be described (specified) by writing a.
Advertisements

Integrated Circuits Laboratory Faculty of Engineering Digital Design Flow Using Mentor Graphics Tools Presented by: Sameh Assem Ibrahim 16-October-2003.
ECE 353 Computer Systems Lab II VHDL AND LABORATORY TOOLS TUTORIAL Professors Maciej Ciesielski & T. Baird Soules.
General information Course web page: html Office hours:- Prof. Eyal.
Term Project Overview Yong Wang. Introduction Goal –familiarize with the design and implementation of a simple pipelined RISC processor What to do –Build.
Aug. 24, 2007ELEC 5200/6200 Project1 Computer Design Project ELEC 5200/6200-Computer Architecture and Design Fall 2007 Vishwani D. Agrawal James J.Danaher.
02/02/20091 Logic devices can be classified into two broad categories Fixed Programmable Programmable Logic Device Introduction Lecture Notes – Lab 2.
Configurable System-on-Chip: Xilinx EDK
1/31/20081 Logic devices can be classified into two broad categories Fixed Programmable Programmable Logic Device Introduction Lecture Notes – Lab 2.
Altera’s Quartus II Installation, usage and tutorials Gopi Tummala Lab/Office Hours : Friday 2:00 PM to.
VHDL and HDL Designer Primer Instructor: Jason D. Bakos.
Reconfigurable Computing in the Undergraduate Curriculum Jason D. Bakos Dept. of Computer Science and Engineering University of South Carolina.
CPEN Digital System Design Chapter 9 – Computer Design
VHDL and HDL Designer Primer Instructor: Jason D. Bakos.
ECE Department: University of Massachusetts, Amherst Lab 1: Introduction to NIOS II Hardware Development.
CSCE 430/830 A Tutorial of Project Tools By Dongyuan Zhan Feb. 4, 2010.
University of Jordan Computer Engineering Department CPE 439: Computer Design Lab.
More Basics of CPU Design Lecture for CPSC 5155 Edward Bosworth, Ph.D. Computer Science Department Columbus State University.
COM181 Computer Hardware Ian McCrumRoom 5B18,
Chapter 4 Programmable Logic Devices: CPLDs with VHDL Design Copyright ©2006 by Pearson Education, Inc. Upper Saddle River, New Jersey All rights.
EKT303/4 PRINCIPLES OF PRINCIPLES OF COMPUTER ARCHITECTURE (PoCA)
 Seattle Pacific University EE Logic System DesignCADNumbers-1 Arithmetic and CAD Tools CAD tools work great with arithmetic functions Adding,subtracting,multiplying,
ECE 332 Digital Electronics and Logic Design Lab Lab 5 VHDL Design Styles Testbenches.
ISE. Tatjana Petrovic 249/982/22 ISE software tools ISE is Xilinx software design tools that concentrate on delivering you the most productivity available.
Introduction to Design Tools COE Review: Tools, functions, design flow Four tools we will use in this course – HDL Designer Suite FPGA Advantage.
ECE Department: University of Massachusetts, Amherst Using Altera CAD tools for NIOS Development.
Digital Arithmetic and Arithmetic Circuits
Simulink ® Interface Course 13 Active-HDL Interfaces.
System Arch 2008 (Fire Tom Wada) /10/9 Field Programmable Gate Array.
Figure 5.1 Conversion from decimal to binary. Table 5.1 Numbers in different systems.
© 2003 Xilinx, Inc. All Rights Reserved For Academic Use Only Xilinx Design Flow FPGA Design Flow Workshop.
Chapter 14 Introduction to Microprocessors. 2 Microcomputer A self-contained computer system that consists of CPU (central processing unit), memory (RAM.
A VHDL Tutorial ENG2410. ENG241/VHDL Tutorial2 Goals Introduce the students to the following: –VHDL as Hardware description language. –How to describe.
ASIC 121: Practical VHDL Digital Design for FPGAs Tutorial 1 September 27, 2006.
Computer Organization and Architecture
Language Concepts Ver 1.1, Copyright 1997 TS, Inc. VHDL L a n g u a g e C o n c e p t s Page 1.
L12 – VHDL Overview. VHDL Overview  HDL history and background  HDL CAD systems  HDL view of design  Low level HDL examples  Ref: text Unit 10, 17,
Programmable Logic Training Course HDL Editor
Introductory project. Development systems Design Entry –Foundation ISE –Third party tools Mentor Graphics: FPGA Advantage Celoxica: DK Design Suite Design.
Introduction to Design Tools COE Example design: ALU Recall that the ALUOp is 4 bits – High-order two bits used to determine operation class (ALUOp(3:2))
EKT303/4 PRINCIPLES OF PRINCIPLES OF COMPUTER ARCHITECTURE (PoCA)
Computer Engineering 1502 Advanced Digital Design Professor Donald Chiarulli Computer Science Dept Sennott Square
Introduction to VHDL Simulation … Synthesis …. The digital design process… Initial specification Block diagram Final product Circuit equations Logic design.
L19 – Resolved Signals. Resolved Signals  What are resolved signals In systems In VHDL Resolution – Isn’t that for resolving conflicts?  Ref: text Unit.
CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 5: Arithmetic Circuits Chapter 5 (minus 5.3.4)
CS/EE 3700 : Fundamentals of Digital System Design
04/26/20031 ECE 551: Digital System Design & Synthesis Lecture Set : Introduction to VHDL 12.2: VHDL versus Verilog (Separate File)
L20 – Register Set. The 430 Register Set  Not exactly a dual ported register set, but a dual drive register set.  Ref: text Unit 10, 17, 20 9/2/2012.
VHDL Project I: Serial Adder Matthew Murach Slides Available at:
Number Representation and Arithmetic Circuits
Teaching Digital Logic courses with Altera Technology
ECE 448 – FPGA and ASIC Design with VHDL George Mason University ECE 448 Lab 1 Implementing Combinational Logic in VHDL.
1 Introduction to Engineering Spring 2007 Lecture 18: Digital Tools 2.
1 Computer Architecture & Assembly Language Spring 2009 Dr. Richard Spillman Lecture 11 – ALU Design.
Introduction to the FPGA and Labs
Introduction to Vivado
Lab 1: Using NIOS II processor for code execution on FPGA
Registers and Counters
Introduction to Programmable Logic
Programmable Logic Devices: CPLDs and FPGAs with VHDL Design
Field Programmable Gate Array
Field Programmable Gate Array
Field Programmable Gate Array
VHDL 1. ver.7a VHDL1 INTRODUCTION TO VHDL (VERY-HIGH-SPEED-INTEGRATED-CIRCUITS HARDWARE DESCRIPTION LANGUAGE) KH WONG (w2 begins) (Some pictures are.
VHDL (VHSIC Hardware Description Language)
Getting Started with Vivado
Chapter 5 – Number Representation and Arithmetic Circuits
VHDL Introduction.
Founded in Silicon Valley in 1984
Computer Architecture Assembly Language
Presentation transcript:

Computer Engineering 1502 Advanced Digital Design Professor Donald Chiarulli Computer Science Dept.

Course Assistants and Resources Sam Dickerson –TA Office – 271-I Benedum Hall Joe Jezak-TA Office – 5426 Sennott Square

Goals of this course  Learn tools and techniques of modern digital design for large scale digital systems  Complement your Computer Architecture Course (CoE 1541) with actual design experience for the processor covered in that course.  PREREQUISITE – CoE 0501  CO-REQUISITE – CoE 1541 Pre/Co requisites are non-negotiable

Things to do today 1.Set up your account, make sure the tools work properly 2.Proceed with the tools tutorial, make sure that you do the library setup part. 3.Work on unit 1a up to (but not including “adding subblocks to block diagram”). After the presentation

What’s expected of you Most of the work in this class is divided into a series of Project that will be combined into your first full processor design Each project will begin with a lecture (approx 1 hour) at the beginning of class You will have one to three weeks to complete the unit depending on the complexity Units will be checked individually by myself or the TA -- demonstrations are required to receive credit for a unit Units not checked on the due date will be considered late with credit deducted Units more than one week late will receive no credit (but you will still have to do them)

Projects, Schedule and Grading* Credit Project 1 - Self Directed Tutorial Learn Mentor Tools Completed individually 2 weeks10% Project 2 - A Simple State Machine: UART Controller 1 st Design/State Machine Groups of 2 3 weeks15% Project bit Pipelined MIPS CPU 5 stage, pipelined RISC processor Groups of 2 4 weeks15% Project 4 - The System Bus Interface: Wishbone Connect to standard System Bus Add memory controller and L1 Cache Groups of 2 3 weeks15% Project 5 – Exception Handling Add support for multiple Interrupt and Exception states Groups of 2 3 weeks15% Practical Exam (Final)30% * Exact percentages are subject to adjustment if necessary

Final Exam This is a design class, the final exam will test how effectively you have learned to tools and techniques of digital design You will be given the specification for a small device that you should be familiar with either from experiences in this or other classes You will be given two hours to implement this device using the software tools you have used in the course Grading will be based on completeness, functionality and quality of the design that you produce Since this is “almost” the only individual grade you will receive in this class, it will weigh heavily in the computation of your course grade

Software Tools HDL Designer Suite - Mentor Graphics Inc FGPA Advantage - Design Entry Tool ModelSim - Simulator Quartus - Design Synthesis FPGA place and Route tools

Design Flow FPGA Advantage VHDL Place and Route FPGA Hardware ModelSim Design EntryVerification Quartus Logic Synthesis Logic Analyzer

Hardware platform: Field Programmable Gate Arrays Altera Cyclone II 512KB SRAM 8MB SDRAM 56 Bits bit-level I/0 (switches/buttons/L EDs) 8 7-segment LED serial I/O and more…. Altera DE2 Development board

FPGA Structure

Where to Start

Introduction to Design Tools COE 1502

Review: Tools, functions, design flow Four tools we will use in this course – HDL Designer Suite FPGA Advantage – IDE to create hierarchical designs and generate HDL ModelSim – Robust logic simulator Synthess (Quartus) – Synthesizes HDL into gate-level netlists using device cell libraries

Review: Tools, functions, design flow VHDL code Generate Proprietary binary format Compile Simulate using ModelSim Load onto FPGA and test using LA FPGA Advantage Create symbolic designs Proprietary text format SynthesizePlace and Route Quartus Design Flow

Libraries in FPGA Advantage A library is a collection of components – Components have one or more views (implementations) Block diagram, truth table, flow chart, state machine, VHDL architecture – Each view has representations: Graphics, VHDL, simulator netlist, synthesis netlist CPUcontrol_unit CPU_lib VHDL archstate diagram gen. VHDLsim. binarysynth. netlist library component view representation graphics block diagram 2block diagram 1 ALU

Components Library components can be instantiated in other designs – Shown as green blocks Exportable to other designs – Libraries also contain “blocks” Attached to the design they were created in Shown as blue blocks – Embedded blocks – embedded code local block diagram Shown as yellow blocks Embeds behavior into structure

Libraries in FPGA Advantage Libraries are stored in four subdirectories in your group directory (e.g. I:\alpha) – For each library you use or create, library mappings to these directories must be specified – The mappings for your set of libraries are stored in your project file Lives in your group directory I:\alpha \ALU_lib \CPU_lib \hds \hdl \work \ls source directory HDL directory simulation directory synthesis directory

Projects A project in FPGA Advantage is a set of library mappings Create a new project in your user workspace – “tutorial”

Projects, Libraries, Components, Views tutorial ALU_Lib ALU Src (hds) (graphical view) HDL (generated) Downstream (compiled for sim) Downstream (compiled for synth) Project Library Component

Example Design: ALU Open HDL Designer and create your project

Example Design: ALU Library and project views in Design Manager…

Example Design: ALU

Example design: ALU Specifications for ALU – GOAL: implement all logical, arithmetic, shift, and comparison operations in MIPS instruction set Operations – Bit-wise AND, OR, XOR, and NOR – Signed and unsigned addition, subtraction Overflow detection, zero-result detection – Signed and unsigned set-on-less-than comparison – Logical shift left and right, arithmetic shift right – Must accept 2 x 32-bit operands and produce a 32-bit result

Example design: ALU Inputs – A, B (32 bits) – SHAMT (how many bits?) – ALUOP (how many bits?) 13 total operations Outputs – C (32 bits) – Overflow – Zero

Example design: ALU We will work top-down to design the ALU – First step is to create top-level design – Need to choose a view which will implement a VHDL architecture – View type: block diagram Implements structural VHDL – From design browser… File | New | Graphical View | Block Diagram

Example Design: ALU

Example design: ALU First, let’s discuss the block diagram toolbars… One level up/Save Add block/component Add embedded block Add signal/bus Add ports Generate VHDL and simulate

Example design: ALU First, add interface signals with ports (using the toolbar tool, “wire with port”)… Note signal widths (in wire properties)

Example design: ALU Save the block diagram into the ALU library – The component name will be “ALU” Let’s look at the ALU symbol… – Click “up” in BD, or – Use the design browser Source file Symbol file

Example design: ALU The symbol looks something like this… – We can change the shape and pin locations here Right click, then “Autoshapes” Make the symbol look like an ALU symbol

Example design: ALU Go back to the block diagram window and let’s generate VHDL for our design… Next, let’s take a look at the VHDL that we generated…

Example design: ALU -- VHDL Entity ALU.ALU.symbol Created: -- by - ajnoyola.UNKNOWN (TWEETY) -- at - 23:46:41 03/10/ Generated by Mentor Graphics' HDL Designer(TM) (Build 83) -- LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_arith.all; ENTITY ALU IS PORT( A : IN std_logic_vector (63 DOWNTO 0); ALUOp : IN std_logic_vector (3 DOWNTO 0); B : IN std_logic_vector (63 DOWNTO 0); SHAMT : IN std_logic_vector (4 DOWNTO 0); SHAMT_HIGH : IN std_logic; Overflow : OUT std_logic; R : OUT std_logic_vector (63 DOWNTO 0); Zero : OUT std_logic ); -- Declarations END ALU ; VHDL Architecture ALU.ALU.struct Created: -- by - ajnoyola.UNKNOWN (TWEETY) -- at - 23:46:42 03/10/ Generated by Mentor Graphics' HDL Designer(TM) (Build 83) -- LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_arith.all; ARCHITECTURE struct OF ALU IS -- Architecture declarations -- Internal signal declarations BEGIN -- Instance port mappings. END struct;