3-verilog的使用-1

verilog的使用-1

1.判斷上升沿

reg    s_d0;
reg    s_d1;
wire   signal_up ;
//判斷信號的上升沿
assign  signal_up = (~touch_key_d1) & touch_key_d0;
always @ (posedge clk or negedge rst_n) beginif(rst_n == 1'b0) begins_d0<= 1'b0;s_d1<= 1'b0;endelse begins_d0<= signal_in;s_d1<= s_d0;end 
end

2.模塊例化

uart_reveive #(                       //串口接收例化.CLK_FREQ       (CLK_FREQ),       //設置頻率.UART_BPS       (UART_BPS))       //設置波特率
u_uart_receive(                 .sys_clk        (sys_clk), .sys_rst_n      (sys_rst_n),.uart_rxd       (uart_rxd),.uart_done      (uart_w_en),.uart_data      (uart_data_w));

3.時鐘計數

reg [26:0] cnt;
always @(posedge clk or negedge rst_n) beginif (!rst_n)cnt<= 24'd0;else if (cnt< 24'd1000_0000)cnt<= counter + 1'b1;elsecnt<= 26'd0;
end

4.案件消抖

module key_debounce(input            sys_clk,          //外部50M時鐘input            sys_rst_n,        //外部復位信號,低有效input            key_in,              //外部按鍵輸入output reg       key_flag,         //按鍵數據有效信號output reg       key_value         //按鍵消抖后的數據  );reg [31:0] delay_cnt;
reg        key_reg;always @(posedge sys_clk or negedge rst_n) begin if (!rst_n) begin key_reg   <= 1'b1;delay_cnt <= 32'd0;endelse beginkey_reg <= key_in;				//非阻塞賦值,按鍵輸入是wire類型的,隨時可能有值的變化if(key_reg != key_in)          //一旦檢測到按鍵狀態發生變化(有按鍵被按下或釋放)delay_cnt <= 32'd500_000;  //給延時計數器重新裝載初始值(計數時間為10ms)else if(key_reg == key_in) begin  //在按鍵狀態穩定時,計數器遞減,開始10ms倒計時if(delay_cnt > 32'd0)delay_cnt <= delay_cnt - 1'b1;elsedelay_cnt <= delay_cnt;end           end   
end
always @(posedge sys_clk or negedge rst_n) begin if (!rst_n) begin key_flag  <= 1'b0;key_value <= 1'b1;          endelse beginif(delay_cnt == 32'd1) begin   //當計數器遞減到1時,說明按鍵穩定狀態維持了20mskey_flag  <= 1'b1;         //此時消抖過程結束,給出一個時鐘周期的標志信號key_value <= key;          //并寄存此時按鍵的值endelse beginkey_flag  <= 1'b0;key_value <= key_value; end  end   
end

5.時鐘分頻模塊

module clock_generator (input  clk_50m,       		// 50MHz輸入時鐘input  rst_n,         		// 異步低電平復位output reg clk_out,        	// 周期時鐘輸出
);
localparam CNT_CYCLE   = 50_000_000;   //1秒 = 50,000,000個周期
// 計數器定義
reg [26:0] cnt_add;     
// 1秒時鐘生成
always @(posedge clk_50m or negedge rst_n) beginif (!rst_n) begincnt_add <= 0;clk_out <= 0;end else beginif (cnt_add == CNT_CYCLE>>1-1) begincnt_add <= 0;clk_out <= ~clk_out;  // 翻轉產生50%占空比end else begincnt_add <= cnt_add + 1;endend
end

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/94230.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/94230.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/94230.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ESXI虛擬交換機 + H3C S5120交換機 + GR5200路由器組網筆記

文章目錄一、組網拓撲與核心邏輯1. 拓撲結構2. 核心邏輯二、詳細規劃方案1. VLAN 與 IP 地址規劃2. 設備連接規劃三、配置步驟1. H3C S5120 交換機配置&#xff08;VLAN 與端口&#xff09;2. H3C GR5200 路由器配置&#xff08;路由、網關、NAT&#xff09;3. ESXi 虛擬交換機…

python的駕校培訓預約管理系統

前端開發框架:vue.js 數據庫 mysql 版本不限 后端語言框架支持&#xff1a; 1 java(SSM/springboot)-idea/eclipse 2.NodejsVue.js -vscode 3.python(flask/django)–pycharm/vscode 4.php(thinkphp/laravel)-hbuilderx 數據庫工具&#xff1a;Navicat/SQLyog等都可以 該系統通…

webrtc弱網-QualityScaler 源碼分析與算法原理

一. 核心功能QualityScaler 是 WebRTC 中用于動態調整視頻編碼質量的模塊&#xff0c;主要功能包括&#xff1a;QP 監控&#xff1a;持續監測編碼器輸出的量化參數&#xff08;QP&#xff09;丟幀率分析&#xff1a;跟蹤媒體優化和編碼器導致的丟幀情況自適應決策&#xff1a;根…

Maven 快照(SNAPSHOT)

Maven 快照(SNAPSHOT) 引言 Maven 快照(SNAPSHOT)是 Maven 中的一個重要概念,主要用于版本管理。它允許開發者在構建過程中使用尚未發布的版本。本文將詳細介紹 Maven 快照的原理、用途以及如何在項目中配置和使用快照。 Maven 快照原理 Maven 快照是版本號的一部分,…

2025-0803學習記錄20——畢業論文快速整理成小論文

本科畢業論文寫好啦&#xff0c;但是C導要我整理成一篇約8000字的小論文&#xff0c;準備投稿。畢業論文到投稿的小論文&#xff0c;這其實是從“全景展示”到“聚焦精煉”的過程。目前我已經有完整的大論文&#xff08;約6萬字&#xff09;&#xff0c;材料是充足的&#xff0…

VUE2 學習筆記16 插槽、Vuex

插槽在編寫組件時&#xff0c;可能存在這種情況&#xff0c;頁面需要顯示不同的內容&#xff0c;但是頁面結構是類似的&#xff0c;在這種情況下&#xff0c;雖然也可以使用傳參來進行&#xff0c;但傳參時&#xff0c;還需要編寫props等邏輯&#xff0c;略顯重復&#xff0c;而…

IntelliJ IDEA開發編輯器摸魚看股票數據

在IDEA的插件市場中心搜索stock&#xff0c;檢索結果里面的插件&#xff0c;點擊安裝即可安裝后的效果

Linux Deepin深度操作系統應用商店加載失敗,安裝星火應用商店

Linux Deepin國產操作系統優點 Deepin&#xff08;原名Linux Deepin&#xff09;是一款由中國團隊開發的Linux發行版&#xff0c;基于Debian stable分支&#xff0c;以美觀易用的界面和本土化體驗著稱。以下是其核心優點總結&#xff1a; 1. 極致美觀的界面設計 Deepin Deskt…

postgresql創建只讀用戶并授權

postgresql創建只讀用戶并授權 CREATE USER yk WITH ENCRYPTED PASSWORD <your_password>;GRANT USAGE ON SCHEMA public to yk; GRANT SELECT ON ALL TABLES IN SCHEMA public TO yk;根據以上創建的用戶&#xff0c;出現一個問題&#xff0c;對新建的表沒有查詢權限&am…

pytest vs unittest: 區別與優缺點比較

主要區別特性pytestunittest起源第三方庫Python標準庫語法風格更簡潔的Pythonic語法基于Java風格的JUnit測試發現自動發現測試需要繼承TestCase類斷言方式使用Python原生assert使用各種assert方法(assertEqual等)夾具系統強大的fixture系統簡單的setUp/tearDown方法參數化測試內…

Boost.Asio學習(5):c++的協程

協程是什么&#xff1f;協程就是可以“暫停”和“繼續”的函數&#xff0c;像在函數里打個斷點&#xff0c;然后以后可以從斷點繼續運行&#xff0c;而不是重新開始。線程 vs 協程&#xff1a;類比想象你在寫小說&#xff1a;線程&#xff1a;你開了 3 個作者&#xff08;線程&…

Linux 中,命令查看系統版本和內核信息

在 Linux 中&#xff0c;可以通過以下命令查看系統版本和內核信息&#xff1a;1. 查看內核版本uname -a或精簡顯示&#xff1a;uname -r # 只顯示內核版本示例輸出&#xff1a;Linux ubuntu 5.4.0-135-generic #152-Ubuntu SMP Tue Nov 15 08:12:21 UTC 2022 x86_64 x86_64 x8…

數據結構總綱以及單向鏈表詳解:

以下是基于筆記更詳細的知識梳理&#xff0c;從概念到細節逐層拆解&#xff0c;幫你吃透數據結構核心要點&#xff1a; 數據結構部分的重點內容&#xff1a;一、數據結構基礎框架 &#xff08;一&#xff09;邏輯結構&#xff08;關注元素間“邏輯關系”&#xff09; 筆記里提到…

模型學習系列之參數

背景 “GLM-4.5擁有 3550 億總參數量&#xff0c;其中 320 億活躍參數&#xff1b;GLM-4.5-Air 采用更緊湊的設計&#xff0c;擁有 1060 億總參數量&#xff0c;其中 120 億活躍參數。” 定義與關系 總參數量&#xff1a;模型中所有可訓練參數的總和&#xff08;包括嵌入層、注…

[創業之路-535]:軟件需要原型驗證、產品需要原型驗證、商業模式也需要原型驗證

原型驗證在軟件、產品開發以及商業模式探索中均扮演著至關重要的角色&#xff0c;它通過低成本、快速迭代的方式&#xff0c;幫助團隊驗證核心假設、降低風險并優化方案。以下是針對這三個領域的具體分析&#xff1a;一、軟件原型驗證&#xff1a;從概念到可交互的模型核心目的…

sublime text2配置

sublime text2配置背景配置其他背景 之前下載了就把它當記事本在使用。但是&#xff0c;在使用過程中&#xff0c;有些場景很痛苦。如果說找一個字符串中的某一部分&#xff0c;雖然它通過了這個功能&#xff0c;但是不夠明顯&#xff0c;看瞎了。。。 配置 下面是我改的一些選…

本地通信的選擇:為什么組播比廣播更適合多進程協作?

零、深入解析Linux本地通信機制,對比廣播與組播的核心差異 本地組播能讓多進程收到消息,而本地廣播不行,核心原因在于兩者的設計目標、網絡協議處理邏輯以及內核轉發機制存在本質差異。具體可以從以下幾個角度理解: 1. 通信模式與目標地址的本質區別 組播(Multicast):…

7-Django項目實戰[user]-發送郵件激活賬號

1.前期準備&#xff08;以QQ郵箱為例&#xff09; 登錄QQ郵箱 獲取授權碼 2.settings.py文件配置 1&#xff09;緩存配置 # 配置緩存 CACHES {# 郵件激活隨機數"default": {"BACKEND": "django_redis.cache.RedisCache","LOCATION&q…

社群團購市場選擇與開源技術賦能下的下沉市場開拓策略研究——以開源AI智能名片、鏈動2+1模式與S2B2C商城小程序為例

摘要&#xff1a;在社群團購行業面臨流量成本攀升與同質化競爭的背景下&#xff0c;下沉市場因其龐大用戶基數與未被充分滿足的消費需求&#xff0c;成為創業者突破增長瓶頸的關鍵賽道。本文以拼多多成功開拓小城鎮與農村市場的案例為切入點&#xff0c;結合開源AI智能名片、鏈…

Ollama前端:open-webui

github&#xff1a;https://github.com/open-webui/open-webui 官網&#xff1a;&#x1f3e1; Home | Open WebUI 1、docker安裝&#xff08;GPU&#xff09;&#xff1a; docker run -d -p 3000:8080 --gpusall -v ollama:/root/.ollama -v open-webui:/app/backend/data …