cd ~/cadence/tutorials/incisive/ mkdir inverter cd inverter mkdir src cd src ===== Preparing the Verilog source code ===== Quindi creare i files inverter.v e inverter_test.v: // inverter.v // Verilog code to describe a simple inverter `timescale 1ns/100ps // time unit and time precision module INV2(in, out); // module definition input in; // port definitions output out; // primitive statement not (out, in); //concurrent assignment //assign #2 out = ~in; endmodule Poi il testbench // inverter_test.v // testbench module for the inverter `timescale 1ns/100ps // time unit and time precision module inv_test; // module definition reg in; // input and output wire out; INV2 U1(in, out); // inverter instantiation initial begin in = 1'b0; // input values #25 in = 1'b1; #75 in = 1'b0; #35 in = 1'b1; #100 $finish; // end simulation end endmodule ===== Start NCLaunch ===== nclaunch [-new] [-single] [-work] Infine lanciare NCLaunch: nclaunch -new & {{:vlsi:nclaunch_new.png}} Poi si apre NCLaunch con i files gia' caricati: {{:vlsi:nclaunch_getting_started.png?780}} Utilizzare **VIM** text editor! Example: inv.v e inv_test.v files can be found [[ | here ]] and [[ | here ]] In single-step richiama irun ''/usr/cadence/Incisive_10.20/tools/bin/irun'' **NCLaunch => File => Switch to Single Step/Switch to Multiple Step** Documentazione accessibile anche da **NCLaunch => Help => NCLaunch User Guide** e soprattutto i video-tutorials! **NCLaunch => Help => Tutorials** Uscire e chiudere: **NCLaunch => File => Exit** Design directory and work library: **NCLaunch => File => Set Design Directory** ===== Compiling the source files ===== Compilazione: **NCLaunch => Tools => VHDL Compiler/Verilog Compiler** Notare che e' solo una via grafica per settare opzioni della riga di comando di ncvhdl: ncvhdl [options] fileName.vhd (.vhdl) ncvhdl -help > ~/cadence/doc/ncvhdl.help Stessa pasta per ncvlog: ncvlog [options] fileName.v ncvlog -help > ~/cadence/doc/ncvlog.help {{:vlsi:ncvlog_compiling_source_files.png?780}} ===== Elaboration ===== Selezionare **worklib => inv_test** e poi **NCLaunch => Tools => Elaborator** Anche qui maschera cosa succede poi alla riga di comando: ncelab [options] fileName ncelab -help > ~/cadence/doc/ncelab.help ===== Simulate the design ===== **NCLaunch => Tools => Simulator** che setta le opzioni di ncsim: ncsim [options] fileName ncsim -help > ~/cadence/doc/ncsim.help ===== Plot waveform with SimVision ===== Design Browser di SimVision: {{:vlsi:design_browser_1.png?750}} SimVision console: {{:vlsi:simvision_waveforms_no_delays.png?780}} Posso modificare il codice e includere i delays: assign #2 out = ~in; {{:vlsi:simvision_waveforms_with_delays.png?780}}