在 verilog hdl 语言中 <=表示什么??比如q<=4'h0怎么解释

如题所述

这就表示q在下一个时钟沿会变成0,4代表4bit位宽,h代表16进制,具体是上升沿还是下降沿就看你自己控制了,一般是上升沿,<=就表示非阻塞赋值,如果使用=那代表阻塞赋值,使用阻塞方式对一个变量进行赋值时,此变量的值在在赋值语句执行完后就立即改变。
使用非阻塞赋值方式进行赋值时,各个赋值语句同步执行;因此,通常在一个时钟沿对临时变量进行赋值,而在另一个时钟沿对其进行采样。追问

感谢大神回复,可以举例说一下嘛!!!加20悬赏

追答

例子:
module bloc(clk,a,y);
input clk, a;
output b; reg b;

always @(*)
begin
b=a;
end
endmodule
在这段代码中,一旦a变化,b也会马上跟着变化,就是b就是等于a的。
module bloc(clk,a,y);
input clk, a;
output b; reg b;

always @(posedge clk)
begin
b<=a;
end
endmodule
在这段代码中,如果a在某一时刻变化了,那么b会等待时钟的上升沿,等到clk的上升沿出现之后,b才会将a的值拿过来,也就是说,不是直接等于,而是跟时钟同步的

温馨提示:答案为网友推荐,仅供参考
相似回答