FPGA入門練習 Verilog寫乙個下降沿檢測

2021-10-03 09:03:15 字數 1028 閱讀 5799

記錄學習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.來進行時鐘的分頻,倍頻以及相移。但是對於時鐘要求不高的基本設計,通過語言進行時鐘的分頻相移仍然非常流行,首先這種方法可以節省晶元內部的鎖相環資...