Partitioning for Better Synthesis Results

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

Getting a Quick Start 2

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

Tutorial for Verilog Synthesis Lab (Part 2)

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

ECE 551: Digital System Design & Synthesis

8. Best Practices for Incremental Compilation Partitions and Floorplan Assignments

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

EE183 LAB TUTORIAL. Introduction. Projects. Design Entry

Graduate Institute of Electronics Engineering, NTU Synopsys Synthesis Overview

RTL Synthesis using Design Compiler. Dr Basel Halak

Lecture 11 Logic Synthesis, Part 2

Graduate Institute of Electronics Engineering, NTU Synopsys Synthesis Overview

Design Rules and Min Timing

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

Introduction to STA using PT

Techniques for Achieving Higher Completion in Formality

An introduction to CoCentric

Board-Data Processing. VHDL Exercises. Exercise 1: Basics of VHDL Programming. Stages of the Development process using FPGA s in Xilinx ISE.

1 Design Process HOME CONTENTS INDEX. For further assistance, or call your local support center

University of California, Davis Department of Electrical and Computer Engineering. EEC180B DIGITAL SYSTEMS Spring Quarter 2018

CSE P567 - Winter 2010 Lab 1 Introduction to FGPA CAD Tools

Setup file.synopsys_dc.setup

Writing Circuit Descriptions 8

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

Actel Libero TM Integrated Design Environment v2.3 Structural Schematic Flow Design Tutorial

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

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

Best Practices for Incremental Compilation Partitions and Floorplan Assignments

Evolution of CAD Tools & Verilog HDL Definition

Reading the Design into PT

18. Synopsys Formality Support

13. LogicLock Design Methodology

Step 1: Downloading the source files

Working With Design Files 3

Chapter 1 Overview of Digital Systems Design

Introduction to Verilog. Mitch Trope EECS 240 Spring 2004

Tutorial for Altera DE1 and Quartus II

LECTURE 5: VHDL SYNTHESIS with SYNOPSYS dc_shell

Lab 1: Introduction to Verilog HDL and the Xilinx ISE

Addressing Verification Bottlenecks of Fully Synthesized Processor Cores using Equivalence Checkers

10 Writing Circuit Descriptions

Digital Design and Computer Architecture

2 nd Year Laboratory. Experiment: FPGA Design with Verilog. Department of Electrical & Electronic Engineering. Imperial College London.

Altera Quartus II Synopsys Design Vision Tutorial

Introduction to VHDL Design on Quartus II and DE2 Board

23. Digital Baseband Design

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

ECE 551 Design Vision Tutorial

UNIVERSITY OF CALIFORNIA, DAVIS Department of Electrical and Computer Engineering. EEC180A DIGITAL SYSTEMS I Winter 2015

Graduate Institute of Electronics Engineering, NTU. Lecturer: Chihhao Chao Date:

Synthesis and APR Tools Tutorial

ECE425: Introduction to VLSI System Design Machine Problem 3 Due: 11:59pm Friday, Dec. 15 th 2017

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

NEXYS4DRR board tutorial

Digital System Design Lecture 2: Design. Amir Masoud Gharehbaghi

UNIT 6 CIRCUIT DESIGN

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

TUTORIALS FOR MAX3000A CPLD DEVICES

Programmable Logic Devices HDL-Based Design Flows CMPE 415

Digital Design LU. Lab Exercise 1

RTL and Technology Schematic Viewers Tutorial. UG685 (v13.1) March 1, 2011

Part B. Dengxue Yan Washington University in St. Louis

Compiler User Guide. Intel Quartus Prime Pro Edition. Updated for Intel Quartus Prime Design Suite: Subscribe Send Feedback

ECEU530. Schedule. ECE U530 Digital Hardware Synthesis. Datapath for the Calculator (HW 5) HW 5 Datapath Entity

Verilog Simulation Mapping

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

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

ENSC E-123: HW D3: Counter Applications; Counter in Verilog

The IIT standard cell library Version 2.1

Lab 6 Debugging. Objective. Introduction. Prelab

Altera Quartus II Tutorial ECE 552

Using XILINX WebPACK Software to Create CPLD Designs

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

Lecture 9. VHDL, part IV. Hierarchical and parameterized design. Section 1 HIERARCHICAL DESIGN

Lab 1: FPGA Physical Layout

Quick Tutorial for Quartus II & ModelSim Altera

ELEC 4200 Lab#0 Tutorial

Lab 1 Modular Design and Testbench Simulation ENGIN 341 Advanced Digital Design University of Massachusetts Boston

5 January ModelSim v5.7 Quick Reference Guide

VHDL Sample Slides Rev Sample Slides from the 2-day and 4-day VHDL Training Courses

Intel Quartus Prime Pro Edition User Guide

University of Massachusetts Amherst Computer Systems Lab 2 (ECE 354) Spring Lab 1: Using Nios 2 processor for code execution on FPGA

Lab 3. Advanced VHDL

Programmable Logic Design Techniques I

Lab. Course Goals. Topics. What is VLSI design? What is an integrated circuit? VLSI Design Cycle. VLSI Design Automation

DESIGN STRATEGIES & TOOLS UTILIZED

Chapter 2 Getting Hands on Altera Quartus II Software

PINE TRAINING ACADEMY

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

Programming with HDLs

Digital Design Using Verilog EE Final Examination

ECE337 Lab 1 Introduction to VHDL Simulation via Modelsim and Digital Logic Design Refresher

Virtex 2.1i tutorial: Verilog using FPGA Compiler and VerilogXL

EEL 5722C Field-Programmable Gate Array Design

High Quality, Low Cost Test

FPGA Design Flow 1. All About FPGA

Lecture 8: Synthesis, Implementation Constraints and High-Level Planning

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

Transcription:

3 Partitioning for Better Synthesis Results Learning Objectives After completing this lab, you should be able to: Use the group and ungroup commands to repartition a design within Design Analyzer Analyze the partitioning of a design, and if necessary, repartition the design Lab Duration: 30 minutes Partitioning Lab 3-1 Synopsys 31833-000-S38

Exercise Flow Diagram Read mapped/ my_first_design.db Analyze partitioning, Highlight critical path Remove all designs from Design Analyzer Read unmapped/ PRGRM_CNT_TOP.db Repartition using group or ungroup Apply scripts/example.scr Compile Generate a constraint report Quit Design Analyzer Lab 3-2 Partitioning

Task 1. Analyze Partitioning of PRGRM_CNT_TOP 1. If not open yet from the previous lab, start Design Analyzer and open the Command Window. 2. Choose File Read. 3. Double click on the mapped directory, then my_first_design.db. 4. Go to the Schematic View of PRGRM_CNT_TOP and highlight the critical path. Push into the subblocks to see the critical path start and end points. Notice that the path traverses a block that is completely combinational. This violates one of the partitioning rules discussed during lecture. The hierarchical boundaries limit Design Compiler s ability to optimize the combinational logic in this timing path. 5. In the space below, draw the block diagram for PRGRM_CNT_TOP, and indicate where the critical path start and end points are. Think about which partitioning guidelines the design violates. How can you improve the partitioning of this design? Original Partitioning After Re-Partitioning You will correct the partitioning problem by using the Design Compiler commands group and ungroup. 6. Remove all designs from the Designs View. Partitioning Lab 3-3

Task 2. Read Source Code and Repartition 1. Read the unmapped design unmapped/prgrm_cnt_top.db. 2. Go to the Schematic View of PRGRM_CNT_TOP. Select the designs labeled PRGRM_DECODE and PRGRM_CNT. 3. Choose Edit Group. 4. Enter the New Design Name NEW_PC. 5. Enter a cell name: I_NEW_PC. 6. Click OK. Note: A box labeled NEW_PC replaces the two selected cells. 7. Go to the Schematic View of instance I_NEW_PC (design NEW_PC). Make sure you are in the Schematic View, and that you are looking at the schematic of NEW_PC. Look at the bottom of the Design Analyzer window and verify that the Current Instance is I_NEW_PC. 8. Select both cells I_PRGRM_DECODE and I_PRGRM_CNT. 9. Choose Edit Ungroup. 10. Click OK. Lab 3-4 Partitioning

Task 3. Compile and Analyze Results 1. Go up the hierarchy to the Symbol or Schematic View of PRGRM_CNT_TOP. Look at the bottom of the Design Analyzer window to make sure the current_design is PRGRM_CNT_TOP. 2. Execute the script file scripts/example.scr. 3. Perform a Design Optimization (compile) on PRGRM_CNT_TOP. 4. Generate a constraint report with All Violations. If no timing violations are reported, the design meets its timing constraints. 5. Select File Quit. There is no need to save this design, you will not be using it again. Click OK when asked if you really want to quit Design Analyzer. Partitioning Lab 3-5

Lab Review Questions Question 1. Why is it important to partition a design correctly in the source code? Question 2. What is one reason for not ungrouping the entire hierarchy and compiling a flattened design? Question 3. How would you have performed the repartioning of PRGM_DECODE and PRGRM_CNT using the dc_shell commands group and ungroup? (Use the manual pages, if necessary) current_design... group... current_design... Question 4. ungroup... What are 3 synthesis benefits you gain from good partitioning? Question 5. How do you implement partitioning in the RTL code? Question 6. List two partitioning guidelines that will help reduce compile run times. Question 7. Name one partitioning guideline that will help simplify setting constraints on a design. Lab 3-6 Partitioning

Answers / Solutions Answer to Block Diagram Original Partitioning Input Port PRGRM_CNT Clk PRGRM_ CNT_TOP PRGRM_ DECODE Data Pin of Register After Repartitioning Input Port Clk PRGRM_ CNT_TOP NEW_PC Partitioning Lab 3-7

Question 1. Why is it important to partition a design correctly in the source code? This makes script files easier and simpler to write because the synthesis steps are straightforward (you don t have to worry about repartitioning a design using ungroup and group). The source code is also more representative of the actual design. Question 2. What is one reason for not ungrouping the entire hierarchy and compiling a flattened design? One of the partitioning guidelines was to keep block sizes reasonable. If you ungroup the entire hierarchy of a top-level design that is large (200-300k gates), the compile time may increase significantly. Question 3. How would you have performed the repartioning of PRGM_DECODE and PRGRM_CNT using the dc_shell commands group and ungroup? current_design PRGRM_CNT_TOP group -design_name NEW_PC \ {I_PRGRM_DECODE I_PRGRM_CNT} current_design NEW_PC ungroup {I_PRGRM_DECODE I_PRGRM_CNT} Question 4. What are 3 synthesis benefits you gain from good partitioning? Improved synthesis results, simplify the synthesis process, and speed up compile run times. Question 5. How do you implement partitioning in the RTL code? Implement partitioning in the source code by placing blocks in separate entities (in VHDL) or modules (in Verilog). Question 6. List two partitioning guidelines that will help reduce compile run times. Keep the block sizes reasonable. Remove glue-logic between each block; keep all the logic at the lowest level leaf cells. Question 7. Name one partitioning guideline that will help simplify setting constraints on a design. Partition so that registers drive output ports. Lab 3-8 Partitioning