verilog hdl 中@(posedge clk^j)啥意思,我只理解posedge clk是

已举报 回答 关注
verilog hdl 中@(posedge clk^j)啥意思,我只理解posedge clk是
问在线客服
扫码问在线客服
  • 回答数

    7

  • 浏览数

    9,780

7个回答 默认排序
  • 默认排序
  • 按时间排序

已采纳
你语法都没有学完,就来瞎写程序
第二中写法是不可综合的语句
仔细看看书吧,不是所有关键词都是可以拿来随便用的,要分清场合!
取消 评论
谁说不能呢?只要PS2协议允许,完全可以使用啊
取消 评论
呵呵,clrn和clk都是你自己定义的信号.clk一般是时钟信号,clrn就不太容易猜了。这句话的意思是每当 clrn信号的下降沿,或者clk的上升沿是,就开始执行always下的语句啦。
给你举个例子。
module counter(clk,clrn,q);'一个16进制计数器clk为时钟,clrn为低电平复位信号
input clk,clrn;
output [2:0]q;
always(negedge clrn or posedge clk)
begin
if (!clrn)'有复位信号
begin
q=4'b0000;
end
else if(clk)'时钟来啦~
begin
q=q+8'b00000001;
if(q==4'b1111)
q=4'b0000; '计数满后清零
end
end
endmodule
自己顺手写的,可能有语法错误哈哈。希望对你有帮助
取消 评论
做一个计数器,根据计数值,分别赋值!
取消 评论
@(posedge clk)这表示等待一个事件(clk上升沿)的发生
因此当data在clk上升沿发生变化(即data的变化是发生在clk上升沿这一事件之后)
assign语句使a立即取得data的值
而always执行到@(posedge clk)则会挂起 直到事件(下一个clk上升沿)发生 才继续执行后面的语句 因此b的赋值(不管阻塞还是非阻塞赋值都是)比a晚了一个时钟
取消 评论
描述错误:标示符‘clk1’已被声明。
可以换个变量
取消 评论
negedge clrn 为:当clrn下降沿时触发
posedge clk 为:当clk上升沿时触发
合起来negedge clrn or posedge clk就是
当clrn下降沿时触发或当clk上升沿时触发
always @( )
是关键词,意思就是当()里的内容发生时执行下面的程序
取消 评论
ZOL问答 > 相机 > 其他分类 > verilog hdl 中@(posedge clk^j)啥意思,我只理解posedge clk是

举报

感谢您为社区的和谐贡献力量请选择举报类型

举报成功

经过核实后将会做出处理
感谢您为社区和谐做出贡献

扫码参与新品0元试用
晒单、顶楼豪礼等你拿

扫一扫,关注我们
提示

确定要取消此次报名,退出该活动?