or Arvind goes commercial Joe Stoy, May

Size: px
Start display at page:

Download "or Arvind goes commercial Joe Stoy, May"

Transcription

1 or Arvind goes commercial Joe Stoy, May Bluespec, Inc., 2006

2 Network evolution: IP Sprawl Managed Switch/Router Professional Park ADM Metropolitan Area or Regional Area Service Provider ADM ADM Downtown Financial District ADM High tech Center Servers Managed Switch/Router Managed Switch/Router Workstations LAN Storage Arrays SAN Remote back-office Storage Storage Arrays LAN SAN Servers Internet data center Servers LAN Enterprise

3 Network evolution: IP Sprawl Managed Switch/Router Professional Park ADM Metropolitan Area or Regional Area Service Provider ADM ADM Downtown Financial District ADM High tech Center Servers Managed Switch/Router Managed Switch/Router Workstations LAN Storage Arrays SAN Remote back-office Storage Storage Arrays LAN SAN Servers Internet data center Servers LAN Enterprise

4 HIBEAM: Packet-Switch Architecture Line Card Fabric Card Route table Packet Buffer Forwarding Engine (FE) IPv4, MPLS & Ethernet Packet Forwarding 500K IP entries 1M MPLS labels 1000 Layer 2/3/4 rules Packet Processing Queuing Engine (QE) Bandwidth Manager (BM) Traffic Management DiffServ model Policing/Scheduling/Shaping Packet Switching single store & forward 1 to 64 10G ports Global bandwidth control functions Traffic Mgmt & Switching 4

5 Delivering Efficient switch fabrics and building blocks for 10G IP differentiated services lower cost higher port density less power 5

6 ..by rewriting the rules for semiconductor development Development time (months) Sandburst s revolutionary BlueSpec TM technology reduces ASIC development time by up to 50%! Design Complexity (gates) 6

7 What is BlueSpec A language for hardware description Based on TRS (term rewriting systems) Syntax and type system based on Haskell Run-time execution model quite unlike Haskell s Compiled to structural Verilog... or C... or FPGAs. 7

8 Bluespec at Sandburst Lennart Augustsson designed the Bluespec language Notation, type system, and static abstraction mechanisms borrow heavily from Haskell Designed and implemented the compiler v1 circa 7/2000, v2 circa 9/2000, v3 11/2001 Mieszko Lis implemented the scheduler Initially produced just Verilog Process/execute with std. Verilog tools Later (10/2000) also produced C C code is "cycle accurate" to the Verilog Can mix Bluespec-generated code with other code (hand-written Verilog, legacy Verilog, imported IP,...) 8

9 The Bluespec team Rishiyur Nikhil, Director (DEC/Compaq Research, MIT) Lennart Augustsson (CRT, Chalmers) Stephen Bailey (DEC, startups) Joe Stoy (Oxford) Mieszko Lis (MIT) Jacob Schwartz (MIT) Dan Rosenband (MIT) plus Arvind Consultants Professor James Hoe (CMU) Professor Krste Asanovic (MIT) Professor Srini Devadas (MIT) Niklas Rojemo (Sweden) 9

10 BlueSpec TM Advantage: HIBEAM Development Cycle accurate C and Verilog models for all four chips and the system Q2'01 Q3'01 Q1 02 Q2 02 Model generation enables early customer engagements 10

11 Bluespec use at Sandburst HIBEAM chip set system model for performance analysis close to 15K lines of Bluespec April 2001 through the present Mesa "pathfinding" project Goal: flesh out the Bluespec "design flow" Understand how Bluespec design fits into the larger picture of the full ASIC design process 6/2001 through 11/

12 Development Roadmap HIBEAM Xbar-16 Xbar-32 (ADI) Xbar-64 (ADI) BM-16 QE FE1 BM-32 BM-64 Mesa BlueSpec Trailblazer QE2 For FE2 SAN? More FE2 rules? IP Duplex? Storage? Verilog coding BlueSpec coding Jan 02 Apr 02 Jul 02 Oct 02 Jan 03 Apr 03 Jul 03 Oct 03 Jan 04 12

13 Bluespec, Inc. background on high-level synthesis & verification Technology Sandburst Corp: 10Gb/s core router ASICs (Bluespec: further technology development) VC funding Technology VC funding Bluespec, Inc.: highlevel design and synthesis tool (SystemVerilog-based) ~

14 14

15 The Bluespec team Rishiyur Nikhil, Director (DEC/Compaq Research, MIT) Lennart Augustsson (CRT, Chalmers) Stephen Bailey (DEC, startups) Joe Stoy (Oxford) Mieszko Lis (MIT) Jacob Schwartz (MIT) Dan Rosenband (MIT) plus Arvind 15

16 Evolution of HDLs (Hardware Description Languages) Hand-drawn circuit diagrams (schematics) Schematic Capture (automated) ~1985 Text-based RTL langs: Verilog & VHDL 2004 SystemVerilog (Accellera) IEEE Verilog standards (also VHDL standards) 2005 IEEE ? time (RTL = Register-Transfer Level) 16

17 Bluespec: Better Design Accelerates Everything! Architectural exploration More architectural flexibility during design Early executable models Architecture Design Verification and Test Physical Design 50% reduction from design to verified netlist Faster fixes, to achieve closure 50% reduction in errors, faster correction Better reuse Fully synthesizable without compromise! 17

18 Bluespec SystemVerilog A one slide overview Bluespec SystemVerilog Rules and Rule-based Interfaces For complex concurrency and control, across multiple shared resources, across module boundaries High-level abstract types Powerful static checking Powerful parameterization Powerful static elaboration Advanced clock management Behavioral Two dimensions raising the level of abstraction (fully synthesizable) Structural VHDL/Verilog/SystemVerilog/SystemC 18

19 Bluespec SystemVerilog A one-slide overview Bluespec SystemVerilog Rules and Rule-based Interfaces For complex concurrency and control, across multiple shared resources, across module boundaries High-level abstract types Powerful static checking Powerful parameterization Powerful static elaboration Advanced clock management Behavioral Two dimensions raising the level of abstraction (fully synthesizable) Structural VHDL/Verilog/SystemVerilog/SystemC 19

20 One-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; endrule : decr rule swap (x > y && y!= 0); x <= y; y <= x; endrule: swap Answer: Euclid s algorithm for computing GCD (Greatest Common Divisor) of initial values in x and y registers; result is in x 20

21 Suppose we want to execute just one rule The HW would be quite simple rule decr ( x <= y && y!= 0 ); y <= y - x; endrule : 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 21

22 Two mutually exclusive rules (Later: what to do if they re not mutually exclusive) rule decr ( x <= y && y!= 0 ); y <= y - x; endrule : decr rule swap (x > y && y!= 0); x <= y; y <= x; endrule: swap decr cond swap data select D EN D state y x Q Q cond scheduler EN 22

23 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 cond Therefore, rule conds can be evaluated based on state at beginning of cycle Rule1 body does not feed into Rule2 body Therefore, Rule2 can use state from beginning of cycle 23

24 Practical Rule Composition Rules Ri Rj Rk rule steps HW Rj Rk Ri 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 24

25 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-at-a-time semantics compared to concurrent execution, certain concurrent executions would result in inconsistent states Certain resource sharings prevent concurrency 25

26 rule r1 (c1); x <= y + 1; endrule Conflict Rule untimed semantics: r1 and then r2 ( r1<r2 ), or r2 and then r1 ( r2<r1 ) x y rule r2 (c2); y <= x + 2; endrule 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 26

27 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 False WILL_FIRE is False CAN_FIRE is True WILL_FIRE is True if not precluded by conflicts with other rules False otherwise (the rule is blocked for this cycle) 27

28 Bluespec SystemVerilog A one-slide overview Bluespec SystemVerilog Rules and Rule-based Interfaces For complex concurrency and control, across multiple shared resources, across module boundaries High-level abstract types Powerful static checking Powerful parameterization Powerful static elaboration Advanced clock management Behavioral Two dimensions raising the level of abstraction (fully synthesizable) Structural VHDL/Verilog/SystemVerilog/SystemC 28

29 Modules, rules, interfaces, methods module interface state The big picture: modules contain rules which use methods that are provided by sub-modules in their interfaces. Methods, too, can use other methods. rule 29

30 Multiplier Example module mktest (); Reg#(int) state <- mkreg(0); Mult_ifc m <- mkmult1(); interface Mult_ifc; method Action start (Tin x, Tin y); method Tout result (); endinterface: Mult_ifc rule go (state == 0); m.start (9, 5); state <= 1; endrule rule finish (state == 1); $display ( Product = %d,m.result()); state <= 2; endrule endmodule: mktest module mkmult1 (Mult_ifc); Reg#(Tout) product <- mkreg(0); Reg#(Tout) d <- mkreg(0); Reg#(Tin) r <- mkreg(0); rule cycle (r!= 0); if (r[0] == 1) product <= product + d; d <= d << 1; r <= r >> 1; endrule method Action start (x,y) if (r == 0); d <= x; r <= y; product <= 0; endmethod method result () if (r == 0); return product; endmethod endmodule: mkmult1 30

31 Multiplier Example mktest :: Module Empty mktest = module state :: Reg int state <- mkreg 0 m :: Mult_ifc m <- mkmult1 rules go : when state == 0 ==> m.start (9, 5) state := 1 finish : when state == 1 ==> $display ( Product = %d,m.result()) state := 2 interface Mult_ifc = start :: Tin ->Tin -> Action result :: Tout mkmult1 :: Module Mult_ifc mkmult1 = module product :: Reg Tout product <- mkreg 0 d :: Reg Tout d <- mkreg 0 r :: Reg Tin r <- mkreg 0 rules cycle : when r /= 0 ==> if r[0] == 1 product := product + d d := d << 1 r := r >> 1 interface start x y = action { d:=x; r:=y; } when r == 0 result = product when r == 0 31

32 Multiplier Example ESL_MODULE (mktest, ESL_EMPTY) { esl_reg<int> state; Mult_ifc * m; ESL_RULE (go, state == 0) { m->start (9, 5); state = 1; } ESL_RULE (finish, state == 1) { cout << Product = << m->result() << endl; state = 2; } ESL_INTERFACE ( Mult_ifc ) { ESL_ACTION_METHOD_INTERFACE (start, Tin x,tin y); ESL_VALUE_METHOD_INTERFACE (result, Tout); } } ESL_CTOR (mktest) { ESL_NEW_REG(state, int, 0); m = new mkmult1(); ESL_END_CTOR; } 32

33 Concern: the learning curve Hardware designers: Atomic means (if anything) in the same clock cycle Bluespec: Many atomic actions in same cycle, as if they happened one at a time 33

34 Concern: the learning curve Hardware designers: Begin by designing the overall finite state machine to control the design Bluespec: Design little rules locally: the compiler will generate the overall logic 34

35 Simple example with concurrency and shared resources cond0 cond1 cond x y Process priority: 2 > 1 > 0 Process 0: increments register x when cond0 Process 1: transfers a unit from register x to register y when cond1 Process 2: decrements register y when cond2 Each register can only be updated by one process on each clock. Priority: 2 > 1 > 0 Just like real applications, e.g.: Packet arrives, is processed, departs 35

36 cond0 cond1 cond Process priority: 2 > 1 > 0 x y Which one is correct? CLK) begin if (!cond2 && cond1) x <= x 1; else if (cond0) x <= x + 1; if (cond2) y <= y 1; else if (cond1) y <= y + 1; end CLK) begin if (!cond2 cond1) x <= x 1; else if (cond0) x <= x + 1; if (cond2) y <= y 1; else if (cond1) y <= y + 1; end What s required to verify that they re correct? What if the priorities changed: cond1 > cond2 > cond0? What if the processes are in different modules? 36

37 With Bluespec, the design is direct cond0 cond1 cond x y Process priority: 2 > 1 > 0 (* descending_urgency = proc2, proc1, proc0 *) rule proc0 (cond0); x <= x + 1; endrule rule proc1 (cond1); y <= y + 1; x <= x 1; endrule rule proc2 (cond2); y <= y 1; endrule Hand-written RTL: Complexity due to: State-centric (for synthesizability) Scheduling clutter BSV: Functional correctness follows directly from rule semantics Executable spec (operation-centric) Automatic handling of shared resource mux logic Same hardware as the RTL 37

38 Now, let s make a small change: add a new process and insert its priority cond0 cond1 cond x cond3 Process priority: 2 > 3 > 1 > 0 y

39 Changing the Bluespec design cond0 cond1 cond2 Process priority: 2 > 3 > 1 > x Pre-Change cond3 y -1 2 (* descending_urgency = "proc2, proc3, proc1, proc0" *) (* descending_urgency = proc2, proc1, proc0 *) rule proc0 (cond0); x <= x + 1; endrule rule proc1 (cond1); y <= y + 1; x <= x 1; endrule rule proc2 (cond2); y <= y 1; endrule rule proc0 (cond0); x <= x + 1; endrule rule proc1 (cond1); y <= y + 1; x <= x - 1; endrule rule proc2 (cond2); y <= y - 1; x <= x + 1; endrule rule proc3 (cond3); y <= y - 2; x <= x + 2; endrule? 39

40 Changing the Verilog design cond0 cond1 cond2 Process priority: 2 > 3 > 1 > x y -1 2 cond3 Pre-Change CLK) begin if (!cond2 && cond1) x <= x 1; else if (cond0) x <= x + 1; if (cond2) y <= y 1; else if (cond1) y <= y + 1; end CLK) begin if ((cond2 && cond0) (cond0 &&!cond1 &&!cond3)) x <= x + 1; else if (cond3 &&?!cond2) x <= x + 2; else if (cond1 &&!cond2) x <= x - 1 if (cond2) y <= y - 1; else if (cond3) y <= y - 2; else if (cond1) y <= y + 1; end 40

41 Concern: the learning curve Other ways to make customers immediately productive Offer generic IP they can use off the shelf with very little training They can customize But then they ll have to learn more, to do so 41

42 So how does Arvind fit into this? Board member Provides longer-term view of the technical development 42

43 A FIFO problem module mkfifo(fifo#(t)) provisos(bits#(t,ts)); Reg#(t) dta <- mkregu; Reg#(Bool) full <- mkreg(false); method push(t x) if (!full); full <= True; dta <= x; endmethod method t pop() if (full); full <= False; return dta; endmethod endmodule 43

44 A FIFO problem Immediate solution (Bluespec) Invent wires Wires similar to registers, but: Registers: Read early in clock cycle, written at end Wires: Written first, read later Value goes away at end of cycle 44

45 A FIFO problem Immediate solution (Bluespec) New primitive: no great upheaval to language Methods set wires; an internal rule makes the appropriate state change Allows the problem to be overcome by enhancing the FIFO s design 45

46 A FIFO problem Immediate solution (Bluespec) But: Separating method from state change breaks atomicity needs care to get internal behavior right Leads users into bad practices, and spaghetti-like designs 46

47 A FIFO problem Longer-term solution (Arvind) Extend language: allow designers to specify scheduling requirements Performance Guarantees Allow pop before push in same cycle Compiler generates necessary hardware Cleaner; more robust Need more intuition about what the compiler will do 47

48 A Final Concern Has Arvind s fame spread far and wide? 48

49 c:\users\stoy>finger [mit.edu] 1 Student data loaded as of May 17, Staff data loaded as of May 17. Notify Personnel or use WebSIS as appropriate to change your information. Our on-line help system describes How to change data, how the directory works, where to get more info. For a listing of help topics, enter finger help@mit.edu. Try finger help_about@mit.edu to read about how the directory works. Directory bluepages may be found at There were 3 matches to your request. Complete information will be shown only when one individual matches your query. Resubmit your query with more information. For example, use both firstname and lastname or use the alias field. name: Arvind, Amarnath department: System Design And Management year: G alias: A-arvind name: Jairam, Arvind department: Lincoln Laboratory title: LL - Associate Staff alias: A-jairam name: Arvind department: Dept of Electrical Engineering & Computer Science title: Charles W & Jennifer C Johnson Professor in CS Eng alias: arvind c:\users\stoy> 49

50 c:\users\stoy>finger [mit.edu] 2 Student data loaded as of May 17, Staff data loaded as of May 17. Notify Personnel or use WebSIS as appropriate to change your information. Our on-line help system describes How to change data, how the directory works, where to get more info. For a listing of help topics, enter finger help@mit.edu. Try finger help_about@mit.edu to read about how the directory works. Directory bluepages may be found at There were 3 matches to your request. Complete information will be shown only when one individual matches your query. Resubmit your query with more information. For example, use both firstname and lastname or use the alias field. name: Arvind, Amarnath department: System Design And Management year: G alias: A-arvind name: Jairam, Arvind department: Lincoln Laboratory title: LL - Associate Staff alias: A-jairam name: Arvind department: Dept of Electrical Engineering & Computer Science title: Charles W & Jennifer C Johnson Professor in CS Eng alias: arvind c:\users\stoy> 50

51 Conclusion: Arvind is recursively impossible. 51

Lecture 06: Rule Scheduling

Lecture 06: Rule Scheduling Bluespec SystemVerilog Training Lecture 06: Rule Scheduling Copyright Bluespec, Inc., 2005-2008 Lecture 06: Rule Scheduling A rule has no internal sequencing Untimed rule semantics are one-rule-at-a-time

More information

Bluespec-4: Rule Scheduling and Synthesis. Synthesis: From State & Rules into Synchronous FSMs

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 information

Elastic Pipelines and Basics of Multi-rule Systems. Elastic pipeline Use FIFOs instead of pipeline registers

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

IBM Power Multithreaded Parallelism: Languages and Compilers. Fall Nirav Dave

IBM Power Multithreaded Parallelism: Languages and Compilers. Fall Nirav Dave 6.827 Multithreaded Parallelism: Languages and Compilers Fall 2006 Lecturer: TA: Assistant: Arvind Nirav Dave Sally Lee L01-1 IBM Power 5 130nm SOI CMOS with Cu 389mm 2 2GHz 276 million transistors Dual

More information

Sequential Circuits as Modules with Interfaces. Arvind Computer Science & Artificial Intelligence Lab M.I.T.

Sequential Circuits as Modules with Interfaces. Arvind Computer Science & Artificial Intelligence Lab M.I.T. Sequential Circuits as Modules with Interfaces Arvind Computer Science & Artificial Intelligence Lab M.I.T. L07-1 Shortcomings of the current hardware design practice Complex hardware is viewed as a bunch

More information

Bluespec SystemVerilog TM Training. Lecture 05: Rules. Copyright Bluespec, Inc., Lecture 05: Rules

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

Bluespec. 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 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 information

Architecture exploration in Bluespec

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

Hardware Synthesis from Bluespec

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

BeiHang Short Course, Part 2: Description and Synthesis

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

L2: Design Representations

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

Programmable Logic Devices HDL-Based Design Flows CMPE 415

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

Programming in the Brave New World of Systems-on-a-chip

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

Verilog Tutorial. Verilog Fundamentals. Originally designers used manual translation + bread boards for verification

Verilog Tutorial. Verilog Fundamentals. Originally designers used manual translation + bread boards for verification Verilog Fundamentals Verilog Tutorial History Data types Structural Verilog Functional Verilog Adapted from Krste Asanovic Originally designers used manual translation + bread boards for verification Hardware

More information

Verilog Tutorial 9/28/2015. Verilog Fundamentals. Originally designers used manual translation + bread boards for verification

Verilog Tutorial 9/28/2015. Verilog Fundamentals. Originally designers used manual translation + bread boards for verification Verilog Fundamentals Verilog Tutorial History Data types Structural Verilog Functional Verilog Adapted from Krste Asanovic Originally designers used manual translation + bread boards for verification Hardware

More information

Module Interfaces and Concurrency

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

ECE 4514 Digital Design II. Spring Lecture 13: Logic Synthesis

ECE 4514 Digital Design II. Spring Lecture 13: Logic Synthesis ECE 4514 Digital Design II A Tools/Methods Lecture Second half of Digital Design II 9 10-Mar-08 L13 (T) Logic Synthesis PJ2 13-Mar-08 L14 (D) FPGA Technology 10 18-Mar-08 No Class (Instructor on Conference)

More information

Synthesis of Synchronous Assertions with Guarded Atomic Actions

Synthesis of Synchronous Assertions with Guarded Atomic Actions Synthesis of Synchronous Assertions with Guarded Atomic Actions Michael Pellauer, Mieszko Lis, Donald Baltus, Rishiyur Nikhil Massachusetts Institute of Technology Bluespec, Inc. pellauer@csail.mit.edu,

More information

Hardware Design Verification: Simulation and Formal Method-Based Approaches William K Lam Prentice Hall Modern Semiconductor Design Series

Hardware Design Verification: Simulation and Formal Method-Based Approaches William K Lam Prentice Hall Modern Semiconductor Design Series Design Verification An Introduction Main References Hardware Design Verification: Simulation and Formal Method-Based Approaches William K Lam Prentice Hall Modern Semiconductor Design Series A Roadmap

More information

Register Transfer Level

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

More information

The Pipeline Lab Copyright Bluespec Inc

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

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

ECE 2300 Digital Logic & Computer Organization. More Sequential Logic Verilog ECE 2300 Digital Logic & Computer Organization Spring 2018 More Sequential Logic Verilog Lecture 7: 1 Announcements HW3 will be posted tonight Prelim 1 Thursday March 1, in class Coverage: Lectures 1~7

More information

Translating Haskell to Hardware. Lianne Lairmore Columbia University

Translating Haskell to Hardware. Lianne Lairmore Columbia University Translating Haskell to Hardware Lianne Lairmore Columbia University FHW Project Functional Hardware (FHW) Martha Kim Stephen Edwards Richard Townsend Lianne Lairmore Kuangya Zhai CPUs file: ///home/lianne/

More information

Lab 1: Hello World, Adders, and Multipliers

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

EECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis

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

More information

ECE Digital Engineering Laboratory. Designing for Synthesis

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

IP Lookup block in a router

IP Lookup block in a router P Lookup Arvind Computer Science & Artificial ntelligence Lab Massachusetts nstitute of Technology L07-1 P Lookup block in a router Packet Processor S (lookup table) P Lookup Line Card (LC) Control Processor

More information

Synthesizable Verilog

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

Verilog 1 - Fundamentals

Verilog 1 - Fundamentals Verilog 1 - Fundamentals FA FA FA FA module adder( input [3:0] A, B, output cout, output [3:0] S ); wire c0, c1, c2; FA fa0( A[0], B[0], 1 b0, c0, S[0] ); FA fa1( A[1], B[1], c0, c1, S[1] ); FA fa2( A[2],

More information

Spiral 1 / Unit 4 Verilog HDL. Digital Circuit Design Steps. Digital Circuit Design OVERVIEW. Mark Redekopp. Description. Verification.

Spiral 1 / Unit 4 Verilog HDL. Digital Circuit Design Steps. Digital Circuit Design OVERVIEW. Mark Redekopp. Description. Verification. 1-4.1 1-4.2 Spiral 1 / Unit 4 Verilog HDL Mark Redekopp OVERVIEW 1-4.3 1-4.4 Digital Circuit Design Steps Digital Circuit Design Description Design and computer-entry of circuit Verification Input Stimulus

More information

MODELING 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. 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 information

Verification with Bluespec SystemVerilog Bluespec, Inc., All Rights Reserved

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

Overview. Implementing Gigabit Routers with NetFPGA. Basic Architectural Components of an IP Router. Per-packet processing in an IP Router

Overview. Implementing Gigabit Routers with NetFPGA. Basic Architectural Components of an IP Router. Per-packet processing in an IP Router Overview Implementing Gigabit Routers with NetFPGA Prof. Sasu Tarkoma The NetFPGA is a low-cost platform for teaching networking hardware and router design, and a tool for networking researchers. The NetFPGA

More information

Graphics: Alexandra Nolte, Gesine Marwedel, Universität Dortmund. RTL Synthesis

Graphics: Alexandra Nolte, Gesine Marwedel, Universität Dortmund. RTL Synthesis Graphics: Alexandra Nolte, Gesine Marwedel, 2003 Universität Dortmund RTL Synthesis Purpose of HDLs Purpose of Hardware Description Languages: Capture design in Register Transfer Language form i.e. All

More information

DIGITAL DESIGN TECHNOLOGY & TECHNIQUES

DIGITAL DESIGN TECHNOLOGY & TECHNIQUES DIGITAL DESIGN TECHNOLOGY & TECHNIQUES CAD for ASIC Design 1 INTEGRATED CIRCUITS (IC) An integrated circuit (IC) consists complex electronic circuitries and their interconnections. William Shockley et

More information

structure syntax different levels of abstraction

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

More information

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

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

More information

Arvind (with the help of Nirav Dave) Computer Science & Artificial Intelligence Lab Massachusetts Institute of Technology

Arvind (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 information

Verilog for High Performance

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

More information

A Deterministic Flow Combining Virtual Platforms, Emulation, and Hardware Prototypes

A Deterministic Flow Combining Virtual Platforms, Emulation, and Hardware Prototypes A Deterministic Flow Combining Virtual Platforms, Emulation, and Hardware Prototypes Presented at Design Automation Conference (DAC) San Francisco, CA, June 4, 2012. Presented by Chuck Cruse FPGA Hardware

More information

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

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

More information

VHDL Sample Slides Rev Sample Slides from the 2-day and 4-day VHDL Training Courses

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

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

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

More information

COE 561 Digital System Design & Synthesis Introduction

COE 561 Digital System Design & Synthesis Introduction 1 COE 561 Digital System Design & Synthesis Introduction Dr. Aiman H. El-Maleh Computer Engineering Department King Fahd University of Petroleum & Minerals Outline Course Topics Microelectronics Design

More information

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

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

More information

Lab 1: A Simple Audio Pipeline

Lab 1: A Simple Audio Pipeline Lab 1: A Simple Audio Pipeline 6.375 Laboratory 1 Assigned: February 2, 2011 Due: February 11 2011 1 Introduction This lab is the beginning of a series of labs in which we will design the hardware for

More information

Synthesis of Combinational and Sequential Circuits with Verilog

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

Sunburst Design - Verilog-2001 Design & Best Coding Practices by Recognized Verilog & SystemVerilog Guru, Cliff Cummings of Sunburst Design, Inc.

Sunburst Design - Verilog-2001 Design & Best Coding Practices by Recognized Verilog & SystemVerilog Guru, Cliff Cummings of Sunburst Design, Inc. World Class Verilog & SystemVerilog Training Sunburst Design - Verilog-2001 Design & Best Coding Practices by Recognized Verilog & SystemVerilog Guru, Cliff Cummings of Sunburst Design, Inc. Cliff Cummings

More information

Reference. Wayne Wolf, FPGA-Based System Design Pearson Education, N Krishna Prakash,, Amrita School of Engineering

Reference. Wayne Wolf, FPGA-Based System Design Pearson Education, N Krishna Prakash,, Amrita School of Engineering FPGA Fabrics Reference Wayne Wolf, FPGA-Based System Design Pearson Education, 2004 Logic Design Process Combinational logic networks Functionality. Other requirements: Size. Power. Primary inputs Performance.

More information

VHDL simulation and synthesis

VHDL simulation and synthesis VHDL simulation and synthesis How we treat VHDL in this course You will not become an expert in VHDL after taking this course The goal is that you should learn how VHDL can be used for simulation and synthesis

More information

EE382V-ICS: System-on-a-Chip (SoC) Design

EE382V-ICS: System-on-a-Chip (SoC) Design EE382V-ICS: System-on-a-Chip (SoC) High-Level Synthesis Sources: Jacob Abraham Andreas Gerstlauer Electrical and Computer Engineering University of Texas at Austin gerstl@ece.utexas.edu Lecture 13: Outline

More information

Cadence SystemC Design and Verification. NMI FPGA Network Meeting Jan 21, 2015

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

Chapter 2 Using Hardware Description Language Verilog. Overview

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

SystemVerilog 3.1: It s What The DAVEs In Your Company Asked For

SystemVerilog 3.1: It s What The DAVEs In Your Company Asked For February 24-26, 2003 SystemVerilog 3.1: It s What The DAVEs In Your Company Asked For Stuart HDL, Inc. www.sutherland-hdl.com 2/27/2003 1 This presentation will Define what is SystemVerilog Provide an

More information

Overview. BSV reviews/notes Guard lifting EHRs Scheduling Lab Tutorial 2 Guards and Scheduling. Ming Liu

Overview. 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 information

Digital System Design Lecture 2: Design. Amir Masoud Gharehbaghi

Digital System Design Lecture 2: Design. Amir Masoud Gharehbaghi Digital System Design Lecture 2: Design Amir Masoud Gharehbaghi amgh@mehr.sharif.edu Table of Contents Design Methodologies Overview of IC Design Flow Hardware Description Languages Brief History of HDLs

More information

תכן חומרה בשפת VERILOG הפקולטה להנדסה

תכן חומרה בשפת VERILOG הפקולטה להנדסה תכן חומרה בשפת VERILOG סמסטר ב' תשע"ג משה דורון מרצה: מתרגלים: אריאל בורג, חג'ג' חן הפקולטה להנדסה 1 Course Topics - Outline Lecture 1 - Introduction Lecture 2 - Lexical conventions Lecture 3 - Data types

More information

Super 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, *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 information

What is Verilog HDL? Lecture 1: Verilog HDL Introduction. Basic Design Methodology. What is VHDL? Requirements

What is Verilog HDL? Lecture 1: Verilog HDL Introduction. Basic Design Methodology. What is VHDL? Requirements What is Verilog HDL? Lecture 1: Verilog HDL Introduction Verilog Hardware Description Language(HDL)? A high-level computer language can model, represent and simulate digital design Hardware concurrency

More information

6.375: Complex Digital Systems. February 3, L01-1. Something new and exciting as well as useful

6.375: Complex Digital Systems. February 3, L01-1. Something new and exciting as well as useful 6.375: Complex Digital Systems Lecturer: TA: Administration: Arvind Ming Liu Sally Lee February 3, 2016 http://csg.csail.mit.edu/6.375 L01-1 Why take 6.375 Something new and exciting as well as useful

More information

6.375: Complex Digital Systems. Something new and exciting as well as useful. Fun: Design systems that you never thought you could design in a course

6.375: Complex Digital Systems. Something new and exciting as well as useful. Fun: Design systems that you never thought you could design in a course 6.375: Complex Digital Systems Lecturer: Arvind TA: Richard S. Uhler Administration: Sally Lee February 6, 2013 http://csg.csail.mit.edu/6.375 L01-1 Why take 6.375 Something new and exciting as well as

More information

World Class Verilog & SystemVerilog Training

World Class Verilog & SystemVerilog Training World Class Verilog & SystemVerilog Training Sunburst Design - Expert Verilog-2001 FSM, Multi-Clock Design & Verification Techniques by Recognized Verilog & SystemVerilog Guru, Cliff Cummings of Sunburst

More information

Tutorial on VHDL and Verilog Applications

Tutorial on VHDL and Verilog Applications Second LACCEI International Latin American and Caribbean Conference for Engineering and Technology (LACCEI 2004) Challenges and Opportunities for Engineering Education, Research and Development 2-4 June

More information

EE 4755 Digital Design Using Hardware Description Languages

EE 4755 Digital Design Using Hardware Description Languages EE 4755 Digital Design Using Hardware Description Languages Midterm Exam Review When / Where Monday, 16 October 2017, 9:30-10:20 CDT 225 Tureaud Hall (Here) Conditions Closed Book, Closed Notes Bring one

More information

LSN 1 Digital Design Flow for PLDs

LSN 1 Digital Design Flow for PLDs LSN 1 Digital Design Flow for PLDs ECT357 Microprocessors I Department of Engineering Technology LSN 1 Programmable Logic Devices Functionless devices in base form Require programming to operate The logic

More information

Sequential Circuits. Combinational circuits

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

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

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

More information

Introduction to Verilog/System Verilog

Introduction to Verilog/System Verilog NTUEE DCLAB Feb. 27, 2018 Introduction to Verilog/System Verilog Presenter: Yao-Pin Wang 王耀斌 Advisor: Prof. Chia-Hsiang Yang 楊家驤 Dept. of Electrical Engineering, NTU National Taiwan University What is

More information

8. Best Practices for Incremental Compilation Partitions and Floorplan Assignments

8. Best Practices for Incremental Compilation Partitions and Floorplan Assignments 8. Best Practices for Incremental Compilation Partitions and Floorplan Assignments QII51017-9.0.0 Introduction The Quartus II incremental compilation feature allows you to partition a design, compile partitions

More information

RTL Coding General Concepts

RTL Coding General Concepts RTL Coding General Concepts Typical Digital System 2 Components of a Digital System Printed circuit board (PCB) Embedded d software microprocessor microcontroller digital signal processor (DSP) ASIC Programmable

More information

ECE 5745 Complex Digital ASIC Design Topic 1: Hardware Description Languages

ECE 5745 Complex Digital ASIC Design Topic 1: Hardware Description Languages ECE 5745 Complex Digital ASIC Design Topic 1: Hardware Description Languages Christopher Batten School of Electrical and Computer Engineering Cornell University http://www.csl.cornell.edu/courses/ece5745

More information

Advanced Synthesis Techniques

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

VHDL for Synthesis. Course Description. Course Duration. Goals

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

More information

Modeling of a Memory Interface Using Modeling Language

Modeling of a Memory Interface Using Modeling Language Modeling of a Memory Interface Using Modeling Language *Akitoshi Matsuda 1, Shinichi Baba 2 1 Dept. of Automotive Science, Kyushu University, Japan 2 Kyushu Embedded Forum, Japan 1 matsuda_aki@slrc.kyushu-u.ac.jp,

More information

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

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

More information

EEL 4783: HDL in Digital System Design

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

Verilog. What is Verilog? VHDL vs. Verilog. Hardware description language: Two major languages. Many EDA tools support HDL-based design

Verilog. What is Verilog? VHDL vs. Verilog. Hardware description language: Two major languages. Many EDA tools support HDL-based design Verilog What is Verilog? Hardware description language: Are used to describe digital system in text form Used for modeling, simulation, design Two major languages Verilog (IEEE 1364), latest version is

More information

VHDL vs. BSV: A case study on a Java-optimized processor

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

1 Design Process HOME CONTENTS INDEX. For further assistance, or call your local support center

1 Design Process HOME CONTENTS INDEX. For further assistance,  or call your local support center 1 Design Process VHDL Compiler, a member of the Synopsys HDL Compiler family, translates and optimizes a VHDL description to an internal gate-level equivalent. This representation is then compiled with

More information

ECE 4514 Digital Design II. Spring Lecture 20: Timing Analysis and Timed Simulation

ECE 4514 Digital Design II. Spring Lecture 20: Timing Analysis and Timed Simulation ECE 4514 Digital Design II Lecture 20: Timing Analysis and Timed Simulation A Tools/Methods Lecture Topics Static and Dynamic Timing Analysis Static Timing Analysis Delay Model Path Delay False Paths Timing

More information

A Parameterized Model of a Crossbar Switch In Bluespec SystemVerilog (TM) June 30, Copyright Bluespec, Inc., 2005, All Rights Reserved

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

Course Topics - Outline

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

Small Router Design Using. Bluespec SystemVerilog

Small 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

Nikhil Gupta. FPGA Challenge Takneek 2012

Nikhil Gupta. FPGA Challenge Takneek 2012 Nikhil Gupta FPGA Challenge Takneek 2012 RECAP FPGA Field Programmable Gate Array Matrix of logic gates Can be configured in any way by the user Codes for FPGA are executed in parallel Configured using

More information

Digital Design with FPGAs. By Neeraj Kulkarni

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

A Verilog Primer. An Overview of Verilog for Digital Design and Simulation

A Verilog Primer. An Overview of Verilog for Digital Design and Simulation A Verilog Primer An Overview of Verilog for Digital Design and Simulation John Wright Vighnesh Iyer Department of Electrical Engineering and Computer Sciences College of Engineering, University of California,

More information

System Synthesis of Digital Systems

System Synthesis of Digital Systems System Synthesis Introduction 1 System Synthesis of Digital Systems Petru Eles, Zebo Peng System Synthesis Introduction 2 Literature: Introduction P. Eles, K. Kuchcinski and Z. Peng "System Synthesis with

More information

Verilog Overview. The Verilog Hardware Description Language. Simulation of Digital Systems. Simulation of Digital Systems. Don Thomas, 1998, Page 1

Verilog Overview. The Verilog Hardware Description Language. Simulation of Digital Systems. Simulation of Digital Systems. Don Thomas, 1998, Page 1 The Verilog Hardware Description Language These slides were created by Prof. Dan Thomas at Carnegie Mellon University, and are adapted here with permission. The Verilog Hardware Description Language, Fourth

More information

Sunburst Design - Comprehensive SystemVerilog Design & Synthesis by Recognized Verilog & SystemVerilog Guru, Cliff Cummings of Sunburst Design, Inc.

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

Introduction to Verilog HDL. Verilog 1

Introduction to Verilog HDL. Verilog 1 Introduction to HDL Hardware Description Language (HDL) High-Level Programming Language Special constructs to model microelectronic circuits Describe the operation of a circuit at various levels of abstraction

More information

Speaker: Kayting Adviser: Prof. An-Yeu Wu Date: 2009/11/23

Speaker: Kayting Adviser: Prof. An-Yeu Wu Date: 2009/11/23 98-1 Under-Graduate Project Synthesis of Combinational Logic Speaker: Kayting Adviser: Prof. An-Yeu Wu Date: 2009/11/23 What is synthesis? Outline Behavior Description for Synthesis Write Efficient HDL

More information

ECE 353 Lab 4. MIDI Receiver in Verilog. Professor Daniel Holcomb UMass Amherst Fall 2016

ECE 353 Lab 4. MIDI Receiver in Verilog. Professor Daniel Holcomb UMass Amherst Fall 2016 ECE 353 Lab 4 MIDI Receiver in Verilog Professor Daniel Holcomb UMass Amherst Fall 2016 Timeline and Grading for Lab 4 Lectures on 11/15 and 11/17 Due on 12/12 Demos in Duda hall Schedule will be posted

More information

FPGA: FIELD PROGRAMMABLE GATE ARRAY Verilog: a hardware description language. Reference: [1]

FPGA: FIELD PROGRAMMABLE GATE ARRAY Verilog: a hardware description language. Reference: [1] FPGA: FIELD PROGRAMMABLE GATE ARRAY Verilog: a hardware description language Reference: [] FIELD PROGRAMMABLE GATE ARRAY FPGA is a hardware logic device that is programmable Logic functions may be programmed

More information

This Lecture. Some components (useful for the homework) Verilog HDL (will continue next lecture)

This Lecture. Some components (useful for the homework) Verilog HDL (will continue next lecture) Last Lecture The basic component of a digital circuit is the MOS transistor Transistor have instrinsic resistance and capacitance, so voltage values in the circuit take some time to change ( delay ) There

More information

Register Transfer Level in Verilog: Part I

Register Transfer Level in Verilog: Part I Source: M. Morris Mano and Michael D. Ciletti, Digital Design, 4rd Edition, 2007, Prentice Hall. Register Transfer Level in Verilog: Part I Lan-Da Van ( 范倫達 ), Ph. D. Department of Computer Science National

More information

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

Recommended Design Techniques for ECE241 Project Franjo Plavec Department of Electrical and Computer Engineering University of Toronto Recommed Design Techniques for ECE241 Project Franjo Plavec Department of Electrical and Computer Engineering University of Toronto DISCLAIMER: The information contained in this document does NOT contain

More information

Productive Design of Extensible Cache Coherence Protocols!

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

Cover TBD. intel Quartus prime Design software

Cover TBD. intel Quartus prime Design software Cover TBD intel Quartus prime Design software Fastest Path to Your Design The Intel Quartus Prime software is revolutionary in performance and productivity for FPGA, CPLD, and SoC designs, providing a

More information

Cover TBD. intel Quartus prime Design software

Cover TBD. intel Quartus prime Design software Cover TBD intel Quartus prime Design software Fastest Path to Your Design The Intel Quartus Prime software is revolutionary in performance and productivity for FPGA, CPLD, and SoC designs, providing a

More information

System On Chip: Design & Modelling (SOC/DAM) 1 R: Verilog RTL Design with examples.

System On Chip: Design & Modelling (SOC/DAM) 1 R: Verilog RTL Design with examples. System On Chip: Design & Modelling (SOC/DAM) Exercises Here is the first set of exercises. These are intended to cover subject groups 1-4 of the SOC/DAM syllabus (R, SC, SD, ESL). These questions are styled

More information