HDLbits刷题记录之Alwaysblock2
直接放代码
// synthesis verilog_input_version verilog_2001
module top_module(
input clk,
input a,
input b,
output wire out_assign,
output reg out_always_comb,
output reg out_always_ff );
assign out_assign = a^b;
always@(*)
out_always_comb = a^b;
always@(posedge clk)
out_always_ff <= a^b;
endmodule
总结:
算是基础知识总结吧,第一点:assign后面是用阻塞赋值,赋值等号左侧必须是wire。第二点:always@(*)的赋值,也是用阻塞赋值,等号坐标必须是reg。第三点:always@(posedge clk)中,用非阻塞赋值,左侧变量必须是reg。
菜鸡本鸡的废话连篇。。。。。。