Verilog

A collection of 3 posts
數位除法器設計與實現 - 基於FPGA的移位
Verilog

數位除法器設計與實現 - 基於FPGA的移位

前言 在數位電路設計中,除法運算是一個重要但相對複雜的算術操作。本文將介紹一個基於FPGA的32位元除法器設計,採用移位除法算法實現。這個設計不僅具有良好的可擴展性,還提供了完整的測試驗證平台。 一、設計目標 1. 實現32位元無號數除法運算 2. 支援可參數化的資料位寬 3. 提供完整的控制機制 4. 確保運算結果的準確性 二、設計架構 2.1 模組說明 1. div_go_tick: 啟動信號處理模組 * 功能:產生單一時鐘週期的觸發脈衝 * 避免多週期觸發問題 2. division: 除法器核心模組 * 功能:執行移位除法運算 * 提供商數和移位計數輸出 三、完整程式碼 3.1 訊號邊緣檢測模組 // ********************************************************************************* // 訊
閱讀時間 6 分鐘
數字電路毛刺濾波器設計與實現
Verilog

數字電路毛刺濾波器設計與實現

前言 在數位電路設計中,信號毛刺(Glitch)是一個常見的問題,常見於按鍵去彈跳、外部信號輸入處理、需要穩定信號的控制系統、數位電路中的雜訊處理等。本文將介紹一個使用Verilog實現的毛刺濾波器設計,該濾波器可以有效過濾掉輸入信號中的短暫毛刺,提高系統的穩定性。 專案架構 RTL代碼實現 以下是完整的Verilog RTL代碼: module glitch_filter ( input clk, // 系統時脈輸入 input nRst, // 低電位有效的重置信號 input iSignal, // 需要進行濾波的輸入信號 output oSignal // 經過濾波處理後的輸出信號 ); // 內部信號定義 reg [31:0] rvShiftSignal_d, rvShiftSignal_q; // 32位移位暫存器,用於儲存信號歷史 reg rSignal_d, rSignal_q; // 輸出信號的組合邏輯和時序邏輯暫存器 // 第一個時序邏輯區塊
閱讀時間 5 分鐘
Verilog HDL 訊號命名參考
Verilog

Verilog HDL 訊號命名參考

前言 在數位電路設計中,良好的訊號命名原則與 coding style 同等重要。特別是在大型設計專案中,清晰的命名方式不僅能讓代碼更容易維護,也能幫助團隊成員快速理解訊號特性並進行除錯。本文將介紹常用的 Verilog HDL 訊號命名規則。 專案架構 1. FPGA 外部輸入輸出命名 FPGA 的外部接口(top module)使用全大寫字母,並用底線區分單字: input CLOCK_50 // 50MHz 系統時脈 output LED_STATUS // LED 狀態輸出 input KEY_N // 按鍵輸入(低態動作) 2. 模組內部訊號命名 2.1 子模組輸入輸出命名 * 輸入訊號:前綴 i(除系統時脈及重置輸入外) input clk // 系統時脈輸入
閱讀時間 3 分鐘