Synthesis Presented by: Ms. Sangeeta L. Mahaddalkar ME(Microelectronics) Sem II Subject: Subject:ASIC Design and FPGA.

Slides:



Advertisements
Similar presentations
VERILOG: Synthesis - Combinational Logic Combination logic function can be expressed as: logic_output(t) = f(logic_inputs(t)) Rules Avoid technology dependent.
Advertisements

TOPIC : SYNTHESIS DESIGN FLOW Module 4.3 Verilog Synthesis.
Verilog Fundamentals Shubham Singh Junior Undergrad. Electrical Engineering.
Verilog Overview. University of Jordan Computer Engineering Department CPE 439: Computer Design Lab.
Combinational Logic.
Table 7.1 Verilog Operators.
Verilog Intro: Part 1.
ECE Synthesis & Verification - Lecture 2 1 ECE 667 Spring 2011 ECE 667 Spring 2011 Synthesis and Verification of Digital Circuits High-Level (Architectural)
Hardware Description Language (HDL)
HDL Programming Fundamentals UNIT 3: Behavioral Descriptions OBJECTIVES  Understand the concept of sequential statements in VHDL and how they are different.
ECE 551 Digital System Design & Synthesis Lecture 08 The Synthesis Process Constraints and Design Rules High-Level Synthesis Options.
ELEN 468 Lecture 151 ELEN 468 Advanced Logic Design Lecture 15 Synthesis of Language Construct I.
Digital System Design by Verilog University of Maryland ENEE408C.
Introduction to VHDL CSCE 496/896: Embedded Systems Witawas Srisa-an.
Kazi Fall 2006 EEGN 4941 EEGN-494 HDL Design Principles for VLSI/FPGAs Khurram Kazi Some of the slides were taken from K Gaj’s lecture slides from GMU’s.
HDL-Based Digital Design Part I: Introduction to VHDL (I) Dr. Yingtao Jiang Department Electrical and Computer Engineering University of Nevada Las Vegas.
Silicon Programming--Intro. to HDLs1 Hardware description languages: introduction intellectual property (IP) introduction to VHDL and Verilog entities.
VHDL And Synthesis Review. VHDL In Detail Things that we will look at: –Port and Types –Arithmetic Operators –Design styles for Synthesis.
Advanced FPGA Based System Design Lecture-5-6 Introduction to VHDL By: Dr Imtiaz Hussain 1.
Overview Logistics Last lecture Today HW5 due today
ECE 551 Digital System Design & Synthesis Lecture 11 Verilog Design for Synthesis.
Introduction to Counter in VHDL
1 VERILOG Fundamentals Workshop סמסטר א ' תשע " ה מרצה : משה דורון הפקולטה להנדסה Workshop Objectives: Gain basic understanding of the essential concepts.
Introduction to FPGA AVI SINGH. Prerequisites Digital Circuit Design - Logic Gates, FlipFlops, Counters, Mux-Demux Familiarity with a procedural programming.
1 H ardware D escription L anguages Modeling Digital Systems.
1 An Update on Verilog Ξ – Computer Architecture Lab 28/06/2005 Kypros Constantinides.
Copyright © 1997 Altera Corporation & 提供 What is VHDL Very high speed integrated Hardware Description Language (VHDL) –is.
Slide 1 6. VHDL/Verilog Behavioral Description. Slide 2 Verilog for Synthesis: Behavioral description Instead of instantiating components, describe them.
Module 1.2 Introduction to Verilog
Fall 2004EE 3563 Digital Systems Design EE 3563 VHSIC Hardware Description Language  Required Reading: –These Slides –VHDL Tutorial  Very High Speed.
CPE 626 Advanced VLSI Design Lecture 6: VHDL Synthesis Aleksandar Milenkovic
1 COMP541 Sequential Circuits Montek Singh Feb 1, 2012.
Anurag Dwivedi. Basic Block - Gates Gates -> Flip Flops.
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 Hardware description languages: introduction intellectual property (IP) introduction to VHDL and Verilog entities and architectural bodies behavioral,
Introduction to VHDL Simulation … Synthesis …. The digital design process… Initial specification Block diagram Final product Circuit equations Logic design.
ECE-C662 Lecture 2 Prawat Nagvajara
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)
Apr. 3, 2000Systems Architecture I1 Introduction to VHDL (CS 570) Jeremy R. Johnson Wed. Nov. 8, 2000.
May 9, 2001Systems Architecture I1 Systems Architecture I (CS ) Lab 5: Introduction to VHDL Jeremy R. Johnson May 9, 2001.
Unit 4 Structural Descriptions SYLLABUS Highlights of Structural descriptions Organization of the Structural descriptions Binding State Machines Generate(HDL),Generic(VHDL),
George Mason University Behavioral Modeling of Sequential-Circuit Building Blocks ECE 545 Lecture 8.
EECE 320 L8: Combinational Logic design Principles 1Chehab, AUB, 2003 EECE 320 Digital Systems Design Lecture 8: Combinational Logic Design Principles.
An Introduction to V.H.D.L.. Need of a Compiler… main( ) { int x=10,y=20,z; z = x + y ; printf ( “ %d “, z ); getch( ) ; } What’s That ? Give me only.
Overview Logistics Last lecture Today HW5 due today
Hardware Description Languages: Verilog
An Introduction to Verilog: Transitioning from VHDL
Combinational logic circuit
Systems Architecture Lab: Introduction to VHDL
EMT 351/4 DIGITAL IC DESIGN Week # Synthesis of Sequential Logic 10.
CHAPTER 17 VHDL FOR SEQUENTIAL LOGIC
Hardware Description Languages: Verilog
UNIT 3: Behavioral Descriptions
Field Programmable Gate Array
Field Programmable Gate Array
Field Programmable Gate Array
ECE 434 Advanced Digital System L08
CHAPTER 17 VHDL FOR SEQUENTIAL LOGIC
RTL Style در RTL مدار ترتيبي به دو بخش (تركيبي و عناصر حافظه) تقسيم مي شود. مي توان براي هر بخش يك پروسس نوشت يا براي هر دو فقط يك پروسس نوشت. مرتضي صاحب.
SYNTHESIS OF SEQUENTIAL LOGIC
ECE-C662 Introduction to Behavioral Synthesis Knapp Text Ch
VHDL (VHSIC Hardware Description Language)
VHDL Introduction.
Verilog Synthesis Synthesis vs. Compilation
The Verilog Hardware Description Language
Introduction to Digital IC Design
Sequntial-Circuit Building Blocks
Presentation transcript:

Synthesis Presented by: Ms. Sangeeta L. Mahaddalkar ME(Microelectronics) Sem II Subject: Subject:ASIC Design and FPGA

Topics Discussed  Introduction to Synthesis  Synthesis process  Synthesis Tools  Guidelines for coding  Synthesis examples

SYNTHESIS  Automatic method of converting a higher level of description of the design into an optimized gate level description given standard cell library (Technology library) and certain design constraints  Synthesis tools convert High Level descriptions (HDL Description) into gate level netlists

Gate level netlist synthesis Technology Library High Level Description Constraints Gate Level Netlist Synthesis Timing, Area, Testability, Power VHDL, Verilog Standard cell library – logic gates, macrocells

SYNTHESIS PROCESS VHDL RTL Description Unoptimized Boolean Description Optimized Boolean Description Gate Level Netlist Translate Optimize Map to Gates Created by user Created by synthesis tool

Synthesis Process …  Translation –Converting from RTL Description to boolean equivalent description –IF, CASE, LOOP, Conditional signal assignment statements, Selected signal assignment statements are converted to their boolean equivalent form.

Synthesis Process…  Boolean Optimization –convert an unoptimized boolean description into optimized boolean form –Quine-McCluskey Algorithm was used earlier –Presently Espresso heuristic logic minimizer is a standard tool for optimization – Logic optimization algorithms generally work either on the structural (SOP, factored form) or functional (BDD) representation of the circuit.  Mapping to Gates –Takes logically optimized boolean description created by optimization step and uses logical and timing information from technology library to build a netlist

SYNTHESIS TOOLS   Software tools for logic synthesis targeting ASICsASICs – –Design Compiler by Synopsys – –Encounter RTL Compiler by Cadence Design System – –BuildGates an older product by Cadence Design System – –BlastCreate by Magma Design Automation – –BooleDozer Logic synthesis tool by IBM   Software tools for logic synthesis targeting FPGAsFPGAs – –Encounter RTL Compiler by Cadence Design System – –Leonardo Spectrum and Precision (RTL/Physical) by Mentor Graphics – –Synplify (PRO / Premier) by Synplicity – –BlastFPGA by Magma Design Automation – –Quartus II integrated Synthesis by Altera – –XST (delivered within ISE) by Xilinx – –DesignCompiler Ultra and IC Compiler by Synopsys – –IspLever by Lattice Semiconductor

Synthesis from VHDL / VERILOG 1. Layout synthesis 2. Logic synthesis 3. RTL synthesis 4. High Level Synthesis 5. System Synthesis

Coding for Synthesis  VHDL and Verilog are hardware description languages and simulation languages that were not originally intended as inputs to synthesis.  Therefore, many hardware description and simulation constructs are not supported by synthesis tools.  VHDL and Verilog semantics are well defined for design simulation. The synthesis tools must adhere to these semantics to ensure that designs simulate the same way before and after synthesis.

Guidelines to be followed to create code that simulates the same way before and after synthesis. 1.Omit the Wait for Statement  eg. Wait for 20 ns; - VHDL construct  # 20 ns; - Verilog construct  This statement does not synthesize to a component.  This statement does not synthesize to a component. In order to describe a similar “wait-for-time effect” that can be synthesized, we need to describe it as an FSM state that self-loops until a counter (set or reset at an earlier state) reaches a count value that translates to the desired wait time needed (Count value decided based on the clock speed).

Guidelines contd … 2.Omit the...After clause or Delay Statement ...After XX ns statement in VHDL code.  Delay assignment in Verilog code. eg.  Q <=0 after 20 ns;- VHDL  assign #20 Q=0;- Verilog  These statements are usually ignored by the synthesis tool.

Guidelines contd … 3. Omit Initial Values  Do not assign signals and variables initial values because initial values are ignored by most synthesis tools.  Eg. do not use initialization statements like  signal sum : integer := 0; - VHDL  initial sum = 1’b0;- Verilog

Guidelines contd … 4. Order and Group Arithmetic Functions  The ordering and grouping of arithmetic functions can influence design performance. eg.ADD1 <= A1 + A2 + A3 + A4; -Statement 1 ADD1 <= (A1 + A2) + (A3 + A4); -Statement 2  The first statement cascades three adders in series.  The second statement creates two adders in parallel: A1 + A2 and A3 + A4. In the second statement, the two additions are evaluated in parallel and the results are combined with a third adder.  RTL simulation results are the same for both statements, however, the second statement results in a faster implementation

Guidelines contd … 5.Don’t Mix positive and negative edge triggered flipflops in a design It may introduce inverters and buffers in the clock tree. This can add clock skews in the circuit.

library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity t12 is Port ( a,b,c,d,e : in std_logic; o : out std_logic); end t12; architecture Behavioral of t12 is signal temp:std_logic; begin process(a,b,c,d,e) begin temp<=a xor b; temp<=temp xor c; temp<=temp xor d; temp<=temp xor e; end process; o<=temp; end Behavioral; Wrong Hardware Inferred Logic Synthesis Examples

Examples… library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity t12 is Port ( a,b,c,d,e : in std_logic; Port ( a,b,c,d,e : in std_logic; o : out std_logic); o : out std_logic); end t12; architecture Behavioral of t12 is begin begin process(a,b,c,d,e) process(a,b,c,d,e) variable temp:std_logic; begin begin temp:=a xor b; temp:=a xor b; temp:=temp xor c; temp:=temp xor c; temp:=temp xor d; temp:=temp xor d; temp:=temp xor e; temp:=temp xor e; o<=temp; o<=temp; end process; end process; end Behavioral; Correct Hardware Inferred

Combinational Logic Synthesis library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity t12 is Port ( a,b,clk : in std_logic; Port ( a,b,clk : in std_logic; o : out std_logic); o : out std_logic); end t12; architecture combinational of t12 is Beginprocess(clk,a,b)Begin o<=a and b and clk; end process; end combinational; 2 Input AND gate with enable

Sequential Logic Synthesis library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity t12 is Port ( a,b,clk : in std_logic; Port ( a,b,clk : in std_logic; o : out std_logic); o : out std_logic); end t12; architecture sequential of t12 is Beginprocess(clk,a,b)Begin if(clk'event and clk='1')then o<= a and b; o<= a and b; end if; end process; end sequential ; Note: Here we are assigning on edge of clk. Hence it infers a Flipflop

Latch inference library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity t12 is Port ( a,b,clk : in std_logic; o : out std_logic); o : out std_logic); end t12; Architecture latch of t12 is begin beginprocess(clk,a,b)begin if(clk='1')then if(clk='1')then o<= a and b; o<= a and b; end if; end process; end latch; Note: Here we are assigning on level of clk. Hence it infers a latch

Mux Coding - Latch Inferred module mux(a,b,sel, o); input a,b,sel; input a,b,sel; output o; output o; reg o; reg o; or b or sel) or b or sel) begin begin case(sel) case(sel) 1'b0: o<=a; 1'b0: o<=a; endcase endcase end endendmodule Note: Here one of the inputs is not assigned to output. Hence Latch inferred

Mux Coding - Latch Inferred… module mux(a,b,sel, o); input a,b,sel; input a,b,sel; output o; output o; reg o; reg o; or b or sel) or b or sel) begin begin casex(sel) casex(sel) 1'b0: o<=a; 1'b1: o<=b; 1'b1: o<=b;endcaseendendmodule Note: casex statement used. Latch inferred

Correct Mux Inferred module mux(a,b,sel, o); input a,b,sel; input a,b,sel; output o; output o; reg o; reg o; or b or sel) or b or sel) begin begin case(sel) case(sel) 1'b0: o<=a; 1'b0: o<=a; 1'b1: o<=b; 1'b1: o<=b; default: o<=1’bx; default: o<=1’bx; endcase endcase end end endmodule endmodule

Regitered Decoder Synthesis module mux(clk,reset,data,q); input clk,reset; input clk,reset; input [1:0]data; input [1:0]data; output [3:0]q; output [3:0]q; reg [3:0] q; reg [3:0] q; wire [1:0] d; clk) if (reset) q <= 4'b0; if (reset) q <= 4'b0; else else case (data) case (data) 2'b00 : q <= 4'b0001; 2'b00 : q <= 4'b0001; 2'b01 : q <= 4'b0010; 2'b01 : q <= 4'b0010; 2'b10 : q <= 4'b0100; 2'b10 : q <= 4'b0100; 2'b11 : q <= 4'b1000; 2'b11 : q <= 4'b1000; default : q <= 4'b0000; default : q <= 4'b0000; endcase endcaseendmodule

References  VHDL – Programming By examples – Douglas L. Perry  en.wikipedia.org/wiki/Logic_synthesis  Application Specific IC’s – M.J. Smith