在什么情况下,Verilog源代码需要用initial初始化?

之前很少见到在源代码中用initial初始化的程序,今天看到一个在数字频率计的设计中,在调用的子模块中很多都用到initial初始化,所以想问一下在什么情况下需要使用初始化?
我也来说两句 查看全部回复

最新回复

  • wq925110 (2008-10-13 11:40:24)

    同问,initial的语句能被综合吗?看很多书上说不能,
  • almer (2008-10-13 12:52:35)

    仿真的时候~
  • amormio124 (2008-10-13 16:58:22)

    initial在实际的IC design flow中是不能使用的,因为不可以综合的,FPGA就不知道了。
  • edacnuser (2008-10-13 17:37:25)

    在仿真的时候需要使用initial对reg类型的变量进行初始化!initial语句不可综合。在可综合代码设计中常使用复位信号使得所有变量在复位的时候设置一定的值。
  • feng1012 (2008-10-13 17:45:37)

    initial是不能综合
    一般在testpattern中用
  • seagull5414 (2008-10-13 18:17:56)

    学习受教
  • zhouhong0809 (2008-10-13 18:37:48)

    initial一般只是在激励文件中使用,设计模块中最好不要使用。同楼上的许多人说的一样,initial在设计中不可综合。
  • sdwsh (2008-10-13 19:55:30)

    QUOTE:

    原帖由 almer 于 2008-10-13 12:52 发表
    仿真的时候~
    对的!
  • mafan88 (2008-10-13 20:23:50)

    initial是不可综合的语句,用于编写TESTBENCH,可以用其初始化信号
  • Sunmoon007 (2008-10-13 21:18:45)

    不会吧?
    那我写过一个代码,如下
    module mytest(addr,data);
    input [0:3] addr;
    output [0:7] data;

    reg [0:7] datatemp [0:15];

    assign data=datatemp[addr];

    integer i;

    initial
    begin
             
             for(i=0;i<16;i=i+1)         
             begin
              datatemp=i;
            end
             
    end

    endmodule

    却可以,那请问这应该如何解释呢?
  • amormio124 (2008-10-13 22:12:32)

    请问楼上你的“可以”如何定义?
  • arccosx (2008-10-13 23:28:14)

    我敢说,你的这段代码在QUARTUS中绝对综合不出来,要报错
  • 顺水的鱼 (2008-10-14 20:03:49)

  • wu.weihai (2008-10-14 22:30:30)

    可以使用,但是不可综合.
  • fpgasdr (2008-10-14 22:39:38)

    testbench
  • arccosx (2008-10-14 23:38:39)

    initial一般是用在testbench中的,用来初始化激励信号
  • salaspaul (2008-10-17 22:27:47)

    quartus不会报错吧,可以编过,但initial还是在testbench中有点用处,用initial无非就是加一次reset
  • OSTINACM (2008-10-17 22:41:09)

    进来学习了,长进
  • fpgaxxxx (2008-10-18 00:06:44)

    明白了                         
  • yachong001 (2008-10-19 19:06:00)

    testbench 用的