专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 硬件开发

Verilog代码里面assign后面的变量不用提前声明一下吗?该怎么处理

发布时间:2010-06-13 21:41:13 文章来源:www.iduyao.cn 采编人员:星星草
Verilog代码里面assign后面的变量不用提前声明一下吗?
来看一个Synchronized Asynchronous Reset例子,Verilog代码如下:

module prac (
  clk,
  reset_n,
  dataa,
  datab,
  outa,
  outb
  );
  input clk;
  input reset_n;
  input dataa;
  input datab;
  output outa;
  output outb;
  reg reg1;
  reg reg2;
  reg reg3;
  reg reg4;
  assign outa = reg1;
  assign outb = reg2;
  assign rst_n = reg4;
  always @ (posedge clk or negedge reset_n)
  begin
  if (!reset_n)
  begin
  reg3 <= 1'b0;
  reg4 <= 1'b0;
  end
  else
  begin
  reg3 <= 1'b1;
  reg4 <= reg3;
  end
  end

  always @ (posedge clk or negedge rst_n)
  begin
  if (!rst_n)
  begin
  reg1 <= 1'b0;
  reg2 <= 1'b0;
  end
  else
  begin
  reg1 <= dataa;
  reg2 <= datab;
  end
  end
endmodule




其中的 assign rst_n = reg4;这一句
rst_n没有声明,这也行?
看来Verilog跟C语言区别还是有的嘛。。。

------解决方案--------------------
没有仔细看代码,不过ASSIGN 后面的变量不声明也没关系,顶多产生一个告警,不影响使用,个人认为
------解决方案--------------------
对复位信号的要求是异步assert,同步deassert,所以要用上述电路把全异步的reset-n作一个转换。
另外,verilog中默认为wire型变量
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: