Download presentation
Presentation is loading. Please wait.
Published bySamson Bailey Modified over 9 years ago
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.