George Mason University ECE 545 – Introduction to VHDL Logic Synthesis with Synopsys ECE 545 Lecture 11.

Slides:



Advertisements
Similar presentations
ECE 551 Digital System Design & Synthesis Lecture 08 The Synthesis Process Constraints and Design Rules High-Level Synthesis Options.
Advertisements

Logic Synthesis – 3 Optimization Ahmed Hemani Sources: Synopsys Documentation.
George Mason University FPGA Design Flow ECE 448 Lecture 9.
RTL Hardware Design by P. Chu Chapter 161 Clock and Synchronization.
Kazi Spring 2008CSCI 6601 CSCI-660 Introduction to VLSI Design Khurram Kazi.
1Kazi Spring 2008 CSCI 660 CSCI-660 Introduction to VLSI Design Khurram Kazi.
Kazi Fall 2006 EEGN 4941 EEGN-494 HDL Design Principles for VLSI/FPGAs Khurram Kazi.
Prof. John Nestor ECE Department Lafayette College Easton, Pennsylvania ECE VLSI System Design Lecture 12 - Timing, Project.
King Fahd University of Petroleum and Minerals Computer Engineering Department COE 561 Digital Systems Design and Synthesis (Course Activity) Synthesis.
Synthesis Learning the different commands. Constraints Many different constraints available to apply to design: –Timing Constraints Max clock period Maximum.
ECE C03 Lecture 141 Lecture 14 VHDL Modeling of Sequential Machines Hai Zhou ECE 303 Advanced Digital Design Spring 2002.
ECE 448 Lecture 3 Combinational-Circuit Building Blocks Data Flow Modeling of Combinational Logic ECE 448 – FPGA and ASIC Design with VHDL.
George Mason University ECE 448 – FPGA and ASIC Design with VHDL Combinational-Circuit Building Blocks Data Flow Modeling of Combinational Logic ECE 448.
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.
Robust Low Power VLSI R obust L ow P ower VLSI Aatmesh Shrivastava Taniya Siddiqua Incorporating Reliability in SoC Flow.
Global Timing Constraints FPGA Design Workshop. Objectives  Apply timing constraints to a simple synchronous design  Specify global timing constraints.
CS3350B Computer Architecture Winter 2015 Lecture 5.2: State Circuits: Circuits that Remember Marc Moreno Maza [Adapted.
ECE 332 Digital Electronics and Logic Design Lab Lab 5 VHDL Design Styles Testbenches.
FPGA-Based System Design: Chapter 4 Copyright  2004 Prentice Hall PTR HDL coding n Synthesis vs. simulation semantics n Syntax-directed translation n.
Kazi ECE 6811 ECE 681 VLSI Design Automation Khurram Kazi* Lecture 10 Thanks to Automation press THE button outcomes the Chip !!! Reality or Myth (*Mostly.
Data Flow Modeling of Combinational Logic Simple Testbenches
Ch.9 CPLD/FPGA Design TAIST ICTES Program VLSI Design Methodology Hiroaki Kunieda Tokyo Institute of Technology.
ASIC/FPGA design flow. FPGA Design Flow Detailed (RTL) Design Detailed (RTL) Design Ideas (Specifications) Design Ideas (Specifications) Device Programming.
1 H ardware D escription L anguages Modeling Digital Systems.
George Mason University ECE 545 – Introduction to VHDL Timing Event-driven simulation ECE 545 Lecture 8.
VHDL Project I: Introduction to Testbench Design Matthew Murach Slides Available at:
1 Sequential Logic Lecture #7. 모바일컴퓨팅특강 2 강의순서 Latch FlipFlop Shift Register Counter.
King Fahd University of Petroleum and Minerals Computer Engineering Department COE 561 Digital Systems Design and Synthesis (Course Activity) Synthesis.
Language Concepts Ver 1.1, Copyright 1997 TS, Inc. VHDL L a n g u a g e C o n c e p t s Page 1.
Welcome to the ECE 449 Computer Design Lab Spring 2005.
1 Logic Synthesis Using Cadence Ambit. 2 Environment Setup Enter the following to.cshrc or a c-shell command file. –setenv LM_LICENSE_FILE full_path/license.dat.
ECE 545 Project 2 Specification Part I. Adjust your synthesizable code for Project 1 in such a way that it complies with the following requirements: a.
ECE 545 Project 2 Specification. Schedule of Projects (1) Project 1 RTL design for FPGAs (20 points) Due date: Tuesday, November 22, midnight (firm) Checkpoints:
1 ECE 545 – Introduction to VHDL Dataflow Modeling of Combinational Logic Simple Testbenches ECE 656. Lecture 2.
Fall 2004EE 3563 Digital Systems Design EE 3563 VHSIC Hardware Description Language  Required Reading: –These Slides –VHDL Tutorial  Very High Speed.
ECE 545 Project 2 Specification. Project 2 (15 points) – due Tuesday, December 19, noon Application: cryptography OR digital signal processing optimized.
George Mason University ECE 448 FPGA and ASIC Design with VHDL FPGA Design Flow ECE 448 Lecture 7.
ECE 332 Digital Electronics and Logic Design Lab Lab 6 Concurrent Statements & Adders.
Introduction to VHDL Simulation … Synthesis …. The digital design process… Initial specification Block diagram Final product Circuit equations Logic design.
Introduction to FPGA Tools
Kazi ECE 6811 ECE 681 VLSI Design Automation Khurram Kazi Thanks to Automation press THE button outcomes the Chip !!! Reality or Myth (most of the material.
RTL Design Methodology Transition from Pseudocode & Interface
George Mason University FPGA Design Flow ECE 545 Lecture 10.
04/26/20031 ECE 551: Digital System Design & Synthesis Lecture Set : Introduction to VHDL 12.2: VHDL versus Verilog (Separate File)
ECE 332 Digital Electronics and Logic Design Lab Lab 5 VHDL Design Styles Testbenches Concurrent Statements & Adders.
CDA 4253 FPGA System Design RTL Design Methodology 1 Hao Zheng Comp Sci & Eng USF.
CS 61C: Great Ideas in Computer Architecture Sequential Elements, Synchronous Digital Systems 1 Instructors: Vladimir Stojanovic & Nicholas Weaver
George Mason University ECE 448 – FPGA and ASIC Design with VHDL FPGA Design Flow based on Aldec Active-HDL FPGA Board.
George Mason University Behavioral Modeling of Sequential-Circuit Building Blocks ECE 545 Lecture 8.
ASIC/FPGA design flow. Design Flow Detailed Design Detailed Design Ideas Design Ideas Device Programming Device Programming Timing Simulation Timing Simulation.
ECE 448 Lecture 16 ASIC Front-End Design
ECE 545 Project 1 Introduction & Specification Part I.
CS 110 Computer Architecture Lecture 9: Finite State Machines, Functional Units Instructor: Sören Schwertfeger School of.
George Mason University Data Flow Modeling of Combinational Logic ECE 545 Lecture 5.
-1- Soft Core Viterbi Decoder EECS 290A Project Dave Chinnery, Rhett Davis, Chris Taylor, Ning Zhang.
Electrical and Computer Engineering 1 CPE 426/526 Armstrong and Gray- ASICs and the ASIC Design Process Dr. Rhonda Kay Gaede UAH.
ASIC Design Methodology
Introduction Introduction to VHDL Entities Signals Data & Scalar Types
ECE 448 Lecture 3 Combinational-Circuit Building Blocks Data Flow Modeling of Combinational Logic ECE 448 – FPGA and ASIC Design with VHDL.
ECE 448 Lecture 3 Combinational-Circuit Building Blocks Data Flow Modeling of Combinational Logic ECE 448 – FPGA and ASIC Design with VHDL.
Timing Analysis 11/21/2018.
ECE 448 Lecture 3 Combinational-Circuit Building Blocks Data Flow Modeling of Combinational Logic ECE 448 – FPGA and ASIC Design with VHDL.
Data Flow Modeling of Combinational Logic
ECE 448 Lecture 3 Combinational-Circuit Building Blocks Data Flow Modeling of Combinational Logic ECE 448 – FPGA and ASIC Design with VHDL.
Data Flow Description of Combinational-Circuit Building Blocks
Sequential Logic for Synthesis Based on Aldec Active-HDL
Data Flow Description of Combinational-Circuit Building Blocks
Instructor: Michael Greenbaum
(Carry Lookahead Adder)
Presentation transcript:

George Mason University ECE 545 – Introduction to VHDL Logic Synthesis with Synopsys ECE 545 Lecture 11

2ECE 545 – Introduction to VHDL Basic High-Level Design Flow

3ECE 545 – Introduction to VHDL architecture MLU_DATAFLOW of MLU is signal A1:STD_LOGIC; signal B1:STD_LOGIC; signal Y1:STD_LOGIC; signal MUX_0, MUX_1, MUX_2, MUX_3: STD_LOGIC; begin A1<=A when (NEG_A='0') else not A; B1<=B when (NEG_B='0') else not B; Y<=Y1 when (NEG_Y='0') else not Y1; MUX_0<=A1 and B1; MUX_1<=A1 or B1; MUX_2<=A1 xor B1; MUX_3<=A1 xnor B1; with (L1 & L0) select Y1<=MUX_0 when "00", MUX_1 when "01", MUX_2 when "10", MUX_3 when others; end MLU_DATAFLOW; VHDL description Circuit netlist Logic Synthesis

4ECE 545 – Introduction to VHDL Basic Synthesis Flow

5ECE 545 – Introduction to VHDL Synthesis using Design Compiler

6ECE 545 – Introduction to VHDL

7

8 Scripts

9ECE 545 – Introduction to VHDL Synthesis script (1) designer = "Pawel Chodowiec" company = "George Mason University" search_path = "./opt3/synopsys/TSMCHOME/digital/Front_End/timing_power/tcb013ghp_200a " link_library = "* tcb013ghptc.db" /* Typical case library */ target_library = "tcb013ghptc.db " symbol_library = "tcb013ghp.sdb " /* Directory configuration */ src_directory = ~/exam1/vhdl/ report_directory = ~/exam1/reports/ db_directory = ~/exam1/db/

10ECE 545 – Introduction to VHDL Synthesis script (2) /* Packages can be only read */ read_file -format vhdl -rtl src_directory + "components.vhd" blocks = {regne, upcount, RAM_16Xn_DISTRIBUTED, exam1} foreach (block, blocks) { block_source = src_directory + block + ".vhd" read_file -format vhdl -rtl block_source analyze -format vhdl -lib WORK block_source } current_design block /* All commands now apply to the entity "exam1" */

11ECE 545 – Introduction to VHDL Synthesis script (3) uniquify /* Creates unique instances of multiple refrenced entities */ link check_design /* Checks the current design for consistency */ /*******************************************/ /* apply block attributes and constraints */ /*******************************************/ create_clock -period 10 clk /* Defines that the port "clk" on the entity "clk" is the clock for the design. Period=10ns 50% duty cycle Use -waveform option to define duty cycle other than 50%*/ set_operating_conditions NCCOM /*Normal Case Commercial Operating Conditions*/

12ECE 545 – Introduction to VHDL Synthesis script (4) /***************************************************/ /* Apply these constraints to the top-level entity*/ /***************************************************/ set_max_fanout 100 block set_clock_latency 0.1 find(clock, "clk") set_clock_transition 0.01 find(clock, "clk") set_clock_uncertainty -setup 0.1 find(clock, "clk") set_clock_uncertainty -hold 0.1 find(clock, "clk") set_load 0 all_outputs() set_input_delay 1.0 -clock clk -max all_inputs() set_output_delay -max 1.0 -clock clk all_outputs() set_wire_load_model -library tcb013ghptc -name "TSMC8K_Fsg_Conservative"

13ECE 545 – Introduction to VHDL Wireload model basics (1)

14ECE 545 – Introduction to VHDL Wireload model basics (2)

15ECE 545 – Introduction to VHDL Synthesis script (5) set_dont_touch block compile -map_effort medium change_names -rules vhdl vhdlout_architecture_name = "sort_syn" vhdlout_use_packages = {"IEEE.std_logic_1164"} write -f db -hierarchy -output db_directory + "exam1.db" /*write -f vhdl -hierarchy -output db_directory + "exam1_syn.vhd"*/ report -area > report_directory + "exam1.report_area" report -timing -all > report_directory + "exam1.report_timing"

16ECE 545 – Introduction to VHDL Tips & Hints

17ECE 545 – Introduction to VHDL Tips & Hints (1) Each entity and each package should be placed in a different file. The name of each file should be exactly the same as the name of an entity or package it contains. Arrange entity names in the bottom-up order (the top-most entity at the end of the list) and define this list in your script using the command blocks = { entity1, entity2, …, entityN}

18ECE 545 – Introduction to VHDL Tips & Hints (2) Use only one clock in your entire design. Use an identical name for the clock signal in all your entities and packages (including declarations of components). Use the same clock name in all clock-related commands of your script, such as create_clock, set_clock_transition, etc.

19ECE 545 – Introduction to VHDL Avoid advanced features, such as: multiple clocks, gated clocks, multicycle paths, circular feedback loops containing only combinational logic. Although these features are supported by Synopsys, their correct use requires additional knowledge and experience that are beyond the scope of ECE 545. Tips & Hints (3)

20ECE 545 – Introduction to VHDL Tips & Hints (4) Create a project directory in your main user directory. Create the following subdirectories in the project directory: db, docs, log, reports, scripts, tb, vhdl. Place all your synthesizable source files in the vhdl directory, and your testbench files in the tb directory. Place your scripts in the script directory. Define at least the following directories close to the beginning of your script: src_directory, report_directory, db_directory.

21ECE 545 – Introduction to VHDL Tips & Hints (5) Change your current directory to your log directory before you execute design_analyzer. After executing your script within design_analyzer, analyze the contents of log files generated in the directory log. These files contain the exact description of warnings and errors generated during synthesis. Please do your best to eliminate all errors and majority of warnings generated by the scripts and written to the log files.

22ECE 545 – Introduction to VHDL Results of synthesis

23ECE 545 – Introduction to VHDL Area report after synthesis (1) report_area Information: Updating design information... (UID-85) **************************************** Report : area Design : exam1 Version: V SP1 Date: Tue Nov 15 20:39: **************************************** Library(s) Used: tcb013ghptc (File: /opt3/synopsys/TSMCHOME/digital/Front_End/timing_power/ tcb013ghp_200a/tcb013ghptc.db)

24ECE 545 – Introduction to VHDL Area report after synthesis (2) Number of ports: 75 Number of nets: 346 Number of cells: 107 Number of references: 28 Combinational area: Noncombinational area: Net Interconnect area: undefined (Wire load has zero net area) Total cell area: Total area: undefined

25ECE 545 – Introduction to VHDL Critical Path (1) Critical Path – The Longest Path From Outputs of Registers to Inputs of Registers DQ in clk DQ out t logic t Critical = t FF-P + t logic + t FF-setup

26ECE 545 – Introduction to VHDL Critical Path (2) Min. Clock Period = Length of The Critical Path Max. Clock Frequency = 1 / Min. Clock Period

27ECE 545 – Introduction to VHDL n+m

28ECE 545 – Introduction to VHDL Clock Jitter Rising Edge of The Clock Does Not Occur Precisely Periodically May cause faults in the circuit clk

29ECE 545 – Introduction to VHDL Clock Skew Rising Edge of the Clock Does Not Arrive at Clock Inputs of All Flip-flops at The Same Time DQ in clk DQ out delay DQ in clk DQ out delay

30ECE 545 – Introduction to VHDL H-clock tree used to minimize clock skew

31ECE 545 – Introduction to VHDL Timing report after synthesis (1) **************************************** Report : timing -path full -delay max -max_paths 1 Design : exam1 Version: V SP1 Date : Tue Nov 15 20:39: **************************************** Operating Conditions: NCCOM Library: tcb013ghptc Wire Load Model Mode: segmented

32ECE 545 – Introduction to VHDL Timing report after synthesis (2) Startpoint: in_addr(1) (input port clocked by clk) Endpoint: RegSUM/Q_reg[34] (rising edge-triggered flip-flop clocked by clk) Path Group: clk Path Type: max Des/Clust/Port Wire Load Model Library exam1 TSMC8K_Fsg_Conservative tcb013ghptc RAM_16Xn_DISTRIBUTED ZeroWireload tcb013ghptc exam1_DW01_cmp2_32_0 ZeroWireload tcb013ghptc exam1_DW01_cmp2_32_1 ZeroWireload tcb013ghptc exam1_DW01_add_35_0 ZeroWireload tcb013ghptc regne_1 ZeroWireload tcb013ghptc regne_2 ZeroWireload tcb013ghptc regne_n35 ZeroWireload tcb013ghptc

33ECE 545 – Introduction to VHDL Timing report after synthesis (3) Point Incr Path clock clk (rise edge) clock network delay (ideal) input external delay f in_addr(1) (in) f U98/Z (CKMUX2D1) f Memory/ADDR[1] (RAM_16Xn_DISTRIBUTED) f Memory/U41/ZN (INVD1) r Memory/U343/Z (OR3D1) r Memory/U338/ZN (INVD2) f Memory/U40/ZN (MOAI22D0) f Memory/U350/Z (OR4D1) f Memory/DATA_OUT[0] (RAM_16Xn_DISTRIBUTED) f

34ECE 545 – Introduction to VHDL Timing report after synthesis (4) add_96xplusxplus/B[0] (exam1_DW01_add_35_0) f add_96xplusxplus/U9/Z (AN2D0) f add_96xplusxplus/U1_1/CO (CMPE32D1) f add_96xplusxplus/U1_2/CO (CMPE32D1) f add_96xplusxplus/U1_3/CO (CMPE32D1) f add_96xplusxplus/U1_4/CO (CMPE32D1) f add_96xplusxplus/U1_5/CO (CMPE32D1) f add_96xplusxplus/U1_6/CO (CMPE32D1) f add_96xplusxplus/U1_7/CO (CMPE32D1) f add_96xplusxplus/U1_8/CO (CMPE32D1) f add_96xplusxplus/U1_9/CO (CMPE32D1) f add_96xplusxplus/U1_10/CO (CMPE32D1) f add_96xplusxplus/U1_11/CO (CMPE32D1) f add_96xplusxplus/U1_12/CO (CMPE32D1) f add_96xplusxplus/U1_13/CO (CMPE32D1) f add_96xplusxplus/U1_14/CO (CMPE32D1) f

35ECE 545 – Introduction to VHDL Timing report after synthesis (5) add_96xplusxplus/U1_15/CO (CMPE32D1) f add_96xplusxplus/U1_16/CO (CMPE32D1) f add_96xplusxplus/U1_17/CO (CMPE32D1) f add_96xplusxplus/U1_18/CO (CMPE32D1) f add_96xplusxplus/U1_19/CO (CMPE32D1) f add_96xplusxplus/U1_20/CO (CMPE32D1) f add_96xplusxplus/U1_21/CO (CMPE32D1) f add_96xplusxplus/U1_22/CO (CMPE32D1) f add_96xplusxplus/U1_23/CO (CMPE32D1) f add_96xplusxplus/U1_24/CO (CMPE32D1) f add_96xplusxplus/U1_25/CO (CMPE32D1) f add_96xplusxplus/U1_26/CO (CMPE32D1) f add_96xplusxplus/U1_27/CO (CMPE32D1) f add_96xplusxplus/U1_28/CO (CMPE32D1) f add_96xplusxplus/U1_29/CO (CMPE32D1) f add_96xplusxplus/U1_30/CO (CMPE32D1) f add_96xplusxplus/U1_31/CO (CMPE32D1) f

36ECE 545 – Introduction to VHDL Timing report after synthesis (6) add_96xplusxplus/U7/Z (AN2D0) f add_96xplusxplus/U5/Z (AN2D0) f add_96xplusxplus/U4/Z (CKXOR2D0) f add_96xplusxplus/SUM[34] (exam1_DW01_add_35_0) f RegSUM/R[34] (regne_n35) f RegSUM/U32/Z (AO21D0) f RegSUM/Q_reg[34]/D (EDFQD1) f data arrival time 5.57

37ECE 545 – Introduction to VHDL Timing report after synthesis (7) clock clk (rise edge) clock network delay (ideal) clock uncertainty RegSUM/Q_reg[34]/CP (EDFQD1) r library setup time data required time data required time 9.88 data arrival time slack (MET) 4.31

38ECE 545 – Introduction to VHDL Timing parameters

39ECE 545 – Introduction to VHDL Timing parameters definition units pipelining delay clock period clock frequency time point  point rising edge  rising edge of clock 1 clock period ns MHz good latency throughput time input  output #output bits/time unit ns Mbits/s bad good

40ECE 545 – Introduction to VHDL register combinational logic one round multiplexer Basic iterative architecture of the encryption/decryption unit round keys enc_dec

41ECE 545 – Introduction to VHDL IN OUT M1 C1 M2 C2 M3 Basic iterative architecture: Timing k · clock_period CLK Latency

42ECE 545 – Introduction to VHDL Increasing throughput using pipelining round 1 round Throughput = target_clock_period block size target clock period, e.g., 20 ns

43ECE 545 – Introduction to VHDL Optimization criteria

44ECE 545 – Introduction to VHDL Degrees of freedom and possible trade-offs speedarea power testability

45ECE 545 – Introduction to VHDL speed area latency throughput Degrees of freedom and possible trade-offs

46ECE 545 – Introduction to VHDL Optimization methods

47ECE 545 – Introduction to VHDL Speed optimization methods (1) better architecture (e.g., CLA vs. ripple carry adder) pipelining parallel processing optimization options of synthesis and implementation tools

48ECE 545 – Introduction to VHDL Speed optimization methods (2) reducing fanout of control signals better state encoding registered outputs from the state machine