Lecture 06: Rule Scheduling
|
|
- Julia Logan
- 5 years ago
- Views:
Transcription
1 Bluespec SystemVerilog Training Lecture 06: Rule Scheduling Copyright Bluespec, Inc., Lecture 06: Rule Scheduling A rule has no internal sequencing Untimed rule semantics are one-rule-at-a-time steps Hardware intuitions in the simple one-rule-at-a-time case Scheduling multiple rule steps into a clock cycle Conflicts Controlling urgency, and determinism Example Copyright Bluespec Inc L06-2
2 A rule has no internal sequencing Recall: a rule condition is a Bool expression: Purely combinational No side effects (no state update) Recall: a rule body contains one or more Actions, all of which execute simultaneously (atomically) in a rule step rule rulename [ ( condition ) ]; actions [: rulename ] Copyright Bluespec Inc L06-3 One rule at a time intuitions Untimed rule semantics are one-rule-at-a-time steps The Bluespec compiler schedules multiple rule steps into each clock, producing a timed semantics and resolving non-determinism But before we go there, let s build some HW intuitions based on one-rule-at-a-time We ll use the following example (Can you guess what it computes? Hint: Euclid ) rule decr ( x <= y && y!= 0 ); y <= y - x; : decr rule swap (x > y && y!= 0); x <= y; y <= x; : swap Answer: Euclid s algorithm for computing GCD (Greatest Common Divisor) of initial values in x and y registers; result is in x Copyright Bluespec Inc L06-4
3 Suppose we want to execute just one rule The HW would be quite simple rule decr ( x <= y && y!= 0 ); y <= y - x; : decr rule decr (all comb. logic) (y-x) next state D state y Q current state rule body (x<=y && y!=0) EN D x Q rule cond EN Copyright Bluespec Inc L06-5 Two mutually exclusive rules (Later: what to do if they re not mutually exclusive) rule decr ( x <= y && y!= 0 ); y <= y - x; : decr rule swap (x > y && y!= 0); x <= y; y <= x; : swap decr cond data select state D Q y swap EN D x Q cond scheduler EN Copyright Bluespec Inc L06-6
4 Observations: manifest and generated circuits The state elements are taken directly from the source code (no implicit state) The rule condition and action logic are taken directly from the source code To control execution of rules, we add two pieces of combinational logic: Data select logic: Inputs: candidate next state values from all rule bodies Outputs: mux inputs into actual next state values (reg D inputs) Scheduler logic: Inputs: rule condition outputs Outputs: control inputs of muxes in data select block, and state enables The scheduler is combinational control logic for the rules Copyright Bluespec Inc L06-7 Observations: datapaths and control logic Each rule specifies part of the datapath The complete datapath is obtained from all the rules, together with the data select block Each rule specifies part of the control logic (rule conditions) The complete control logic is obtained from all the rules, together with the scheduler Copyright Bluespec Inc L06-8
5 From one-rule-at-a-time to multiple-rules-per-clock-cycle Associated Verification Rules Semantics: Untimed (one rule at a time) Using Rule Semantics, establish functional correctness Scheduling and Synthesis By BSV compiler Verilog RTL Semantics: clocked synchronous HW (multiple rules per clock) Using Schedules, establish performance correctness Copyright Bluespec Inc L06-9 From one-rule-at-a-time to multiple-rules-per-clock-cycle What does it mean to execute multiple rules in a clock cycle? (Terminology: concurrently ) In principle, any set of rules can be composed to execute concurrently (assuming we could meet timing) data select logic current state Rule1 body cond Rule2 body cond next state Notation: Rule1<Rule2, Rule1 before Rule2 scheduler logic Copyright Bluespec Inc L06-10
6 Practical rule composition In practice, we only do restricted rule compositions Every rule executes entirely within one cycle A rule fires at most once in a cycle (no Rule1<Rule1) Greedy: as many rules as possible per clock cycle Rule1 body does not feed into Rule2 body Therefore, Rule2 can use state from beginning of cycle Later = Rule1 body can feed into Rule2 body using wires (but this has timing and scheduling implications) Copyright Bluespec Inc L06-11 Rules HW Practical Rule Composition Ri Rj Rk Rj Rk Ri rule steps clocks No intra-cycle communication between rules, in the HW Correctness: HW scheduler only allows rules Ri, Rj,, Rk to execute concurrently when net state change is equivalent to Ri<Rj< <Rk Thus, never get into inconsistent state (no race conditions) Every state in the HW exists in the one-rule-at-a-time semantics Copyright Bluespec Inc L06-12
7 Practical rule composition: why? Our restrictions on rule composition exist for pragmatic reasons Predictability and transparency: designer has good intuition about HW that will be produced from a set of rules Intuitive and natural mapping to HW (edge-triggered state) Timing predictability: arbitrary rule composition would lengthen logic critical paths (Topic in later lecture: there is a designer-controlled mechanism RWire allowing more complex rule compositions) Copyright Bluespec Inc L06-13 Multiple Rules and Conflicts If two rules are enabled in a particular cycle, what prevents them from executing concurrently? Answer: conflicts Since state read/write ordering is different in rule-ata-time semantics compared to concurrent execution, certain concurrent executions would result in inconsistent states Certain resource sharings prevent concurrency Copyright Bluespec Inc L06-14
8 No conflict rule r1; x <= x + 1; rule r2; y <= y + 2; Rule untimed semantics: r1 and then r2 ( r1<r2 ), or r2 and then r1 ( r2<r1 ) HW: concurrent execution of r1 and r2 Each rule reads state (x, y) at start of cycle Each rule updates state (x+1, y+2) at end of cycle Net state change same as (r1<r2) or (r2<r1) ok to execute concurrently Copyright Bluespec Inc L06-15 No conflict rule r1; x <= y + 1; rule r2; y <= y + 2; Rule untimed semantics: r1 and then r2 ( r1<r2 ), or r2 and then r1 ( r2<r1 ) HW: concurrent execution of r1 and r2 Each rule reads state (y) at start of cycle Each rule updates state (y+1, y+2) at end of cycle Net HW state change same as (r1<r2) ok to execute concurrently Copyright Bluespec Inc L06-16
9 Conflict x 10 y 20 rule r1 (c1); x <= y + 1; Rule untimed semantics: r1 and then r2 ( r1<r2 ), or r2 and then r1 ( r2<r1 ) rule r2 (c2); y <= x + 2; HW: concurrent execution of r1 and r2 Each rule reads state (y,x) at start of cycle Each rule updates state (y+1, x+2) at end of cycle Net HW state change any order (r1<r2 or r2<r1) not ok to execute concurrently A rule is not a Verilog always block! Bluespec HW scheduler will prevent these firing together Copyright Bluespec Inc L06-17 Resource conflict rule r1 (c1); x <= x + 1; rule r2 (c2); x <= x + 2; In HW, cannot simultaneously store into x from two rules not ok to execute concurrently Bluespec HW scheduler will prevent these firing together Copyright Bluespec Inc L06-18
10 Resource conflict rule r1 (c1); x <= mem.read(addr1); rule r2 (c2); y <= mem.read(addr2); In HW, can only do one one mem read per cycle not ok to execute concurrently Bluespec HW scheduler will prevent these firing together Copyright Bluespec Inc L06-19 Resource conflict rule r1 (c1); fifo.enq (e1); rule r2 (c2); fifo.enq (e2); In HW, fifo has only one enq port; can t use it twice per cycle not ok to execute concurrently Bluespec HW scheduler will prevent these firing together Copyright Bluespec Inc L06-20
11 CAN_FIRE and WILL_FIRE current state Rule1 cond CAN_FIREs RuleN cond Scheduler WILL_FIREs controls data muxing and state ENables Scheduler incorporates conflict analysis by compiler CAN_FIRE is True (rule_condition && all_ready_conditions) WILL_FIRE is True CAN_FIRE &&! (WILL_FIRE of any higher priority rules that conflict with this rule) Copyright Bluespec Inc L06-21 Controlling ordering: urgency (* descending_urgency = r1, r2 *) rule r1 (c1); fifo.enq (e1); // one enq per cycle rule r2 (c2); fifo.enq (e2); // one enq per cycle Urgency means the order in which the compiler determines if rules will fire or not. Bluespec HW scheduler will determine if r1 will fire Or not before even considering r2 But here, only one can fire so r1 fires if both can Copyright Bluespec Inc L06-22
12 Controlling execution: preempts Some times it is necessary to indicate that a if a rule fires then another/s should not fire (* preempts = r1, r2" * ) rule r1 (upa); x <= x + 3; rule r2; y <= y + 1; If upa then increment x by 3 Increment y only if x is not updated Bluespec HW scheduler will prevent these firing together r1 preempts r2 Copyright Bluespec Inc L06-23 Controlling execution: execution order Some times it is necessary to indicate that two rules should fire in a specific order in the schedule. (* execution_order = r1, r2" * ) rule r1; x <= 5; We ll need to see a few special cases to see when this is really helpful rule r2; y <= 6; Bluespec HW scheduler will ensure these fire in the defined order Copyright Bluespec Inc L06-24
13 Asserting Execution: Mutually Exclusive Some times it is necessary to indicate that two rules are mutually exclusive Example: Set to 1 the bit indicated by a one-hot signal (* mutually_exclusive = "updatebit0, updatebit1" *) rule updatebit0 (onehotnumber[0] == 1); x[0] <= 1; rule updatebit1 (onehotnumber[1] == 1); x[1] <= 1; Bluespec HW scheduler will not introduce any additional logic for conflict solving of shared resource x Copyright Bluespec Inc L06-25 Determinism The one-rule-at-a-time semantics is non-deterministic ( choose any enabled rule ) But the HW generated by the Bluespec compiler is fully deterministic Urgency resolved between conflicting rules We only execute (and verify) deterministic HW Copyright Bluespec Inc L06-26
14 Goal: implement: where y is x shifted by s positions. Suppose s is a 3-bit value. Strategy: Example: Pipelined Shifter y = shift (x,s) Shift by s = shift by 4 (=2 2 ) if s[2] is set, and by and by 2 (=2 1 ) if s[1] is set, 1 (=2 0 ) if s[0] is set A shift by 2 j is trivial: it s just a lane change made purely with wires sh Copyright Bluespec Inc L06-27 Synchronous Pipeline with Regs s 3 [0] [1] [2] x n sx0 mux mux mux sh 1 sh 2 sh 4 sx1 sx2 sx3 n step_1 step_2 step_3 rule all_together; sx1 <= step_1(sx0); sx2 <= step_2(sx1); sx3 <= step_3(sx2); Copyright Bluespec Inc L06-28
15 Asynchronous Pipeline with FIFOs (Regs with interlocks) s 3 s 0 s 1 s 2 x n mux sh 1 sh 2 sh 4 fifo 0 fifo 1 fifo 2 fifo 3 mux mux n rule stage_1; sx0 <- fifo0.pop; fifo1.enq (step_1(sx0)); rule stage_2; sx1 <- fifo1.pop; fifo2.enq (step_2(sx1)); rule stage_3; sx2 <- fifo2.pop; fifo3.enq (step_3(sx2)); Copyright Bluespec Inc L06-29 Remarks In the synchronous pipeline, we compose actions in parallel All stages move data simultaneously, in lockstep (atomic!) In the asynchronous pipeline, we compose rules in parallel Stages can move independently (each stage can move when its input FIFO has data and its output FIFO has room) If we had used parallel action composition instead, all stages would have to move in lockstep, and could only move when all stages were able to move Your design goals will suggest which kind of composition is appropriate in each situation Copyright Bluespec Inc L06-30
16 Summary: rule scheduling Bluespec synthesis only adds this part Rule1 Rule Control State Action1 RuleN Data Select D Q ActionN Cond1 CondN Scheduler Enable Scheduler ensures consistency with Rule semantics Usually the most error-prone part of hand-written RTL Here, correct by construction Bluespec patented technology Copyright Bluespec Inc L06-31 End of Lecture Copyright Bluespec, Inc.,
Bluespec-4: Rule Scheduling and Synthesis. Synthesis: From State & Rules into Synchronous FSMs
Bluespec-4: Rule Scheduling and Synthesis Arvind Computer Science & Artificial Intelligence Lab Massachusetts Institute of Technology Based on material prepared by Bluespec Inc, January 2005 March 2, 2005
More informationor Arvind goes commercial Joe Stoy, May
or Arvind goes commercial Joe Stoy, May 18 2007 Bluespec, Inc., 2006 Network evolution: IP Sprawl Managed Switch/Router Professional Park ADM Metropolitan Area or Regional Area Service Provider ADM ADM
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 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 informationModule Interfaces and Concurrency
Module Interfaces and Concurrency Arvind Computer Science and Artificial Intelligence Laboratory M.I.T. L12-1 Design Alternatives: Latency and Throughput Combinational (C) Pipeline (P) Folded: Reuse a
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 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 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 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 informationRegister 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 informationVerification with Bluespec SystemVerilog Bluespec, Inc., All Rights Reserved
Verification with Bluespec SystemVerilog 2005 2006 Bluespec, Inc., All Rights Reserved 1 Abstract Bluespec SystemVerilog (BSV) is an advanced high-level Hardware Description Language that can increase
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 informationThe Need of Datapath or Register Transfer Logic. Number 1 Number 2 Number 3 Number 4. Numbers from 1 to million. Register
The Need of Datapath or Register Transfer Logic Number 1 Number 2 Number 3 Number 4 Numbers from 1 to million Register (a) (b) Circuits to add several numbers: (a) combinational circuit to add four numbers;
More informationL2: Design Representations
CS250 VLSI Systems Design L2: Design Representations John Wawrzynek, Krste Asanovic, with John Lazzaro and Yunsup Lee (TA) Engineering Challenge Application Gap usually too large to bridge in one step,
More informationHardware Synthesis from Bluespec
Hardware Synthesis from Bluespec Silvina Hanono Wachman Computer Science & Artificial Intelligence Lab. Massachusetts Institute of Technology Happy! Day! L11-1 Guarded interfaces Modules with guarded interfaces
More informationSubject: Scheduling Region Questions and Problems of new SystemVerilog commands
Subject: Scheduling Region Questions and Problems of new SystemVerilog commands I have read and re-read sections 14-17 of the SystemVerilog 3.1 Standard multiple times and am still confused about exactly
More informationVERILOG: FLIP-FLOPS AND REGISTERS
VERILOG: FLIP-FLOPS AND REGISTERS Semiconductor Memories Single-bit or Memory (Foreground) Individual memory circuits that store a single bit of information and have at least a 1) data input, 2) data output,
More informationProductive Design of Extensible Cache Coherence Protocols!
P A R A L L E L C O M P U T I N G L A B O R A T O R Y Productive Design of Extensible Cache Coherence Protocols!! Henry Cook, Jonathan Bachrach,! Krste Asanovic! Par Lab Summer Retreat, Santa Cruz June
More informationMultiple Clock Domains
Multiple Clock Domains (MCD) Arvind with Nirav Dave Computer Science & Artificial Intelligence Lab Massachusetts Institute of Technology March 15, 2010 http://csg.csail.mit.edu/6.375 L12-1 Plan Why Multiple
More informationMODELING LANGUAGES AND ABSTRACT MODELS. Giovanni De Micheli Stanford University. Chapter 3 in book, please read it.
MODELING LANGUAGES AND ABSTRACT MODELS Giovanni De Micheli Stanford University Chapter 3 in book, please read it. Outline Hardware modeling issues: Representations and models. Issues in hardware languages.
More informationController FSM Design Issues : Correctness and Efficiency. Lecture Notes # 10. CAD Based Logic Design ECE 368
ECE 368 CAD Based Logic Design Lecture Notes # 10 Controller FSM Design Issues : Correctness and Efficiency SHANTANU DUTT Department of Electrical & Computer Engineering University of Illinois, Chicago
More informationLecture 12 VHDL Synthesis
CPE 487: Digital System Design Spring 2018 Lecture 12 VHDL Synthesis Bryan Ackland Department of Electrical and Computer Engineering Stevens Institute of Technology Hoboken, NJ 07030 1 What is Synthesis?
More informationPipelining combinational circuits
Constructive Computer Architecture: Pipelining combinational circuits Arvind Computer Science & Artificial Intelligence Lab. Massachusetts Institute of Technology September 18, 2013 http://csg.csail.mit.edu/6.s195
More informationHomework deadline extended to next friday
Norm Midterm Grading Finished Stats on course homepage Pickup after this lab lec. Regrade requests within 1wk of posted solution Homework deadline extended to next friday Description Design Conception
More informationSection 8. The Basic Step Algorithm
Section 8. The Basic Step Algorithm Inputs The status of the system The current time A list of external changes presented by the environment since the last step Comments Scheduled action appears in the
More informationPipelined RISC-V Processors
Due date: Tuesday November 20th 11:59:59pm EST Getting started: To create your initial Lab 7 repository, please visit the repository creation page at https://6004.mit.edu/web/fall18/user/labs/lab7. Once
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 informationA Process Model suitable for defining and programming MpSoCs
A Process Model suitable for defining and programming MpSoCs MpSoC-Workshop at Rheinfels, 29-30.6.2010 F. Mayer-Lindenberg, TU Hamburg-Harburg 1. Motivation 2. The Process Model 3. Mapping to MpSoC 4.
More informationIntroduction to Electronic Design Automation. Model of Computation. Model of Computation. Model of Computation
Introduction to Electronic Design Automation Model of Computation Jie-Hong Roland Jiang 江介宏 Department of Electrical Engineering National Taiwan University Spring 03 Model of Computation In system design,
More informationstructure 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 informationHere 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 informationUnit 2: High-Level Synthesis
Course contents Unit 2: High-Level Synthesis Hardware modeling Data flow Scheduling/allocation/assignment Reading Chapter 11 Unit 2 1 High-Level Synthesis (HLS) Hardware-description language (HDL) synthesis
More informationVerilog Lecture Gandhi Puvvada, USC always statements, Coding a Flip-Flop. blocking and non-blocking assignments. Copyright 2008 Gandhi Puvvada 1
EE201L and EE560 Verilog Lecture by Gandhi Puvvada, USC always statements, t t Coding a Flip-Flop Counters, Basics of Data Path, blocking and non-blocking assignments Copyright 2008 Gandhi Puvvada 1 always
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 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 informationPipelining combinational circuits
Pipelining combinational circuits Arvind Computer Science & Artificial Intelligence Lab. Massachusetts Institute of Technology February 20, 2013 http://csg.csail.mit.edu/6.375 L05-1 Combinational IFFT
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 informationECE 2300 Digital Logic & Computer Organization. More Verilog Finite State Machines
ECE 2300 Digital Logic & Computer Organization Spring 2017 More Verilog Finite State Machines Lecture 8: 1 Announcements 1 st batch of (raw) quiz scores released on CMS Solutions to HW 1-3 released on
More informationVHDL: 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 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 informationECE 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 informationVHDL vs. BSV: A case study on a Java-optimized processor
VHDL vs. BSV: A case study on a Java-optimized processor April 18, 2007 Outline Introduction Goal Design parameters Goal Design parameters What are we trying to do? Compare BlueSpec SystemVerilog (BSV)
More informationECE 4514 Digital Design II. Spring Lecture 7: Dataflow Modeling
ECE 4514 Digital Design II Lecture 7: Dataflow Modeling A language Lecture Today's topic Dataflow Modeling input input input module output output Model with submodules and gates = Structural Model with
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 informationDigital Integrated Circuits
Digital Integrated Circuits Lecture 4 Jaeyong Chung System-on-Chips (SoC) Laboratory Incheon National University BCD TO EXCESS-3 CODE CONVERTER 0100 0101 +0011 +0011 0111 1000 LSB received first Chung
More information2. Introduction to Software for Embedded Systems
2. Introduction to Software for Embedded Systems Lothar Thiele ETH Zurich, Switzerland 2-1 Contents of Lectures (Lothar Thiele) 1. Introduction to Embedded System Design 2. Software for Embedded Systems
More informationPART A (22 Marks) 2. a) Briefly write about r's complement and (r-1)'s complement. [8] b) Explain any two ways of adding decimal numbers.
Set No. 1 IV B.Tech I Semester Supplementary Examinations, March - 2017 COMPUTER ARCHITECTURE & ORGANIZATION (Common to Electronics & Communication Engineering and Electronics & Time: 3 hours Max. Marks:
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 informationAchieving Timing Closure with Bluespec SystemVerilog
Achieving Timing Closure with Bluespec SystemVerilog White Paper August 18, 2004 2004, Bluespec, Inc. All rights reserved Introduction Achieving timing closure becomes increasingly difficult with more
More informationSt.MARTIN S ENGINEERING COLLEGE Dhulapally, Secunderabad
St.MARTIN S ENGINEERING COLLEGE Dhulapally, Secunderabad-500 014 Subject: Digital Design Using Verilog Hdl Class : ECE-II Group A (Short Answer Questions) UNIT-I 1 Define verilog HDL? 2 List levels of
More informationRegister Transfer Methodology II
Register Transfer Methodology II Chapter 12 1 Outline 1. Design example: One shot pulse generator 2. Design Example: GCD 3. Design Example: UART 4. Design Example: SRAM Interface Controller 5. Square root
More informationOutline. Register Transfer Methodology II. 1. One shot pulse generator. Refined block diagram of FSMD
Outline Register Transfer Methodology II 1. Design example: One shot pulse generator 2. Design Example: GCD 3. Design Example: UART 4. Design Example: SRAM Interface Controller 5. Square root approximation
More informationHardware-Software Codesign. 6. System Simulation
Hardware-Software Codesign 6. System Simulation Lothar Thiele 6-1 System Design specification system simulation (this lecture) (worst-case) perf. analysis (lectures 10-11) system synthesis estimation SW-compilation
More informationFPGA 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 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 informationSpiral 1 / Unit 6. Flip-flops and Registers
1-5.1 Spiral 1 / Unit 6 Flip-flops and Registers 1-5.2 Outcomes I know the difference between combinational and sequential logic and can name examples of each. I understand latency, throughput, and at
More informationLaboratory Exercise 7
Laboratory Exercise 7 Finite State Machines This is an exercise in using finite state machines. Part I We wish to implement a finite state machine (FSM) that recognizes two specific sequences of applied
More informationSynthesis of Language Constructs. 5/10/04 & 5/13/04 Hardware Description Languages and Synthesis
Synthesis of Language Constructs 1 Nets Nets declared to be input or output ports are retained Internal nets may be eliminated due to logic optimization User may force a net to exist trireg, tri0, tri1
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 informationCOMPUTER ORGANIZATION AND DESIGN
ARM COMPUTER ORGANIZATION AND DESIGN Edition The Hardware/Software Interface Chapter 4 The Processor Modified and extended by R.J. Leduc - 2016 To understand this chapter, you will need to understand some
More information1 Hazards COMP2611 Fall 2015 Pipelined Processor
1 Hazards Dependences in Programs 2 Data dependence Example: lw $1, 200($2) add $3, $4, $1 add can t do ID (i.e., read register $1) until lw updates $1 Control dependence Example: bne $1, $2, target add
More informationECEU530. Schedule. ECE U530 Digital Hardware Synthesis. Datapath for the Calculator (HW 5) HW 5 Datapath Entity
ECE U530 Digital Hardware Synthesis Prof. Miriam Leeser mel@coe.neu.edu November 6, 2006 Classes November 6 and 8 are in 429 Dana! Lecture 15: Homework 5: Datapath How to write a testbench for synchronous
More informationScheduling as Rule Composition
Scheduling as Rule Composition Nirav Dave, Arvind & Michael Pellauer Computer Science and Artificial Intelligence Lab Massachusetts Institute of Technology Cambridge, Massachusetts 02139 Email: {ndave,
More informationQuick 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 informationDealing with Issues for Interprocess Communication
Dealing with Issues for Interprocess Communication Ref Section 2.3 Tanenbaum 7.1 Overview Processes frequently need to communicate with other processes. In a shell pipe the o/p of one process is passed
More informationLow-level optimization
Low-level optimization Advanced Course on Compilers Spring 2015 (III-V): Lecture 6 Vesa Hirvisalo ESG/CSE/Aalto Today Introduction to code generation finding the best translation Instruction selection
More informationEE 4755 Digital Design Using Hardware Description Languages
EE 4755 Digital Design Using Hardware Description Languages Basic Information URL: http://www.ece.lsu.edu/v Offered by: David M. Koppelman, Room 3316R P. F. Taylor Hall 578-5482. koppel@ece.lsu.edu, http://www.ece.lsu.edu/koppel/koppel.html
More informationARM 64-bit Register File
ARM 64-bit Register File Introduction: In this class we will develop and simulate a simple, pipelined ARM microprocessor. Labs #1 & #2 build some basic components of the processor, then labs #3 and #4
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 informationConcurrency. Glossary
Glossary atomic Executing as a single unit or block of computation. An atomic section of code is said to have transactional semantics. No intermediate state for the code unit is visible outside of the
More informationMultiprocessors II: CC-NUMA DSM. CC-NUMA for Large Systems
Multiprocessors II: CC-NUMA DSM DSM cache coherence the hardware stuff Today s topics: what happens when we lose snooping new issues: global vs. local cache line state enter the directory issues of increasing
More informationSequential Circuits. Combinational circuits
ecoder emux onstructive omputer Architecture Sequential ircuits Arvind omputer Science & Artificial Intelligence Lab. Massachusetts Institute of Technology L04-1 ombinational circuits A 0 A 1 A n-1 Sel...
More informationChapter 2 Using Hardware Description Language Verilog. Overview
Chapter 2 Using Hardware Description Language Verilog CSE4210 Winter 2012 Mokhtar Aboelaze based on slides by Dr. Shoab A. Khan Overview Algorithm development isa usually done in MATLAB, C, or C++ Code
More informationCS 110 Computer Architecture. Pipelining. Guest Lecture: Shu Yin. School of Information Science and Technology SIST
CS 110 Computer Architecture Pipelining Guest Lecture: Shu Yin http://shtech.org/courses/ca/ School of Information Science and Technology SIST ShanghaiTech University Slides based on UC Berkley's CS61C
More informationScheduling as Rule Composition
Scheduling as Rule Composition Nirav Dave, Arvind & Michael Pellauer Computer Science and Artificial Intelligence Lab Massachusetts Institute of Technology Cambridge, Massachusetts 02139 Email: {ndave,
More informationINSTITUTE OF AERONAUTICAL ENGINEERING Dundigal, Hyderabad ELECTRONICS AND COMMUNICATIONS ENGINEERING
INSTITUTE OF AERONAUTICAL ENGINEERING Dundigal, Hyderabad - 00 0 ELECTRONICS AND COMMUNICATIONS ENGINEERING QUESTION BANK Course Name : DIGITAL DESIGN USING VERILOG HDL Course Code : A00 Class : II - B.
More informationEE382N.23: Embedded System Design and Modeling
EE382N.23: Embedded System Design and Modeling Lecture 3 Language Semantics Andreas Gerstlauer Electrical and Computer Engineering University of Texas at Austin gerstl@ece.utexas.edu Lecture 3: Outline
More informationThe UNIVERSITY of NORTH CAROLINA at CHAPEL HILL
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Comp 541 Digital Logic and Computer Design Prof. Montek Singh Fall 2017 Lab #3A: Sequential Design: Counters Issued Wed 9/6/17; Due Wed 9/13/17 (11:59pm)
More informationCourse Topics - Outline
Course Topics - Outline Lecture 1 - Introduction Lecture 2 - Lexical conventions Lecture 3 - Data types Lecture 4 - Operators Lecture 5 - Behavioral modeling A Lecture 6 Behavioral modeling B Lecture 7
More informationI 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 informationEECS150 - Digital Design Lecture 17 Memory 2
EECS150 - Digital Design Lecture 17 Memory 2 October 22, 2002 John Wawrzynek Fall 2002 EECS150 Lec17-mem2 Page 1 SDRAM Recap General Characteristics Optimized for high density and therefore low cost/bit
More informationLecture 14. Synthesizing Parallel Programs IAP 2007 MIT
6.189 IAP 2007 Lecture 14 Synthesizing Parallel Programs Prof. Arvind, MIT. 6.189 IAP 2007 MIT Synthesizing parallel programs (or borrowing some ideas from hardware design) Arvind Computer Science & Artificial
More informationIntroduction to Verilog
Introduction to Verilog Synthesis and HDLs Verilog: The Module Continuous (Dataflow) Assignment Gate Level Description Procedural Assignment with always Verilog Registers Mix-and-Match Assignments The
More informationVHDL Sample Slides Rev Sample Slides from the 2-day and 4-day VHDL Training Courses
VHDL Sample Slides from the 2-day and 4-day VHDL Training Courses Rev. 4.7 VHDL 2011 TM Associates, Inc. 1-1 These sample slides are taken from the 4-day basic VHDL training course. They are from a variety
More informationLecture 25: Synchronization. James C. Hoe Department of ECE Carnegie Mellon University
18 447 Lecture 25: Synchronization James C. Hoe Department of ECE Carnegie Mellon University 18 447 S18 L25 S1, James C. Hoe, CMU/ECE/CALCM, 2018 Your goal today Housekeeping be introduced to synchronization
More informationHigh-Level Synthesis (HLS)
Course contents Unit 11: High-Level Synthesis Hardware modeling Data flow Scheduling/allocation/assignment Reading Chapter 11 Unit 11 1 High-Level Synthesis (HLS) Hardware-description language (HDL) synthesis
More informationEEL 4783: HDL in Digital System Design
EEL 4783: HDL in Digital System Design Lecture 15: Logic Synthesis with Verilog Prof. Mingjie Lin 1 Verilog Synthesis Synthesis vs. Compilation Descriptions mapped to hardware Verilog design patterns for
More informationRIZALAFANDE CHE ISMAIL TKT. 3, BLOK A, PPK MIKRO-e KOMPLEKS PENGAJIAN KUKUM. SYNTHESIS OF COMBINATIONAL LOGIC (Chapter 8)
RIZALAFANDE CHE ISMAIL TKT. 3, BLOK A, PPK MIKRO-e KOMPLEKS PENGAJIAN KUKUM SYNTHESIS OF COMBINATIONAL LOGIC (Chapter 8) HDL-BASED SYNTHESIS Modern ASIC design use HDL together with synthesis tool to create
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 informationVerilog Behavioral Modeling
Verilog Behavioral Modeling Lan-Da Van ( 范倫達 ), Ph. D. Department of Computer Science National Chiao Tung University Taiwan, R.O.C. Spring, 2017 ldvan@cs.nctu.edu.tw http://www.cs.nctu.edu.tw/~ldvan/ Source:
More informationLogic Circuits II ECE 2411 Thursday 4:45pm-7:20pm. Lecture 3
Logic Circuits II ECE 2411 Thursday 4:45pm-7:20pm Lecture 3 Lecture 3 Topics Covered: Chapter 4 Discuss Sequential logic Verilog Coding Introduce Sequential coding Further review of Combinational Verilog
More informationSimple Behavioral Model: the always block
Simple Behavioral Model: the always block always block Always waiting for a change to a trigger signal Then executes the body module and_gate (out, in1, in2); input in1, in2; output out; reg out; always
More informationA Finer Functional Fibonacci on a Fast fpga
A Finer Functional Fibonacci on a Fast fpga Stephen A. Edwards Columbia University, Department of Computer Science Technical Report CUCS 005-13 February 2013 Abstract Through a series of mechanical, semantics-preserving
More informationECE 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 informationEECS150: Components and Design Techniques for Digital Systems
EECS150: Components and Design Techniques for Digital Systems University of California Dept. of Electrical Engineering and Computer Sciences Midterm 3 Fall 2004 Last name: First name Student ID: Login:
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 informationMultiple Clock Domains
Multiple Clock Domains Arvind Computer Science & Artificial Intelligence Lab Massachusetts Institute of Technology Based on material prepared by Bluespec Inc L13-1 Why Multiple Clock Domains Arise naturally
More information08 - Address Generator Unit (AGU)
October 2, 2014 Todays lecture Memory subsystem Address Generator Unit (AGU) Schedule change A new lecture has been entered into the schedule (to compensate for the lost lecture last week) Memory subsystem
More informationCSL373: Lecture 5 Deadlocks (no process runnable) + Scheduling (> 1 process runnable)
CSL373: Lecture 5 Deadlocks (no process runnable) + Scheduling (> 1 process runnable) Past & Present Have looked at two constraints: Mutual exclusion constraint between two events is a requirement that
More informationPart II Process Management Chapter 6: Process Synchronization
Part II Process Management Chapter 6: Process Synchronization 1 Process Synchronization Why is synchronization needed? Race Conditions Critical Sections Pure Software Solutions Hardware Support Semaphores
More information