Presentation is loading. Please wait.

Presentation is loading. Please wait.

Automated synthesis of micro-pipelines from behavioral Verilog HDL Ivan BlunnoPolitecnico di Torino Luciano LavagnoUniversità di Udine.

Similar presentations


Presentation on theme: "Automated synthesis of micro-pipelines from behavioral Verilog HDL Ivan BlunnoPolitecnico di Torino Luciano LavagnoUniversità di Udine."— Presentation transcript:

1 Automated synthesis of micro-pipelines from behavioral Verilog HDL Ivan BlunnoPolitecnico di Torino Luciano LavagnoUniversità di Udine

2 The target of our work HDL Specification Synchronous Data Path Asynchronous Control Unit

3 Motivation Language-based design key enabler to synchronous logic success Use HDL as single language for specification logic simulation and debugging synthesis-layout generation post-layout simulation HDL must support multiple levels of abstraction

4 Control-data partitioning Splitting of asynchronous control and synchronous data path Automated insertion of bundling delays CONTROL UNIT DATA PATH delay request acknowledge DATA

5 Control-data partitioning Splitting of asynchronous control and synchronous data path Automated insertion of bundling delays CONTROL UNIT DATA PATH delay request acknowledge DATA CK

6 Control-data partitioning Splitting of asynchronous control and synchronous data path Automated insertion of bundling delays CONTROL UNIT DATA PATH delay request acknowledge DATA ACK

7 Design flow Behavioral HDL specification Synthesis (petrify) Control/data splitting Synthesis (Synopsys-DC) Synthesizable HDL specification Logic implementation Timing analysis (Synopsys) Logic delays HDL netlist implementation Delay insertion STG specification C.U. synthesis D.P. synthesis

8 HDL choice: standard HDL several tools available, broad user basis BUT syntax and semantics oriented to gates, (not STGs or BFSMs or process algebra) need to define a subset for synthesis Choice VHDL Verilog

9 Asynchronous Verilog subset Declarations Initialization and main loop Asynchronous Verilog blocks wait statements Block assignments if - else statements

10 Initialization and main loop Module and signal declaration: module example(a, b, c, d); input a, b[7..0]; output c, d; reg e, f, g[11..0]; Currently only single module synthesized always loop surrounds live behavior initial block defines initialization sequence

11 Asynchronous Verilog blocks Only structured mix of sequencing, concurrency and choice can be specified begin-end for sequencing fork-join for concurrency if-else for input choice

12 WAIT statement.... wait(start);.... STG start +....

13 Assignments RES = 0;...... RES = A + B; C.U. STG D.P. block diagram register - MUX RES A + B 0 cmd_RES_0_out RES_out

14 Assignments RES = 0;...... RES = A + B; C.U. STG always @(posedge RES_out) begin if(cmd_RES_0_out == 0) begin RES = 0; end if(cmd_RES_0_out == 1) begin RES = A + B; end D.P. Verilog specification register - MUX

15 RES_out- RES_in+ RES_out+ RES_in- Assignments: STG specification load register req load register ack reg 4ph completion REG control

16 Assignments RES = 0;...... RES = A + B; C.U. STG D.P. block diagram register - MUX RES A + B 0 cmd_RES_0_out RES_out

17 RES_out- RES_in+ RES_out+ RES_in- Assignments: STG specification load register req load register ack reg 4ph completion REG control cmd_RES_0_out+ cmd_RES_0_in+ cmd_RES_0_out- cmd_RES_0_in- select mux req select mux ack mux 4ph completion MUX control

18 IF - ELSE statements if(RES[7] == 1)..... else..... D.P. block diagram C.U. STG comparator - FF CMP RES[7] 1 FF cmd_cmp_0_out cmp_0

19 IF - ELSE statements if(RES[7] == 1)..... else..... always @(posedge cmd_cmp_0_out) begin if(RES[7] == 1) cmp_0 = 1; else cmp_0 = 0; end D.P. Verilog specification C.U. STG comparator - FF

20 PH PK trFtrT IF branchELSE branch trQ IF - ELSE statements: STG specification cmp_0- cmp_0+ Pzero Pone

21 IF - ELSE statements if(RES[7] == 1)..... else..... D.P. block diagram C.U. STG comparator - FF CMP RES[7] 1 FF cmd_cmp_0_out cmp_0

22 PH PK trFtrT IF branchELSE branch trQ cmd_cmp_0_out+ cmd_cmp_0_in+ PF IF - ELSE statements: STG specification cmp_0- cmp_0+ Pzero Pone

23 if(RES[7] == 1)

24 Example: FIR filter R RESRES SMP donestart RES C.U. + ** RES [z] = SMP [z] * 4 + SMP [z - 1] * 3 SMP RES start done (saturating arithmetic)

25 Example: FIR filter always begin wait(start); RES = SMP * 4 + R; R = SMP * 3; if(RES[7] == 1) RES = 0; else begin if(RES[6] == 1) RES = h3F; end; done = 1; wait(!start); done = 0; end R RESRES SMP donestart RES C.U. + **

26 Final STG

27 Future work Extension of Verilog HDL subset Data Path and Control Unit optimizations Module interface design automation. Syntax-directed state encoding to speed up control unit logic synthesis


Download ppt "Automated synthesis of micro-pipelines from behavioral Verilog HDL Ivan BlunnoPolitecnico di Torino Luciano LavagnoUniversità di Udine."

Similar presentations


Ads by Google