VHDL vs. BSV: A case study on a Java-optimized processor
|
|
- Howard Merritt
- 5 years ago
- Views:
Transcription
1 VHDL vs. BSV: A case study on a Java-optimized processor April 18, 2007
2 Outline Introduction Goal Design parameters
3 Goal Design parameters What are we trying to do? Compare BlueSpec SystemVerilog (BSV) vs. VHDL using the design of a Java-optimized processor. Which approach is better in terms of: design time code lines area/performance modularity flexibility portability simulation and debugging support
4 Goal Design parameters Design features The following features are required for both the VHDL and BSV versions: micro-programmed, stack machine core predictable rather than high-performance (RT systems) identical interface to the rest of the system given instruction set (bytecodes) fixed micro-instruction set (for ease of programming) identical executable image (loaded classes) same back-end (synthesis) tools same implementation platform (FPGA)
5 in brief The initial design (a version of JOP) RT-level VHDL, synthesizable Four stages pipeline: 1. bytecode fetch 2. micro-instruction fetch 3. decode and fetch operands 4. execute and write-back 1KB method cache (one method at a time)
6 overview Stage 1 Stage 2 Stage 3 Stage 4 Stage 5 Stage 6 forward bcfifo BC2 microa mififo jump table dififo fofifo bypass wbfifo Fetch Bytecode Fetch micro-i Decode Fetch operands Execute Writeback micro- ROM SP OPD PC BC- Cache load cache JPC MwA VP Registers MD MrA Stack const bus interface (OPB)
7 Micro-code aspects Introduction microcode.asm types.bsv bluejasm generator.bsv bsv compiler -sim genrom micro- ROM BC2 microa jump table stack The encoding of the micro-instructions does not affect the assembler! The actual encoding is interesting for optimization purposes only.
8 Design time (0 1) VHDL An almost complete re-implementation of an existing design, targeting improved performance and altered micro-instruction set. Tools such as binary image generator and micro-assembler were rewritten. (6 months) BSV Based on the VHDL experience and tools, but with limited prior knowledge of the language. Deeper, more generic pipeline. (3 months)
9 Code lines (0 2) Introduction Only the used modules were considered, no testing code included. VHDL = ca lines. Shorter pipeline, state centric description, explicit handling of clock, explicit handling of signals, poor state control (inferred latches). BSV = ca in BSV, and ca after compiling it into RTL Verilog. Longer pipeline, rule based description, transparent clocking, user defined types, parametrized modules, implicit type packing/unpacking, strict state control (explicit registers). Rule centric descriptions let the compiler explore and choose a schedule, as opposed to state centric, fixed schedule solutions.
10 Synthesis Results: Toolchain used: Xilinx ISE 9.1 Although the BSV output gives correct behavioral simulation results and synthesizes, the synthesized model yields incorrect results! Cannot make a fair quantitative comparison! (2 2) VHDL poor register control (Inferred latches), simpler processor, shorter pipeline smaller area, slower clock BSV explicit register instantiation, longer pipeline, rather general primitive library (RegFile is a five ports distributed RAM) relies heavily on the performance of the synthesis tool harder to control the timing, larger area, faster clock
11 Test and Debug (2 3) VHDL requires simulation and examining waveforms, a painful and time consuming process BSV more software-like. Generate a standalone simulator (an executable), use debug messages. Generate waveforms. Writing test suites is supported through StmtFSM (statements FSM) module. Finally, the Verilog output can be simulated. Linking final signals back to program structures is however harder.
12 (2 4) VHDL support for modular designs, parameters, generate BSV offers more powerful parametrisation for types, modules, functions. Test for simple types, use them with complex ones. Example: sfifo: Searchable FIFO, of a generic type, with an instance specific equality function.
13 Searchable FIFO Introduction 1 import ConfigReg ::*; 2 import RWire ::*; 4 interface SFIFO #( type alpha_t, type search_t ); 5 // standard FIFO stuff 6 method Action enq ( alpha_t x); 7 method Action deq (); 8 method alpha_t first (); 9 method Action clear (); 10 // additional methods 11 method Bool find ( search_t x); 12 method Bool find2 ( search_t x); 13 endinterface 15 // a single element SFIFO implementation 16 // first, deq < find, find2, enq < clear 17 module mksfifo1 #( function Bool searchf ( search_t s, alpha_t x)) 18 ( SFIFO #( alpha_t, search_t )) provisos (Bits #( alpha_t,asz ), Eq #( alpha_t )) 20 Reg #( alpha_t ) f0 <- mkconfigregu ; 21 Reg #( Bool ) vf0 <- mkconfigreg ( False ); 22 PulseWire edge1 <- mkpulsewire (); 24 method Action enq ( alpha_t x) if (! vf0 ); 25 vf0 <= True ; 26 f0 <= x; 27 endmethod
14 29 method Action deq () if(vf0 ); 30 edge1. send (); 31 vf0 <= False ; 32 endmethod 34 method alpha_t first () if(vf0 ); 35 return f0; 36 endmethod 38 method Action clear (); 39 vf0 <= False ; 40 endmethod 42 method Bool find ( search_t sv ); 43 Bool nvf0 = edge1? False : vf0 ; 44 return ( nvf0 && searchf (sv, f0 )); 45 endmethod 47 method Bool find2 ( search_t sv ); 48 Bool nvf0 = edge1? False : vf0 ; 49 return ( nvf0 && searchf (sv, f0 )); 50 endmethod 51 endmodule 53 // Observe that enq and deq can never occur at the same time!
15 (2 5) An example: Add a new micro-instruction! VHDL specific pipeline, complicated, low level changes: change the decode stage and its interface change the execute stage (add muxes, registers, FUs...) changed the micro-assembler to generate the new codes BSV more generic pipeline, simpler, higher level changes: add a new micro-instruction type change the decode stage possibly the execute stage if a new FU is needed Clear possibility for micro-instruction folding.
16 Sample micro-instruction type and coding: 1 typedef enum {Add, Sub, Or, Shl,...} ALOp 2 deriving (Bits, Eq ); 4 typedef union tagged { 5 struct { } Nop ; 6 struct { } Pop ; 7 struct { ALOp op; } Alop ; 8 struct { Bit #(5) opd ; } Bz; } Jmicroi deriving ( Bits, Eq ); However if Bits is left out from deriving, the compiler requires the presence of custom pack/unpack functions: 1 instance Bits #( Jmicroi, 8); 3 function Bit #(8) pack ( Jmicroi inst ); 4 case ( inst ) matches 5 tagged Nop {}: return b ; 6 tagged Pop {}: return b ; 7 tagged ALop {op:.n }: return { b0001, pack (n )}; 8 tagged Bz { opd :.n}: return { b010, pack (n )}; default : return b ; 11 endcase 12 endfunction : pack
17 14 function Jmicroi unpack ( Bit #(8) x); 15 case (x [7:5]) 16 b000 : if (x [4] ==0) 17 case (x [3:0]) b0000 : return tagged Nop {}; 20 endcase 21 else 22 return tagged ALop {op: unpack (x [3:0])}; 23 b010 : return tagged Bz { opd : unpack (x [4:0])}; 24 endcase 25 endfunction : unpack 27 endinstance
18 (3 5) VHDL A few mixed language simulators combining SystemC, C, VHDL, Verilog,... Many VHDL/Verilog design environments, including free simulators. BSV Exporting BSV modules to Verilog is awkward. The other way around is easy. Combining C, Verilog, BSV is easy. However, only one company providing BSV, no free versions.
19 BSV is for VHDL/Verilog what C is for ASM No big surprise: higher abstraction descriptions are faster to write and more flexible! BSV over VHDL: + halved design time + more flexible/maintainable - harder to identify and influence timing problems - in infancy/limited tool support? acceptable area/performance penalties
BluEJAMM: A Bluespec Embedded Java Architecture with Memory Management
BluEJAMM: A Bluespec Embedded Java Architecture with Memory Management Flavius Gruian 1 Mark Westmijze 2 1 Lund University, Sweden flavius.gruian@cs.lth.se 2 University of Twente, The Netherlands m.westmijze@student.utwente.nl
More informationBluespec for a Pipelined SMIPSv2 Processor
Bluespec for a Pipelined SMIPSv2 Processor 6.375 Laboratory 2 February 14, 2008 The second laboratory assignment is to implement a pipelined SMIPSv2 in Bluespec SystemVerilog. As with Lab One, your deliverables
More informationModeling Processors. Arvind Computer Science & Artificial Intelligence Lab Massachusetts Institute of Technology
Modeling Processors Arvind Computer Science & Artificial Intelligence Lab Massachusetts Institute of Technology L07-1 The Plan Non-pipelined processor Two-stage synchronous pipeline Two-stage asynchronous
More informationBluespec SystemVerilog TM Training. Lecture 05: Rules. Copyright Bluespec, Inc., Lecture 05: Rules
Bluespec SystemVerilog Training Copyright Bluespec, Inc., 2005-2008 Rules: conditions, actions Rule Untimed Semantics Non-determinism Functional correctness: atomicity, invariants Examples Performance
More informationBluespec-5: Modeling Processors. Arvind Computer Science & Artificial Intelligence Lab Massachusetts Institute of Technology
Bluespec-5: Modeling Processors Arvind Computer Science & Artificial Intelligence Lab Massachusetts Institute of Technology Based on material prepared by Bluespec Inc, January 2005 L12-1 Some New Types
More informationSizhuo Zhang TA
Constructive Computer Architecture Tutorial 2 Advanced BSV Sizhuo Zhang 6.175 TA T02-1 EHR and Scheduling Design example Up/down counter interface Counter; Bit#(8) read; Action increment(bit#(8) x); Action
More informationElastic Pipelines: Concurrency Issues
Elastic Pipelines: Concurrency Issues Arvind Computer Science & Artificial Intelligence Lab Massachusetts Institute of Technology L08-1 Inelastic vs Elastic Pipelines In a Inelastic pipeline: pp typically
More informationBluespec-5: Modeling Processors. Arvind Computer Science & Artificial Intelligence Lab Massachusetts Institute of Technology
Bluespec-5: Modeling Processors (revised after the lecture) Arvind Computer Science & Artificial Intelligence Lab Massachusetts Institute of Technology Based on material prepared by Bluespec Inc, January
More information6.175: Constructive Computer Architecture. Tutorial 1 Bluespec SystemVerilog (BSV) Sep 30, 2016
6.175: Constructive Computer Architecture Tutorial 1 Bluespec SystemVerilog (BSV) Quan Nguyen (Only crashed PowerPoint three times) T01-1 What s Bluespec? A synthesizable subset of SystemVerilog Rule-based
More informationSuccessive refinement & Modular Structure. Bluespec-8: Modules and Interfaces. Designing a 2-Stage Processor with GAA. A 2-Stage Processor in RTL
Bluespec-8: Modules and Interfaces Successive refinement & Modular Structure rf fetch decode memory writeback Arvind Computer Science & Artificial Intelligence Lab Massachusetts Institute of Technology
More informationElastic Pipelines: Concurrency Issues
Elastic Pipelines: Concurrency Issues Arvind Computer Science & Artificial Intelligence Lab Massachusetts Institute of Technology L09-1 Inelastic vs Elastic Pipelines In a Inelastic pipeline: pp typically
More informationSuper Advanced BSV* Andy Wright. October 24, *Edited for Tutorial 6. Andy Wright Super Advanced BSV* October 24, / 25
Super Advanced BSV* Andy Wright October 24, 2014 *Edited for 6.175 Tutorial 6 Andy Wright Super Advanced BSV* October 24, 2014 1 / 25 Super Advanced BSV Scheduling! Andy Wright Super Advanced BSV* October
More informationCadence SystemC Design and Verification. NMI FPGA Network Meeting Jan 21, 2015
Cadence SystemC Design and Verification NMI FPGA Network Meeting Jan 21, 2015 The High Level Synthesis Opportunity Raising Abstraction Improves Design & Verification Optimizes Power, Area and Timing for
More informationBeiHang Short Course, Part 2: Description and Synthesis
BeiHang Short Course, Part 2: Operation Centric Hardware Description and Synthesis J. C. Hoe, CMU/ECE/CALCM, 2014, BHSC L2 s1 James C. Hoe Department of ECE Carnegie Mellon University Collaborator: Arvind
More informationWhat, If Anything, In SystemVerilog Will Help Me With FPGA-based Design. Stuart Sutherland, Consultant and Trainer, Sutherland HDL, Inc.
What, If Anything, In SystemVerilog Will Help Me With FPGA-based Design Stuart Sutherland, Consultant and Trainer, Sutherland HDL, Inc. About the Presenter... Stuart Sutherland, SystemVerilog wizard Independent
More informationModeling Processors. Arvind Computer Science & Artificial Intelligence Lab Massachusetts Institute of Technology
Modeling Processors Arvind Computer Science & Artificial Intelligence Lab Massachusetts Institute of Technology L08-1 Instruction set typedef enum {R0;R1;R2; ;R31} RName; typedef union tagged { struct
More informationModeling Processors. Arvind Computer Science & Artificial Intelligence Lab Massachusetts Institute of Technology
Modeling Processors Arvind Computer Science & Artificial Intelligence Lab Massachusetts Institute of Technology L07-1 Instruction set typedef enum {R0;R1;R2; ;R31} RName; typedef union tagged { struct
More informationMicro-programmed Control Ch 15
Micro-programmed Control Ch 15 Micro-instructions Micro-programmed Control Unit Sequencing Execution Characteristics 1 Hardwired Control (4) Complex Fast Difficult to design Difficult to modify Lots of
More informationMachine Instructions vs. Micro-instructions. Micro-programmed Control Ch 15. Machine Instructions vs. Micro-instructions (2) Hardwired Control (4)
Micro-programmed Control Ch 15 Micro-instructions Micro-programmed Control Unit Sequencing Execution Characteristics 1 Machine Instructions vs. Micro-instructions Memory execution unit CPU control memory
More informationMicro-programmed Control Ch 15
Micro-programmed Control Ch 15 Micro-instructions Micro-programmed Control Unit Sequencing Execution Characteristics 1 Hardwired Control (4) Complex Fast Difficult to design Difficult to modify Lots of
More informationElastic Pipelines and Basics of Multi-rule Systems. Elastic pipeline Use FIFOs instead of pipeline registers
Elastic Pipelines and Basics of Multi-rule Systems Arvind Computer Science & Artificial Intelligence Lab Massachusetts Institute of Technology L05-1 Elastic pipeline Use FIFOs instead of pipeline registers
More informationSystemVerilog Essentials Simulation & Synthesis
SystemVerilog Essentials Simulation & Synthesis Course Description This course provides all necessary theoretical and practical know-how to design programmable logic devices using SystemVerilog standard
More informationSunburst Design - Comprehensive SystemVerilog Design & Synthesis by Recognized Verilog & SystemVerilog Guru, Cliff Cummings of Sunburst Design, Inc.
World Class SystemVerilog & UVM Training Sunburst Design - Comprehensive SystemVerilog Design & Synthesis by Recognized Verilog & SystemVerilog Guru, Cliff Cummings of Sunburst Design, Inc. Cliff Cummings
More informationAS part of my MPhil course Advanced Computer Design, I was required to choose or define a challenging hardware project
OMAR CHOUDARY, ADVANCED COMPUTER DESIGN, APRIL 2010 1 From Verilog to Bluespec: Tales of an AES Implementation for FPGAs Omar Choudary, University of Cambridge Abstract In this paper I present a combined
More informationMicro-programmed Control Ch 17
Micro-programmed Control Ch 17 Micro-instructions Micro-programmed Control Unit Sequencing Execution Characteristics Course Summary 1 Hardwired Control (4) Complex Fast Difficult to design Difficult to
More informationHardwired Control (4) Micro-programmed Control Ch 17. Micro-programmed Control (3) Machine Instructions vs. Micro-instructions
Micro-programmed Control Ch 17 Micro-instructions Micro-programmed Control Unit Sequencing Execution Characteristics Course Summary Hardwired Control (4) Complex Fast Difficult to design Difficult to modify
More informationAdvanced Synthesis Techniques
Advanced Synthesis Techniques Reminder From Last Year Use UltraFast Design Methodology for Vivado www.xilinx.com/ultrafast Recommendations for Rapid Closure HDL: use HDL Language Templates & DRC Constraints:
More informationOutline. In-Order vs. Out-of-Order. Project Goal 5/14/2007. Design and implement an out-of-ordering superscalar. Introduction
Outline Group IV Wei-Yin Chen Myong Hyon Cho Introduction In-Order vs. Out-of-Order Register Renaming Re-Ordering Od Buffer Superscalar Architecture Architectural Design Bluespec Implementation Results
More informationECE 353 Lab 4. Verilog Review. Professor Daniel Holcomb With material by Professor Moritz and Kundu UMass Amherst Fall 2016
ECE 353 Lab 4 Verilog Review Professor Daniel Holcomb With material by Professor Moritz and Kundu UMass Amherst Fall 2016 Recall What You Will Do Design and implement a serial MIDI receiver Hardware in
More informationBluespec. Lectures 3 & 4 with some slides from Nikhil Rishiyur at Bluespec and Simon Moore at the University of Cambridge
Bluespec Lectures 3 & 4 with some slides from Nikhil Rishiyur at Bluespec and Simon Moore at the University of Cambridge Course Resources http://cas.ee.ic.ac.uk/~ssingh Lecture notes (Power Point, PDF)
More informationRealistic Memories and Caches
Realistic Memories and Caches Li-Shiuan Peh Computer Science & Artificial Intelligence Lab. Massachusetts Institute of Technology L13-1 Three-Stage SMIPS Epoch Register File stall? PC +4 fr Decode Execute
More informationVHDL 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 informationEN164: Design of Computing Systems Lecture 07: Lab Foundations / Verilog 3
EN164: Design of Computing Systems Lecture 07: Lab Foundations / Verilog 3 Professor Sherief Reda http://scaleenginbrownedu Electrical Sciences and Computer Engineering School of Engineering Brown University
More informationA Parameterized Model of a Crossbar Switch In Bluespec SystemVerilog (TM) June 30, Copyright Bluespec, Inc., 2005, All Rights Reserved
Introduction A Parameterized Model of a Crossbar Switch In Bluespec SystemVerilog (TM) June 30, 2005 Copyright Bluespec, Inc., 2005, All Rights Reserved This document describes the design of a highly parameterized,
More informationPerformance Specifications. Simple processor pipeline
Performance Specifications Arvind Computer Science & Artificial Intelligence Lab Massachusetts Institute of Technology L11-1 Simple processor pipeline RF Bz? Bz? IF Dec Exe Mem Wb imem bf bd dmem Functional
More informationProgrammable Logic Devices HDL-Based Design Flows CMPE 415
HDL-Based Design Flows: ASIC Toward the end of the 80s, it became difficult to use schematic-based ASIC flows to deal with the size and complexity of >5K or more gates. HDLs were introduced to deal with
More informationHardware Description Languages (HDLs) Verilog
Hardware Description Languages (HDLs) Verilog Material from Mano & Ciletti book By Kurtulus KULLU Ankara University What are HDLs? A Hardware Description Language resembles a programming language specifically
More information6.175: Constructive Computer Architecture. Tutorial 3 RISC-V and Debugging. Oct 14, 2016
6.175: Constructive Computer Architecture Tutorial 3 RISC-V and Debugging Quan Nguyen (Moonlights as an amateur instruction set evangelist) T02-1 Outline RISC-V processor (from lab 5 onwards) Debugging
More informationLab 4: N-Element FIFOs 6.175: Constructive Computer Architecture Fall 2014
Lab 4: N-Element FIFOs Due: Wednesday October 8, 2014 1 Introduction This lab focuses on the design of various N-element FIFOs including a conflict-free FIFO. Conflict-free FIFOs are an essential tool
More informationLab 1: Hello World, Adders, and Multipliers
Lab 1: Hello World, Adders, and Multipliers Andy Wright acwright@mit.edu Updated: December 30, 2013 1 Hello World! 1 interface GCD#(numeric type n); method Action computegcd(uint#(n) a, UInt#(n) b); method
More informationModular Refinement. Successive refinement & Modular Structure
Modular Refinement Arvind Computer Science & Artificial Intelligence Lab Massachusetts Institute of Technology L09-1 Successive refinement & Modular Structure pc rf fetch decode execute memory writeback
More informationSystemC Synthesis Standard: Which Topics for Next Round? Frederic Doucet Qualcomm Atheros, Inc
SystemC Synthesis Standard: Which Topics for Next Round? Frederic Doucet Qualcomm Atheros, Inc 2/29/2016 Frederic Doucet, Qualcomm Atheros, Inc 2 What to Standardize Next Benefit of current standard: Provides
More informationArchitecture exploration in Bluespec
Architecture exploration in Bluespec Arvind Computer Science & Artificial Intelligence Lab Massachusetts Institute of Technology Guest Lecture 6.973 (lecture 7) L-1 Chip design has become too risky a business
More informationSystem Verilog Tagged Unions and Pattern Matching
System Verilog Tagged Unions and Pattern Matching (An extension to System Verilog 3.1 proposed to Accellera) Bluespec, Inc. Contact: Rishiyur S. Nikhil, CTO, Bluespec, Inc. 200 West Street, 4th Flr., Waltham,
More informationSimple Inelastic and
Simple Inelastic and Folded Pipelines Arvind Computer Science & Artificial Intelligence Lab Massachusetts Institute of Technology L04-1 Pipelining a block C f1 f2 f3 Combinational P f1 f2 f3 Pipeline FP
More informationOverview. BSV reviews/notes Guard lifting EHRs Scheduling Lab Tutorial 2 Guards and Scheduling. Ming Liu
6.375 Tutorial 2 Guards and Scheduling Ming Liu T02-1 Overview BSV reviews/notes Guard lifting EHRs Scheduling Lab 3 T02-2 1 Expressions vs. Actions Expressions Have no side effects (state changes) Can
More informationFPGA 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 informationEN164: Design of Computing Systems Lecture 06: Lab Foundations / Verilog 2
EN164: Design of Computing Systems Lecture 06: Lab Foundations / Verilog 2 Professor Sherief Reda http://scaleenginbrownedu Electrical Sciences and Computer Engineering School of Engineering Brown University
More informationECE Digital Engineering Laboratory. Designing for Synthesis
ECE 554 - Digital Engineering Laboratory Designing for Synthesis Below is a list of coding styles that might cause synthesis problems and/or inefficient design implementation. This is not an exhaustive
More informationLab 3: Standard Combinational Components
Lab 3: Standard Combinational Components Purpose In this lab you will implement several combinational circuits on the DE1 development board to test and verify their operations. Introduction Using a high-level
More informationLecture 09: More on Module Interfaces
Bluespec SystemVerilog Training Lecture 09: More on Module Interfaces Copyright Bluespec, Inc., 2005-2008 Lecture 09: More on Module Interfaces Packages and Libraries Interfaces: raising the level of abstraction
More informationSynthesizable Verilog
Synthesizable Verilog Courtesy of Dr. Edwards@Columbia, and Dr. Franzon@NCSU http://csce.uark.edu +1 (479) 575-6043 yrpeng@uark.edu Design Methodology Structure and Function (Behavior) of a Design HDL
More informationUniversity of California, Davis Department of Electrical and Computer Engineering. EEC180B DIGITAL SYSTEMS Spring Quarter 2018
University of California, Davis Department of Electrical and Computer Engineering EEC180B DIGITAL SYSTEMS Spring Quarter 2018 LAB 2: FPGA Synthesis and Combinational Logic Design Objective: This lab covers
More informationCS Computer Architecture
CS 35101 Computer Architecture Section 600 Dr. Angela Guercio Fall 2010 An Example Implementation In principle, we could describe the control store in binary, 36 bits per word. We will use a simple symbolic
More informationVerilog: The Next Generation Accellera s SystemVerilog Standard
Verilog: The Next Generation Accellera s SystemVerilog Standard by Stuart Verilog HD and PI Expert HD, Inc. Training engineers to be HD wizards 1 Overview! Define what is SystemVerilog! Justify the need
More informationEE108a Lab 0: Introduction to Verilog and the EE108a tool chain, version 1.01
Introduction Welcome to EE108a Lab 0. This lab is designed to familiarize you with Verilog and the tools we ll be using in EE108a. The lab is a step-by-step walkthrough which will take you from the initial
More informationHardware 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 informationHigh Performance SMIPS Processor
High Performance SMIPS Processor Jonathan Eastep 6.884 Final Project Report May 11, 2005 1 Introduction 1.1 Description This project will focus on producing a high-performance, single-issue, in-order,
More informationMore advanced CPUs. August 4, Howard Huang 1
More advanced CPUs In the last two weeks we presented the design of a basic processor. The datapath performs operations on register and memory data. A control unit translates program instructions into
More informationEarly Models in Silicon with SystemC synthesis
Early Models in Silicon with SystemC synthesis Agility Compiler summary C-based design & synthesis for SystemC Pure, standard compliant SystemC/ C++ Most widely used C-synthesis technology Structural SystemC
More informationConstructive Computer Architecture. Tutorial 1 BSV Types. Andy Wright TA. September12, 2014
Constructive Computer Architecture Tutorial 1 BSV Types Andy Wright 6.175 TA T01-1 Bit#(numeric type n) The most important type in BSV We ll go into the details later L03-2 Bit#(numeric type n) Literal
More informationECE 4514 Digital Design II. Spring Lecture 15: FSM-based Control
ECE 4514 Digital Design II Lecture 15: FSM-based Control A Design Lecture Overview Finite State Machines Verilog Mapping: one, two, three always blocks State Encoding User-defined or tool-defined State
More informationThe Pipeline Lab Copyright Bluespec Inc
The Pipeline Lab Hello Bluespec! This lab will lead you through basic aspects of the BSV (Bluespec SystemVerilog) language and the usage of the Bluespec compiler (bsc) for Bluesim and Verilog simulations.
More informationUniversiteit Leiden Opleiding Informatica
Universiteit Leiden Opleiding Informatica Design, Analysis, and Optimization of an Embedded Processor Name: Ruben Meerkerk Studentnr: s1219677 Date: 31/08/2016 1st supervisor: Dr. T.P. Stefanov 2nd supervisor:
More informationVerilog 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 informationEECS 151/251A Fall 2017 Digital Design and Integrated Circuits. Instructor: John Wawrzynek and Nicholas Weaver. Lecture 13 EE141
EECS 151/251A Fall 2017 Digital Design and Integrated Circuits Instructor: John Wawrzynek and Nicholas Weaver Lecture 13 Project Introduction You will design and optimize a RISC-V processor Phase 1: Design
More informationTopics Power tends to corrupt; absolute power corrupts absolutely. Computer Organization CS Data Representation
Computer Organization CS 231-01 Data Representation Dr. William H. Robinson November 12, 2004 Topics Power tends to corrupt; absolute power corrupts absolutely. Lord Acton British historian, late 19 th
More informationJOP: A Java Optimized Processor for Embedded Real-Time Systems. Martin Schoeberl
JOP: A Java Optimized Processor for Embedded Real-Time Systems Martin Schoeberl JOP Research Targets Java processor Time-predictable architecture Small design Working solution (FPGA) JOP Overview 2 Overview
More informationArchitectures & instruction sets R_B_T_C_. von Neumann architecture. Computer architecture taxonomy. Assembly language.
Architectures & instruction sets Computer architecture taxonomy. Assembly language. R_B_T_C_ 1. E E C E 2. I E U W 3. I S O O 4. E P O I von Neumann architecture Memory holds data and instructions. Central
More informationA New Design Methodology for Composing Complex Digital Systems
A New Design Methodology for Composing Complex Digital Systems S. L. Chu* 1, M. J. Lo 2 1,2 Department of Information and Computer Engineering Chung Yuan Christian University Chung Li, 32023, Taiwan *slchu@cycu.edu.tw
More informationBest Practice for Caching of Single-Path Code
Best Practice for Caching of Single-Path Code Martin Schoeberl, Bekim Cilku, Daniel Prokesch, and Peter Puschner Technical University of Denmark Vienna University of Technology 1 Context n Real-time systems
More informationSynthesis of Combinational and Sequential Circuits with Verilog
Synthesis of Combinational and Sequential Circuits with Verilog What is Verilog? Hardware description language: Are used to describe digital system in text form Used for modeling, simulation, design Two
More informationEN2911X: Reconfigurable Computing Topic 02: Hardware Definition Languages
EN2911X: Reconfigurable Computing Topic 02: Hardware Definition Languages Professor Sherief Reda http://scale.engin.brown.edu School of Engineering Brown University Spring 2014 1 Introduction to Verilog
More informationDesign and Implementation of a FPGA-based Pipelined Microcontroller
Design and Implementation of a FPGA-based Pipelined Microcontroller Rainer Bermbach, Martin Kupfer University of Applied Sciences Braunschweig / Wolfenbüttel Germany Embedded World 2009, Nürnberg, 03.03.09
More informationHigh Performance SMIPS Processor. Jonathan Eastep May 8, 2005
High Performance SMIPS Processor Jonathan Eastep May 8, 2005 Objectives: Build a baseline implementation: Single-issue, in-order, 6-stage pipeline Full bypassing ICache: blocking, direct mapped, 16KByte,
More informationDigital Design with FPGAs. By Neeraj Kulkarni
Digital Design with FPGAs By Neeraj Kulkarni Some Basic Electronics Basic Elements: Gates: And, Or, Nor, Nand, Xor.. Memory elements: Flip Flops, Registers.. Techniques to design a circuit using basic
More informationArvind (with the help of Nirav Dave) Computer Science & Artificial Intelligence Lab Massachusetts Institute of Technology
Stmt FSM Arvind (with the help of Nirav Dave) Computer Science & Artificial Intelligence Lab Massachusetts Institute of Technology March 10, 2010 http://csg.csail.mit.edu/snu L9-1 Motivation Some common
More informationChapter 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 informationSystemVerilog Lecture 3. Prof. Gerald E. Sobelman Dept. of Electrical and Computer Engineering University of Minnesota Minneapolis, MN USA
SystemVerilog Lecture 3 Prof. Gerald E. Sobelman Dept. of Electrical and Computer Engineering University of Minnesota Minneapolis, MN 55455 USA 1 Outline Design Example: Booth Multiplier Design Example:
More informationConfigurable and Extensible Processors Change System Design. Ricardo E. Gonzalez Tensilica, Inc.
Configurable and Extensible Processors Change System Design Ricardo E. Gonzalez Tensilica, Inc. Presentation Overview Yet Another Processor? No, a new way of building systems Puts system designers in the
More informationVerilog 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 informationVLIW Digital Signal Processor. Michael Chang. Alison Chen. Candace Hobson. Bill Hodges
VLIW Digital Signal Processor Michael Chang. Alison Chen. Candace Hobson. Bill Hodges Introduction Functionality ISA Implementation Functional blocks Circuit analysis Testing Off Chip Memory Status Things
More informationIntroduction to Bluespec
Introduction to Bluespec Andy Wright acwright@mit.edu Updated: December 30, 2013 1 Combinational Logic 1.1 Primitive Types definition: Bool This is a basic type for expressing true-false values with a
More informationFigure 1: System Block Diagram ADDR DATA EXT_COND RESET
EE183 Lab 3 EE183 LAB 3 12-bit RISC Microprocessor Purpose The third project consists of implementing a pipelined processor. This project illustrates many of the datapath and control design issues you
More informationLab 6: RISC-V Pipeline with Caches Spring 2016
Lab 6: RISC-V 6-stage Pipeline with Caches Due: 11:59:59pm, Fri Mar 18, 2016 This lab is your introduction to realistic RISC-V pipelines and caches. In the first part of the lab, you will implement a six-stage
More informationLogic Optimization Techniques for Multiplexers
Logic Optimiation Techniques for Multiplexers Jennifer Stephenson, Applications Engineering Paul Metgen, Software Engineering Altera Corporation 1 Abstract To drive down the cost of today s highly complex
More informationControl & Execution. Finite State Machines for Control. MIPS Execution. Comp 411. L14 Control & Execution 1
Control & Execution Finite State Machines for Control MIPS Execution L14 Control & Execution 1 Synchronous Systems data Latch Combinational logic Latch Clock leading edge trailing edge On the leading edge
More informationIntroduction Architecture overview. Multi-cluster architecture Addressing modes. Single-cluster Pipeline. architecture Instruction folding
ST20 icore and architectures D Albis Tiziano 707766 Architectures for multimedia systems Politecnico di Milano A.A. 2006/2007 Outline ST20-iCore Introduction Introduction Architecture overview Multi-cluster
More informationJob Posting (Aug. 19) ECE 425. ARM7 Block Diagram. ARM Programming. Assembly Language Programming. ARM Architecture 9/7/2017. Microprocessor Systems
Job Posting (Aug. 19) ECE 425 Microprocessor Systems TECHNICAL SKILLS: Use software development tools for microcontrollers. Must have experience with verification test languages such as Vera, Specman,
More informationCPU Pipelining Issues
CPU Pipelining Issues What have you been beating your head against? This pipe stuff makes my head hurt! L17 Pipeline Issues & Memory 1 Pipelining Improve performance by increasing instruction throughput
More informationSystem Verilog Tagged Unions and Pattern Matching
System Verilog Tagged Unions and Pattern Matching (An extension to System Verilog 3.1 proposed to Accellera) Bluespec, Inc. Contact: Rishiyur S. Nikhil, CTO, Bluespec, Inc. 200 West Street, 4th Flr., Waltham,
More informationTSEA44 - Design for FPGAs
2015-11-24 Now for something else... Adapting designs to FPGAs Why? Clock frequency Area Power Target FPGA architecture: Xilinx FPGAs with 4 input LUTs (such as Virtex-II) Determining the maximum frequency
More informationWrite only as much as necessary. Be brief!
1 CIS371 Computer Organization and Design Midterm Exam Prof. Martin Thursday, March 15th, 2012 This exam is an individual-work exam. Write your answers on these pages. Additional pages may be attached
More informationCIS 371 Spring 2010 Thu. 4 March 2010
1 Computer Organization and Design Midterm Exam Solutions CIS 371 Spring 2010 Thu. 4 March 2010 This exam is closed book and note. You may use one double-sided sheet of notes, but no magnifying glasses!
More informationProgramming in the Brave New World of Systems-on-a-chip
Programming in the Brave New World of Systems-on-a-chip Arvind Computer Science & Artificial Intelligence Lab Massachusetts Institute of Technology The 25th International Workshop on Languages and Compilers
More informationCS 61C: Great Ideas in Computer Architecture Pipelining and Hazards
CS 61C: Great Ideas in Computer Architecture Pipelining and Hazards Instructors: Vladimir Stojanovic and Nicholas Weaver http://inst.eecs.berkeley.edu/~cs61c/sp16 1 Pipelined Execution Representation Time
More informationLecture 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 informationControl Hazards - branching causes problems since the pipeline can be filled with the wrong instructions.
Control Hazards - branching causes problems since the pipeline can be filled with the wrong instructions Stage Instruction Fetch Instruction Decode Execution / Effective addr Memory access Write-back Abbreviation
More informationCSE140L: 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 informationSmall Router Design Using. Bluespec SystemVerilog
Small Router Design Using Bluespec SystemVerilog Daian Sova M. Filip Master AAC SBT Router Design 1 1. SBT Router Block Description The SBT Router is a simple router which has one input port (8 bits wide)
More information