关于always语句
见如下例句:always @(posedge clk or posedge clr) ;
问题: always语句敏感触发沿列表里面 是否可以有两个 Posedge 触发沿,即上述语句是否合法。 如果你的clr是复位信号,如rst的话,就是合法的
如果是指其他时钟信号的话那样的写法应该是错的,我没见过那样的写法 网上下了一些例子,很多都是这么写的。目前比较疑惑。 那个信号一般都是复位信号了,如果是时钟信号的话不太肯能,我建议哈!你不必看网上的代码了,见看看夏老师书上怎么写的就行了;
在always模块里面,就只有一个时钟信号clk和一个复位信号reset。或者就只有一个时钟信号 1、在以下语句:
always@( posedge clk)
begin
.....
end
块语句 begin 和end 之间是否可以:描述一个组合逻辑或者一个时序逻辑,或者两者的皆有?
2、 以下语句:
always@(a or b)
begin
...
end
因为a,b是电平触发, 那么块语句begin和end之间,只能描述组合逻辑 ? 第一个:只能描述时序逻辑。
带有posedge negedge关键字的时事件表达式表示沿触发的时序逻辑,没有posedge negedge关键字的表示组合逻辑或电平敏感的锁存器
第二个:只能是组合逻辑了 那always语句什么时候可以在语句块begin 和end之间,同时描述组合逻辑和时序逻辑。 那是不能同时的
组合逻辑可用always (a or b)的形式或使用assign语句
时序逻辑用沿触发,不能使用混乱
平时注意代码书写规范,阻塞非阻塞的正确使用 具体看你要干什么了,这么写是没有问题的,verilog不会规定这么写就不行,但是一般情况下一个always模块里面最好不要有两个时钟信号来触发,这样逻辑很不好控制。一般情况下在FPGA代码里,做异步复位会这么写,但是做同步复位就会只有一个触发信号 没见过这么写的
页:
[1]
2