tnfh.net
当前位置:首页 >> 11. 如下一段代码: AlwAys@( ) iF(!rEsEt) q<= 0; ... >>

11. 如下一段代码: AlwAys@( ) iF(!rEsEt) q<= 0; ...

我11岁想找一个同岁男友

always @ (posedge clk or negedge reset) begin if(!reset) ..... end 因为是negedge ,所以是reset为低时复位。

这个语法对应的语义就是: CR=0时复位:输出Q=0,CR处于低电平时,Q=0。 CR也可以定义为高有效,这么写:(posedge CP or posedge CR)。

首先说明一点,你的问题和你代码出错不是同一个问题。 if else作为选择可以出现在过程赋值中,例如always initial 你这里的出错应该是敏感列表不全,可以采用2001语法always @ (*) 代替 另外组合逻辑中不要采用非阻塞赋值

你这是verilog,不是VHDL,你的always里面是if(reset==1),这个判断需要posedge reset来实现,像你这样写的negedge reset,就得判断if(reset==0)

以下语句是错误的: if(cnt_dis==1'b10) 因为1'b10实际上相当于1'b0。你应该改成2'b10

always @ (posedge clk or negedge rst_n) 意思是在时钟的上升沿或复位的下降沿会执行下面的操作 begin if(!rst_n) 如果复位(RST_N这个信号为低电平) 那么下面三个信号为0 begin send_req_0

可以不写negedge rst,如果敏感列表中不写的话,就是同步复位。而且敏感列表中复位信号也不一定非要下降压触发,上升沿触发posedge rst都可以。是上升沿触发还是下降沿触发复位要看具体设计,同步还是异步。复位要看你怎么设计复位电路。

不知道你是要做验证还是设计,如果是验证的话,不要求可综合,可以简单写成: always@ (posedge a) begin @ (negedge b) c

当信号a出现上升沿时,信号c被赋值为'1'。

网站首页 | 网站地图
All rights reserved Powered by www.tnfh.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com