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

Re: gEDA-user: Icarus Verilog: FPGA-like automatic initialized registers?



geda@meko.dk wrote:
I'm a Verilog, but I've tried researching this question in vain, so I
turn to this forum.

In standard Verilog, registers start out in the unknown (x) state, and
initialization either requires explicit reset logic, eg.

....

  always @(posedge clk)
    if (~reset_n) begin
      pc <= 32'h0000;
      ....
    end else begin
      // Normal path here

or simulation specific initialization

  ....
  initial
  begin
    for (...)
       reg[$i] = 0;

  (I'm sloppy on the syntax here).

In Icarus Verilog, and most modern simulators, you can use declarations
like so:

    reg foo = 0;

This gets your variables initialized as you want them. Furthermore,
many of the FPGA *synthesizers* (including Xilinx xst) let you use
that syntax to specifiy the INIT value for the FF.

--
Steve Williams                "The woods are lovely, dark and deep.
steve at icarus.com           But I have promises to keep,
http://www.icarus.com         and lines to code before I sleep,
http://www.picturel.com       And lines to code before I sleep."