35
VLSI/FPGA VLSI/FPGA Design and Test Flow with Design and Test Flow with Mentor Graphics CAD Tools Mentor Graphics CAD Tools Victor P. Nelson Victor P. Nelson

VLSI/FPGA Design and Test Flow with Mentor Graphics CAD Tools

  • Upload
    others

  • View
    21

  • Download
    0

Embed Size (px)

Citation preview

Page 1: VLSI/FPGA Design and Test Flow with Mentor Graphics CAD Tools

VLSI/FPGAVLSI/FPGA

Design and Test Flow with Design and Test Flow with

Mentor Graphics CAD ToolsMentor Graphics CAD Tools

Victor P. NelsonVictor P. Nelson

Page 2: VLSI/FPGA Design and Test Flow with Mentor Graphics CAD Tools

ASIC Design FlowASIC Design FlowBehavioral

ModelVHDL/Verilog

Gate-LevelNetlist

Transistor-LevelNetlist

PhysicalLayout

Map/Place/Route

DFT/BIST& ATPG

VerifyFunction

VerifyFunction

Verify Function& Timing

Verify Timing

DRC & LVSVerification

IC Mask Data/FPGA Configuration File

Standard Cell IC & FPGA/CPLD

Synthesis

Test vectors Full-custom IC

Page 3: VLSI/FPGA Design and Test Flow with Mentor Graphics CAD Tools

Physical Design Physical Design -- FPGAFPGA

Map to FPGA LUTs, FFs, IOBs

Place & Route

Component-Level Netlist

Configuration File

Generate Programming

Data

Xilinx “ISE”Altera “Max Plus 2”

FPGA/PLD Technology

FilesUser-SpecifiedConstraints

Simulation Model

Generate Timing Model

Page 4: VLSI/FPGA Design and Test Flow with Mentor Graphics CAD Tools

Mentor Graphics CAD Tool SuitesMentor Graphics CAD Tool Suites

�� IC/SoC design flowIC/SoC design flow11

�� DFT/BIST/ATPG design flowDFT/BIST/ATPG design flow11

�� FPGA design flowFPGA design flow2,32,3

�� PCB design flowPCB design flow22

�� Digital/analog/mixedDigital/analog/mixed--signal modeling & simulationsignal modeling & simulation1,21,2

�� ASIC/FPGA synthesisASIC/FPGA synthesis1,21,2

�� VendorVendor--provided (Xilinx,Altera,etc.) back end toolsprovided (Xilinx,Altera,etc.) back end tools22

1.1. UserUser--setup selection: setup selection: eda/mentor/ICFlow2006.1eda/mentor/ICFlow2006.1

2.2. UserUser--setup selection: setup selection: eda/mentor/EN2002.3eda/mentor/EN2002.3

3.3. UserUser--setup selection:setup selection: eda/mentor/FPGAeda/mentor/FPGA

Page 5: VLSI/FPGA Design and Test Flow with Mentor Graphics CAD Tools

Mentor Graphics CAD Tools Mentor Graphics CAD Tools (select (select ““eda/mentoreda/mentor”” in userin user--setup on the Sun network*)setup on the Sun network*)

�� ICFlow2006.1ICFlow2006.1–– For custom & standard cell IC designsFor custom & standard cell IC designs

–– IC flow toolsIC flow tools (Design Architect(Design Architect--IC, IC Station, Calibre)IC, IC Station, Calibre)

–– Digital/analog/mixed simulation Digital/analog/mixed simulation (Modelsim,ADVance MS,Eldo,MachTA)(Modelsim,ADVance MS,Eldo,MachTA)

–– HDL SynthesisHDL Synthesis (Leonardo)(Leonardo)

–– ATPG/DFT/BIST toolsATPG/DFT/BIST tools (DFT Advisor, Flextest, Fastscan)(DFT Advisor, Flextest, Fastscan)

–– Limited access to Quicksim II Limited access to Quicksim II (some technologies)(some technologies)

�� EN2002u3 EN2002u3 –– For FPGA For FPGA ““front endfront end”” design & printed circuit boardsdesign & printed circuit boards

–– Design Architect, Quicksim II, Quicksim Pro Design Architect, Quicksim II, Quicksim Pro (Schematic/Simulation)(Schematic/Simulation)

–– ModelSim & Leonardo ModelSim & Leonardo (HDL Simulation/Synthesis)(HDL Simulation/Synthesis)

–– Xilinx ISE & Altera Xilinx ISE & Altera ““QuartusQuartus”” tools tools (Back end design)(Back end design)

�� FPGAFPGA (FPGA Advantage, Modelsim, Leonardo)(FPGA Advantage, Modelsim, Leonardo)

*Only one of the above three groups may be selected at a time*Only one of the above three groups may be selected at a time

Page 6: VLSI/FPGA Design and Test Flow with Mentor Graphics CAD Tools

Mentor Graphics ASIC Design Kit (ADK)Mentor Graphics ASIC Design Kit (ADK)

�� Technology files & standard cell librariesTechnology files & standard cell libraries–– AMI: ami12, ami05 AMI: ami12, ami05 (1.2, 0.5 (1.2, 0.5 µµm)m)

–– TSMC: tsmc035, tsmc025, tsmc018 TSMC: tsmc035, tsmc025, tsmc018 (0.35, 0.25, 0.18 (0.35, 0.25, 0.18 µµm)m)

�� IC flow & DFT tool support files:IC flow & DFT tool support files:–– Simulation Simulation

�� VHDL/Verilog/MixedVHDL/Verilog/Mixed--Signal modelsSignal models (Modelsim/ADVance MS)(Modelsim/ADVance MS)

�� Analog (SPICE) modelsAnalog (SPICE) models (Eldo/Accusim)(Eldo/Accusim)

�� PostPost--layout timing layout timing (Mach TA)(Mach TA)

�� Digital schematic Digital schematic ((Quicksim II, Quicksim Pro)Quicksim II, Quicksim Pro) (exc. tsmc025,tsmc018)(exc. tsmc025,tsmc018)

–– Synthesis to std. cells Synthesis to std. cells (LeonardoSpectrum)(LeonardoSpectrum)

–– Design for test & ATPG Design for test & ATPG (DFT Advisor, Flextest/Fastscan)(DFT Advisor, Flextest/Fastscan)

–– Schematic capture Schematic capture (Design Architect(Design Architect--IC)IC)

–– IC physical design (standard cell & custom) IC physical design (standard cell & custom)

�� Floorplan, place & route Floorplan, place & route (IC Station)(IC Station)

�� Design rule check, layout vs schematic, parameter extraction Design rule check, layout vs schematic, parameter extraction (Calibre)(Calibre)

Page 7: VLSI/FPGA Design and Test Flow with Mentor Graphics CAD Tools

Xilinx/Altera FPGA/CPLD DesignXilinx/Altera FPGA/CPLD Design

�� Technology files & libraries for frontTechnology files & libraries for front--end design with end design with

Mentor Graphics toolsMentor Graphics tools

–– Schematic symbols for Schematic symbols for Design ArchitectDesign Architect

–– Simulation models forSimulation models for Quicksim II, Quicksim ProQuicksim II, Quicksim Pro

–– Synthesis library for Synthesis library for LeonardoLeonardo

�� Vendor tools for backVendor tools for back--end design end design

(map, place, route, configure, timing)(map, place, route, configure, timing)

–– Xilinx Xilinx Integrated Software EnvironmentIntegrated Software Environment (ISE)(ISE)

�� Xilinx XST can synthesize the design from VHDL or Verilog (insteXilinx XST can synthesize the design from VHDL or Verilog (instead ad

of Leonardo)of Leonardo)

–– Altera Altera Quartus II & Max+Plus2Quartus II & Max+Plus2

Page 8: VLSI/FPGA Design and Test Flow with Mentor Graphics CAD Tools

Behavioral Design & VerificationBehavioral Design & Verification(mostly technology(mostly technology--independent)independent)

Create Behavioral/RTL HDL Model(s)

Simulate to VerifyFunctionality

Synthesize Gate-LevelCircuit

LeonardoSpectrum(digital)

ModelSim (digital)

VHDL-AMSVerilog-A

ADVance MS (analog/mixed signal)

VHDLVerilog

SystemC

Technology Libraries

Post-Layout Simulation,Technology-Specific Netlist

to Back-End Tools

Page 9: VLSI/FPGA Design and Test Flow with Mentor Graphics CAD Tools

ADVance MSADVance MSDigital, Analog, MixedDigital, Analog, Mixed--Signal SimulationSignal Simulation

ADVance MS

WorkingLibrary

Design_1Design_2

VITAL

IEEE 1164 ResourceLibraries

SimulationSetup

EZwaveor Xelga

InputStimuli

VHDL,Verilog,VHDL-AMS, Verilog-A,

SPICE Netlists

Eldo,Eldo RF ModelSim

View ResultsMach TAMach PA

Analog(SPICE) Digital

(VHDL,Verilog)

Mixed Signal(VHDL-AMS,Verilog-A)

SPICEmodels

Page 10: VLSI/FPGA Design and Test Flow with Mentor Graphics CAD Tools

Automated Synthesis with Automated Synthesis with

Leonardo SpectrumLeonardo Spectrum

Leonardo Spectrum(Level 3)

VHDL/Verilog Behavioral/RTL Models

FPGA

ASIC

TechnologySynthesis Libraries

Technology-SpecificNetlist

DesignConstraints

VHDL, Verilog, SDF,EDIF, XNF

Level 1 – FPGALevel 2 – FPGA + Timing

ADKAMI 0.5, 1.2TSMC 0.35, 0.25

Page 11: VLSI/FPGA Design and Test Flow with Mentor Graphics CAD Tools

Leonardo Leonardo –– ASIC Synthesis FlowASIC Synthesis Flow

Page 12: VLSI/FPGA Design and Test Flow with Mentor Graphics CAD Tools

Synthesis exampleSynthesis example

�� Load technology library: Load technology library:

tsmc035 (ASIC), or Xilinx Spartan2 (FPGA)tsmc035 (ASIC), or Xilinx Spartan2 (FPGA)

�� Load design file: Load design file: modulo7.vhdmodulo7.vhd

�� Specify constraints: Specify constraints: clock freq, delays, etc.clock freq, delays, etc.

�� Optimization: Optimization: effort, performance vs. areaeffort, performance vs. area

�� Write synthesized netlist output(s): Write synthesized netlist output(s):

–– modulo7_0.vhdmodulo7_0.vhd : VHDL netlist for ModelSim & DFT: VHDL netlist for ModelSim & DFT

–– modulo7.vmodulo7.v : Verilog netlist for import into DA: Verilog netlist for import into DA--ICIC

–– modulo7.sdfmodulo7.sdf : For ModelSim to study timing : For ModelSim to study timing

–– modulo7.edfmodulo7.edf : EDIF netlist for 3: EDIF netlist for 3rdrd party toolsparty tools

–– modulo7.xnfmodulo7.xnf : Xilinx netlist for Xilinx ISE: Xilinx netlist for Xilinx ISE

Page 13: VLSI/FPGA Design and Test Flow with Mentor Graphics CAD Tools

Behavioral model to be synthesizedBehavioral model to be synthesized

---- modulomodulo--7 counter with asynchronous reset and synchronous load/count7 counter with asynchronous reset and synchronous load/count

library ieee; use ieee.std_logic_1164.all; use ieee.numeric_stlibrary ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all;d.all;

entity modulo7 isentity modulo7 is

port( count,load,reset,clk: in std_logic;port( count,load,reset,clk: in std_logic;

I: in unsigned(2 downto 0); I: in unsigned(2 downto 0); ---- ““unsignedunsigned”” form of std_logic_vectorform of std_logic_vector

Q: out unsigned(2 downto 0)); Q: out unsigned(2 downto 0)); ---- defined in IEEE defined in IEEE ““numeric_stdnumeric_std”” packagepackage

end modulo7;end modulo7;

architecture Behave of modulo7 isarchitecture Behave of modulo7 is

signal Q_s: unsigned(2 downto 0);signal Q_s: unsigned(2 downto 0);

beginbegin

process (reset,clk) beginprocess (reset,clk) begin

if (reset='0') then Q_s <= "000";if (reset='0') then Q_s <= "000";

elsif (clk'event and (clk='1')) thenelsif (clk'event and (clk='1')) then

if (count = '1') and (Q_s = "110") then Q_s <= if (count = '1') and (Q_s = "110") then Q_s <= "000";"000";

elsif (count='1') then elsif (count='1') then Q_s <= Q_s + 1;Q_s <= Q_s + 1;

elsif (load='1') then elsif (load='1') then Q_s <= I;Q_s <= I;

end if;end if;

end if;end if;

end process;end process;

Q<=Q_s;Q<=Q_s;

end; end;

Page 14: VLSI/FPGA Design and Test Flow with Mentor Graphics CAD Tools

Synthesized netlist (1)Synthesized netlist (1)

---- Definition of modulo7Definition of modulo7

---- Thu Sep 21 10:48:09 2006Thu Sep 21 10:48:09 2006

---- LeonardoSpectrum Level 3, 2005a.82LeonardoSpectrum Level 3, 2005a.82

----

library IEEE;library IEEE;

use IEEE.STD_LOGIC_1164.all;use IEEE.STD_LOGIC_1164.all;

entity modulo7 isentity modulo7 is

port (port (

count : IN std_logic ;count : IN std_logic ;

load : IN std_logic ;load : IN std_logic ;

reset : IN std_logic ;reset : IN std_logic ;

clk : IN std_logic ;clk : IN std_logic ;

I : IN std_logic_vector (2 DOWNTO 0) ;I : IN std_logic_vector (2 DOWNTO 0) ;

Q : OUT std_logic_vector (2 DOWNTO 0)) ;Q : OUT std_logic_vector (2 DOWNTO 0)) ;

end modulo7 ;end modulo7 ;

Page 15: VLSI/FPGA Design and Test Flow with Mentor Graphics CAD Tools

Synthesized netlist (2)Synthesized netlist (2)

architecture Behave of modulo7 isarchitecture Behave of modulo7 issignal Q_2_EXMPLR, Q_1_EXMPLR, Q_0_EXMPLR, NOT_reset, nx4, nxsignal Q_2_EXMPLR, Q_1_EXMPLR, Q_0_EXMPLR, NOT_reset, nx4, nx14, nx22, 14, nx22, nx48, nx60, nx169, nx179, nx189, nx202, nx204, nx208, nx21nx48, nx60, nx169, nx179, nx189, nx202, nx204, nx208, nx212, nx214, 2, nx214, nx218, nx225, nx228, nx230: std_logic ;nx218, nx225, nx228, nx230: std_logic ;

beginbeginQ(2) <= Q_2_EXMPLR ;Q(2) <= Q_2_EXMPLR ;Q(1) <= Q_1_EXMPLR ;Q(1) <= Q_1_EXMPLR ;Q(0) <= Q_0_EXMPLR ;Q(0) <= Q_0_EXMPLR ;ix170 : mux21_ni port map ( Y=>nx169, A0=>nx14, A1=>Q_0_EXMPLix170 : mux21_ni port map ( Y=>nx169, A0=>nx14, A1=>Q_0_EXMPLR, S0=>nx225);R, S0=>nx225);ix15 : oai22 port map ( Y=>nx14, A0=>Q_0_EXMPLR, A1=>nx202, Bix15 : oai22 port map ( Y=>nx14, A0=>Q_0_EXMPLR, A1=>nx202, B0=>nx230, 0=>nx230,

B1=>count);B1=>count);ix203 : nand02 port map ( Y=>nx202, A0=>count, A1=>nx204);ix203 : nand02 port map ( Y=>nx202, A0=>count, A1=>nx204);ix205 : nand04 port map ( Y=>nx204, A0=>count, A1=>Q_2_EXMPLRix205 : nand04 port map ( Y=>nx204, A0=>count, A1=>Q_2_EXMPLR, ,

A2=>Q_1_EXMPLR, A3=>nxA2=>Q_1_EXMPLR, A3=>nx228);228);ix180 : oai32 port map ( Y=>nx179, A0=>nx208, A1=>count, A2=>ix180 : oai32 port map ( Y=>nx179, A0=>nx208, A1=>count, A2=>load, load,

B0=>nx212, B1=>nx225);B0=>nx212, B1=>nx225);Q_2_EXMPLR_EXMPLR : dffr port map ( Q=>Q_2_EXMPLR, QB=>nx208,Q_2_EXMPLR_EXMPLR : dffr port map ( Q=>Q_2_EXMPLR, QB=>nx208, D=>nx179, D=>nx179,

CLK=CLK=>clk, R=>NOT_reset);>clk, R=>NOT_reset);

Page 16: VLSI/FPGA Design and Test Flow with Mentor Graphics CAD Tools

Synthesized netlist (3)Synthesized netlist (3)

ix211 : inv01 port map ( Y=>NOT_reset, A=>reset);ix211 : inv01 port map ( Y=>NOT_reset, A=>reset);

ix213 : aoi22 port map ( Y=>nx212, A0=>I(2), A1=>nx214, B0=>nix213 : aoi22 port map ( Y=>nx212, A0=>I(2), A1=>nx214, B0=>nx22, B1=>nx4 );x22, B1=>nx4 );

ix216 : inv01 port map ( Y=>nx214, A=>count);ix216 : inv01 port map ( Y=>nx214, A=>count);

ix219 : nand02 port map ( Y=>nx218, A0=>Q_1_EXMPLR, A1=>Q_0_Eix219 : nand02 port map ( Y=>nx218, A0=>Q_1_EXMPLR, A1=>Q_0_EXMPLR);XMPLR);

Q_1_EXMPLR_EXMPLR : dffr port map ( Q=>Q_1_EXMPLR, QB=>OPEN, Q_1_EXMPLR_EXMPLR : dffr port map ( Q=>Q_1_EXMPLR, QB=>OPEN, D=>nx189, D=>nx189,

CLKCLK=>clk, R=>NOT_reset);=>clk, R=>NOT_reset);

ix190 : mux21_ni port map ( Y=>nx189, A0=>nx60, A1=>Q_1_EXMPLix190 : mux21_ni port map ( Y=>nx189, A0=>nx60, A1=>Q_1_EXMPLR, S0=>nx225);R, S0=>nx225);

ix61 : ao32 port map ( Y=>nx60, A0=>nx48, A1=>nx218, A2=>nx4,ix61 : ao32 port map ( Y=>nx60, A0=>nx48, A1=>nx218, A2=>nx4, B0=>I(1), B0=>I(1),

B1=>nx214);B1=>nx214);

ix49 : or02 port map ( Y=>nx48, A0=>Q_0_EXMPLR, A1=>Q_1_EXMPLix49 : or02 port map ( Y=>nx48, A0=>Q_0_EXMPLR, A1=>Q_1_EXMPLR);R);

ix226 : nor02_2x port map ( Y=>nx225, A0=>count, A1=>load);ix226 : nor02_2x port map ( Y=>nx225, A0=>count, A1=>load);

Q_0_EXMPLR_EXMPLR : dffr port map ( Q=>Q_0_EXMPLR, QB=>nx228,Q_0_EXMPLR_EXMPLR : dffr port map ( Q=>Q_0_EXMPLR, QB=>nx228, D=>nx169, D=>nx169,

CLKCLK=>clk, R=>NOT_reset);=>clk, R=>NOT_reset);

ix231 : inv01 port map ( Y=>nx230, A=>I(0));ix231 : inv01 port map ( Y=>nx230, A=>I(0));

ix5 : inv01 port map ( Y=>nx4, A=>nx202);ix5 : inv01 port map ( Y=>nx4, A=>nx202);

ix23 : xor2 port map ( Y=>nx22, A0=>nx208, A1=>nx218);ix23 : xor2 port map ( Y=>nx22, A0=>nx208, A1=>nx218);

end Behave ;end Behave ;

Page 17: VLSI/FPGA Design and Test Flow with Mentor Graphics CAD Tools

PostPost--synthesis simulation (1)synthesis simulation (1)((LeonardoLeonardo--generated netlist)generated netlist)

�� Verify synthesized netlist matches behavioral Verify synthesized netlist matches behavioral modelmodel

�� Create simulation primitives library for std cells:Create simulation primitives library for std cells:>vlib adk>vlib adk>vcom $ADK/technology/adk.vhd>vcom $ADK/technology/adk.vhd>vcom $ADK/technology/adk_comp.vhd>vcom $ADK/technology/adk_comp.vhd

�� Insert library/package declaration into netlistInsert library/package declaration into netlistlibrary adk;library adk;use adk.adk_components.all;use adk.adk_components.all;

�� Simulate in Modelsim, using Simulate in Modelsim, using ““do filedo file”” or test bench from or test bench from original behavioral simulation original behavioral simulation –– results should matchresults should match

VITALmodels of all ADK std cells

Page 18: VLSI/FPGA Design and Test Flow with Mentor Graphics CAD Tools

PostPost--synthesis simulation (2)synthesis simulation (2)

�� Edit the synthesized VHDL netlist file (modulo7_0.vhd) to Edit the synthesized VHDL netlist file (modulo7_0.vhd) to include the package of component declarations:include the package of component declarations:

---- Definition of modulo7Definition of modulo7

---- Thu Sep 21 10:48:09 2006Thu Sep 21 10:48:09 2006

---- LeonardoSpectrum Level 3, 2005a.82LeonardoSpectrum Level 3, 2005a.82

----

library IEEE;library IEEE;

use IEEE.STD_LOGIC_1164.all;use IEEE.STD_LOGIC_1164.all;

library adk;library adk; ---- add these two linesadd these two lines

use adk.adk_components.all;use adk.adk_components.all;

entity modulo7 isentity modulo7 is

port (port (……....

Page 19: VLSI/FPGA Design and Test Flow with Mentor Graphics CAD Tools

PostPost--synthesis simulation (3)synthesis simulation (3)

�� Compile the VHDL netlist: Compile the VHDL netlist:

vcom modulo7_0.vhdvcom modulo7_0.vhd

�� Simulate the model:Simulate the model:

vsim modulo7 vsim modulo7 ––do modulo7.dodo modulo7.do

(modul7.do is a (modul7.do is a ““force fileforce file””))

�� Verify that the synthesized circuit produces the Verify that the synthesized circuit produces the

same results as the behavioral circuitsame results as the behavioral circuit

Page 20: VLSI/FPGA Design and Test Flow with Mentor Graphics CAD Tools

PostPost--synthesis timing analysissynthesis timing analysis�� Leonardo can generate SDF (std. delay format) file with Leonardo can generate SDF (std. delay format) file with

technologytechnology--specific, VITALspecific, VITAL--compliant timing parameters.compliant timing parameters.

(CELLTYPE "dffr")(CELLTYPE "dffr")

(INSTANCE Q_0_EXMPLR_EXMPLR)(INSTANCE Q_0_EXMPLR_EXMPLR)

(DELAY(DELAY

(ABSOLUTE(ABSOLUTE

(PORT D (::0.00) (::0.00))(PORT D (::0.00) (::0.00))

(PORT CLK (::0.00) (::0.00))(PORT CLK (::0.00) (::0.00))

(PORT R (::0.00) (::0.00))(PORT R (::0.00) (::0.00))

(IOPATH CLK Q (::0.40) (::0.47))(IOPATH CLK Q (::0.40) (::0.47))

(IOPATH R Q (::0.00) (::0.55))(IOPATH R Q (::0.00) (::0.55))

(IOPATH CLK QB (::0.45) (::0.36))(IOPATH CLK QB (::0.45) (::0.36))

(IOPATH R QB (::0.53) (::0.00))))(IOPATH R QB (::0.53) (::0.00))))

(TIMINGCHECK(TIMINGCHECK

(SETUP D (posedge CLK) (0.47))(SETUP D (posedge CLK) (0.47))

(HOLD D (posedge CLK) ((HOLD D (posedge CLK) (--0.06))))0.06))))

Page 21: VLSI/FPGA Design and Test Flow with Mentor Graphics CAD Tools

ASIC Physical Design (Standard Cell)ASIC Physical Design (Standard Cell)(can also do full custom layout)(can also do full custom layout)

FloorplanChip/Block

Place & RouteStd. Cells

Component-Level Netlist (EDDM format)

IC Mask Data

Design RuleCheck

Std. CellLayouts

Mentor Graphics“IC Station”

(adk_ic)

Mach TA/Eldo Simulation Model

BackannotateSchematic

GenerateMask Data

Layout vs.SchematicCheck

Design Rules

Process Data

Libraries

Calibre Calibre Calibre

ICblocks

Page 22: VLSI/FPGA Design and Test Flow with Mentor Graphics CAD Tools

CellCell--Based ICBased IC

Page 23: VLSI/FPGA Design and Test Flow with Mentor Graphics CAD Tools

CellCell--Based BlockBased Block

Page 24: VLSI/FPGA Design and Test Flow with Mentor Graphics CAD Tools

Source: Weste “CMOS VLSI Design”

Basic standardCell layout

Page 25: VLSI/FPGA Design and Test Flow with Mentor Graphics CAD Tools

Preparation for LayoutPreparation for Layout1.1. Use Design ArchitectUse Design Architect--IC to convert Verilog netlist to IC to convert Verilog netlist to

Mentor Graphics EDDM netlist formatMentor Graphics EDDM netlist format–– Invoke Design ArchitectInvoke Design Architect--IC IC (adk_daic)(adk_daic)–– On menu bar, select On menu bar, select File > Import VerilogFile > Import Verilog

�� Netlist file: Netlist file: count4.v count4.v (the Verilog netlist)(the Verilog netlist)�� Output directory: Output directory: count4count4 (for the EDDM netlist)(for the EDDM netlist)

�� Mapping file Mapping file $ADK/technology/adk_map.vmp$ADK/technology/adk_map.vmp

2.2. Open the generated schematic for viewingOpen the generated schematic for viewing–– Click Click SchematicSchematic in DAin DA--IC palette IC palette

–– Select schematic in directory named above Select schematic in directory named above (see next slide)(see next slide)

–– Click Click Update LVS Update LVS in the schematic palette to create a netlist to in the schematic palette to create a netlist to be used later by be used later by ““CalibreCalibre””

3.3. Create design viewpoints for ICstation toolsCreate design viewpoints for ICstation tools–– adk_dve count4 adk_dve count4 ––t tsmc035 t tsmc035 (V.P(V.P’’s: layout, lvs, sdl, tsmc035)s: layout, lvs, sdl, tsmc035)

�� Can also create gate/transistor schematics directly in Can also create gate/transistor schematics directly in DADA--IC using components from the ADK libraryIC using components from the ADK library

Page 26: VLSI/FPGA Design and Test Flow with Mentor Graphics CAD Tools

DADA--IC generated schematicIC generated schematic

Page 27: VLSI/FPGA Design and Test Flow with Mentor Graphics CAD Tools

Create a stdCreate a std--cell based logic block cell based logic block

in IC Stationin IC Station

�� Invoke: Invoke: adk_ic adk_ic

�� In IC Station palette, select:In IC Station palette, select: Create CellCreate Cell–– Cell name: Cell name: count4count4

–– Attach library: Attach library: $ADK/technology/ic/process/tsmc035$ADK/technology/ic/process/tsmc035

–– Process: Process: $ADK/technology/ic/process/tsmc035$ADK/technology/ic/process/tsmc035

–– Rules file: Rules file: $ADK/technology/ic/process/tsmc035.rules$ADK/technology/ic/process/tsmc035.rules

–– Angle mode: Angle mode: 4545

–– Cell type: Cell type: blockblock

–– Select Select With connectivityWith connectivity

–– EDDM schematic viewpoint:EDDM schematic viewpoint: count4/layoutcount4/layout

–– Logic loading options:Logic loading options: flatflat

Page 28: VLSI/FPGA Design and Test Flow with Mentor Graphics CAD Tools

Create Cell dialog boxCreate Cell dialog box

Page 29: VLSI/FPGA Design and Test Flow with Mentor Graphics CAD Tools

AutoAuto--””floorplanfloorplan”” the blockthe blockplace & route > autofpplace & route > autofp

Page 30: VLSI/FPGA Design and Test Flow with Mentor Graphics CAD Tools

AutoAuto--place the std cellsplace the std cellsAutoplc > StdCelAutoplc > StdCel

Page 31: VLSI/FPGA Design and Test Flow with Mentor Graphics CAD Tools

AutoAuto--place place ““portsports”” (Autoplc > Ports)(Autoplc > Ports)

Signal connections on cell boundariesSignal connections on cell boundaries

Page 32: VLSI/FPGA Design and Test Flow with Mentor Graphics CAD Tools

AutoRoute all netsAutoRoute all nets(hand(hand--route any unrouted route any unrouted ““overflowsoverflows””))

Then: Add > Port Text to copy port names from schematic – for Calibre

Page 33: VLSI/FPGA Design and Test Flow with Mentor Graphics CAD Tools

Layout design rule check (DRC)Layout design rule check (DRC)

�� TechnologyTechnology--specific design rules specify specific design rules specify minimum sizes, spacing, etc. of features minimum sizes, spacing, etc. of features to ensure reliable fabricationto ensure reliable fabrication–– Design rules file specified at startupDesign rules file specified at startup

Ex. Ex. tsmc035.rulestsmc035.rules

�� From main palette, select ICrules From main palette, select ICrules –– Click Click Check Check and thenand then OK OK in prompt boxin prompt box

(can optionally select a specific area to check)(can optionally select a specific area to check)

–– Rules checked in numeric orderRules checked in numeric order

Page 34: VLSI/FPGA Design and Test Flow with Mentor Graphics CAD Tools

Layout vs schematic checkLayout vs schematic check

Calibre Interactive LVSCalibre Interactive LVS

�� From ICstation menu: From ICstation menu: Calibre > Run LVSCalibre > Run LVS

–– In popup, Calibre location: In popup, Calibre location: $MGC_HOME/../Calibre$MGC_HOME/../Calibre

–– Rules: Rules: $ADK/technology/ic/process/tsmc035.calibre.rules$ADK/technology/ic/process/tsmc035.calibre.rules

–– Input: Input: count4.src.net count4.src.net (previously created in DA(previously created in DA--IC)IC)

–– HH--cells: cells: $ADK/technology/adk.hcell$ADK/technology/adk.hcell (hierarchical cells)(hierarchical cells)

–– Extracted file: Extracted file: count4.lay.netcount4.lay.net

�� Compares extracted transistorCompares extracted transistor--level netlist vs. level netlist vs.

netlist saved in DAnetlist saved in DA--ICIC

Page 35: VLSI/FPGA Design and Test Flow with Mentor Graphics CAD Tools

PostPost--layout parameter extractionlayout parameter extraction

Calibre Interactive PEXCalibre Interactive PEX

�� Extract Spice netlist, including parasitic RCExtract Spice netlist, including parasitic RC–– Simulate in Eldo or MachTASimulate in Eldo or MachTA

�� ICstation menu: ICstation menu: Calibre>Run PEXCalibre>Run PEX–– Options similar to Calibre LVSOptions similar to Calibre LVS

–– Extraction options:Extraction options:�� lumped C + coupling caplumped C + coupling cap’’ss

�� distributed RCdistributed RC

�� distributed RC + coupling capdistributed RC + coupling cap’’ss

–– Output file: count4.pex.netlistOutput file: count4.pex.netlist