Computer-Aided Design Concept to Silicon Victor P. Nelson ASIC Design Flow Behavioral Model VHDL/Verilog Verify Function Synthesis DFT/BIST & ATPG Gate-Level Netlist Verify Function Full-custom IC Test vectors Transistor-Level Netlist Verify Function & Timing
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation
Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement.Téléchargez la présentation en cliquant sur ce lien.Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.
ASIC Design Flow Behavioral Model VHDL/Verilog Verify Function Synthesis DFT/BIST & ATPG Gate-Level Netlist Verify Function Full-custom IC Test vectors Transistor-Level Netlist Verify Function & Timing Standard Cell IC & FPGA/CPLD DRC & LVS Verification Physical Layout Map/Place/Route Verify Timing IC Mask Data/FPGA Configuration File
Mentor Graphics CAD Tools (select from “eda” list in user-setup on the Sun network) • ICFlow2007.2– For custom & standard cell IC designs • IC flow tools(Design Architect-IC, IC Station, Calibre) • Digital/analog/mixed simulation (Modelsim,ADVance MS,Eldo,MachTA) • HDL Synthesis(Leonardo) • DFT/2006.3 • ATPG/DFT/BIST tools (DFT Advisor, Flextest, Fastscan) • Modelsim/6.3c (HDL Simulation) • FPGA/2004(FPGA Advantage, Modelsim, Leonardo) • *Xilinx/ISE8.2i (Xilinx FPGA/CPLD - back end design) • *QuartusII/5.0(Altera FPGA/CPLD - back end design) • *Ims/6.2(IMS chip tester) * Vendor-Provided (Not Mentor Graphics) Tools
Mentor Graphics ASIC Design Kit (ADK) • Technology files & standard cell libraries • AMI: ami12, ami05 (1.2, 0.5 μm) • TSMC: tsmc035, tsmc025, tsmc018 (0.35, 0.25, 0.18 μm) • IC flow & DFT tool support files: • Simulation • VHDL/Verilog/Mixed-Signal models(Modelsim/ADVance MS) • Analog (SPICE) models(Eldo/Accusim) • Post-layout timing (Mach TA) • Digital schematic (Quicksim II, Quicksim Pro)(exc. tsmc025,tsmc018) • Synthesis to std. cells (LeonardoSpectrum) • Design for test & ATPG (DFT Advisor, Flextest/Fastscan) • Schematic capture (Design Architect-IC) • IC physical design (standard cell & custom) • Floorplan, place & route (IC Station) • Design rule check, layout vs schematic, parameter extraction (Calibre)
Xilinx/Altera FPGA/CPLD Design • Simulate designs in Modelsim • Behavioral models (VHDL,Verilog) • Synthesized netlists (VHDL, Verilog) • Requires “primitives” library for the target technology • Synthesize netlist from behavioral model • Leonardo has libraries for most FPGAs • Xilinx ISE has its own synthesis tool • Vendor tools for back-end design • Map, place, route, configure device, timing analysis, generate timing models • Xilinx Integrated Software Environment (ISE) • Altera Quartus II & Max+Plus2 • Higher level tools for system design & management • Mentor Graphics FPGA Advantage • Xilinx Platform Studio : SoC design, IP management, HW/SW codesign
Behavioral Design & Verification(mostly technology-independent) VHDL Verilog SystemC Create Behavioral/RTL HDL Model(s) VHDL-AMS Verilog-A Simulate to Verify Functionality ModelSim (digital) ADVance MS (analog/mixed signal) Leonardo Spectrum, Xilinx ISE (digital) Synthesize Circuit Technology Libraries Post-Layout Simulation, Technology-Specific Netlist to Back-End Tools
ADVance MS Simulation System • ADVance MS “kernel” supports: • VHDL & Verilog: digital (via ModelSim) • VHDL-AMS & Verilog-A: analog/mixed signal • Eldo/SPICE: analog (via Eldo) • Eldo RF/SPICE: analog RF (via Eldo RF) • Mach TA/SPICE: high-speed analog/timing • Invoke stand-alone or from Design Architect-IC
ADVance MSDigital, Analog, Mixed-Signal Simulation VHDL,Verilog, VHDL-AMS, Verilog-A, SPICE Netlists VITAL SPICE models Xilinx simprims Design_1 Design_2 IEEE 1164 Working Library Resource Libraries ADVance MS Input Stimuli Simulation Setup Mixed Signal (VHDL-AMS, Verilog-A) EZwave or Xelga Eldo, Eldo RF ModelSim Analog (SPICE) Mach TA Mach PA View Results Digital (VHDL,Verilog)
Example: 4-bit binary counter • VHDL model(count4.vhd) • Create working library: vlib work vmap work work • Compile: vcom count4.vhd • Simulate: vsim count4(rtl) • ModelSim simulation-control inputs • ModelSim “Macro” (count4_rtl.do) • OR, VHDL testbench • ModelSim results • listing or waveform
-- count4.vhd 4-bit parallel-load synchronous counter LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.numeric_std.all; --synthesis libraries ENTITY count4 IS PORT (clock,clear,enable,load_count : IN STD_LOGIC; D: IN unsigned(3 downto 0); Q: OUT unsigned(3 downto 0)); END count4; ARCHITECTURE rtl OF count4 IS SIGNAL int : unsigned(3 downto 0); BEGIN PROCESS(clear, clock, enable) BEGIN IF (clear = '1') THEN int <= "0000"; ELSIF (clock'EVENT AND clock='1') THEN IF (enable = '1') THEN IF (load_count = '1') THEN int <= D; ELSE int <= int + "01"; END IF; END IF; END IF; END PROCESS; Q <= int; END rtl;
Test stimulus:Modelsim “do” file: count4_rtl.do add wave /clock /clear /enable /load_count /D /Q add list /clock /clear /enable /load_count /D /Q force /clock 0 0, 1 10 -repeat 20 force /clear 0 0, 1 5, 0 10 force /enable 0 0, 1 25 force /load_count 0 0, 1 20, 0 35, 1 330, 0 350 force /D 10#5 0, 10#9 300 run 400
Testbench: count4_bench.vhd Alternative to “do” file LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.numeric_std.all; ENTITY count4_bench is end count4_bench; ARCHITECTURE test of count4_bench is component count4 PORT (clock,clear,enable,load_count : IN STD_LOGIC; D: IN unsigned(3 downto 0); Q: OUT unsigned(3 downto 0)); end component; for all: count4 use entity work.count4(behavior); signal clk : STD_LOGIC := '0'; signal clr, en, ld: STD_LOGIC; signal din, qout: unsigned(3 downto 0); begin UUT: count4 port map(clk,clr,en,ld,din,qout); clk <= not clk after 10 ns; P1: process begin din <= "0101"; clr <= '1'; en <= '1'; ld <= '1'; wait for 10 ns; clr <= '0'; wait for 20 ns; ld <= '0'; wait for 200 ns; end process; end; Could also check results & “assert” error messages
Post-synthesis simulation(Leonardo-generated netlist) • Verify synthesized netlist matches behavioral model • Create simulation primitives library for std cells: >vlib adk >vcom $ADK/technology/adk.vhd >vcom $ADK/technology/adk_comp.vhd • Insert library/package declaration into netlist library adk; use adk.adk_components.all; • Simulate in Modelsim, using “do file” or test bench from original behavioral simulation • results should match VITAL models of all ADK std cells
Post-synthesis timing analysis • Leonardo can generate SDF (std. delay format) file with technology-specific, VITAL-compliant timing parameters. (CELLTYPE "dffr") (INSTANCE Q_0_EXMPLR_EXMPLR) (DELAY (ABSOLUTE (PORT D (::0.00) (::0.00)) (PORT CLK (::0.00) (::0.00)) (PORT R (::0.00) (::0.00)) (IOPATH CLK Q (::0.40) (::0.47)) (IOPATH R Q (::0.00) (::0.55)) (IOPATH CLK QB (::0.45) (::0.36)) (IOPATH R QB (::0.53) (::0.00)))) (TIMINGCHECK (SETUP D (posedge CLK) (0.47)) (HOLD D (posedge CLK) (-0.06)))) Delays lumped at pins Path delays (min:typ:max) Constraints
VITAL Model (1) library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.VITAL_Primitives.all; use IEEE.VITAL_Timing.all; entity and02 is generic ( tipd_A0 : VitalDelayType01Z := VitalZeroDelay01Z; tipd_A1 : VitalDelayType01Z := VitalZeroDelay01Z; tpd_A0_Y : VitalDelayType01Z := VitalZeroDelay01Z; tpd_A1_Y : VitalDelayType01Z := VitalZeroDelay01Z ); port ( A0 : in STD_LOGIC; A1 : in STD_LOGIC; Y : out STD_LOGIC ); attribute VITAL_LEVEL0 of and02 : entity is TRUE; end and02;
VITAL Model (2) architecture and02_arch of and02 is attribute VITAL_LEVEL1 of and02_arch : architecture is TRUE; signal A0_ipd : STD_LOGIC := 'X'; signal A1_ipd : STD_LOGIC := 'X'; begin WireDelay : Block begin VitalWireDelay (A0_ipd, A0, tipd_A0); VitalWireDelay (A1_ipd, A1, tipd_A1); end Block; VitalBehavior : Process (A0_ipd, A1_ipd) VARIABLE INT_RES_0 : STD_LOGIC := 'X'; VARIABLE GlitchData_Y : VitalGlitchDataType; begin -- FUNCTIONALITY SECTION -- INT_RES_0 := VitalAnd2 (A0_ipd, A1_ipd);
Design for test & test generation • Consider test during the design phase • Test design more difficult after design frozen • Basic steps: • Design for test (DFT) – insert test points, scan chains, etc. to improve testability • Insert built-in self-test (BIST) circuits • Generate test patterns (ATPG) • Determine fault coverage (Fault Simulation)
Basic standard Cell layout Source: Weste “CMOS VLSI Design”
Preparation for Layout • Use Design Architect-IC to convert Verilog netlist to Mentor Graphics EDDM netlist format • Invoke Design Architect-IC (adk_daic) • On menu bar, select File > Import Verilog • Netlist file: count4.v (the Verilog netlist) • Output directory: count4(for the EDDM netlist) • Mapping file $ADK/technology/adk_map.vmp • Open the generated schematic for viewing • Click Schematic in DA-IC palette • Select schematic in directory named above (see next slide) • Click Update LVS in the schematic palette to create a netlist to be used later by “Calibre” • Create design viewpoints for ICstation tools • adk_dve count4 –t tsmc035 (V.P’s: layout, lvs, sdl, tsmc035) • Can also create gate/transistor schematics directly in DA-IC using components from the ADK library
Eldo simulation from DA-IC • Run simulations from within DA-IC • Eldo, ADVance MS, Mach TA • DA-IC invokes a “netlister” to create a circuit model from the schematic • SPICE model for Eldo & Mach TA • Eldo analyses, forces, probes, etc. same as SPICE • View results in EZwave or Xelga
Force functions (1) • DC value • Vsigname A 0 DC 5 Value (volts) V indicates voltage Between circuit nodes A and GND (node 0) Force name
Force functions (2) • Pulse/square wave • Vsigname B 0 pulse 0 5 0 0.1N 0.1N 20N 40N Rise Fall time time tr tf Nodes Initial Voltage v1 Pulse Period width tp tw Pulsed Voltage v2 Delay from start of period for waveform to begin - td tp v2 v1 td tr tw tf
Force functions (3) • Pattern wave (for logic 0 & 1 values) Vname B 0 pattern 5 0 5n 0.1n 0.1n 10n 011010 R Bit pattern Rise & Fall Time between changes Between circuit Nodes B & GND (node 0) Logic 1 & 0 voltages Duration of bit value Delay to waveform begin Repeat the pattern (optional) 1 1 1 0 0 0 delay pattern