Quartus + VScode 實現模塊化流水燈

文章目錄

  • 一、通過VScode編寫Verilog代碼
  • 二、模塊化編程
  • 三、代碼示例

一、通過VScode編寫Verilog代碼

1、下載Vscode
2、下載相關插件
請添加圖片描述
搜索Verilog就會彈出有如圖所示的插件,下載并安裝
3、創建Quartus項目
4、創建完成后點擊Tools,選擇Options
請添加圖片描述
然后在如圖所示中,選擇VScode.exe所在路徑,并在后面添加-r -g %f:%l
5、創建新的Verilog文件,然后會自動跳轉VScode
請添加圖片描述
6、在你項目路徑下右鍵新建txt文件(文件名自己命名,不必要跟我一樣),再把后綴改為.v
請添加圖片描述
7、在VScode中點擊FIle,然后點擊openfIle,然后找到這個文件,打開
請添加圖片描述
8、在這個文件里面編寫Verilog代碼,編寫完成后ctrl+s保存,然后回到Quartus
9、右鍵點擊Files,點擊三個點,然后找到剛才的文件,添加,添加的文件會顯示在下面,至于這里的文件為啥突然變名字了,后文會講到
請添加圖片描述
然后就可以在Quartus里面點擊
請添加圖片描述
到此為止,將VScode與Quartus結合就結束了

二、模塊化編程

1、如圖所示,分別有三個.v文件,就是分別三個模塊
請添加圖片描述
看著是不是有一種熟悉感,我的理解即是類似c語言那種函數調用,又類似C++的類封裝,需要用的時候就拿出來用。
2、這里的m_design就是剛才的top,代表頂層模塊,就是最主要的模塊,另外兩個模塊就是分別實現其他功能的模塊,當然可以有很多個次要模塊。
3、需要注意的是頂層模塊的模塊名需要與工程名相同,但其他模塊就沒有要求
4、只需要重復上述創建模塊的流程即可完成多模塊的創建

三、代碼示例

//頂層模塊
module m_design(input  wire       clk,     input  wire       rst_n,   input  wire       key,     output wire [5:0] led      
);wire en_1hz;  clk_divider(.clk   (clk),.rst_n (rst_n),.en    (en_1hz)
);led_controller(.clk   (clk),.rst_n (rst_n),.en    (en_1hz),.key   (key),.led   (led)
);endmodule//次要模塊
module led_controller(input  wire       clk,input  wire       rst_n,input  wire       en,      input  wire       key,    output reg  [5:0] led
);reg [5:0] state;      
reg pause_flag;       
reg [2:0] key_sync;   
wire key_negedge;    always @(posedge clk or negedge rst_n) beginif (!rst_n) key_sync <= 3'b111;else key_sync <= {key_sync[1:0], key}; 
endassign key_negedge = (key_sync[2:1] == 2'b10);always @(posedge clk or negedge rst_n) beginif (!rst_n)pause_flag <= 0;else if (key_negedge)pause_flag <= ~pause_flag;
endalways @(posedge clk or negedge rst_n) beginif (!rst_n) beginstate <= 6'b000001; end else if (en && !pause_flag) beginstate <= {state[4:0], state[5]};  end
endalways @(posedge clk) beginled <= state;  
endendmodule//次要模塊
module clk_divider(input  wire clk,   input  wire rst_n,output reg  en     
);parameter CLK_FREQ = 50_000_000; 
localparam CNT_MAX = CLK_FREQ - 1; reg [25:0] cnt; always @(posedge clk or negedge rst_n) beginif (!rst_n) begincnt <= 0;en  <= 0;end else beginif (cnt == CNT_MAX) begincnt <= 0;en  <= 1;    end else begincnt <= cnt + 1;en  <= 0;endend
end
endmodule

流水燈效果

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

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

相關文章

tryhackme——The Lay of the Land

文章目錄 一、網絡基礎設施1.1 內網1.2 DMZ區1.3 網絡枚舉&#xff08;Network Enumeration&#xff09; 二、域環境三、用戶和組管理四、安全解決方案4.1 基于主機的安全解決方案4.1.1 防病毒軟件4.1.2 Microsoft Windows Defender4.1.3 主機防火墻4.1.4 安全事件記錄與監控4.…

STM32---FreeRTOS消息隊列

一、簡介 1、隊列簡介&#xff1a; 隊列&#xff1a;是任務到任務&#xff0c;任務到中斷、中斷到任務數據交流的一種機制&#xff08;消息傳遞&#xff09;。 FreeRTOS基于隊列&#xff0c;實現了多種功能&#xff0c;其中包括隊列集、互斥信號量、計數型信號量、二值信號量…

2025年了,5G還有三個新變化

最近輿論開始討論5G為什么不火了&#xff1f;5G是不是停滯發展了。 實際上&#xff0c;5G不僅在發展&#xff0c;還迎來了它的升級版5G-A。 在今年西班牙舉行的世界移動通信大會上&#xff0c;5G-A就是焦點之一。 被譽為全球通信領域風向標的MWC&#xff0c;匯聚了華為、中興通…

SQLMesh SCD-2 時間維度實戰:餐飲菜單價格演化追蹤

場景背景&#xff1a;動態菜單價格管理 考慮某連鎖餐廳的菜單管理系統&#xff0c;需要記錄食品價格的歷史變更軌跡。業務需求包括&#xff1a; 記錄每次價格調整的時間點支持歷史價格查詢&#xff08;如"2020年1月2日漢堡多少錢"&#xff09;維護當前有效價格清單…

失物招領|校園失物招領系統|基于Springboot的校園失物招領系統設計與實現(源碼+數據庫+文檔)

校園失物招領系統目錄 目錄 基于Springboot的校園失物招領系統設計與實現 一、前言 二、系統功能設計 三、系統實現 1、 管理員功能實現 (1) 失物招領管理 (2) 尋物啟事管理 (3) 公告管理 (4) 公告類型管理 2、用戶功能實現 (1) 失物招領 (2) 尋物啟事 (3) 公告 …

基于BClinux8部署Ceph 19.2(squid)集群

#作者&#xff1a;閆乾苓 文章目錄 1.版本選擇Ceph版本發布歷史目前官方在維護的版本 2.部署方法3.服務器規劃4.前置配置4.1系統更新4.2配置hosts cat >> /etc/hosts << EOFssh-keygenssh-copy-id ceph01ssh-copy-id ceph02ssh-copy-id ceph034.5 Python34.6 Syst…

安裝React開發者工具

我們在說組件之前&#xff0c;需要先安裝一下React官方推出的開發者工具&#xff0c;首先我們分享在線安裝方式 首先打開谷歌網上應用商店(針對谷歌瀏覽器)&#xff0c;在輸入框內搜索react&#xff0c;安裝如下插件&#xff1a; 注意安裝提供方為Facebook的插件&#xff0c;這…

linux中如何修改文件的權限和擁有者所屬組

目錄標題 chmod指令八進制形式權限修改文件擁有者所屬組的修改umask有關內容 chmod指令 chmod指令可以用來修改人員的權限其形式如下&#xff1a; u代表的是擁有者&#xff0c;g代表的是所屬組&#xff0c;o代表的是其他人&#xff0c;a表示所有人&#xff0c;如果你想增加權…

三主熱備架構

1.要求 角色主機名軟件IP地址用戶client192.168.72.90keepalivedvip192.168.72.100masterserverAkeepalived, nginx192.168.72.30backupserverBkeepalived, nginx192.168.72.31backupserverCkeepalived, nginx192.168.72.32webtomcat1tomcat192.168.72.41webtomcat2tomcat192.1…

windows 10 系統配置Node

目錄 什么是Node.js 什么是Npm Node.js環境搭建 下載 解壓 配置環境變量 npm配置 如何運行下載的Node.js項目 什么是Node.js 在 Node.js 之前&#xff0c;JavaScript 只能運行在瀏覽器中&#xff0c;作為網頁腳本使用&#xff0c;為網頁添加一些特效&#xff0c;或者和…

Windows Server 2025 使用 IIS 搭建 ASP.NET 3.5 網站

開啟遠程桌面 參考文章Windows server開啟遠程桌面教程打開服務管理器。ECS 配置安全組&#xff0c;開啟 3389Telnet 驗證網絡聯通性 telnet x.x.x.x 338安裝 Windows App&#xff0c;登錄驗證 安裝 ASP.NET 3.5 1.參考文章Windows Server 2012安裝 .NET Framework 3.5和 Wi…

開源模型應用落地-shieldgemma-2-4b-it模型小試-多模態內容安全檢測(一)

一、前言 在人工智能迅速發展的過程中,內容安全成為AI應用中的一個重要挑戰。谷歌團隊于2025年3月推出了一款名為ShieldGemma-2-4B-IT的模型,它以創新的多模態安全檢測能力,為行業樹立了新的開源責任AI標準。 與早期的僅支持文本審核的版本相比,ShieldGemma-2-4B-IT在谷歌的…

【數據預測】基于遺傳算法GA的LSTM光伏功率預測 GA-LSTM光伏功率預測【Matlab代碼#91】

文章目錄 【可更換其他算法&#xff0c;獲取資源請見文章第6節&#xff1a;資源獲取】1. 遺傳算法GA2. 長短期記憶網絡LSTM3. 基于GA-LSTM的光伏功率預測4. 部分代碼展示5. 運行結果展示6. 資源獲取 【可更換其他算法&#xff0c;獲取資源請見文章第6節&#xff1a;資源獲取】 …

openEuler24.03 LTS下安裝Hadoop3完全分布式

目錄 Linux準備 openEuler24.03 LTS簡介 下載openEuler24.03 LTS 安裝openEuler24.03 LTS Linux基本設置 關閉及禁用防火墻 修改主機名 靜態ip 映射主機名 創建普通用戶 目錄準備 克隆主機 配置機器之間免密登錄 編寫分發腳本 安裝Java 下載Java 解壓 設置環…

【Linux之Shell腳本實戰】Linux服務器輸出美觀漂亮的html巡檢報告

【Linux之Shell腳本實戰】Linux服務器輸出美觀漂亮的html巡檢報告 一、Shell腳本介紹1.1 Shell腳本簡介1.2 Shell腳本特點二、腳本要求三、檢查本地環境3.1 本地環境規劃3.2 檢查本地系統3.3 檢查系統內核版本四、編輯腳本五、執行及測試腳本5.1設置定時任務5.2 執行效果六、總…

坦克大戰(c++)

今天我給大家分享一個c游戲。 廢話不多說&#xff0c;作品展示&#xff1a; #include <stdio.h> #include <windows.h> #include <time.h> //里規格&#xff1a;長39*278 &#xff08;真坐標&#xff09;(假坐標寬為39) 高39 //外規格&#xff1a;長…

node-ddk, electron組件, 自定義本地文件協議,打開本地文件

node-ddk 文件協議 https://blog.csdn.net/eli960/article/details/146207062 也可以下載demo直接演示 http://linuxmail.cn/go#node-ddk 安全 考慮到安全, 本系統禁止使用 file:/// 在主窗口, 自定義文件協議,可以多個 import main, { NODEDDK } from "node-ddk/m…

論文閱讀:2023 arxiv Provable Robust Watermarking for AI-Generated Text

總目錄 大模型安全相關研究:https://blog.csdn.net/WhiffeYF/article/details/142132328 Provable Robust Watermarking for AI-Generated Text https://arxiv.org/pdf/2306.17439 https://github.com/XuandongZhao/Unigram-Watermark https://www.doubao.com/chat/211092…

一條sql語句在mysql中的執行流程(Mysql基礎架構)

mysql基礎架構 MySQL 主要分為 Server 層和 存儲引擎層&#xff1a; Server 層&#xff1a;主要包括 連接器、查詢緩存、分析器、優化器、執行器等&#xff0c;所有跨存儲引擎的功能都在這一層實現&#xff0c;比如存儲過程、觸發器、視圖&#xff0c;函數等&#xff0c;還有一…

GitLens with `Commit Graph`

文章目錄 GitLens with Commit Graph GitLens with Commit Graph 想要更直觀地查看 Git 提交歷史&#xff1f;我打包了一個支持 Commit Graph 的 GitLens 版本&#xff0c;讓你輕松在 VSCode 中查看分支、合并、變更記錄等內容&#xff0c;一目了然&#xff01; &#x1f4cc…