Lecture 8: Design, Simulation Synthesis and Test Tools ELEC 2200: Digital Logic Circuits Nitin Yogi (yoginit@auburn.edu) Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 1 X-Win32 X-Win32 is used to log into UNIX session Use Windows Auburn login and password to log into X-Win32 session. Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 2 Start X-Win32 from here Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 3 Windows Security Alert Warning If Windows Security Alert window pops up, press OK Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 4 You might also get this screen Double click on “Scan for Unix/Linux hosts” Click on any of the server names and click on “Select” Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 5 You might also get this screen Click “OK” Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 6 X-Win32 Login Screen Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 7 UNIX session Setup the softwares required to run the tools for simulation, synthesis and test At the command prompt type the following command and hit “Enter” >> user-setup Command prompt to type commands in Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 8 User Setup screen Click on button “Electronics Data Analysis (EDA)” Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 9 3. Click the X button on the top right 2. Click on the following software packages: eda/Modelsim/6.4 eda/ICFlow/2006.1 eda/DFT/2006.3 1. Go to the bottom of the option screen Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 10 Click on “Save and Quit” Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 11 The Added modules will be displayed here Press “Commit Changes” Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 12 X-Win32 reset Exit X-Win32 and restart the X-Win32 session again as described earlier Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 13 UNIX environment When you log-in into X-Win32, the current default directory is the H: of windows system Some useful UNIX commands >> cd <directory_name>: change directory >> cd .. : go up one directory >> ls: list contents of directory >> pwd: display the full path of the current dir. >> mkdir: create directory Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 14 Setting the simulation environment In the current default directory, create another directory for your designs by using the mkdir command. Ex. >> mkdir my_name Do not use spaces while giving names as it may create problems in UNIX This new directory can be accessed in windows in H drive Ex. by accessing H:\my_name Change to this new directory using the cd command Ex. >> cd my_name In the current design directory (ex. my_name) run the following commands: >> vlib work >> vmap work work Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 15 Example VHDL code Need to add this for compiling library IEEE; use IEEE.std_logic_1164.all; use IEEE.numeric_std.all; entity my_ckt is port ( A: in bit; B: in bit; S: in bit; X: out bit; Y: out bit ); end my_ckt ; architecture behav_seq of my_ckt is signal Xtmp: bit; begin p1: process (A,B,S,Xtmp) begin if (S=‘0’) then Xtmp <= A; else Xtmp <= B; end if; if ((Xtmp = ‘0’) and (S = ‘0’)) then Y <= ‘1’; else Y <= ‘0’; end if; X <= Xtmp; end process p1; end; Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 16 Designing, compiling and simulating designs Write VHDL description in any text editor (notepad, wordpad) and save the file as *.vhd To simulate any design, you need to compile your design first. Compile your VHDL design using the command: >> vcom <VHDL filename> e.g. >> vcom my_ckt.vhd We shall use the tool ModelSim for simulating the design To invoke ModelSim, use the following command: >> vsim <design_name> e.g. >> vsim my_ckt Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 17 Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 18 1. Click on “View > List” to select it (displayed as a tick) 2. Click on “View > Objects” to select it (displayed as a tick) Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 19 Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 20 1. Select the input and output signals by clicking and holding the CTRL key 2. Click “Edit > Copy” Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 21 Click on the list window and then click “Edit > Paste” Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 22 Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 23 Right click the input signal name and then click Force Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 24 Enter the value of the signal over here and then click OK If the signal is of type bit_vector you will assign binary values here. Ex. “010” for a signal of type bit_vector(2 downto 0) Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 25 To simulate, click Simulate > Run > Run 100 Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 26 Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 27 Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 28 Click on the list window then on File > Export > Tabular list Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 29 Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 30 Useful resource VHDL Design and Simulation using ModelSim http://www.eng.auburn.edu/department /ee/mgc/quickvhdl/modelsim.html Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 31 Synthesis We shall use the tool Leonardo to synthesize the behavioral description into structural level netlist Command to invoke Leonardo is: >> leonardo Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 32 Click on LeonardoSpectrum Level 3 and then click OK Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 33 1. Click on Advanced FlowTabs 2. Under the “Technology” tab, click on the ASIC plus sign Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 34 Click ADK then TSMC 0.18 micron (typ), then click on “Load Library” Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 35 Click the “Input” tab and then the button besides “Open files” Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 36 Select the required VHDL file and click “Open” Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 37 Current selected designs will be displayed in this list Click on the “Read” button to read the current selected VHDL design(s) into the tool Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 38 1. Click on “Optimize” tab 2. Click the type of optimization: area or delay 3. Click “Optimize” Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 39 1. Click on “Report” tab 2. Click on “Report Area” Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 40 2. Select Edit > Copy to copy the report. This can then be pasted in MS Word Fall 08, Oct 31 1. Select the report being displayed ELEC2200-002 Lecture 8 (Updated) 41 Click on the “Report Delay” tab and then on the button “Report Delay” Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 42 2. Select Edit > Copy to copy the report. This can then be pasted in MS Word Fall 08, Oct 31 1. Select the report being displayed ELEC2200-002 Lecture 8 (Updated) 43 1. Select “Output” tab 2. Select the Verilog option in the Format menu and enter a name for the output netlist file (*.v) 3. Click “Write” Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 44 Changes in design performed by Synthesis tool Leonardo Data-type changes Integer data type in behavioral design is mapped to bit_vector data type (array of bits) in structural design Ex. a signal A of integer data type of range -27 to +27-1 defined in the behavioral design is mapped/changed to a data type bit_vector(0 to 7) Enumerated / User-defined data types are encoded as binary numbers Ex. A signal of type temperature with values (high, medium, low) defined at the behavioral level may be encoded as (00, 01, 11) at the structural level Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 45 Preparing for simulation of netlist The netlist saved from Leonardo is in Verilog format (and not VHDL) You need to compile your verilog netlist to simulate it Before you compile your verilog netlist, you need to compile all the gate designs that your netlist uses. The gate designs are in a file named adk.vhd at the location $ADK/technology To compile the gate designs, type the following command in your current working directory at the command prompt: >> vcom $ADK/technology/adk.vhd -work ./work/ Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 46 Simulation of netlist You need to compile your verilog netlist in order to simulate it. Command to compile Verilog netlist: >> vlog <Verilog file_name> e.g. >> vlog my_ckt.v Simulate the design using ModelSim Command to invoke ModelSim: >> vsim <design_name> e.g. >> vsim my_ckt Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 47 Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 48 Test generation We shall use the tool FlexTest to generate test vectors for the netlist Command to invoke FlexTest: >> flextest Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 49 1. Select the output netlist file generated by Leonardo using the Browse button 2. Click on the “Browse” button to select the ATPG Library Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 50 1. Select the file adk.atpg in the directory /opt/ADK3.1/technology/ and then click OK Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 51 Invoke FlexTest Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 52 Click on “Done With Setup” Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 53 Click on “Pattern Generation” Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 54 Click on “Fault Universe” Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 55 Click on “Typical” Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 56 Click on “Pattern Source” Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 57 Click on “Typical” Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 58 Click on “Test Generation” Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 59 Click on “Run with Existing Settings” Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 60 Click on “Save Patterns” Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 61 Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 62 1. Check “Save the Pattern Set to a File” 2. Enter a filename for the test vector file 3. Click OK Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 63 Opening the pattern file saved You can open the pattern file you just saved in the windows environment using any text editor (notepad, wordpad, Word,etc.) The pattern file you saved will be in your current working design directory e.g. H:\my_name\ Next slide shows the pattern file Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 64 Total no. of faults Fault Coverage Total no. of test cycles (vectors) User CPU time Fall 08, Oct 31 ELEC2200-002 Lecture 8 (Updated) 65