verilog可以对同一个时钟进行上升沿和下降沿采样吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了verilog可以对同一个时钟进行上升沿和下降沿采样吗相关的知识,希望对你有一定的参考价值。

参考技术A 看你怎么定义同时采样了
对于可综合的verilog设计
对于一个特定的寄存器,只能用一个沿采样。如果你上升沿和下降沿都要采样的话,需要两个寄存器
比如时钟信号的clk, 被采样信号是A
reg a_pos, a_neg;
always@(posedge clk)
a_pos <= A; //a_pos保存上升沿采样值
always@(negedge clk)
a_neg <= A;//a_neg保存下降沿采样值

如果你只是用来写testbench,则不受上面规则的约束本回答被提问者采纳
参考技术B 可以的

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

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
这段代码正确吗?怎样理解?

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

这是我经常用的方法,纯手打,望采纳。
参考技术A

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

1、上升沿:posedge

2、下降沿:negedge

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

例:上升沿触发

always @( posedge clk )

begin

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

end


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


以上是关于verilog可以对同一个时钟进行上升沿和下降沿采样吗的主要内容,如果未能解决你的问题,请参考以下文章

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

verilog里可不可以同时对上升沿和下降沿计数

verilog 中的上升沿 下升沿 延时怎样规定

在verilog里, 上升沿和下降沿的问题. 求大神帮助, 小的新人一枚. 谢谢先

verilog抓外部低频输入信号的上升沿和下降沿

下面时序图是不是是上升沿输入,下降沿输出?为啥我看理解的都是上升沿呢?