Advertisement

Verilog variable initialization

阅读量:

初始化操作主要针对FPGA内部具有存储功能的单元,如寄存器和BLOCK RAM等,而对于不具备存储能力的单元,如wire,既无必要也无可能为其设置初始值。

实现方式:

  1. 利用always块配合时钟信号,并通过复位信号rst进行控制(此为常用方式之一)
  2. 在定义时直接进行赋值操作,通常设定为0(在没有复位信号的情况下采用该方式)

示例:通过计数器生成复位信号,将寄存器变量设置为零值:

复制代码
    //复位:1;工作:0
    module test(
    refclk,rst
    );
    input wire refclk;
    output reg rst;
    reg [2:0] time_cnt =3’d0;
    reg [2:0] time_cnt_n =3'd0;
    always@ (posedge refclk)
    begin
    	time_cnt <= time_cnt_n;
    end
    always@ (*)
    begin
    	if(time_cnt[2] == 1'b1)
    	begin
    		time_cnt_n = time_cnt;
    		rst = 1'b0;
    	end
    	else
    	begin
    		time_c

全部评论 (0)

还没有任何评论哟~