Logic Synthesis assign z=a&b a b z What is Synthesis synthesis /sinth siss/ noun ( pl. syntheses /sinth seez/) 1 the combination of components to form.

Slides:



Advertisements
Similar presentations
Phase 2 -- Logic Implementation & Simulation Switching & Logic Design Project.
Advertisements

VERILOG: Synthesis - Combinational Logic Combination logic function can be expressed as: logic_output(t) = f(logic_inputs(t)) Rules Avoid technology dependent.
Verilog Fundamentals Shubham Singh Junior Undergrad. Electrical Engineering.
Verilog Overview. University of Jordan Computer Engineering Department CPE 439: Computer Design Lab.
Combinational Logic.
Verilog Intro: Part 1.
ECE 551 Digital System Design & Synthesis Lecture 08 The Synthesis Process Constraints and Design Rules High-Level Synthesis Options.
Slide 1 7. Verilog: Combinational always statements. VHDL: Combinational Processes: To avoid (I.E. DO NOT What in your HDL code?) Cases that generate Synthesis.
1 VLSI DESIGN USING VHDL Part II A workshop by Dr. Junaid Ahmed Zubairi.
Kazi Spring 2008CSCI 6601 CSCI-660 Introduction to VLSI Design Khurram Kazi.
NLint 操作教學
Digital System Design by Verilog University of Maryland ENEE408C.
Verilog Code Generation for an ASIP Design Environment Nathan Kitchen Vinay Krishnan Mentor: Scott Weber (MESCAL) EE 244/249 Joint Project Fall 2002.
VHDL And Synthesis Review. VHDL In Detail Things that we will look at: –Port and Types –Arithmetic Operators –Design styles for Synthesis.
ELEN 468 Advanced Logic Design
Advanced Verilog EECS 270 v10/23/06.
ELEN 468 Lecture 211 ELEN 468 Advanced Logic Design Lecture 21 HDL Coding Styles.
Churning the Most Out of IP-XACT for Superior Design Quality Ayon Dey Lead Engineer, TI Anshuman Nayak Senior Product Director, Atrenta Samantak Chakrabarti.
Overview Logistics Last lecture Today HW5 due today
Introduction to Counter in VHDL
VHDL Training ©1995 Cypress Semiconductor 1 Introduction  VHDL is used to:  document circuits  simulate circuits  synthesize design descriptions 
04/26/20031 ECE Digital System Design & Synthesis Lecture Set 13 - Design Reuse and Intellectual Property Cores Overview  Design Reuse  System-on-a-Chip.
FPGA-Based System Design: Chapter 4 Copyright  2004 Prentice Hall PTR HDL coding n Synthesis vs. simulation semantics n Syntax-directed translation n.
ECE 545 Project 1 Part IV Key Scheduling Final Integration List of Deliverables.
Synthesis Presented by: Ms. Sangeeta L. Mahaddalkar ME(Microelectronics) Sem II Subject: Subject:ASIC Design and FPGA.
Using Formal Verification to Exhaustively Verify SoC Assemblies by Mark Handover Kenny Ranerup Applications Engineer ASIC Consultant Mentor Graphics Corp.
1 H ardware D escription L anguages Modeling Digital Systems.
Tutorial 1 Combinational Logic Synthesis. Introduction to VHDL VHDL = Very high speed Hardware Description Language VHDL and Verilog are the industry.
Logic Synthesis assign z=a&b a b z What is Synthesis synthesis /sinth siss/ noun ( pl. syntheses /sinth seez/) 1 the combination of components to form.
VHDL Introduction. V- VHSIC Very High Speed Integrated Circuit H- Hardware D- Description L- Language.
ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU 99-1 Under-Graduate Project: RTL Coding Style Speaker: 蔡朝陽 Date: 2010/10/26.
1 An Update on Verilog Ξ – Computer Architecture Lab 28/06/2005 Kypros Constantinides.
ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU Under-Graduate Project: RTL Coding Style Speaker: MingChun-Hsiao Date: 2012/11/27.
The Macro Design Process The Issues 1. Overview of IP Design 2. Key Features 3. Planning and Specification 4. Macro Design and Verification 5. Soft Macro.
Slide 1 6. VHDL/Verilog Behavioral Description. Slide 2 Verilog for Synthesis: Behavioral description Instead of instantiating components, describe them.
1 CSE-308 Digital System Design (DSD) N-W.F.P. University of Engineering & Technology, Peshawar.
CascadedBCDCntr&Display Aim : Capture, simulate and implement a 2-digit, loadable BCD up/down counter, with chip enable I/P (CE) and chip enable O/P (CEO).
Modern VLSI Design 4e: Chapter 8 Copyright  2008 Wayne Wolf Topics VHDL register-transfer modeling: –basics using traffic light controller; –synthesis.
Introduction to VLSI Design – Lec01. Chapter 1 Introduction to VLSI Design Lecture # 11 High Desecration Language- Based Design.
Slide 1 2. Verilog Elements. Slide 2 Why (V)HDL? (VHDL, Verilog etc.), Karen Parnell, Nick Mehta, “Programmable Logic Design Quick Start Handbook”, Xilinx.
(1) Basic Language Concepts © Sudhakar Yalamanchili, Georgia Institute of Technology, 2006.
1 Hardware description languages: introduction intellectual property (IP) introduction to VHDL and Verilog entities and architectural bodies behavioral,
ECE-C662 Lecture 2 Prawat Nagvajara
Hardware languages "Programming"-language for modelling of (digital) hardware 1 Two main languages: VHDL (Very High Speed Integrated Circuit Hardware Description.
ELEE 4303 Digital II Introduction to Verilog. ELEE 4303 Digital II Learning Objectives Get familiar with background of HDLs Basic concepts of Verilog.
Introduction to ASIC flow and Verilog HDL
M.Mohajjel. Objectives Learn How to write synthesizable Verilog code Common mistakes and how to avoid them What is synthesized for what we code Digital.
04/26/20031 ECE 551: Digital System Design & Synthesis Lecture Set : Introduction to VHDL 12.2: VHDL versus Verilog (Separate File)
Logic Synthesis assign z=a&b a b z What is Synthesis synthesis /sinth siss/ noun ( pl. syntheses /sinth seez/) 1 the combination of components to form.
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.
1 A hardware description language is a computer language that is used to describe hardware. Two HDLs are widely used Verilog HDL VHDL (Very High Speed.
Overview Logistics Last lecture Today HW5 due today
Hardware Description Languages: Verilog
Adapted from Krste Asanovic
Last Lecture Talked about combinational logic always statements. e.g.,
ECE 448 Lecture 6 Finite State Machines State Diagrams, State Tables, Algorithmic State Machine (ASM) Charts, and VHDL Code.
Introduction Introduction to VHDL Entities Signals Data & Scalar Types
Custom Designed Integrated Circuits
Hardware Description Languages: Verilog
ECE 448 Lecture 6 Finite State Machines State Diagrams vs. Algorithmic State Machine (ASM) Charts.
Topics HDL coding for synthesis. Verilog. VHDL..
ECE 551: Digital System Design & Synthesis
ECE-C662 Introduction to Behavioral Synthesis Knapp Text Ch
FSM MODELING MOORE FSM MELAY FSM. Introduction to DIGITAL CIRCUITS MODELING & VERIFICATION using VERILOG [Part-2]
The Verilog Hardware Description Language
The Verilog Hardware Description Language
102-1 Under-Graduate Project: RTL Coding Style
ECE 448 Lecture 6 Finite State Machines State Diagrams vs. Algorithmic State Machine (ASM) Charts.
EEL4712 Digital Design (Midterm 1 Review).
Presentation transcript:

Logic Synthesis assign z=a&b a b z

What is Synthesis synthesis /sinth siss/ noun ( pl. syntheses /sinth seez/) 1 the combination of components to form a connected whole. Often contrasted with ANALYSIS. 2 the production of chemical compounds by reaction from simpler materials. ANALYSIS — DERIVATIVES synthesist noun. — ORIGIN Greek sunthesis, from suntithemai ‘ place together ’.

Synthesis Translation from a higher-level description to a lower-level description Logic or RTL synthesis: Translation of RTL code to logic gates and other basic components

RTL synthesis

Partitioning for Synthesis

Guideline Avoid internally generated clocks Instead, use a separate block for clock generation

Rule Avoid combinational feedback

Do not use if statements to describe larger than 2-to-1 MUXs if (sel == 0) o = a; else if (sel == 1) o = b; else if (sel == 2) then o <= c; else o <= d;

Use Case statement instead case sel 0: o = a; 1: o = b; 2: o = c; 3: o = d; endcase

Register all outputs Bad Better Ideal

Avoid glue logic at the top Incorrect Correct

RTL coding for synthesis Keep code technology independent (no instantiations of technology primitives) Clock gating logic and reset generation kept in one block Avoid multiple clocks per block (Sync logic should be in a separate module) No glue logic at the top Register all outputs

RTL coding for logic No incomplete sensitivity lists Use the case statement for muxes, specifying the “others” case

RTL coding for state machines Use enumerated types, do not perform state assignment Separate combinational logic from state registers Use case statements

Specifying design constraints Timing (clock frequency, I/O timing) Area (mm^2, #CLBs) I/O pads and pins

Design for Reuse – IP block design

Design for Use vs Design for Reuse Design for use –Good documentation –Good code –Thorough commenting –Well-designed verification environment –Robust scripts Design for reuse (3x design for use effort) –Design to solve a general problem –Support for multiple technologies –Multiple simulator support (both VHDL and Verilog) –Support for standard-based interfaces –Verified to a high level of confidence –Fully documented

RTL coding guidelines for reuse Include a header mentioning –Filename –Author –Date –Time –Abstract –Modification history Use comments extensively, but not pointlessly Use indentation (recommended 2 spaces per nest)

Header example // File : tsu.v // Author : K. Tatas // Date : 09/06/07 // Version : 0.1 // Abstract : TSU top-level structural file // Modification History: // Date By Version Change Description // 9/06/07 K. Tatas 0.1 Original // 11/07/07 K.Tatas 1.1. Included Interrupt block // 03/08/07 K. Tatas 1.2 changes from OPB to PLB bus

I/O ordering One signal per line Separate inputs from outputs Order –Clocks –Resets –Control signals –Data/address signals module ack_queue (thread_out, status_out, aq_wr_en, clk, rst_n, aq_wr_en, aq_rd_en,aq_in, addr_aq_wr, addr_aq_rd); input clk //Clock signal (System clock) input rst_n //Reset signal (System reset) //////////////////////////////Control signals input [aq_fields-1:0] aq_wr_en //Write Enable signal (from control logic) input aq_rd_en //Read Enable signal (from control logic) //////////////////////////////DATA/ADDRESS signals input [wordlength-1:0] aq_in //AQ number output [wordlength-1:0] thread_out //thread number output [wordlength-1:0] status_out //status input [log(aq_depth)-1: 0] addr_aq_wr //ack queue write address input [log(aq_depth)-1: 0] addr_aq_rd //ack queue read address

RTL coding guidelines for reuse Use std_logic types Do not use hard-coded numeric values Use packages Use descriptive names for signals, enitities, etc. Use nominal, not positional association in port mapping of components Use suffixes for signal names –_n for active low signals such as reset –_r for signals that are outputs of registers –_p, _p1, _p2, for phases of the same signal

Guideline Avoid mixed clock edges If not possible, isolate mixed clock domains