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:

Slides:



Advertisements
Similar presentations
ECE 2110: Introduction to Digital Systems Chapter 6 Combinational Logic Design Practices Encoders.
Advertisements

Digital Design: Combinational Logic Blocks
Give qualifications of instructors: DAP
The Verilog Hardware Description Language
Modular Combinational Logic
Overview Part 2 – Combinational Logic Functions and functional blocks
Functions and Functional Blocks
Figure 4.1. The function f (x1, x2, x3) =  m(0, 2, 4, 5, 6).
16/04/20151 Hardware Descriptive Languages these notes are taken from Mano’s book It can represent: Truth Table Boolean Expression Diagrams of gates and.
Anurag Dwivedi.  Verilog- Hardware Description Language  Modules  Combinational circuits  assign statement  Control statements  Sequential circuits.
SYEN 3330 Digital SystemsJung H. Kim Chapter SYEN 3330 Digital Systems Chapters 4 – Part3: Verilog – Part 1.
ECE 3110: Introduction to Digital Systems
1 KU College of Engineering Elec 204: Digital Systems Design Lecture 9 Programmable Configurations Read Only Memory (ROM) – –a fixed array of AND gates.
ECE 551 Digital System Design & Synthesis Lecture 08 The Synthesis Process Constraints and Design Rules High-Level Synthesis Options.
SYEN 3330 Digital SystemsJung H. Kim 1 SYEN 3330 Digital Systems Chapter 6 – Part 1.
ECE 551 Digital System Design & Synthesis Lecture 09 Synthesis of Common Verilog Constructs.
Overview Part 2 – Combinational Logic
ECE 2373 Modern Digital System Design Exam 2. ECE 2372 Exam 2 Thursday March 5 You may use two 8 ½” x 11” pages of information, front and back, write.
Charles Kime & Thomas Kaminski © 2008 Pearson Education, Inc. (Hyperlinks are active in View Show mode) Chapter 3 – Combinational Logic Design Part 2 –

George Mason University ECE 448 – FPGA and ASIC Design with VHDL Combinational-Circuit Building Blocks Data Flow Modeling of Combinational Logic ECE 448.
CS 105 Digital Logic Design
Overview Logistics Last lecture Today HW5 due today
03/30/031 ECE 551: Digital System Design & Synthesis Lecture Set 9 9.1: Constraints and Timing 9.2: Optimization (In separate file)
ECE 551 Digital System Design & Synthesis Lecture 11 Verilog Design for Synthesis.
Charles Kime & Thomas Kaminski © 2004 Pearson Education, Inc. Terms of Use (Hyperlinks are active in View Show mode) Terms of Use Logic and Computer Design.
Spring 2007W. Rhett Davis with minor modification by Dean Brock UNCA ECE 406Slide 1 ECE 406 – Design of Complex Digital Systems Lecture 7: Design Example,
FPGA-Based System Design: Chapter 4 Copyright  2004 Prentice Hall PTR HDL coding n Synthesis vs. simulation semantics n Syntax-directed translation n.
Outline Analysis of Combinational Circuits Signed Number Arithmetic
ECE 2372 Modern Digital System Design
Combinational Design, Part 3: Functional Blocks
1 An Update on Verilog Ξ – Computer Architecture Lab 28/06/2005 Kypros Constantinides.
Lecture 21: Registers and Counters (1)
CEC 220 Digital Circuit Design Timing Diagrams, MUXs, and Buffers Mon, Oct 5 CEC 220 Digital Circuit Design Slide 1 of 20.
ELEE 4303 Digital II Introduction to Verilog. ELEE 4303 Digital II Learning Objectives Get familiar with background of HDLs Basic concepts of Verilog.
CS/EE 3700 : Fundamentals of Digital System Design
1 CS 151: Digital Design Chapter 3: Combinational Logic Design 3-1Design Procedure CS 151: Digital Design.
04/26/20031 ECE 551: Digital System Design & Synthesis Lecture Set : Introduction to VHDL 12.2: VHDL versus Verilog (Separate File)
Spring 2009W. Rhett DavisNC State UniversityECE 406Slide 1 ECE 406 – Design of Complex Digital Systems Lecture 6: Procedural Modeling Spring 2009 W. Rhett.
03/31/031 ECE 551: Digital System Design & Synthesis Lecture Set 8 8.1: Miscellaneous Synthesis (In separate file) 8.2: Sequential Synthesis.
Multiplexers Section Topics Multiplexers – Definition – Examples – Verilog Modeling.
ECE 448 Lecture 6 Finite State Machines State Diagrams vs. Algorithmic State Machine (ASM) Charts.
03/30/031 ECE Digital System Design & Synthesis Lecture Design Partitioning for Synthesis Strategies  Partition for design reuse  Keep related.
CSCE 211: Digital Logic Design Chin-Tser Huang University of South Carolina.
C OMBINATIONAL L OGIC D ESIGN 1 Eng.Maha AlGubali.
Logic Design (CE1111 ) Lecture 4 (Chapter 4) Combinational Logic Prepared by Dr. Lamiaa Elshenawy 1.
Mu.com.lec 11.  Used not only to perform addition but also to perform subtraction, multiplication and division  The most basic of the adders is the.
1 Digital Logic Design (41-135) Chapter 6 Combinational Circuit Building Blocks Younglok Kim Dept. of Electrical Engineering Sogang University Spring 2006.
Chapter 3 Combinational Logic Design II
Overview Logistics Last lecture Today HW5 due today
Overview Part 2 – Combinational Logic Functions and functional blocks
TODAY’S OUTLINE Verilog Codings Concurrent and Sequential If-else
CS221: Digital Logic Design Combinational Circuits 3
Combinational Logic Circuits
Overview Part 1 – Design Procedure Beginning Hierarchical Design
ECE 2110: Introduction to Digital Systems Chapter 6 Combinational Logic Design Practices Encoders.
EEL 3705 / 3705L Digital Logic Design
Topics HDL coding for synthesis. Verilog. VHDL..
ECE 551: Digital System Design & Synthesis
CSCE 211: Digital Logic Design
ECE 551: Digital System Design & Synthesis
ECE 448 Lecture 3 Combinational-Circuit Building Blocks Data Flow Modeling of Combinational Logic ECE 448 – FPGA and ASIC Design with VHDL.
Programmable Configurations
Chapter 3 – Combinational Logic Design
CSCE 211: Digital Logic Design
Digital System Design Combinational Logic
ECE 551: Digital System Design & Synthesis
*Internal Synthesizer Flow *Details of Synthesis Steps
COE 202 Introduction to Verilog
Presentation transcript:

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)

03/03/20032 ECE 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

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!

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

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.

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

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

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

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

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

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

03/03/ 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

03/03/ 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.

03/03/ 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

03/03/ Late-Arriving Data Circuit: Fixed

03/03/ 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.

03/03/ 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

03/03/ Late-Arriving Control Circuit: Fixed

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

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

03/03/ Late-Arriving Control Circuit: Fixed

03/03/ 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

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

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

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

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

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

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

03/03/ 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)

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

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

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

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

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

03/03/ 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