To simulate a design one may write a testbench in verilog where input signal timings can be provided. Cadence comes with very handy tools for writing and simulating testbenches. The simplest way to write it requies the following steps:
1. Generating Template:

However, if you are simulating a verilog module written all by yourself you can specify your own timescale. To know more about timescales please consult any verilog tutorial.
2. Providing Timing information:
// generated by Testbench Utility Thu Apr 5 15:05:35 2001
`timescale 1ns/100ps
module testfixture ;
wire [5:0] a_gain_select;
wire \f_oea* ;
wire \f_oeb* ;
.
.
.
reg [11:0] reg_lad;
reg \ads* ;
reg \cs0* ;
reg clk;
.
.
.
my_design top (a_gain_select, \f_oea* , \f_oeb* ...... \ads* , \cs0*.....);
endmodule
initial
begin
$clkdef(lclk, 0, 5, 10);
end
Here the signal 'lclk' is a input signal to the fpga/ or the module you are designing
which you want to run as a clock. 0, 5 specifies the time range it will be high and 10
specifies its time period in nanoseconds.
always
begin
#0 \ads* = 1'b0; \cs0* = 1'b1;
#10 \ads* = 1'b1;
#20 \ads* = 1'b0; \cs0* = 1'b0;
#50 \cs0* = 1'b1;
end
The 'always-end' block enables the same simulation to run again and again. One can also
use "initial-begin" block in which case it will run only for once. But by several trial
and error for the CADENCE installed in CEDCC it was found that we need to run it in
continuous mode. If someone can do it without running it continously please let us know.
the syntax 1'b0 specifies that the signal is 1 bit and you set it to zero. Some examples follow:
LA = 4'b0110 -- LA is a 4 bit bus, assigned a BINARY value 0110.
LA = 8'hF9 -- LA is a 8 bit bus, assigned a HEX value F9.
LA = 12'hz -- LA is a 12 bit bidirectional bus, assigned high
impedance
after typing all the testbench verilog.v file should look like following:
// generated by Testbench Utility Thu Apr 5 15:05:35 2001
`timescale 1ns/100ps
module testfixture ;
wire [5:0] a_gain_select;
wire \f_oea* ;
wire \f_oeb* ;
.
.
.
reg [11:0] reg_lad;
reg \ads* ;
reg \cs0* ;
reg clk;
.
.
.
my_design top (a_gain_select, \f_oea* , \f_oeb* ...... \ads* , \cs0*.....);
initial
begin
$clkdef(lclk, 0, 5, 10);
end
always
begin
#0 \ads* = 1'b0; \cs0* = 1'b1;
#10 \ads* = 1'b1;
#20 \ads* = 1'b0; \cs0* = 1'b0;
#50 \cs0* = 1'b1;
end
endmodule


Finally your simulation waveforms should look something like the following:

[ Return to the Penn State Cadence® University Program Page ]
This page has been accessed
times since April 9, 2001
Last Modified Thursday, October 14, 2004 15:40:32