当前位置:   article > 正文

关于verilog中是把output设成reg变量和内部设置一个reg变量的讨论_output reg

output reg

为了能把一个输出信号赋给输出端口,常看到如下的两种处理方式。

方式A:

  1. module test1(clk,counter);
  2. input clk                         ;
  3. output[7:0] counter     ;
  4. reg[7:0] counter_reg ; 
  5. always@(posedge clk)
  6. begin
  7.  counter_reg<=counter_reg+1    ;
  8. end
  9.   assign counter=counter_reg;
  10. endmodule

方式B:

  1. ​module test1(clk,counter);
  2. input clk                         ;
  3. output reg[7:0] counter     ;
  4. always@(posedge clk)
  5. begin
  6.  counter<=counter+1'b1    ;
  7. end
  8. endmodule

​A是单独设置内部变量,在always中将输出信号赋给counter_reg,让后通过assign将counter和counter_reg连接起来。

B是直接将输出端口设置成reg型信号,直接在always中赋值。

综合的结果表明,两种处理方式的结果一致。

综合后的RTL级视图均为:

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/613947
推荐阅读
相关标签
  

闽ICP备14008679号