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
这段代码正确吗?怎样理解?
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可以对同一个时钟进行上升沿和下降沿采样吗的主要内容,如果未能解决你的问题,请参考以下文章