Thanks Steve for your reply.

I shall submit the bug report.
Indeed, the filterVoltageBus is connected to another part of the whole
system and not for display purpose. The attached pll_model.v is a
simplified version for your reference.

How about the 3rd error message  ?
line 48 error : Real constants are not synthesizable.
line 48 : assign #(6.0*vcoClkHalfPeriod) resetDoneDelayed = resetDone;
Is there any switch (option) for Iverilog to turn off synthesis check ?
I tried "iverilog -tnull pll_model.v" but still the same.

Thanks a lot.

: )


On Mon, 2006-05-08 at 11:31 -0700, Stephen Williams wrote:
> Steven Kwan wrote:
> > 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.
> 
> The $realtobits system function does exist, but the elaboration of
> continuous assignments doesn't seem to search the system functions
> namespace. That's a bug. Can you put a report in the bugs database
> for me? It's much easier for me to track that way.
> 
> If you are just looking to pass the voltage value out of the module
> for display purposes, then Icarus Verilog also adds the extension of
> allowing you to declare wires as real-valued. Unfortunately, there's
> another bug in that the port declarations of real wires doesn't seem
> to work yet, so that's another bug for the database:-)
> 
> > /////////////////////////////////////////////////////////////////////////
> > 
> > [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