上升沿檢測電路
01
題目:對于8位向量中的每個位,檢測輸入信號何時從一個時鐘周期的0變為下一個時鐘周期的1(類似于上升沿檢測)。應在從0到1的跳變發生后的周期內設置輸出位。
以下為例子, 為了清楚起見,分別顯示了in [1]和pedge [1]。
module top_module(
input clk,
input [7:0] in,
output reg [7:0] pedge);
reg [7:0] d_last;
always @(posedge clk) begin
d_last <= in;
pedge <= in & ~d_last; // A positive edge occurred if input was 0 and is now 1.
end
endmodule
第九行 d_last <= in ; 是記錄信號in上一個cycle的狀態;
第十行 pedge <= in & ~d_last; 檢測上升沿,簡答來說就是檢測input由0變1。
雙邊沿檢測電路
02
題目:對于8位向量中的每個位,檢測輸入信號何時從一個時鐘周期更改為下一個時鐘周期(檢測任何邊沿)。應在從0到1的跳變發生后的周期內設置輸出位。
module top_module (
input clk,
input [7:0] in,
output [7:0] anyedge
);
reg [7:0] d_old;
always@(posedge clk)begin
d_old <= in;
anyedge <= d_old^in;
end
endmodule
第八行 d_old <= in ; 是記錄信號in上一個cycle的狀態;
第九行 anyedge <= d_old^ in ; 即現在的信號in與上一個狀態不一樣的話,輸出1(異或是兩個信號不一樣置1),這樣該電路就可以雙邊沿檢測。
-
檢測電路
+關注
關注
13文章
312瀏覽量
58943 -
Verilog
+關注
關注
29文章
1367瀏覽量
112302 -
狀態機
+關注
關注
2文章
493瀏覽量
28254 -
時鐘域
+關注
關注
0文章
53瀏覽量
9792
發布評論請先 登錄
FPGA設計中的邊沿檢測問題

FPGA學習系列:12. 邊沿檢測設計

評論