|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 cxbtiger 于 2015-7-9 14:40 编辑
最近在看一些书籍上的Verilog代码时,发现一个小问题,如下。如果一个module的某个输出端口需要在always块中赋值,很多代码的做法是将该信号定义为wire类型,而同时在程序中再定义一个对应的reg型变量,在always模块中对后面这个定义的reg型变量赋值,而使用assign将reg型变量的值赋给输出端口。
举例如下:
module tx
(
input clk,
input rst_n,
output txd
...
);
reg txd_reg;
...
always @(posedge clk or negedge rst_n) begin
if(!rst_n) begin
txd_reg <= 1'b1;
...
end
else begin
...
end
end
assign txd = txd_reg
...
endmodule
请问,这样处理有什么优点呢?为什么不将需要赋值的输出端口直接定义为reg型变量,在always块中直接对其赋值呢? |
|