边沿检测指的是检测一个信号的上升沿或者下降沿,如果发现上升沿或者下降沿,则给出一个信号指示出来。边沿检测电路 一般分为上升沿检测电路、下降沿检测电路和双沿检测电路。
复杂的逻辑设计里面,很多情况都需要检测信号的跳变,如果一个信号发生跳变,则给出一个指示,这个指示用来触发其他的动作,这里就需要有一个边沿检测电路 。
上升沿检测电路
信号检测由 0变 1的过程 ,就是上升沿检测电路( posedge edge 信号检测由1变0的过程 就是下降沿检测电路( negedge edge)。若上升沿和下降沿都检测,则这个电路就是双沿检测电路( double edge)。
在always块的敏感信号列表中可以直接用 posedge和 negedge来提取上升沿和下降沿,但是如果要在 always程序块的内部检测上升沿或者下降沿呢?还是用 poesedge和 negedge吗? 我们来实验下我们的推测,代码如下:
module edge_test
(
input clk , // system clock 50Mhz on board
input rst_n, // system rst, low active
input a ,
input b ,
output reg y // output signal
);
//==============================================================
// ------------------------- MAIN CODE ------------------------
//==============================================================
always @ (posedge clk or negedge rst_n or posedge a) begin
if (rst_n == 1'b0)
y &

最低0.47元/天 解锁文章
2819






