Presentation is loading. Please wait.

Presentation is loading. Please wait.

2/1/20001 ECE 551: Digital System Design & Synthesis Lecture Set 7 7.1: Coding for if and case 7.2: Coding logic building blocks (In separate file) 7.3:

Similar presentations


Presentation on theme: "2/1/20001 ECE 551: Digital System Design & Synthesis Lecture Set 7 7.1: Coding for if and case 7.2: Coding logic building blocks (In separate file) 7.3:"— Presentation transcript:

1 2/1/20001 ECE 551: Digital System Design & Synthesis Lecture Set 7 7.1: Coding for if and case 7.2: Coding logic building blocks (In separate file) 7.3: High-Performance Coding (In separate file)

2 03/03/20032 ECE 551 - Digital System Design & Synthesis Lecture 7.1 Coding for Synthesis of Combinational Logic Overview  Premise  Basic coding for if and case  Synopsis case directives  Late signal arrival coding for if and case Data, Control  Coding Logic Building Blocks Decoder, Priority Encoder, Reduction XOR, Multiplexer  High-Performance Methods Datapath Duplication, Operator in if condition  General Coding Issues  Resource Sharing  Arithmetic Expression Optimization

3 03/03/20033 Premise  HDL coding influences the hardware implementations produced by synthesis  Affects figure of merit and tradeoff  FoM = delay x area  Delay/area tradeoff  Think hardware when coding!  Results are Synopsys specific!

4 03/03/20034 References  Synopsys, Guide to HDL Coding Styles for Synthesis, version 2001.08, GHCS.  HDL Compiler for Verilog Reference Manual, version 2001.08 - Chapter 8, HCVR.  Design Compiler User Guide, version 2001.08 - Chapter 3, DCUG.  Can be referenced on CAE Unix: /afs/engr.wisc.edu/apps/eda/synopsys.2001.08/doc/online/

5 03/03/20035 Basic Coding Using if and case  Example 1-1 GHCS  Multiplexer with multiple if’s  Figure 1-1 Resulting structure using SELECT_OP in cascade structure with effective priority encoding of selection.  Example 1-3 GHCS  Multiplexer with single if  Figure 1-2 Resulting structure using SELECT_OP and gates is “flattened,” but control that results is still priority encoded selection.  Example 1-5 GHCS  Uses casex to permit use of don’t cares in conditions  Control signals not priority encoded.

6 03/03/20036 Example 1-1 Verilog: Multiple Ifs

7 03/03/20037 Example 1-1 Circuit: Cascade  Note last statement has highest priority!  Long worst case delay for both data and control

8 03/03/20038 Example 1-3 Verilog: Single If

9 03/03/20039 Example 1-3 Circuit: Single Select – Priority Decode  Note first condition has highest priority!  Short delays

10 03/03/200310 Example 1-5 Verilog: Casex  Note use of casex and x’s to obtain optimized logic

11 03/03/200311 Example 1-5 Circuit: Single Select  Priority encoded – first condition has highest priority  Short delays

12 03/03/200312 Synopsys Case Directives  case (condition) // synopsys parallel_case  Eliminates the priority decoder  Selection lines go directly into Select Op  case (condition) // synopsys full_case  Declares that all “cases” are present  Prevents formation of latches

13 03/03/200313 Late Signal Arrival Coding for if and case - Data  Objective - force smaller delay to output from “late arriving” data signal(s).  Example 2-1 GHCS  Multiplexer with multiple if’s  Figure 2-1 Resulting structure using SELECT_OP in cascade structure with late arriving data b forced to output - priority encoding behavior preserved.

14 03/03/200314 Late-Arriving Data Verilog: Fixed  Original is Example 1-1: Late data b is far from output  Lateness of b and long logic delay add

15 03/03/200315 Late-Arriving Data Circuit: Fixed

16 03/03/200316 Late signal arrival coding for if and case - Control  Objective - force smaller delay to output from “late arriving” control signal(s).  Example 2-3 GHCS  Multiplexer with single if  Figure 1-2 Resulting structure similar using SELECT_OP with “flattened” priority control logic  Example 2-5 GHCS  Multiplexer with single if  Figure 2-2 Resulting structure is decomposition with late arrival control closest to output. Note that delays are reduced due to smaller SELECT_OP due to lower gate fan- in.

17 03/03/200317 Late-Arriving Control Verilog: Original  Original is Example 1-1: Late data b is far from output  Lateness of b and long logic delay add

18 03/03/200318 Late-Arriving Control Circuit: Fixed

19 03/03/200319 Late-Arriving Control Verilog: Fixed - 1

20 03/03/200320 Late-Arriving Control Verilog: Fixed - 2

21 03/03/200321 Late-Arriving Control Circuit: Fixed

22 03/03/200322 Late signal arrival coding for if with nested case - Data  Objective - force smaller delay to output from “late arriving” data signal(s).  Example 2-7 GHCS  Complex selector with single if with nested case  Figure 2-3 Resulting structure is cascaded SELECT_OP  Example 2-9 GHCS  Decomposition placing selection of late data near output  Figure 2-4 Resulting structure has late arriving data passing through single 2-way SELECT_OP

23 03/03/200323 Late-Arriving Data – If with Nested Case Verilog: Original - 1

24 03/03/200324 Late-Arriving Data – If with Nested Case Verilog: Original - 2

25 03/03/200325 Late-Arriving Data – If with Nested Case Circuit: Original - 2  Late-arriving data passes through two Select_Op’s

26 03/03/200326 Late-Arriving Data – If with Nested Case Verilog: Fixed - 1

27 03/03/200327 Late-Arriving Data – If with Nested Case Verilog: Fixed - 2

28 03/03/200328 Late-Arriving Data – If with Nested Case Circuit: Fixed  Late-arriving data enters last Select_Op

29 03/03/200329 Late signal arrival coding for case with nested if – Control  Objective - force smaller delay to output from “late arriving” control signal(s).  Example 2-11 GHCS  Complex selector with single case with nested if  Figure 2-5 Resulting structure is cascaded SELECT_OP  Example 2-13 GHCS  Decomposition placing selection of late data near output  Table 2-1 Resulting design has lower delay and lower area (better FoM)

30 03/03/200330 Late-Arriving Control – Case with Nested If Verilog: Original

31 03/03/200331 Late-Arriving Control – Case with Nested If Circuit: Original

32 03/03/200332 Late-Arriving Control – Case with Nested If Verilog: Fixed - 1

33 03/03/200333 Late-Arriving Control – Case with Nested If Verilog: Fixed - 2

34 03/03/200334 Late-Arriving Control – Case with Nested If Synth Data: Compare  Delay improved by 16%  Small area improvement

35 03/03/200335 Summary  Area and timing are coding dependent  Learn to visualize hardware that results from code  Priority decoding  Natural due to the sequential processing of statements  Often not needed, so in such cases:  Learn how to avoid it to save area and time  Delay control can be done through coding


Download ppt "2/1/20001 ECE 551: Digital System Design & Synthesis Lecture Set 7 7.1: Coding for if and case 7.2: Coding logic building blocks (In separate file) 7.3:"

Similar presentations


Ads by Google