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.


/////////////////////////////////////////////////////////////////////////

[EMAIL PROTECTED] 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 

///////////////////////////////////////////////////////////////////





Reply via email to