[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

gEDA-user: iVerilog -tfpga: if-else errors?



In iVerilog, synthesizing even a simple if-else results in errors:
For example, this simple FF with clock enable and asynch reset from the Alternate Verilog FAQ:

module dff_cke (data, clock, reset, cke, q);
// port list
input data, clock, reset, cke;
output q;

// reg / wire declaration for outputs / inouts
reg q;

// logic begins here
always @(posedge clock or negedge reset)
if (reset == 0)
q <= 1'b0;
else if (cke == 1'b1)
q <= data;
endmodule

$ iverilog -tfpga -parch=virtex dff_cke.v
dff_cke.v:11: error: Events are unaccounted for in process synthesis.
dff_cke.v:13: error: Asynchronous if statement is missing the else clause.
1 error(s) in post-elaboration processing.
Command signaled: c:\iverilog\lib\ivl\ivlpp -L -D__ICARUS__=1 -fc:\DOCUME~1\Mike\LOCALS~1\Temp\ivrlg2b1d | c:\iverilog\lib\ivl\ivl -Cc:\DOCUME~1\Mike\LOCALS~1\Temp\ivrlh2b1d -g3.0 -parch=virtex -tdll -fDLL=c:\iverilog\lib\ivl\fpga.tgt -Fsynth2 -Fsynth -Fsyn-rules -Fcprop -Fnodangle -oa.out -- -

I compiled the same file with Xilinx ISE 5.2 and XST synthesizes it just fine.

I'm running Icarus version 0.7 20030116 from a Windows XP command line.

Is there a flag or setting I'm missing? Surely iVerilog can synthesize flip-flops? Thanks!

--Mike