Verilog hdl 如何检测时钟的上升沿和下降沿?

always@(posedgeclk)SCKr<={SCKr[1:0],SCK};wireSCK_risingedge=(SCKr[2:1]==2'b01);//noww... always @(posedge clk) SCKr <= {SCKr[1:0], SCK};
wire
SCK_risingedge = (SCKr[2:1]==2'b01); // now we can detect SCK rising
edges
wire SCK_fallingedge = (SCKr[2:1]==2'b10); // and falling
edges
这段代码正确吗?怎样理解?
展开
 我来答
宋桓公
2013-07-30 · TA获得超过912个赞
知道小有建树答主
回答量:186
采纳率:0%
帮助的人:111万
展开全部
regF1,F2;
always @(posedge CLK or negedge RSTn)
if(!RSTn)
begin
F1<=1'b1;
F2<=1'b1;
end
else
begin
F1<=SCKr;//需要检测的引脚
F2<=F1;
end
/******************************/
assign SCK_fallingedge = F2 && !F1;//检测时钟的上升沿
assign SCK_risingedge = F1 && !F2;//检测时钟的下降沿

always @(posedge CLK or negedge RSTn)
if(!RSTn) begin .... end
else if(SCK_fallingedge == 1)
bigin
//SCK_fallingedge为一表示上升沿到来,上升沿到来之后SCK_fallingedge会自动清零
end
else if(SCK_risingedge == 1)
begin
//同样,SCK_fallingedge为一表示下降沿到来,下降沿到来之后SCK_fallingedge会自动 清零
end

这是我经常用的方法,纯手打,望采纳。
yulunna
2020-10-21 · TA获得超过408个赞
知道小有建树答主
回答量:176
采纳率:50%
帮助的人:111万
展开全部

Verilog有三种边沿触发关键字:

1、上升沿:posedge

2、下降沿:negedge

3、双边沿:edge(即上升沿下降沿均触发)

例:上升沿触发

always @( posedge clk )

begin

......................

end


从事音频设备开发好多年——VX:xuquanfugui-2020


本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式