The LogiBLOX utility gives designers access to a library of automatically generated, high-level functional modules to use in schematic-based or HDL designs. For Cadence designs, LogiBLOX generates both a functional simulation model for the block, as well as an NGO module ready for implementation as part of the overall design. Possible modules include adders, counters, accumulators, and memories. Currently LogiBLOX supports only the Spartan/XL, XC3000A/L, XC3100A/L, XC4000/E/EX/L/XL/XV and XC5200 architectures.
You must run LogiBLOX in standalone mode because it is not integrated into the Concept schematic editor. After generating the LogiBLOX module, you must create a symbol/body for the LogiBLOX module to integrate it into a schematic. For Verilog designs, direct LogiBLOX to generate a Verilog template that you can follow to instantiate the LogiBLOX into your Verilog design.
This appendix contains the following sections.
For schematic based designs that also contain LogiBLOX components, you currently must run LogiBLOX in standalone mode to generate the required MOD and V (structural Verilog) files. You can then use the Concept genview command to generate a symbol body for the LogiBLOX module, and add the module to your schematic.
Use the following steps to generate the LogiBLOX module.
Figure C.1 LogiBLOX Setup Dialog Box |
Figure C.2 Setup Dialog Box with Simulation Model Set |
Figure C.3 LogiBLOX Module Selector |
Figure C.4 LogiBLOX GUI Messages Window |
If working on a schematic-based design, you must generate a symbol for your LogiBLOX module. You must create the symbol manually from within Concept using the genview command.
module mycount (load, up_dn, clk_en, clock, async_ctrl, term_cnt, d_in, q_out);
parameter cds_action=ignore; // <---- Add this line
input load;
input up_dn;
input clk_en;
input clock;
input async_ctrl;
output term_cnt;
input [3:0] d_in;
output [3:0] q_out;
....
To generate a netlist for functional simulation, type the following command line.
concept2xil -family family_name -sim_only design_name
Family_name is the architecture.
To conduct HDL Direct Verilog Unified Library simulation manually, create a testbench file as described in the Functional Simulation chapter with the desired test vectors. Then invoke the simulation.
verilog +delay_mode_unit calcf.stim \
calc.v -f calcf.vf
After Verilog-XL finishes compiling your simulation commands, you can view the waveforms for the signals in your design. A waveform display application separate from Verilog-XL displays your simulation waveforms. Given the appropriate directives, Verilog-XL writes the waveform data to a simulation history directory (design.shm). The waveform viewer application (usually Simwave) reads this data from the simulation history database and displays the waveforms.
If you wish to view your simulation waveforms graphically while performing your functional simulation, you must add an initial block to the testbench file containing directives to create a simulation history database for the waveform viewer.
NGD2VER adds the initial block to a stimulus template file (design.tv) by default. For pre-NGDBuild functional simulation flows, you must manually add this block to your testbench.
The following sample initial block adds Simulation History Manager support.
initial
begin
$shm_open(/home/user/cadence/calc/xilinx.run/ \
calc.shm);
$shm_probe(AS);
end
The $shm_open command creates the database directory, calc.shm. $shm_probe(AS) directs the simulation history manager to probe all signals, thus making them available for viewing in the waveform viewer.
Always toggle global reset at the beginning of a simulation to ensure that all flip-flops and latches initialize to a known state. See the Setting Global Set/Reset and Tri-state Signals (FPGAs) section of the Design and Simulation Techniques chapter for information about toggling global reset for XC3000A/L, XC3100A/L, XC4000/E/EX/L/XL/XV, XC5200, and XC9500 devices.