記錄學習fpga的點點滴滴
//首先是**
module check_down(
input clk,
input gate,//測試訊號
input rst_n,
output sign
);reg d0;
reg d1;
always @(posedge clk or negedge rst_n)begin
if(!rst_n) begin
d0 <= 1'b0;
d1 <= 1'b0;
endelse begin
d0 <= gate;
d1 <= d0;
endendassign sign=d1&(~d0);
endmodule在這裡插入**片
然後是****
`timescale 1 ns/ 1 ns
module tb_check_down();
reg clk;
reg rst_n;
reg gate;
wire sign;
check_down u1(.clk(clk),.rst_n(rst_n),
.gate(gate),.sign(sign));
initial begin
clk<=1'b0;
rst_n<=1'b0;
gate<=1'b1;
#100 rst_n<=1'b1;
#200 gate<=1'b0;
endalways #10 clk<=~clk;
endmodule
原理較簡單,在此就不贅述了。
最後是**波形
很顯然,當測試訊號gate下降沿到來時,sign在下個時鐘週期變為高電平,檢測成功。
FPGA 設計 Verilog 基礎 二
狀態機是許多數字系統的核心部件,是一類重要的時序邏輯電路。通常包括三個部分 一是下乙個狀態的邏輯電路,二是儲存狀態機當前狀態的時序邏輯電路,三是輸出組合邏輯電路。通常,狀態機的狀態數量有限,成為有限狀態機 fsm 由於狀態機的所有觸發器的時鐘由同一脈衝邊沿觸發,故也稱之位有限狀態機。根據狀態機的輸出...
FPGA按鍵防抖動程式 Verilog
module fangdoudong clk,reset,key in 1,key in 2,key in 3,led 1,led 2,led 3 input clk 50mhz input reset 高電平有效 input key in 1,key in 2,key in 3 開關key in ...
FPGA中用verilog分頻實現方法
分頻器是fpga設計中使用頻率非常高的基本設計之一,儘管在目前大部分設計中,廣泛使用晶元廠家整合的鎖相環資源,如altera 的pll,xilinx的dll.來進行時鐘的分頻,倍頻以及相移。但是對於時鐘要求不高的基本設計,通過語言進行時鐘的分頻相移仍然非常流行,首先這種方法可以節省晶元內部的鎖相環資...