这一部分没啥说的,电路图也不需要放了。
代码还是放一下吧:
// synthesis verilog_input_version verilog_2001
module top_module(
input a,
input b,
output wire out_assign,
output reg out_alwaysblock
);
assign out_assign = a && b;
always@(*)begin
out_alwaysblock = a && b;
end
endmodule
总结思考:
assign与always块的不同,只是在赋值左侧变量的类型上有差异。assign只能用wire类型,always块只能用reg类型。这只是来源于硬件设计语言的遗留问题。always@(*)与assign相当于一模一样?那这是我之前意会错了。菜鸡本鸡没错了。。。。。。