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

Size: px
Start display at page:

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

Transcription

1 ECE 5745 Complex Digital ASIC Design Topic 1: Hardware Description Languages Christopher Batten School of Electrical and Computer Engineering Cornell University

2 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling Course Structure Prereq Computer Architecture Part 2 Digital CMOS Circuits Part 1 ASIC Design Overview P M P M Part 3 CAD Algorithms ECE 5745 T01: Hardware Description Languages 2 / 55

3 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling Part 1: ASIC Design Overview P M P M Topic 1 Hardware Description Languages Topic 4 Full-Custom Design Methodology Topic 6 Closing the Gap Topic 5 Automated Design Methodologies Topic 8 Testing and Verification Topic 3 CMOS Circuits Topic 2 CMOS Devices Topic 7 Clocking, Power Distribution, Packaging, and I/O ECE 5745 T01: Hardware Description Languages 3 / 55

4 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling Agenda Evolution of Hardware Description Languages Hardware Description Languages Across Stack High- RTL with SystemVerilog Guarded-Atomic Actions with Bluespec System- Modeling with SystemC ECE 5745 T01: Hardware Description Languages 4 / 55

5 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling Originally designers used manual translation and breadboards for verification Algorithm while b = b ( * a a > 0 ) a = a - 1 Register Transfer Gate Layout Manual Manual Manual Verification via Breadboard ECE 5745 T01: Hardware Description Languages 5 / 55

6 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling Hardware description languages enabled gate-level verification via simulation Algorithm while b = b ( * a a > 0 ) a = a - 1 Register Transfer Gate Layout Manual Manual Manual Verification via Breadboard Simulation ECE 5745 T01: Hardware Description Languages 6 / 55

7 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling Designers began to use HDLs for higher-level verification and design exploration Algorithm while b = b ( * a a > 0 ) a = a - 1 Register Transfer Gate Layout Manual Manual Manual Verification via Simulation Verification via Breadboard Simulation ECE 5745 T01: Hardware Description Languages 7 / 55

8 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling High-level algorithmic models act as a precise and executable specification Algorithm while b = b ( * a a > 0 ) a = a - 1 Register Transfer Gate Layout Manual Manual Manual Verification via Simulation Verification via Simulation Verification via Breadboard Simulation ECE 5745 T01: Hardware Description Languages 8 / 55

9 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling Once designs were written in HDLs tools could be used for automatic translation Algorithm while b = b ( * a a > 0 ) a = a - 1 Register Transfer Gate Layout Automatic HL Synthesis Manual Automatic RTL Synthesis Manual Automatic Place & Manual Route Verification via Simulation Verification via Simulation Verification via Breadboard Simulation ECE 5745 T01: Hardware Description Languages 9 / 55

10 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling Hardware Verification Languages A separate or embedded language that is meant purely for verification as opposed to simulation or synthesis Includes high-level programming features to simplify writing test benches such as object-oriented constructs and random stimulus generation Includes special language constructs for writing complex assertions Example HVLs: e, OpenVera, PSL, SystemVerilog Verification Subset Example SystemVerilog assertions Assert that the read enable and write enable signals are never both true: assert property (!(read en && write en)); Assert that priority register in round-robin arbiter is one-hot: assert property (@(posedge clk) $onehot(priority)) Assert that acknowledge signal is true cycle after the request signal is true: assert property (@(posedge clk) req -> ##[1] ack); ECE 5745 T01: Hardware Description Languages 10 / 55

11 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling Agenda Evolution of Hardware Description Languages Hardware Description Languages Across Stack High- RTL with SystemVerilog Guarded-Atomic Actions with Bluespec System- Modeling with SystemC ECE 5745 T01: Hardware Description Languages 11 / 55

12 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling HDLs Across The Computer Engineering Stack Layout Circuit Gate Register Transfer Guarded Atomic Actions System Algorithm P M P M while (a>0) b = b * a a = a - 1 GDSII Modeling for Simulation MATLAB/C++ Lower- More Control Less Productive Higher- Less Control More Productive Modeling for Synthesis ECE 5745 T01: Hardware Description Languages 12 / 55

13 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling Circuit- Modeling with Spice Layout Circuit Gate Register Transfer Guarded Atomic Actions System Algorithm P M P M while (a>0) b = b * a a = a - 1 * CMOS NAND gate MP CMOSP W=28.0U L=2.0U AS=252P AD=252P MP CMOSP W=28.0U L=2.0U AS=252P AD=252P MN CMOSN W=10.0U L=2.0U AS=90P AD=90P MN CMOSN W=10.0U L=2.0U AS=90P AD=90P * Input stimulus VINA 2 0 PULSE( ns 5ns 5ns 100n 200ns) VINB 1 0 PULSE( ns 5ns 5ns 200n 400ns) VDD 3 0 DC 5.0 ECE 5745 T01: Hardware Description Languages 13 / 55

14 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling Gate- Modeling with Verilog Layout Circuit Gate Register Transfer Guarded Atomic Actions System Algorithm Gate-level Verilog uses structural Verilog to connect primitive gates P M P M while (a>0) b = b * a a = a - 1 module mux4( input a, b, c, d, input [1:0] sel, output out ); wire [1:0] sel_b; not not0( sel_b[0], sel[0] ); not not1( sel_b[1], sel[1] ); wire n0, n1, n2, n3; and and0( n0, c, sel[1] ); and and1( n1, a, sel_b[1] ); and and2( n2, d, sel[1] ); and and3( n3, b, sel_b[1] ); wire x0, x1; nor nor0( x0, n0, n1 ); nor nor1( x1, n2, n3 ); wire y0, y1; or or0( y0, x0, sel[0] ); or or1( y1, x1, sel_b[0] ); nand nand0( out, y0, y1 ); b d a c sel[1] sel[0] endmodule out ECE 4750 Computer Architecture Verilog Basics 25 ECE 5745 T01: Hardware Description Languages 14 / 55

15 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling Low- RTL Modeling with Verilog Layout Circuit Gate Register Transfer Guarded Atomic Actions System Algorithm P M P M while (a>0) b = b * a a = a - 1 // Combinational Logic: Operand Muxes wire [63:0] a_mux_out = ( a_mux_sel == op_load )? { 32 b0, unsigned_a } : ( a_mux_sel == op_next )? a_shift_out : 64 bx; wire [31:0] b_mux_out = ( b_mux_sel == op_load )? unsigned_b : ( b_mux_sel == op_next )? b_shift_out : 32 bx; reg [4:0] counter_reg; reg sign_reg; reg [63:0] a_reg; reg [31:0] b_reg; reg [63:0] result_reg; // Sequential State ( posedge clk ) begin if ( sign_en ) begin sign_reg <= sign_next; end if ( result_en ) begin result_reg <= result_mux_out; end counter_reg a_reg b_reg end <= counter_mux_out; <= a_mux_out; <= b_mux_out; ECE 5745 T01: Hardware Description Languages 15 / 55

16 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling Simulation vs. Synthesis Mismatch Layout Circuit Gate Register Transfer Guarded Atomic Actions System Algorithm P M P M while (a>0) b = b * a a = a - 1 // Mux with assign statement wire [3:0] out = ( sel == 0 )? a : b; What happens if the sel signal contains an X? // Mux with always block reg [3:0] out; begin if ( sel == 0 ) out = a; else out = b; end ECE 5745 T01: Hardware Description Languages 16 / 55

17 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling Higher- HDLs Layout Circuit Gate Register Transfer Guarded Atomic Actions System Algorithm P M P M while (a>0) b = b * a a = a - 1 How can we raise the level of abstraction to increase hardware design productivity? High- Register-Transfer- Modeling with SystemVerilog Guarded Atomic Actions with Bluespec System- Modeling with SystemC ECE 5745 T01: Hardware Description Languages 17 / 55

18 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling Agenda Evolution of Hardware Description Languages Hardware Description Languages Across Stack High- RTL with SystemVerilog Guarded-Atomic Actions with Bluespec System- Modeling with SystemC ECE 5745 T01: Hardware Description Languages 18 / 55

19 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling SystemVerilog: Struct and Union Types 8 24 JUMP addr // Declare JumpInstr structure typedef struct packed { logic [7:0] opcode; logic [23:0] addr } JumpInstr; // Instantiate JumpInstr structure JumpInstr instr; instr.opcode = c_opcode_jump; instr.addr = addr; JumpInstr instr = { opcode: c_opcode_jump, addr: addr }; ADD rd rt rs // Declare AddInstr structure typedef struct packed { logic [7:0] opcode; logic [4:0] rd; logic [4:0] rt; logic [4:0] rs; logic [8:0] null; } AddInstr; // Declare Instr union typedef union packed { JumpInstr jump; AddInstr add; } Instr; // Instantiate Instr union Instr instr; instr.jump.opcode = c_opcode_jump; instr.jump.addr = addr; ECE 5745 T01: Hardware Description Languages 19 / 55

20 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling SystemVerilog: Tagged Union Types 8 24 JUMP addr // Declare Instr w/ common opcode typedef struct packed { logic [23:0] addr } JumpInstrFields; typedef struct packed { logic [4:0] rd; logic [4:0] rt; logic [4:0] rs; logic [8:0] null; } AddInstrFields; typedef union packed { JumpInstrFields jump; AddInstrFields add; } InstrFields; typedef struct packed { logic [7:0] opcode; InstrFields fields; } Instr; ADD rd rt rs // Declared Instr tagged union typedef union tagged packed { JumpInstrFields jump; AddInstrFields add; } Instr; // Instantiate Instr tagged union Instr instr = tagged jump { addr: addr }; // Pattern matching case ( instr ) matches tagged add: cs={ sel_a, y }; tagged jump: cs={ sel_b, n }; endcase ECE 5745 T01: Hardware Description Languages 20 / 55

21 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling SystemVerilog: Typed Ports and Type Parameters // Structs, unions, tagged unions // can be used as ports module InstrDecodeTable ( input Instr instr, output ControlSigs cs ) // Type parameter allows more // expressive polymorphism module Queue #( parameter type ItemType )( input clk, reset // Use structure selectors // to access instruction // and control signal fields input output input enq_val, enq_rdy, ItemType enq_item, endmodule ) output deq_val, input deq_rdy output ItemType deq_bits, // Use \$bits for size of item endmodule // Instantiate polymorphic queue Queue#(Instr) queue(... ) ECE 5745 T01: Hardware Description Languages 21 / 55

22 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling SystemVerilog: Port Bundle Interfaces // Declare valrdy interface interface ValRdyIfc; logic val; logic rdy; logic [31:0] msg; modport send_ifc( output val, input rdy, output msg ); modport recv_ifc( input val, output rdy, input msg ); endinterface // Instantiate and use interface // Using an interface module Producer ( input clk, reset, ValRdyIfc.send_ifc send_ifc ) //... posedge clk ) begin send_ifc.val =... send_ifc.msg =... end endmodule ValRdyIfc channel; Producer producer(channel); Consumer consumer(channel); ECE 5745 T01: Hardware Description Languages 22 / 55

23 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling SystemVerilog: Method Interfaces // Declare valrdy method interface interface ValRdyIfc; logic val; logic rdy; logic [31:0] msg; //... function send ( input logic [31:0] msg ); //... endfunction function is_send_done ( output logic done ); //... endfunction endinterface // Using an method interface module Producer ( input clk, reset, ValRdyIfc.send_ifc send_ifc ) //... logic done; posedge clk ) begin send_ifc.send( msg ); send_ifc.is_send_done( done ); if ( done )... end endmodule ECE 5745 T01: Hardware Description Languages 23 / 55

24 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling SystemVerilog: Interfaces Master Ifc Bus Fabric Ifc Ifc Slave Slave ECE 5745 T01: Hardware Description Languages 24 / 55

25 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling Agenda Evolution of Hardware Description Languages Hardware Description Languages Across Stack High- RTL with SystemVerilog Guarded-Atomic Actions with Bluespec System- Modeling with SystemC ECE 5745 T01: Hardware Description Languages 25 / 55

26 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling Designers Usually Use Weak Interfaces Example: Commercially available FIFO IP block data_in data_out push_req_n full pop_req_n clk empty rstn These constraints are spread over many pages of the documentation... Adapted from [Arvind 11] ECE 5745 T01: Hardware Description Languages 26 / 55

27 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling Expressing Hardware with Guarded Atomic Actions in Bluespec Guarded rules Hardware expressed as collection of rules that execute atomically and in a well-defined serialized sequence Allows thinking of pieces of the design in isolation Compiler manages scheduling of rules to increase performance Guarded method interfaces Formalizes composition Compiler manages connectivity (muxing and control logic) Powerful type and static elaboration facilities Significant amount of compile-time static checking Permits parameterization of designs at all levels ECE 5745 T01: Hardware Description Languages 27 / 55

28 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling Guarded Atomic Action Execution Model Semantics Actions execute in a serialized order Actions execute in isolation Repeatedly Select a rule to execute (highly non-deterministic) Compute the new state values Update the state Implementation concerns But doesn t executing one rule at a time mean our implementation will be very slow? Can we schedule multiple rules concurrently without violating one-rule-at-a-time semantics? Work through extra notes... ECE 5745 T01: Hardware Description Languages 28 / 55

29 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling State and Rules Organized into Modules module interface All state is explicit (no inferred latches or flip-flops) Behavior is expressed in terms of guarded rules within each module that atomically update state internal to that module Rules can manipulate state in other modules only via their guarded method interfaces Adapted from [Arvind 11] ECE 5745 T01: Hardware Description Languages 29 / 55

30 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling GCD Using Euclid s Algorithm def gcd( x, y ): while True: if x > y: x,y = y,x elif y!= 0: y = y - x else: return x x y op swap sub swap sub swap sub sub return x ECE 5745 T01: Hardware Description Languages 30 / 55

31 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling GCD Implementation in Bluespec module mkgcd (I_GCD); Explicit Reg#(Int#(32)) x <- mkregu; State Reg#(Int#(32)) y <- mkreg(0); Internal Behavior rule swap ((x > y) && (y!= 0)); x <= y; y <= x; endrule rule sub ((x <= y) && (y!= 0)); y <= y x; endrule x swap y sub External Interface method Action start(int#(32) a, Int#(32) b) if (y==0); x <= a; y <= b; endmethod method Int#(32) result() if (y==0); return x; endmethod endmodule Adapted from [Arvind 11] ECE 5745 T01: Hardware Description Languages 31 / 55

32 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling GCD Alternative Implementation Combined Rule module mkgcd (I_GCD); Reg#(Int#(32)) x <- mkregu; Reg#(Int#(32)) y <- mkreg(0); rule swapsub ((x > y) && x <= y; y <= x - y; endrule (y!= 0)); rule sub ((x <= y) && (y!= 0)); y <= y x; endrule x y op swapsub swapsub swapsub sub return x method Action start(int#(32) a, Int#(32) b) if (y==0); x <= a; y <= b; endmethod method Int#(32) result() if (y==0); return x; endmethod endmodule Adapted from [Arvind 11] ECE 5745 T01: Hardware Description Languages 32 / 55

33 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling Generated GCD Hardware: Interface Int#(32) y == 0 implicit conditions y == 0 Int#(32) enab rdy Int#(32) rdy start result GCD module Module can easily be made polymorphic as in SystemVerilog Many different implementations can provide the same interface Adapted from [Arvind 11] ECE 5745 T01: Hardware Description Languages 33 / 55

34 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling Generated GCD Hardware: Rules x y en rdy start x_en x y_en y >!(=0) sub next state values x rdy result predicates swap? subtract? rule swap ((x>y)&&(y!=0)); x <= y; y <= x; endrule rule subtract ((x<=y)&&(y!=0)); y <= y x; endrule x_en = y_en = swap? swap? OR subtract? Adapted from [Arvind 11] ECE 5745 T01: Hardware Description Languages 34 / 55

35 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling Generated GCD Hardware: Rules and Methods x y en rdy start start_en x_en x start_en y_en y >!(=0) sub x rdy result swap? subtract? x_en = swap? OR start_en y_en = swap? OR subtract? rdy = (y==0) OR start_en Adapted from [Arvind 11] ECE 5745 T01: Hardware Description Languages 35 / 55

36 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling A Systematic Approch to GAA Synthesis A rule may be decomposed into two parts π(s) and δ(s) such that s next = if π(s) then δ(s) else s π(s) is the condition (predicate) of the rule, a.k.a. the CAN_FIRE signal of the rule. π is a conjunction of explicit and implicit conditions δ(s) is the state transformation function, i.e., computes the next-state values from the current state values Adapted from [Arvind 11] ECE 5745 T01: Hardware Description Languages 36 / 55

37 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling Compiling a Rule rule r (f.first() >0) ; x <=x +1 ; f.deq (); endrule enable current state f x π δ f x next state values π = enabling condition δ =action signals & values Adapted from [Arvind 11] ECE 5745 T01: Hardware Description Languages 37 / 55

38 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling Combining State Updates (strawman) π s from the rules that update R π 1 π n OR latch enable δ s from the rules that update R δ 1,R δ n,r OR next state value R What if more than one rule is enabled? Adapted from [Arvind 11] ECE 5745 T01: Hardware Description Languages 38 / 55

39 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling Combining State Updates π s from all the rules π 1 π n Scheduler: Priority Encoder φ 1 φ n OR one-rule-at-atime scheduler is conservative latch enable δ s from the rules that update R δ 1,R δ n,r OR next state value R Scheduler ensures that at most one φ i is true Adapted from [Arvind 11] ECE 5745 T01: Hardware Description Languages 39 / 55

40 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling Scheduling and Control Logic Modules (Current state) Rules CAN_FIRE π 1 WILL_FIRE φ 1 Modules (Next state) π 1 π n Scheduler φ n δ 1 cond action π n δ n δ 1 δ n Muxing Compiler synthesizes a scheduler such that at any given time φ s for only non-conflicting rules are true Adapted from [Arvind 11] ECE 5745 T01: Hardware Description Languages 40 / 55

41 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling Agenda Evolution of Hardware Description Languages Hardware Description Languages Across Stack High- RTL with SystemVerilog Guarded-Atomic Actions with Bluespec System- Modeling with SystemC ECE 5745 T01: Hardware Description Languages 41 / 55

42 CA 92697, USA Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling System- Modeling Communication Separate computation/storage from communication - e e - s - Approximatetimed Cycletimed D C F E A. Specification model B. Component-assembly model C. Bus-arbitration model D. Bus-functional model E. Cycle-accurate computation model F. Implementation model Cycletimed Untimed A B Untimed Approximatetimed Computation Figure 1: System modeling graph Adapted from [Cai 03] ECE 5745 T01: Hardware Description Languages 42 / 55

43 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling Specification Model B1 v1 = a*a; Describes system functionality without any implementation details B2B3 B2 v2 = v1 + b*b; v2 v1 B3 v3= v1- b*b; v3 Computation modeled as abstract concurrent processes Communication modeled with standard software variables B4 v4 = v2 + v3; c = sequ(v4); Figure 2: The example of specification model Adapted from [Cai 03] ECE 5745 T01: Hardware Description Languages 43 / 55

44 c = sequ(v4); Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling TLM: Component-Assembly Model igure 2: The example of specification model PE1 B1 PE2 v1 = a*a; cv12 cv11 PE3 B3 v3= v1- b*b; v3 Approximately estimate execution time of PEs using first-order models Explicitly capture process-to-pe mapping Use dedicated point-to-point channels to interconnect computation and storage PEs B2 v2 = v1 + b*b; cv2 B4 v4 = v2 + v3; c = sequ(v4); No modeling of bus or protocol details re 3: The example of component-assembly el Adapted from [Cai 03] ECE 5745 T01: Hardware Description Languages 44 / 55

45 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling TLM: Bus-Arbitration Model PE1 B1 PE2 v1 = a*a; B2 v2 = v1 + b*b; PE4 (Arbiter) 3 cv12 cv2 1 2 cv11 1. Master interface 2. Slave interface 3. Arbiter interface PE3 B3 v3= v1- b*b; v3 B4 v4 = v2 + v3; c = sequ(v4); Figure 4: The example of bus-arbitration model to timed functional model defined in [12]. In comparison to specification model, component-assembly model explicitly specifies the allocated PEs in the system architecture and process-to-pe mapping decision. The example of component-assembly model is displayed in Figure 3. PE1, Approximately estimate address[15:0] execution time of PEs data[31:0] using first-order models ready ack Explicitly capture channels, but CLK also address[15:0] data[31:0] performance with ready first-order arbitration ack (5, 15) (5, 2 (10, 20) channel-to-bus mapping Still communicate through abstract estimate bus models Lowerbound = Upperbound = (a)time Diag (b)cycle accurate Figure 5: Time/cycle accu Adapted from [Cai 03] ECE 5745 T01: Hardware Description Languages 45 / 55 PE4

46 ready Evolution of HDLs ack HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling PE1 B1 PE2 (b)cycle accurate time diagram TLM: Bus-Functional Model Figure 5: Time/cycle accurate diagram v1 = a*a; B2 v2 = v1 + b*b; PE4 (Arbiter) 3 address[15:0] address[15:0] data[31:0] data[31:0] 1 ready 2 ack ready ack IProtocolSlav 1. Master interface 2. Slave interface 3. Arbiter interface e PE3 B3 v3= v1- b*b; v3 B4 v4 = v2 + v3; c = sequ(v4); Approximately estimate execution time of PEs using first-order models Cycle-accurate RTL model of bus protocol Figure 6: The example of bus-functional model In bus-functional model, the message-passing channels are replaced by protocol channels. A protocol channel is time/cycleaccurate and pin-accurate. Inside a protocol channel, wires of the bus are represented by instantiating corresponding variables/signals. Data is transferred following the time/cycle Adapted from [Cai 03] ECE 5745 T01: Hardware Description Languages 46 / 55

47 Cycle-accurate approximate cycle-accurate abstract bus channel pin-acc computation model Implementation model cycle-accurate cycle-accurate wire pin-acc Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling PE1 B1 PE2 v1 = a*a; B2 v2 = v1 + b*b; TLM: Cycle-Accurate Computation Model PE4 (Arbiter) 3 cv12 cv2 1 2 cv11 1. Master interface 2. Slave interface 3. Arbiter interface 4. Wrapper Table 1: Characteristics of different abstraction models 4 PE3 Figure 7: The example of cycle-accurate computation model model. In this model, computation components (PEs) are pin accurate and execute cycle-accurately. The custom hardware components are modeled at register-transfer level, and general-purpose processors and DSPs are modeled in terms of cycle-accurate instruction set architecture. To enable communication between cycle-accurate PEs and abstract level interfaces of abstract bus channels, wrappers which S0 S1 S2 S3 S4 Cycle-accurate RTL PE4 PE1 interrupt interrupt model of (some) PEs req MOV r1, 10 MUL r1, r1, r1... S0 Still communicate S1 through abstract S2 channels, S3 but also interrupt req Adapters interface lower-level RTL interface to higher-level bus-arbitration model estimate bus performance with first-order arbitration models PE3 S0 S1 S2 S3 S4 PE2 MLA... r1, r... Figure 8: The example of implem 4. SYSTEM DESIGN Adapted from WITH [Cai 03] T ECE 5745 T01: Hardware Description Languages 47 / Design Flow

48 ccurate wire pin-accurate Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling fferent abstraction models Register-Transfer- Model interrupt req PE1 MOV r1, 10 MUL r1, r1, r1... interrupt req PE2 MLA... r1, r2, r2, r1... Cycle-accurate RTL models of both computation/storage and communication MCNTR MADDR MDATA PE4 PE3 S0 S1 S2 S3 interrupt S0 S1 S2 S3 S4 Figure 8: The example of implementation model Adapted from [Cai 03] ECE 5745 T01: Hardware Description Languages 48 / 55

49 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling SystemC Framework Methodology-Specific Libraries Master/Slave Lib, Verification Lib, Static Dataflow Primitive Channels Signal, Mutex, Semaphore, FIFO Core Language Modules Ports Processes Interfaces Channels Data Types 4-Valued Logic Types 4-Valued Logic Vectors Bits and Bit Vectors Fixed-Point Types C++ User-Defined Types Event-Driven Simulation Kernel C++ Language Standard ECE 5745 T01: Hardware Description Languages 49 / 55

50 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling SystemC Modules, Processes, Channels Separate computation from communication Computation: implemented with Processes in Modules Communication: implemented in Channels Interface method calls Collection of a fixed set of communication Methods is called an Interface Channels implement one or more Interfaces Modules can be connected via their Ports to those Channels which implement the corresponding Interface Adapted from [Moondanos 04] ECE 5745 T01: Hardware Description Languages 50 / 55

51 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling SystemC Producer-Consumer Example struct Producer : public { // Ports sc_out<bool> clk; sc_out<int> value; sc_module } }; SC_HAS_PROCESS(Producer); Producer( sc_module_name name ) : sc_module(name) { // Declares compute as a thread SC_THREAD(compute); } void compute() { for ( int i = 0; i < 10; ++i ) { clk.write(false); // toggle clk wait( 5, SC_NS ); // wait for 5 nanoseconds clk.write(true); // toggle clk value.write(i); // write value to channel wait( 5, SC_NS ); // wait for 5 nanoseconds } ECE 5745 T01: Hardware Description Languages 51 / 55

52 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling SystemC Producer-Consumer Example struct Consumer : public sc_module { // Ports sc_in<bool> clk; sc_in<int> value; SC_HAS_PROCESS(Consumer); Consumer( sc_module_name name ) : sc_module(name) { // Declares receive() as a process triggered // on clk value changes SC_METHOD(receive); sensitive << clk; } void receive() { // If clk is changing from false to true if ( clk.posedge() ) std::cout << Received: << value.read() << std::endl; } }; ECE 5745 T01: Hardware Description Languages 52 / 55

53 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling SystemC System Adapted from [Moondanos 04] ECE 5745 T01: Hardware Description Languages 53 / 55

54 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling Take-Away Points Layout Circuit Gate Register Transfer Guarded Atomic Actions System Algorithm P M P M while (a>0) b = b * a a = a - 1 Hardware description languages involve a four-way tension Low-level languages offer more control but less productivity High-level languages offer less control but more productivity Simulation features for modeling function and test harnesses Synthesis features for modeling actual hardware Hardware description languages are (slowly) moving towards including higher abstractions to improve productivity such as Types, Interfaces (SystemVerilog) Guarded Atomic Rules, Guarded Method Interfaces (Bluespec) Transaction- Modeling (SystemC) ECE 5745 T01: Hardware Description Languages 54 / 55

55 Evolution of HDLs HDLs Across Stack High- RTL Guarded-Atomic Actions System- Modeling Acknowledgments [Arvind 11] Arvind, Introduction to Bluespec, MIT Complex Digital Systems, Lecture, [Cai 03] L. Cai and D. Gajski, Transaction Modeling: An Overview, Int l Conf. on Hardware/Software Codesign and System Synthesis, Oct [Moondanos 04] J. Moondanos, SystemC Tutorial, UC Berkeley EE 249 Embedded System Design, Guest Lecture, ECE 5745 T01: Hardware Description Languages 55 / 55

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

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

SoC Design for the New Millennium Daniel D. Gajski

SoC Design for the New Millennium Daniel D. Gajski SoC Design for the New Millennium Daniel D. Gajski Center for Embedded Computer Systems University of California, Irvine www.cecs.uci.edu/~gajski Outline System gap Design flow Model algebra System environment

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

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

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

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

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

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

Verilog Fundamentals. Shubham Singh. Junior Undergrad. Electrical Engineering

Verilog Fundamentals. Shubham Singh. Junior Undergrad. Electrical Engineering Verilog Fundamentals Shubham Singh Junior Undergrad. Electrical Engineering VERILOG FUNDAMENTALS HDLs HISTORY HOW FPGA & VERILOG ARE RELATED CODING IN VERILOG HDLs HISTORY HDL HARDWARE DESCRIPTION LANGUAGE

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

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

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

or Arvind goes commercial Joe Stoy, May

or 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 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

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

Hardware-Software Codesign. 6. System Simulation

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

Department of Computer Science and Electrical Engineering. CMPE 415 Verilog Events Timing and Testbenches Prof. Ryan Robucci

Department of Computer Science and Electrical Engineering. CMPE 415 Verilog Events Timing and Testbenches Prof. Ryan Robucci Department of Computer Science and Electrical Engineering CMPE 415 Verilog Events Timing and Testbenches Prof. Ryan Robucci An Event Driven Language also used for Synthesis We emphasize use of Verilog

More information

Logic Circuits II ECE 2411 Thursday 4:45pm-7:20pm. Lecture 3

Logic 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 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

Quick Introduction to SystemVerilog: Sequental Logic

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

Lecture 14. Synthesizing Parallel Programs IAP 2007 MIT

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

The Verilog Language COMS W Prof. Stephen A. Edwards Fall 2002 Columbia University Department of Computer Science

The Verilog Language COMS W Prof. Stephen A. Edwards Fall 2002 Columbia University Department of Computer Science The Verilog Language COMS W4995-02 Prof. Stephen A. Edwards Fall 2002 Columbia University Department of Computer Science The Verilog Language Originally a modeling language for a very efficient event-driven

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

CSE140L: Components and Design Techniques for Digital Systems Lab

CSE140L: Components and Design Techniques for Digital Systems Lab CSE140L: Components and Design Techniques for Digital Systems Lab Tajana Simunic Rosing Source: Vahid, Katz, Culler 1 Announcements & Outline Lab 4 due; demo signup times listed on the cse140l site Check

More information

Multiple Clock Domains

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

Hardware Description Language (HDL)

Hardware Description Language (HDL) Hardware Description Language (HDL) What is the need for Hardware Description Language? Model, Represent, And Simulate Digital Hardware Hardware Concurrency Parallel Activity Flow Semantics for Signal

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

Lecture 3 Introduction to VHDL

Lecture 3 Introduction to VHDL CPE 487: Digital System Design Spring 2018 Lecture 3 Introduction to VHDL Bryan Ackland Department of Electrical and Computer Engineering Stevens Institute of Technology Hoboken, NJ 07030 1 Managing Design

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

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

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

CSE140L: Components and Design

CSE140L: Components and Design CSE140L: Components and Design Techniques for Digital Systems Lab Tajana Simunic Rosing Source: Vahid, Katz, Culler 1 Grade distribution: 70% Labs 35% Lab 4 30% Lab 3 20% Lab 2 15% Lab 1 30% Final exam

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

Lecture 3: Modeling in VHDL. EE 3610 Digital Systems

Lecture 3: Modeling in VHDL. EE 3610 Digital Systems EE 3610: Digital Systems 1 Lecture 3: Modeling in VHDL VHDL: Overview 2 VHDL VHSIC Hardware Description Language VHSIC=Very High Speed Integrated Circuit Programming language for modelling of hardware

More information

Introduction To HDL. Verilog HDL. Debdeep Mukhopadhyay Dept of CSE, IIT Madras 1

Introduction To HDL. Verilog HDL. Debdeep Mukhopadhyay Dept of CSE, IIT Madras 1 Introduction To HDL Verilog HDL Debdeep Mukhopadhyay debdeep@cse.iitm.ernet.in Dept of CSE, IIT Madras 1 How it started! Gateway Design Automation Cadence purchased Gateway in 1989. Verilog was placed

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

ECE U530 Digital Hardware Synthesis. Programming Assignments

ECE U530 Digital Hardware Synthesis. Programming Assignments ECE U530 Digital Hardware Synthesis Prof. Miriam Leeser mel@coe.neu.edu Sept 11, 2006 Lecture 2: CAD TOOLS: Xilinx and Modelsim Levels of Design VHDL Introduction ECE U530 F06 Programming Assignments All

More information

Verilog for Synthesis Ing. Pullini Antonio

Verilog for Synthesis Ing. Pullini Antonio Verilog for Synthesis Ing. Pullini Antonio antonio.pullini@epfl.ch Outline Introduction to Verilog HDL Describing combinational logic Inference of basic combinational blocks Describing sequential circuits

More information

Verilog Tutorial (Structure, Test)

Verilog Tutorial (Structure, Test) Digital Circuit Design and Language Verilog Tutorial (Structure, Test) Chang, Ik Joon Kyunghee University Hierarchical Design Top-down Design Methodology Bottom-up Design Methodology Module START Example)

More information

SystemVerilog Essentials Simulation & Synthesis

SystemVerilog Essentials Simulation & Synthesis SystemVerilog Essentials Simulation & Synthesis Course Description This course provides all necessary theoretical and practical know-how to design programmable logic devices using SystemVerilog standard

More 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

Online Verilog Resources

Online Verilog Resources EECS 427 Discussion 6: Verilog HDL Reading: Many references EECS 427 F08 Discussion 6 1 Online Verilog Resources ASICs the book, Ch. 11: http://www.ge.infn.it/~pratolo/verilog/verilogtutorial.pdf it/ pratolo/verilog/verilogtutorial

More information

Transmitter Overview

Transmitter Overview Multiple Clock Domains Arvind Computer Science & Artificial Intelligence Lab Massachusetts Institute of Technology Based on material prepared by Bluespec Inc L12-1 802.11 Transmitter Overview headers Controller

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

TOPIC : Verilog Synthesis examples. Module 4.3 : Verilog synthesis

TOPIC : Verilog Synthesis examples. Module 4.3 : Verilog synthesis TOPIC : Verilog Synthesis examples Module 4.3 : Verilog synthesis Example : 4-bit magnitude comptarator Discuss synthesis of a 4-bit magnitude comparator to understand each step in the synthesis flow.

More information

Modeling Processors. Arvind Computer Science & Artificial Intelligence Lab Massachusetts Institute of Technology

Modeling Processors. Arvind Computer Science & Artificial Intelligence Lab Massachusetts Institute of Technology Modeling Processors Arvind Computer Science & Artificial Intelligence Lab Massachusetts Institute of Technology L07-1 The Plan Non-pipelined processor Two-stage synchronous pipeline Two-stage asynchronous

More information

SystemC Synthesis Standard: Which Topics for Next Round? Frederic Doucet Qualcomm Atheros, Inc

SystemC Synthesis Standard: Which Topics for Next Round? Frederic Doucet Qualcomm Atheros, Inc SystemC Synthesis Standard: Which Topics for Next Round? Frederic Doucet Qualcomm Atheros, Inc 2/29/2016 Frederic Doucet, Qualcomm Atheros, Inc 2 What to Standardize Next Benefit of current standard: Provides

More information

St.MARTIN S ENGINEERING COLLEGE Dhulapally, Secunderabad

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

Verilog: The Next Generation Accellera s SystemVerilog Standard

Verilog: The Next Generation Accellera s SystemVerilog Standard Verilog: The Next Generation Accellera s SystemVerilog Standard by Stuart Verilog HD and PI Expert HD, Inc. Training engineers to be HD wizards 1 Overview! Define what is SystemVerilog! Justify the need

More 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

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

Embedded System Design and Modeling EE382V, Fall 2008

Embedded System Design and Modeling EE382V, Fall 2008 Embedded System Design and Modeling EE382V, Fall 2008 Lecture Notes 4 System Design Flow and Design Methodology Dates: Sep 16&18, 2008 Scribe: Mahesh Prabhu SpecC: Import Directive: This is different from

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

INSTITUTE OF AERONAUTICAL ENGINEERING Dundigal, Hyderabad ELECTRONICS AND COMMUNICATIONS ENGINEERING

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

Synthesis vs. Compilation Descriptions mapped to hardware Verilog design patterns for best synthesis. Spring 2007 Lec #8 -- HW Synthesis 1

Synthesis vs. Compilation Descriptions mapped to hardware Verilog design patterns for best synthesis. Spring 2007 Lec #8 -- HW Synthesis 1 Verilog Synthesis Synthesis vs. Compilation Descriptions mapped to hardware Verilog design patterns for best synthesis Spring 2007 Lec #8 -- HW Synthesis 1 Logic Synthesis Verilog and VHDL started out

More information

Lecture 15: System Modeling and Verilog

Lecture 15: System Modeling and Verilog Lecture 15: System Modeling and Verilog Slides courtesy of Deming Chen Intro. VLSI System Design Outline Outline Modeling Digital Systems Introduction to Verilog HDL Use of Verilog HDL in Synthesis Reading

More information

Chap 4 Connecting the Testbench and. Design. Interfaces Clocking blocks Program blocks The end of simulation Top level scope Assertions

Chap 4 Connecting the Testbench and. Design. Interfaces Clocking blocks Program blocks The end of simulation Top level scope Assertions Chap 4 Connecting the Testbench and Interfaces Clocking blocks Program blocks The end of simulation Top level scope Assertions Design 1 4 Connecting the Testbench and Design Testbench wraps around the

More information

Lecture 32: SystemVerilog

Lecture 32: SystemVerilog Lecture 32: SystemVerilog Outline SystemVerilog module adder(input logic [31:0] a, input logic [31:0] b, output logic [31:0] y); assign y = a + b; Note that the inputs and outputs are 32-bit busses. 17:

More information

Image Courtesy CS250 Section 2. Yunsup Lee 9/4/09

Image Courtesy  CS250 Section 2. Yunsup Lee 9/4/09 CS250 Section 2 Image Courtesy www.intel.com Yunsup Lee 9/4/09 Upcoming dates! 9/8/09 (12:30pm) - Lab 1 due (No late days for Lab 1!)! Submit using SVN (source, build, writeup)! 9/8/09 - Lab 2 out! Write

More information

Stuart Sutherland, Sutherland HDL, Inc.

Stuart Sutherland, Sutherland HDL, Inc. SystemVerilog Design: User Experience Defines Multi-Tool, Multi-Vendor Language Working Set Ways Design Engineers Can Benefit from the Use of SystemVerilog Assertions Stuart Sutherland, Sutherland HDL,

More information

Introduction. Purpose. Intended Audience. Conventions. Close

Introduction. Purpose. Intended Audience. Conventions. Close Introduction Introduction Verilog-XL is a simulator that allows you to test the logic of a design. The process of logic simulation in Verilog-XL is as follows: 1. Describe the design to Verilog-XL. 2.

More information

EECS 427 Lecture 14: Verilog HDL Reading: Many handouts/references. EECS 427 W07 Lecture 14 1

EECS 427 Lecture 14: Verilog HDL Reading: Many handouts/references. EECS 427 W07 Lecture 14 1 EECS 427 Lecture 14: Verilog HDL Reading: Many handouts/references EECS 427 W07 Lecture 14 1 Online Verilog Resources ASICs the book, Ch. 11: http://www.ge.infn.it/~pratolo/verilog/verilogtutorial.pdf

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

CS232 VHDL Lecture. Types

CS232 VHDL Lecture. Types CS232 VHDL Lecture VHSIC Hardware Description Language [VHDL] is a language used to define and describe the behavior of digital circuits. Unlike most other programming languages, VHDL is explicitly parallel.

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

EN164: Design of Computing Systems Lecture 06: Lab Foundations / Verilog 2

EN164: Design of Computing Systems Lecture 06: Lab Foundations / Verilog 2 EN164: Design of Computing Systems Lecture 06: Lab Foundations / Verilog 2 Professor Sherief Reda http://scaleenginbrownedu Electrical Sciences and Computer Engineering School of Engineering Brown University

More information

System Verilog Tagged Unions and Pattern Matching

System Verilog Tagged Unions and Pattern Matching System Verilog Tagged Unions and Pattern Matching (An extension to System Verilog 3.1 proposed to Accellera) Bluespec, Inc. Contact: Rishiyur S. Nikhil, CTO, Bluespec, Inc. 200 West Street, 4th Flr., Waltham,

More information

Programmable Logic Devices Verilog VII CMPE 415

Programmable Logic Devices Verilog VII CMPE 415 Synthesis of Combinational Logic In theory, synthesis tools automatically create an optimal gate-level realization of a design from a high level HDL description. In reality, the results depend on the skill

More information

Fundamental Design Concepts. Fundamental Concepts. Modeling Domains. Basic Definitions. New terminology and overloaded use of common words

Fundamental Design Concepts. Fundamental Concepts. Modeling Domains. Basic Definitions. New terminology and overloaded use of common words Fundamental Design Concepts Fundamental Concepts Basic Definitions study now revisit later New terminology and overloaded use of common words Modeling Domains Structural Domain a domain in which a component

More information

CS429: Computer Organization and Architecture

CS429: Computer Organization and Architecture CS429: Computer Organization and Architecture Dr. Bill Young Department of Computer Sciences University of Texas at Austin Last updated: January 2, 2018 at 11:23 CS429 Slideset 5: 1 Topics of this Slideset

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

Verilog Coding Guideline

Verilog Coding Guideline Verilog Coding Guideline Digital Circuit Lab TA: Po-Chen Wu Outline Introduction to Verilog HDL Verilog Syntax Combinational and Sequential Logics Module Hierarchy Write Your Design Finite State Machine

More information

ENGN1640: Design of Computing Systems Topic 02: Lab Foundations

ENGN1640: Design of Computing Systems Topic 02: Lab Foundations ENGN1640: Design of Computing Systems Topic 02: Lab Foundations Professor Sherief Reda http://scale.engin.brown.edu School of Engineering Brown University Spring 2014 1 Topics 1. Programmable logic 2.

More information

101-1 Under-Graduate Project Digital IC Design Flow

101-1 Under-Graduate Project Digital IC Design Flow 101-1 Under-Graduate Project Digital IC Design Flow Speaker: Ming-Chun Hsiao Adviser: Prof. An-Yeu Wu Date: 2012/9/25 ACCESS IC LAB Outline Introduction to Integrated Circuit IC Design Flow Verilog HDL

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

271/471 Verilog Tutorial

271/471 Verilog Tutorial 271/471 Verilog Tutorial Prof. Scott Hauck, last revised 9/15/14 Introduction The following tutorial is inted to get you going quickly in circuit design in Verilog. It isn t a comprehensive guide to System

More information

N-input EX-NOR gate. N-output inverter. N-input NOR gate

N-input EX-NOR gate. N-output inverter. N-input NOR gate Hardware Description Language HDL Introduction HDL is a hardware description language used to design and document electronic systems. HDL allows designers to design at various levels of abstraction. It

More information

Logic Synthesis. EECS150 - Digital Design Lecture 6 - Synthesis

Logic Synthesis. EECS150 - Digital Design Lecture 6 - Synthesis Logic Synthesis Verilog and VHDL started out as simulation languages, but quickly people wrote programs to automatically convert Verilog code into low-level circuit descriptions (netlists). EECS150 - Digital

More information

ENGN1640: Design of Computing Systems Topic 02: Design/Lab Foundations

ENGN1640: Design of Computing Systems Topic 02: Design/Lab Foundations ENGN1640: Design of Computing Systems Topic 02: Design/Lab Foundations Professor Sherief Reda http://scale.engin.brown.edu School of Engineering Brown University Spring 2016 1 Topics 1. Programmable logic

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

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

Lecture 12 VHDL Synthesis

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

Digital Integrated Circuits

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

MLR Institute of Technology

MLR Institute of Technology MLR Institute of Technology Laxma Reddy Avenue, Dundigal, Quthbullapur (M), Hyderabad 500 043 Course Name Course Code Class Branch ELECTRONICS AND COMMUNICATIONS ENGINEERING QUESTION BANK : DIGITAL DESIGN

More information

EN2911X: Reconfigurable Computing Topic 02: Hardware Definition Languages

EN2911X: Reconfigurable Computing Topic 02: Hardware Definition Languages EN2911X: Reconfigurable Computing Topic 02: Hardware Definition Languages Professor Sherief Reda http://scale.engin.brown.edu School of Engineering Brown University Spring 2014 1 Introduction to Verilog

More information

CENG 3420 Computer Organization and Design. Lecture 06: MIPS Processor - I. Bei Yu

CENG 3420 Computer Organization and Design. Lecture 06: MIPS Processor - I. Bei Yu CENG 342 Computer Organization and Design Lecture 6: MIPS Processor - I Bei Yu CEG342 L6. Spring 26 The Processor: Datapath & Control q We're ready to look at an implementation of the MIPS q Simplified

More information

ENGN1640: Design of Computing Systems Topic 02: Design/Lab Foundations

ENGN1640: Design of Computing Systems Topic 02: Design/Lab Foundations ENGN1640: Design of Computing Systems Topic 02: Design/Lab Foundations Professor Sherief Reda http://scale.engin.brown.edu School of Engineering Brown University Spring 2017 1 Topics 1. Programmable logic

More information

HDL-Based Design. Eduardo Sanchez EPFL. Introduction

HDL-Based Design. Eduardo Sanchez EPFL. Introduction HDL-Based Design Eduardo Sanchez EPFL Introduction As designs grew in size and complexity, schematic-based design began to run out of steam In addition to the fact that capturing a large design at the

More information

Topics of this Slideset. CS429: Computer Organization and Architecture. Digital Signals. Truth Tables. Logic Design

Topics of this Slideset. CS429: Computer Organization and Architecture. Digital Signals. Truth Tables. Logic Design Topics of this Slideset CS429: Computer Organization and rchitecture Dr. Bill Young Department of Computer Science University of Texas at ustin Last updated: July 5, 2018 at 11:55 To execute a program

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

What, If Anything, In SystemVerilog Will Help Me With FPGA-based Design. Stuart Sutherland, Consultant and Trainer, Sutherland HDL, Inc.

What, If Anything, In SystemVerilog Will Help Me With FPGA-based Design. Stuart Sutherland, Consultant and Trainer, Sutherland HDL, Inc. What, If Anything, In SystemVerilog Will Help Me With FPGA-based Design Stuart Sutherland, Consultant and Trainer, Sutherland HDL, Inc. About the Presenter... Stuart Sutherland, SystemVerilog wizard Independent

More information

ECEN 468 Advanced Logic Design

ECEN 468 Advanced Logic Design ECEN 468 Advanced Logic Design Lecture 28: Synthesis of Language Constructs Synthesis of Nets v An explicitly declared net may be eliminated in synthesis v Primary input and output (ports) are always retained

More information

EN2911X: Reconfigurable Computing Lecture 05: Verilog (2)

EN2911X: Reconfigurable Computing Lecture 05: Verilog (2) EN2911X: Lecture 05: Verilog (2) Prof. Sherief Reda Division of Engineering, Brown University Fall 09 http://scale.engin.brown.edu Dataflow modeling Module is designed by specifying the data flow, where

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

Digital Design with SystemVerilog

Digital Design with SystemVerilog Digital Design with SystemVerilog Prof. Stephen A. Edwards Columbia University Spring 25 Synchronous Digital Design Combinational Logic Sequential Logic Summary of Modeling Styles Testbenches Why HDLs?

More information