IIT Bombay
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
Introduction to IMAGE Simulation flow
CDEEP Autumn 2009
Presented by- Anil Powai Labs Tech. Pvt. Ltd.
IIT Bombay CDEEP Autumn 2009 Introduction to IMAGE Simulation - - PowerPoint PPT Presentation
IIT Bombay CDEEP Autumn 2009 Introduction to IMAGE Simulation flow Presented by- Anil Powai Labs Tech. Pvt. Ltd. EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini IIT Bombay Hardware accelerated design
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
CDEEP Autumn 2009
Presented by- Anil Powai Labs Tech. Pvt. Ltd.
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
Software simulation Hardware simulation
Module A Module A & B & C Module A & B Testbench/design top Module B Module C Techbench/design top Module C Testbench
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
HDL Simulator FPGA Prototyping Board
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
IMAGE is an integrated system of proprietary software tools, customized FPGA based hardware and distributed synthesis servers. The IMAGE system takes a specified design description and maps it to hardware system consisting of multiple FPGA’s and memory
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
IMAGE HW FPGA FPGA FPGA FPGA MEMORY MEMORY PCI DUT mapped to IMAGE HW
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
Test-Bench Design Top Instance 1 Instance 2 (DUT) Test-Bench Design Top Instance1 Instance2 (DUT) Simulator Simulator IMAGE Hardware Software Simulation IMAGE Co-Simulation
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
The current capacity of an IMAGE system (using up to 12 cards) is 24 million ASIC gates with 200MB of memory. IMAGE server
IMAGE Mapping Flow IMAGE Synthesis Flow PCI LAN Synthesis Servers IMAGE Hardware
Work Node (IMAGE FLOW) LAN LAN
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
A B C D SIG
Clk Rst
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
the type of language in which the top entity is described (in this case, VHDL) the source of the RTL files which constitute the mux_tb and the mux. the identity of the top entity (in this case, mux_tb). the identity of the instance to be mapped to IMAGE hardware relative to the top(mux_tb) (in this case, u1). the synthesis tool to be used during the mapping process(Xilinx).
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
the simulation tool to be used during the final co-simulation (currently Modelsim/VCS/iverilog/ghdl are supported). the simulation mode (can be batch server,batch or gui). If the batch server or batch mode is selected then simulation time limit and resolution also need to be specified. the simulator interface mode (can be "pli”/“dpi”/“vpi”/“vhpi”). If the simulator that you use supports the SystemVerilog 3.1 DPI standard, you should use the “dpi” option for better performance.
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
−−sim mode batch server : the simulation is to be run in the batch server mode. In this mode, the simulation runs on a remote IMAGE server and returns the simulation results to the user-
and .vcd files. The other available options are batch and gui.
The batch option is similar to batch server except that the simulation is run on the local machine (which is assumed to be an IMAGE simulation server ). If the gui mode is selected, the simulation will be run locally (the local machine must be an IMAGE simulation server). In the gui mode, the specified simulator GUI will be invoked and the user has to run the simulation by loading the simulation script file and by specifying the simulation duration.
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
PLI version 2.0 or VPI (upgraded PLI-2.0) or DPI (SystemVerilog 3.1 standard) interface link to a Verilog or mixed language simulator and the VHPI interface link to a VHDL only simulator.
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
When you run the Image.py command the following sequence of actions takes place
Analysis: In this step, the specified RTL files are parsed and the instance hierarchy elaborated, the DUT is separated from the test-bench, a network representation of the DUT instance specified at the command line is created. The network representation is a graph of instances of VHDL entities/Verilog modules corresponding to the unique processes/always-blocks or continuous assignments encountered inside the DUT.
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
Library Synthesis: The unique process-level entities/modules are synthesized (in parallel) using the synthesis tool selected. Exact size estimates are derived from the synthesis results. Partitioning: A partitioner breaks the design into the appropriate number of FPGAs based on the size information after the Library Synthesis step. Hex file generation: The partitioned networks are synthesized and mapped to individual FPGAs, and FPGA programming (hex- files) files are generated.
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
Simulation: During this step, the testbench is loaded in to the simulator and the hex-files are loaded onto the board. If the simulation is done using the batch mode, then the simulation is run for the time specified. If the simulation is done through gui mode then the user is supposed to run the simulation for the desired time explicitly in the simulator. All information needed to run this simulation is generated by the Image.py script.
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
into bit combinations.
type and the Verilog wire type
– this helps the user trade-off accuracy versus performance/capacity in the IMAGE system
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
logic 1164.
encoding of this type would need 4 bits. However, this is expensive and often unnecessary.
and X values are also important to provide more accuracy. The full set of 9 values is rarely needed.
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
selected by using the option −r 4 . Note that in this encoding, Z is assigned the code 0000.
Z --> 0000 U --> 0001 X --> 0010 0 --> 0011 1 --> 0100 W --> 0101 L --> 0110 H --> 0111
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
−r 2 to the Image.py script in the IMAGE mapping flow. The two bit encoding of std ulogic is
Z --> 00 U --> 11 X --> 11 0 --> 01 1 --> 10 W --> 11 L --> 01 H --> 10
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
sending the −r 1 option to the Image.py script. This encoding of std ulogic is
Z --> 0 U --> 1 X --> 1 0 --> 0 1 --> 1 W --> 1 L --> 0 H --> 1
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
by a further 3X relative to the 2-bit encoding.
FPGA’s and should be used whenever possible (It is default option).
synthesizable designs which do not rely on condition checking of UXWZ- literals.
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
arbitrary number of clocks.
simulator, there is interaction between IMAGE and the simulator at each simulation cycle.
immediately, and creates events in the simulator for the next simulation cycle. Thus, the DUT is replaced by a single concurrent procedure called every simulation delta, with response available in the next simulation delta.
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
if an edge condition on that signal/wire/reg is checked in some assignment in the user RTL.
if A’event appears legally somewhere in the VHDL description.
the clause @(posedge B) or @(negedge B) appears legally somewhere in the Verilog description.
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
– Pure designs are those in which a signal A and all signals which depend on A in a level-sense act as clocks on state-elements either exclusively in an edge- triggered sense, or exclusively in a level-triggered sense. – Impure designs are those which are not pure: in such a design, a signal A controls some state-latches in a level-triggered sense, and other state-flipflops in an edge-triggered sense.
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
process(clk,din) – level triggered latch with clock clk begin if clk ='1' then dint <= din after 1 ns; end if; end process; clkb <= not clk; -- clkb is generated from clk using levels process(clkb) – edge triggered flip-flop with clock clkb begin if clkb'event and clkb='0' then dout <= dint after 1 ns; end if; end process;
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
clauses in the source RTL, the user must provide some information about timing assumptions about paths to IMAGE.
– For instance, suppose that there are two paths P1 and P2 starting from a signal A which re-converge at a process or always block. The user may rely on delay information to ensure correct behavior of the RTL. – perhaps the delay of P1 (which may be part of clock-gating logic) may be known to be much less than the delay of P2 (which may be part of a data-path). Thus the relative delay of the two paths is important.
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini
EE705/707 Lecture No. 25 Prof. M.Shojaei Baghini