SIMPRIM-based functional simulation requires an NGD file as a starting point. You can use NGDBuild to generate an NGD file from the CONCEPT2XIL EDIF file generated by the CONCEPT2XIL command.
ngdbuild -p XCxxxx design.edf
xxxx corresponds to an architecture, for example, 4000EX, 3000, or part type (for example, 4028ex-pg299-3).
For details on how to use the command line version of NGDBuild, see the NGDBuild chapter of the Design System Reference Guide.
For details on using the Design Manager to run NGDBuild, see the Using the Design Manager chapter in the Design Manager/Flow Engine Reference/User Guide.
After you create an NGD file, you can conduct a SIMPRIM-Based functional simulation. The next figure illustrates the design flow.
Figure 4.4 SIMPRIM-Based Functional Simulation |
The basic simulation steps follow.
verilog +delay_mode_unit design_namef.stim \
full_path_to_design_namef.v
The NGD2VER program translates your NGD file to a Verilog HDL netlist, which describes the design in terms of Xilinx simulation primitives. This Verilog netlist corresponds to an unmapped design which contains no timing information. You must use NGD2VER with the -tf and -ul options to create the appropriate files for use with the Cadence Verilog-XL simulator.
The following syntax translates your design to a Verilog file.
ngd2ver -tf -ul infile.ngd outfile
`uselib dir= path_to_Xilinx/verilog/src/simprims libext=.vmd
To prevent overwriting an existing Verilog netlist generated by HDL Direct, specify the name of the post-NGDBuild Verilog functional simulation netlist as "infilef.v" as follows.
ngd2ver -tf -ul infile.ngd infilef
This names the output Verilog netlist infilef.v, and the testbench template file, infilef.tv.
Edit a copy of the testbench stimulus template and add your stimulus to it to create a user-specified testbench file.
To run the Verilog simulation, use the procedure described in the Running the Simulation section of the Mixed Mode Designs section described earlier in this chapter. Use the filenames designf.v and designf.stim as the inputs to your simulation.
The XC3000A/L architecture always contains a GR (Global Reset) port for SIMPRIMS-based functional simulation. However, for Unified library-based functional and timing simulation, GR is hidden for this architecture. Therefore, you cannot use the same testbench file for Unified library simulation and SIMPRIM-based simulation.