EE4415 Integrated Digital Design Project Report. Name: Phang Swee King Matric Number: U066584J

Similar documents
Design Rules and Min Timing

Getting a Quick Start 2

Partitioning for Better Synthesis Results

DC-Tcl Procedures. Learning Objectives. After completing this lab, you should be able to: Write generic DC-Tcl procedures. Lab Duration: 30 minutes

Compile RISC_CORE. Learning Objectives. After completing this lab, you should be able to: Perform a top-down compile strategy on the RISC_CORE design

CS/EE 6710 Digital VLSI Design Tutorial on Cadence to Synopsys Interface (CSI)

Multiple Clocks and Timing Exceptions

Specifying Timing Exceptions

Performing STA. Learning Objectives

A. Setting Up the Environment a. ~/ece394 % mkdir synopsys b.

Lecture 11 Logic Synthesis, Part 2

King Fahd University of Petroleum and Minerals. Computer Engineering Department. COE 561 Digital Systems Design and Synthesis (Course Activity)

Preparing for Optimization 7

Overview. Design flow. Principles of logic synthesis. Logic Synthesis with the common tools. Conclusions

RTL Synthesis using Design Compiler. Dr Basel Halak

Hardware Verification Group. Department of Electrical and Computer Engineering, Concordia University, Montreal, Canada. CAD Tool Tutorial.

Graduate Institute of Electronics Engineering, NTU Synopsys Synthesis Overview

Introduction to Design With Verilog. Synopsys University Courseware 2008 Synopsys, Inc. Lecture - 3 Developed By: Paul D. Franzon

SmartTime for Libero SoC v11.5

Introduction to STA using PT

Agenda: Day One 3-1 DAY. Welcome. Introduction to Static Timing Analysis. Writing Basic Tcl Constructs in PT. Constraining Internal Reg-Reg paths

Behavioral Modeling and Timing Constraints

Tutorial for Verilog Synthesis Lab (Part 2)

Graduate Institute of Electronics Engineering, NTU Synopsys Synthesis Overview

Laboratory 5. - Using Design Compiler for Synthesis. By Mulong Li, 2013

EE 5327 VLSI Design Laboratory Lab 8 (1 week) Formal Verification

ENGN 1630: CPLD Simulation Fall ENGN 1630 Fall Simulating XC9572XLs on the ENGN1630 CPLD-II Board Using Xilinx ISim

Pipelined MIPS CPU Synthesis and On-Die Representation ECE472 Joseph Crop Stewart Myers

Setup file.synopsys_dc.setup

Logic Synthesis. Logic Synthesis. Gate-Level Optimization. Logic Synthesis Flow. Logic Synthesis. = Translation+ Optimization+ Mapping

EECS 151/251A ASIC Lab 6: Power and Timing Verification

Automated Synthesis from HDL models. Design Compiler (Synopsys) Leonardo (Mentor Graphics)

Introduction to Design Compiler

ECE 551 Design Vision Tutorial

A Comparison of Hierarchical Compile Strategies

CS250 DISCUSSION #2. Colin Schmidt 9/18/2014 Std. Cell Slides adapted from Ben Keller

HOW TO SYNTHESIZE VERILOG CODE USING RTL COMPILER

PrimeTime: Introduction to Static Timing Analysis Workshop

Hardware Verification Group

Altera Technical Training Quartus II Software Design

Vivado Design Suite Tutorial. Using Constraints

Experiment VERI: FPGA Design with Verilog (Part 2) (webpage: /)

EE-382M VLSI II. Early Design Planning: Front End

ECE 4514 Digital Design II. Spring Lecture 20: Timing Analysis and Timed Simulation

VIVADO TUTORIAL- TIMING AND POWER ANALYSIS

EECS 151/251A ASIC Lab 3: Logic Synthesis

Intel Quartus Prime Standard Edition User Guide

Asic Design ET Alexander de Graaf, EEMCS/ME/CAS 5/20/14. Challenge the future. Delft University of Technology

ASIC Development. ASIC Classes. What s an ASIC, Anyhow? ASIC Methodology. Abstract Representations 2/16/2018

Logic Synthesis ( Prof. Dejan Marković VLSI Design Flow. Specifications & System Simulation (MATLAB, Simulink, C++)

Tutorial 2.(b) : Synthesizing your design using the Synopsys Design Compiler ( For DFT Flow)

Using Tcl. Learning Objectives

ECE 574: Modeling and Synthesis of Digital Systems using Verilog and VHDL. Fall 2017 Final Exam (6.00 to 8.30pm) Verilog SOLUTIONS

Using XILINX WebPACK Software to Create CPLD Designs

EE183 LAB TUTORIAL. Introduction. Projects. Design Entry

Applications Note. HDL Simulation FPGA Design Methodology. October 15, Revision 1.0

INTRODUCTION TO CATAPULT C

CPE/EE 427, CPE 527, VLSI Design I: Tutorial #4, Standard cell design flow (from verilog to layout, 8-bit accumulator)

Design Space Exploration: Implementing a Convolution Filter

8. Best Practices for Incremental Compilation Partitions and Floorplan Assignments

Actel s SX Family of FPGAs: A New Architecture for High-Performance Designs

VHDL for Synthesis. Course Description. Course Duration. Goals

Introduction. In this exercise you will:

FishTail: The Formal Generation, Verification and Management of Golden Timing Constraints

Introduction to Xilinx Vivado tools

Lesson 19: Processing a Hierarchical Design

Virtex 2.1i tutorial: Verilog using FPGA Compiler and VerilogXL

My First FPGA for Altera DE2-115 Board

Writing Circuit Descriptions 8

18. Synopsys Formality Support

Working With Design Files 3

Outline. SoC Encounter Flow. Typical Backend Design Flow. Digital IC-Project and Verification. Place and Route. Backend ASIC Design flow

Algorithmic C synthesis (High-level synthesis)

Vivado Design Suite Tutorial: Implementation

Best Practices for Incremental Compilation Partitions and Floorplan Assignments

Reading the Design into PT

A GENERATION AHEAD SEMINAR SERIES

EDA: Electronic Design Automation

A Brief Introduction to Verilog Hardware Definition Language (HDL)

Part B. Dengxue Yan Washington University in St. Louis

Introduction to Design Vision. Instructor: Prof. Shantanu Dutt. TA: Soumya Banerjee

ECE 5745 ASIC Tutorial

Introduction to WebPACK 3.1. Using XILINX WebPACK Software to Create CPLD Designs

Physical Placement with Cadence SoCEncounter 7.1

June 2003, ver. 1.2 Application Note 198

Altera/Synopsys User Guide

VERILOG: FLIP-FLOPS AND REGISTERS

University of Toronto Faculty of Applied Science and Engineering Edward S. Rogers Sr. Department of Electrical and Computer Engineering

Place & Route Tutorial #1

Digital Design LU. Lab Exercise 1

ECE 353 Lab 4. MIDI Receiver in Verilog. Professor Daniel Holcomb UMass Amherst Fall 2016

structure syntax different levels of abstraction

Here is a list of lecture objectives. They are provided for you to reflect on what you are supposed to learn, rather than an introduction to this

Magic Tutorial #11: Using IRSIM and RSIM with Magic

Arbiters: Design Ideas and Coding Styles

Timing Analyzer Quick-Start Tutorial

Verilog for High Performance

23. Digital Baseband Design

Assignment. Last time. Last time. ECE 4514 Digital Design II. Back to the big picture. Back to the big picture

EECS 470: Computer Architecture. Discussion #2 Friday, September 14, 2007

Transcription:

EE4415 Integrated Digital Design Project Report Name: Phang Swee King Matric Number: U066584J April 10, 2010

Contents 1 Lab Unit 1 2 2 Lab Unit 2 3 3 Lab Unit 3 6 4 Lab Unit 4 8 5 Lab Unit 5 9 6 Lab Unit 6 11 7 Lab Unit 7 13 8 Lab Unit 8 14 1

1 Lab Unit 1 Objectives This exercise describes the 6 basic steps involved in the synthesis process and how to navigate through a designs hierarchy using Design Vision, the graphical interface to Design Compiler. Discussions Question 1 To increase the counter width from three bits to six bits, the vhdl file can be modified. counter.v is editted and the following line of code was modified. output [5:0] Counter_Out; reg [5:0] Counter_Out; Question 2 To increase the clock frequency to 1 GHz, the config file, counter6.con can be modified. The following line of code is used to replaced the original code on clock initialization. create_clock -period 1 -name my_clock [get_ports Clock_In] Note that it is refering to create a clock with period of 1 nanoseconds. Question 3 To switch to a different silicon vendor, a new library file should be given by the new vendor. Then, the link to the target library file can be changed in.synopsys dc.setup file. Or else, change the target library variable by typing the command set target library <another library name>.db and change the design references by typing set link library * <another library name>.db 2

2 Lab Unit 2 Objectives 1. Use the basic features of Design Vision 2. Use the Designs, Symbol and Schematic Views of Design Vision, and select menu, and mouse functions 3. Take a design through the basic synthesis steps Discussions Task 2 3. (a) Link Library is * core slow.db Task 8 (b) Target Library is core slow.db (c) Symbol Library is core.sdb 2. Max Delay: Largest Violation (Slack) is -0.20 Max Area: Actual Area is 2501.35 Question 1 To select multiple objects in Design Vision, hold the Ctrl key and left click the objects with the mouse button. Question 2 The following functions are available using the right mouse button: 1. Zoom Fit All 2. Zoom In Tool 3. Zoom Out Tool 4. Pan Tool 5. Edit Attributes 6. Timing Paths Report 7. Properties 3

Question 3 The basic synthesis flow is as follows: 1. G. Set up library variables 2. B. Read in the unmapped design 3. D. Apply a constraint script file 4. A. Compile 5. C. Generate a constraint report 6. F. Determine if constraints are met 7. E. Save the mapped design Question 4 Optimization and mapping of a design with Design Vision can be done by typing compile at the command window. Question 5 By choosing File and Save As, it saves a design in Design Vision. Question 6 Using synthesis in a design flow makes modifying and debugging much easier. Question 7 design vision-xg will invoke the GUI of the Design Compiler, where it supports mouse operation and some other visible objects. dc shell-xg-t will only allow us to interface with Design Compiler using command line. It only activates the Design Compiler where the operations need to be done by using keyboard input at the prompt. Question 8.synopsys dc.setup file is created to setup the compiler. defines aliases on the components we ll use in our project. It provides libraries and Question 9 The following codes can be typed at the command window to check if the library variables are set up correctly: 4

printvar target_library printvar link_library Alternatively, one can invoke from the File and Setup from the menu bar. Question 10 To read VHDL or Verilog code into Design Vision, choose File and read, then choose the corresponding file. Question 11 The two optimization goals we can set on a design is the smallest area and lowest time slack. Question 12 The target library variable points to the desired technology library. 5

3 Lab Unit 3 Objectives Improve a designs QoR (Quality of Results = Timing and/or Area) by repartitioning a design using the group and ungroup commands. Discussions Task 1 3. (a) Max Delay: Largest Violation (Slack) = -0.197269 (b) Total Cell Area (Max Area): Actual Area = 2501.350010 5. It violated the guideline of avoid separating combinational logic across hierarchical boundaries and place hierarchy boundaries at register outputs. It can be improved by join block DECODE and CNT to improve the partitioning of this design. Task 2 1. Task 3 Task Compiled Design Timing Slack Actual Area Task 1 Initial partitioning -0.197269 2501.350010 Task 3 After partitioning -0.00446081 2576.690010 4. Max Delay: Largest Violation (Slack) = -0.00446081 Max Area: Actual Area = 2576.690010 5. Does the critical path cross any purely combinational block? ans: Yes 7. Did partitioning Question 1 (a) Improve timing? By how much? Yes. Improved by 0.1928 (b) Improve area? No. Worsen by 75.34 It is important to partition a design correctly in the source code such that the design is well optimized and to speed up the synthesis process. It can also simplify constraints and scripts that need to be applied. 6

Question 2 The reason for not ungrouping the entire hierarchy is that it will be too messy. It will become not systematic and debugging will be tough. Furthermore, we may reuse the block in other part of the design if we partition them correctly. The most critical problem for a flattened design is that it will take too long time for the compilation. Question 3 The 3 synthesis benefits we ve gain from good partitioning are: 1. Time saving to detect error easier 2. Optimization can be done easily 3. Compile run time will be much faster Question 4 To implement partitioning in the RTL code, we create the top-level hierarchy by grouping circuits with similar functionalities and clocks together by using the group command. On the other hand, we remove unnecessary sub-hierarchy and glue logic by using the ungroup command. Question 5 1. Create blocks with reasonable sizes. 2. Separate core logic, pads, clocks, asynchronous logic and JTAG. Question 6 By placing hierarchy boundaries at register outputs wil help simplify setting constraints on a design. 7

4 Lab Unit 4 Objectives Write a simple DC-Tcl script file to compile a design. Discussions The script file runit.tcl is written as follows: # Script file in lab 4 # Read the unmapped design netlist read_ddc unmapped/prgrm_cnt_top.ddc # Set the current_design current_design PRGRM_CNT_TOP link # Constrain design source scripts/example.tcl # Default compile compile # Generate and save constraint report redirect -tee reports/prgrm_cnt_top.rpt {report_constraint -all_violators} # Save mapped design write -hierarchy -format ddc -output mapped/prgrm_cnt_top.ddc # Quit DC quit 8

5 Lab Unit 5 Objectives Apply timing constraints to a design. Discussions Question 1 Input Delay = 1.25 ns Output Delay = 3.25 ns Question 2 core slow.db, gtech.db and standard.sldb are the libraries in DC memory. Question 3 The technbology library name for the target library is ssc core slow. Question 4 The Time Unit is 1 ns. Question 5 The Capacitive Load Unit is 1.000000 pf. Question 6 The design is reset before applying design constraints to clear the previous unwanted constraint such that we could start a new design. Question 7 It is important to check the library time units before setting constraints because we must know the time unit in order to set the time correctly. Question 8 The dc shell-xg-t command for setting a max area goal of 500 is: set_max_area 500 9

Question 9 Timing has a higher priority compare to area goals. Question 10 The name of the attribute is max area. Question 11 To check what area goal has been placed on a design, report attribute is typed in command window and max area attribute can be found from the report. 10

6 Lab Unit 6 Objectives 1. Apply operating conditions, a wire load model, and port environment attributes on a design 2. Save the attributes and constraints set on the current design using the write script command Discussions Question 1 The worst case operating condition would be under temperature of 125 C and voltage of 1.62 V. Question 2 The following operating conditions are available: 1. slow 125 1.62 2. slow 125 1.62 WCT Question 3 The 5KGATES wire load model will be used. Question 4 report attribute and get attribute Question 5 If the port environment is not model accurately, it is likely that even if the simulation passed, the designed circuit might fail the timing requirements in the real applications. Question 6 The defailt operating condition is slow 125 1.62 with temperature of 125 C and voltage of 1.62 V. Question 7 11

There are 7 wire load models. Question 8 DC would pick 40KGATES wire load model. Question 9 0.000271 kω. Question 10 CLK, D, E, Q. Question 11 0.021000 pf. Question 12 Yes, timing constraint is met. Question 13 Different load have different capacitance. Loads with higher capacitance take more time to be charged up or pulled down. This would affect the timing of the circuit. Question 14 1. per-unit-length resistance 2. per-unit-length capacitance 3. extrapolation slope Question 15 1. set driving cell 2. set max capacitance 3. set load 4. set input delay 5. set max area 12

7 Lab Unit 7 Objectives 1. Apply design rules and hold time constraints 2. Fix design rule violations 3. Fix hold time violations Discussions Question 1 set ALL_INS_EX_CLK [remove_from_collection \ [all_inputs] [get_ports CLK]] set_max_transition 0.25 $ALL_INS_EX_CLK set_input_delay -min 0.2 -clock my_clk $ALL_INS_EX_CLK set_output_delay -min [expr 0.2-0.5] -clock my_clk [all_outputs] Question 2 The data at the input of a register might not stay long enough for the register to correctly record down the value during rising edge. 13

8 Lab Unit 8 Objectives Interpret various timing reports generated by report timing. Discussions Question 1 By typing check timing command, there are no unconstrainted timing paths. Question 2 By typing report path group command, there are two path groups: 1. **default** 2. my clk Question 3 This is a setup time report. Question 4 The start point is Crnt Instrn[20]. It is an input port of internal register. Question 5 The end point is I PRGRM CNT/PCint reg[0]. Question 6 It is under operating condition slow 125 1.62 standard condition with temperature of 125 C and voltage of 1.62 V. The wire load model is 5KGATES. Question 7 This timing path met its constrants since the slack is +0.03. Question 8 The clock period for Clk is 4 ns 14

Question 9 For this case, input external delay is 1 ns. This number comes from the delay between the Crnt Instrn register s clock input and its output. Question 10 Yes. It can be observed that there are two partition, I PRGRM DECODE and I PRGRM CNT both having combinational logics. It means that the combinational logics are broken by the partitioning. Question 11 The setup time required is given in library setup time which is 0.37 ns. Question 12 It represents the clock skew. In other words, it means the clock edge may arrive earlier or later by 0.25 ns, where in the design, worst case is adopted. Question 13 This timing report shows all timing with accuracy of 6 significant figure. Question 14 They are the wire load delays. However, the wires have almost zero resistance and zero capacitance, thus the delays are zero. Question 15 The Fanout column represent the sum of fanout load on that particular port. If the max fanout value is set, the value in this Fanout column must be smaller than the max fanout value, or else violation will occur. Question 16 This is a hold time report. Question 17 The start point is I PRGRM FSM/Current State reg[1]. 15

Question 18 The end point is Current State[1]. Question 19 This timing path violate its constraints, the slack is 0.09. Question 20 It is under operating condition slow 125 1.62 standard condition with temperature of 125 C and voltage of 1.62 V. The wire load model is 5KGATES. Question 21 This is not an appropriate operating condition. For hold time calculations, the minimum timing is concerned and the worst case happens when everything is the fastest. Thus, this condition is not appropriate for setting up the fastest condition. Question 22 0.3 ns. Question 23 0.46 ns. Question 24 If only the clock uncertainty is zero it is enough. However for this case, the clock uncertainty is 0.25 ns. It means that the hold time requirement is 0.25 + 0.30 = 0.55 ns. Therefore it needs another 0.09 ns to safely meet the requirement. 16