[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gEDA: Iverilog : problems with real numbers
Hi Steve and all,
Appreciate your effort providing Icarus Verilog to Verilog community.
I compiled and installed the latest Iverilog version 20060409 (after
trying stable release 0.8-1) and still got the following error message.
Below is the simplied pll_model.v file for your reference.
Thanks a lot for your help.
Best regards,
Steven.
/////////////////////////////////////////////////////////////////////////
[kk@spl2]$ iverilog pll_model.v
pll_model.v:32: error: No function $realtobits in this context (pll).
pll_model.v:32: error: Unable to elaborate r-value:
$realtobits(filterVoltage)
pll_model.v:48: error: Real constants are not synthesizable.
sh: line 1: 19295
Done /usr/bin/iverilog-20060409/lib/ivl/ivlpp -L
-D__ICARUS__=1 -f/tmp/ivrlg196934e2
19296 Segmentation fault
| /usr/bin/iverilog-20060409/lib/ivl/ivl -C/tmp/ivrlh196934e2
-C/usr/bin/iverilog-20060409/lib/ivl/vvp.conf -- -
/////////////////////////////////////////////////////////////////////////
/// File : pll_model.v
`timescale 1ns/1ps
`define SETTLINGTIME 42000
`define DIVCLKNOM 2.000000e-3
`define VCOCLKNOM 100.000000e-3
`define DIVCLKTOL 0.300000
`define VCOCLKTOL 0.250000
`define KVCOTYP 393.600000
module pll ( divClkin,
FBD,
vcoClk,
filterVoltageBus);
input divClkin;
input [7:0] FBD;
output vcoClk;
output [63:0] filterVoltageBus;
reg resetDone;
wire resetDoneDelayed;
real divClkPeriod;
real vcoClkHalfPeriod;
wire [63:0] filterVoltageBus = $realtobits(filterVoltage);
initial
begin
divClkPeriod = 1/`DIVCLKNOM;
resetDone = 0;
vcoClkHalfPeriod = 0;
vcoClk = 0;
end
always @ (posedge divClkin)
begin
vcoClkHalfPeriod = divClkPeriod/((FBD+1)*2.0);
end
assign #(6.0*vcoClkHalfPeriod) resetDoneDelayed = resetDone;
endmodule
///////////////////////////////////////////////////////////////////