Guest
Can someone help out a VHDL guy? I am trying simulate a Micron MT41K512M16HA-107. Here is a link to the model.
https://www.micron.com/-/media/client/global/documents/products/sim-model/dram/ddr3/ddr3-sdram-verilog-model.zip
The readme.txt file states "if you are using the ModelSim simulator, type "do tb.do" at the prompt" but there is no tb.do in the zip. I am trying to simulate using the following the following commands.
vlib work
vlog -sv +define+MAX_MEM +define+den8192Mb +define+sg107 +define+x16 +incdir+/. ddr3.v tb.v
vsim -novopt tb
run -all
I am getting several divide by zero errors. Here is the first.
# ** Error: (vsim-8630) tb.v(114): Infinity results from division operation..
Here is tb.v lines 112 - 114.
real tck;
wire [11:0] tccd = TCCD;
wire [11:0] tcke = max(ceil(TCKE/tck), TCKE_TCK);
Note that tck = 0 in the simulation. I believe tck is supposed to be initialized in lines 152 - 161 which has the following.
initial begin
$timeformat (-9, 1, " ns", 1);
`ifdef period
tck <= `period;
`else
tck <= ceil(TCK_MIN);
`endif
ck <= 1'b1;
odt_fifo <= 0;
end
I assume either the init code isn't being executed first or the include statements for the file that defines TCK_MIN isn't actually getting included. I have stepped through the simulation and it doesn't seem to execute the init lines. Is there something I am missing?
Thanks in advance for any help.
https://www.micron.com/-/media/client/global/documents/products/sim-model/dram/ddr3/ddr3-sdram-verilog-model.zip
The readme.txt file states "if you are using the ModelSim simulator, type "do tb.do" at the prompt" but there is no tb.do in the zip. I am trying to simulate using the following the following commands.
vlib work
vlog -sv +define+MAX_MEM +define+den8192Mb +define+sg107 +define+x16 +incdir+/. ddr3.v tb.v
vsim -novopt tb
run -all
I am getting several divide by zero errors. Here is the first.
# ** Error: (vsim-8630) tb.v(114): Infinity results from division operation..
Here is tb.v lines 112 - 114.
real tck;
wire [11:0] tccd = TCCD;
wire [11:0] tcke = max(ceil(TCKE/tck), TCKE_TCK);
Note that tck = 0 in the simulation. I believe tck is supposed to be initialized in lines 152 - 161 which has the following.
initial begin
$timeformat (-9, 1, " ns", 1);
`ifdef period
tck <= `period;
`else
tck <= ceil(TCK_MIN);
`endif
ck <= 1'b1;
odt_fifo <= 0;
end
I assume either the init code isn't being executed first or the include statements for the file that defines TCK_MIN isn't actually getting included. I have stepped through the simulation and it doesn't seem to execute the init lines. Is there something I am missing?
Thanks in advance for any help.