北郵22級信通院數電:Verilog-FPGA(12)第十二周實驗(2)彩虹呼吸燈(bug已解決 更新至3.0)

北郵22信通一枚~

跟隨課程進度更新北郵信通院數字系統設計的筆記、代碼和文章

持續關注作者 迎接數電實驗學習~

獲取更多文章,請訪問專欄:

北郵22級信通院數電實驗_青山如墨雨如畫的博客-CSDN博客

目錄

一.代碼部分

1.1一些更新和講解

1.2改正后的代碼

?二.管腳分配

三.實驗效果


一.代碼部分

1.1一些更新和講解

12.03更新:

pwm……很抽象 原先版本的代碼運行之后應該是亮白燈()我班大佬幫改了一下之后目前如下這個樣子,,,,

邏輯都一樣就是寫法不同,,,不知道為啥就好使了,,,

還有佬能給解釋一下不,,,

然后:借鑒的時候別忘了把我前面的注釋刪下去()

12.03更新2:

感謝評論區各位uu!!

明白原先是怎么錯的了 例化的時候函數參數調用順序錯了

原先那么寫也是可以的,,例化的時候調一下函數參數順序就可以了

//完了C++知識是忘光了()

//12.03更新:我班大佬幫改出來了::
//原先的這段不行 但不知道為啥不行(
//借鑒的時候別忘了把這段刪下去(
/*
module pwm
(input [7:0] duty,input clk,output reg out
);reg [7:0] buffer;always @ (posedge clk)begin buffer <= buffer + 1;if(buffer < duty)begin out <= 0;endelsebegin out <= 1;endend
endmodule
*/
/*
12.03更新2:
原pwm模塊書寫沒有問題,例化的時候函數參數調用順序出了問題
例化時應改為:pwm pwm_red(red,clk,red_buffer);
*/
// 模塊定義: pwm
// 該模塊實現一個簡單的脈寬調制(PWM)發生器。
module pwm(out,duty,clk);input [7:0] duty;   // 輸入,表示占空比,范圍從0到255input clk;         // 輸入,時鐘信號用于同步output reg out;     // 輸出信號,表示PWM波形reg [7:0] buffer;      // 8位寄存器,用于存儲當前計數值always @ (posedge clk)begin buffer <= buffer + 1;// 在每個時鐘上升沿遞增緩沖區值if (buffer < duty)// 將緩沖區值與占空比進行比較:如果緩沖區小于占空比,則將輸出設置為0;否則,設置為1。beginout <= 0;endelsebeginout <= 1;endend
endmodule	module rainbow_breathing_light(clk,red,green,blue);input clk;output red,green,blue;reg [15:0] wheel_position;reg [7:0] wheel_position_buffer;reg [7:0] red_buffer,green_buffer,blue_buffer;reg [31:0] divide_buffer;wire clk;reg divide_clk;pwm pwm_red(red,red_buffer,clk);pwm pwm_green(green,green_buffer,clk);pwm pwm_blue(blue,blue_buffer,clk);always @ (posedge clk)begin if(divide_buffer < 50000)begin divide_buffer <= divide_buffer + 1;endelsebegin divide_clk <= ~divide_clk;divide_buffer <= 0;endendalways @ (posedge divide_clk)begin if(wheel_position < 765)wheel_position <= wheel_position + 1;elsewheel_position <= 0;if(wheel_position < 255)begin red_buffer <= 255 - wheel_position;green_buffer <= 0;blue_buffer <= wheel_position;endelse if(wheel_position < 510)begin red_buffer <= 0;green_buffer <= wheel_position - 255;blue_buffer <= 255 - (wheel_position - 255);endelsebeginred_buffer <= wheel_position - 510;green_buffer <= 255 - (wheel_position - 510);blue_buffer <= 0;endend
endmodule

1.2改正后的代碼

將模塊定義(類比C++函數接口定義)中的形參順序改動:

rainbow_breathing_light.v

// 模塊定義: pwm
// 該模塊實現一個簡單的脈寬調制(PWM)發生器。
module pwm(out,duty,clk);input [7:0] duty;   // 輸入,表示占空比,范圍從0到255input clk;         // 輸入,時鐘信號用于同步output reg out;     // 輸出信號,表示PWM波形reg [7:0] buffer;      // 8位寄存器,用于存儲當前計數值always @ (posedge clk)begin buffer <= buffer + 1;// 在每個時鐘上升沿遞增緩沖區值if (buffer < duty)// 將緩沖區值與占空比進行比較:如果緩沖區小于占空比,則將輸出設置為0;否則,設置為1。beginout <= 0;endelsebeginout <= 1;endend
endmodule	module rainbow_breathing_light(clk,red,green,blue);input clk;output red,green,blue;reg [15:0] wheel_position;reg [7:0] wheel_position_buffer;reg [7:0] red_buffer,green_buffer,blue_buffer;reg [31:0] divide_buffer;wire clk;reg divide_clk;pwm pwm_red(red,red_buffer,clk);pwm pwm_green(green,green_buffer,clk);pwm pwm_blue(blue,blue_buffer,clk);always @ (posedge clk)begin if(divide_buffer < 50000)begin divide_buffer <= divide_buffer + 1;endelsebegin divide_clk <= ~divide_clk;divide_buffer <= 0;endendalways @ (posedge divide_clk)begin if(wheel_position < 765)wheel_position <= wheel_position + 1;elsewheel_position <= 0;if(wheel_position < 255)begin red_buffer <= 255 - wheel_position;green_buffer <= 0;blue_buffer <= wheel_position;endelse if(wheel_position < 510)begin red_buffer <= 0;green_buffer <= wheel_position - 255;blue_buffer <= 255 - (wheel_position - 255);endelsebeginred_buffer <= wheel_position - 510;green_buffer <= 255 - (wheel_position - 510);blue_buffer <= 0;endend
endmodule

?二.管腳分配

三.實驗效果

彩虹呼吸燈。?

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

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

相關文章

解密HubSpot CMS Hub:構建引人入勝的企業網站!

在數字化時代&#xff0c;網站是企業與客戶互動的重要窗口。為了在競爭激烈的市場中脫穎而出&#xff0c;企業需要一個現代化、用戶友好且高度可定制的網站。而HubSpot CMS Hub作為一款領先的內容管理系統&#xff0c;為企業提供了獨特的優勢&#xff0c;讓網站建設變得更加輕松…

Private Set Intersection from Pseudorandom CorrelationGenerators 最快PSI!導覽解讀

目錄 一、概述 二、相關介紹 三、性能對比 四、技術細節 1.KKRT 2.Pseudorandom Correlation Generators 3.A New sVOLE-Based BaRK-OPRF 4.BaRK-OPRF 五、總結 參考文獻 一、概述 這篇文章的主要脈絡和核心思想是探討如何利用偽隨機相關生成器&#xff08;PCG&#…

【AI】以大廠PaaS為例,看人工智能技術方案服務能力的方向(2/2)

目錄 三、解決方案 3.1 人臉身份驗證 3.2 圖像審核&#xff08;暴恐、色情等&#xff09; 3.3 人臉會場簽到 3.4 機器人視覺 3.5 視頻審核 3.6 電商圖文詳情生成 3.7 智能客服 接上回&#xff1a; 【AI】以大廠PaaS為例&#xff0c;看人工智能技術方案服務能力的方向&…

Mybatis實用教程之XML實現動態sql

系列文章目錄 1、mybatis簡介及數據庫連接池 2、mybatis中selectOne的使用 3、mybatis簡單使用 4、mybatis中resultMap結果集的使用 Mybatis實用教程之XML實現動態sql 系列文章目錄前言1. 動態條件查詢2. 動態更新語句3. 動態插入語句4、其他標簽的使用 前言 當編寫 MyBatis 中…

力扣labuladong——一刷day67

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 前言一、力扣582.殺掉進程二、力扣536.從字符串生成二叉樹 前言 二叉樹的遞歸分為「遍歷」和「分解問題」兩種思維模式&#xff0c;這道題需要用到「遍歷」的思維模…

麒麟系統進入救援模式或者是crtl D界面排查方法

如出現以下圖片的情況可能需要修復磁盤&#xff1a; V10GFB-desktop&#xff1a; 開機后發現一致卡在此界面&#xff1a; 按esc鍵后有以下報錯信息說明在/etc/fstab里面編寫的外掛磁盤的命令有問題 解決方法如下&#xff1a;進入單用戶模式對/etc/fstab進行修改&#xff1a; …

springboot-mongodb-連接配置

文章目錄 配置Maven依賴URL格式單節點配置示例副本集&#xff08;含連接池配置&#xff09; 配置Maven依賴 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifactId></dependenc…

智能優化算法應用:基于侏儒貓鼬算法無線傳感器網絡(WSN)覆蓋優化 - 附代碼

智能優化算法應用&#xff1a;基于侏儒貓鼬算法無線傳感器網絡(WSN)覆蓋優化 - 附代碼 文章目錄 智能優化算法應用&#xff1a;基于侏儒貓鼬算法無線傳感器網絡(WSN)覆蓋優化 - 附代碼1.無線傳感網絡節點模型2.覆蓋數學模型及分析3.侏儒貓鼬算法4.實驗參數設定5.算法結果6.參考…

facebook廣告運營技巧

在Facebook上進行廣告運營需要一定的技巧和策略。以下是一些建議&#xff1a; 明確目標&#xff1a;在創建廣告之前&#xff0c;你需要明確你的目標。這可能包括增加品牌知名度、提高網站流量、增加銷售等等。明確目標后&#xff0c;你可以將廣告與這些目標相結合&#xff0c;…

【五分鐘】熟悉python列表和元組的異同點【看這篇夠用!建議收藏】

引言 Python&#xff0c;是一種廣泛應用于數據科學、機器學習等領域的高級編程語言&#xff0c;支持多種豐富多樣的數據類型&#xff0c;其中包括列表和元組。盡管這兩種數據結構都可用于存儲多個值&#xff0c;但它們在功能和特性上存在著明顯的差異。在接下來的博客中&#…

天津大數據培訓機構品牌 數據分析師的發展方向

大數據專業還是有一定難度的&#xff0c;畢竟大數據開發技術所包含的編程技術知識是比較雜且多的如果是計算機專業的學生或者自身有一定基礎的人學&#xff0c;相對來說會比較容易&#xff0c;但對于零基礎小伙伴學習來說&#xff0c;想要學習大數據&#xff0c;難度還是很高的…

3D Web可視化平臺助力Aras開發PLM系統:提供數據訪問、可視化和發布功能

HOOPS中文網慧都科技是HOOPS全套產品中國地區指定授權經銷商&#xff0c;提供3D軟件開發工具HOOPS售賣、試用、中文試用指導服務、中文技術支持。http://techsoft3d.evget.com/ Aras是一個面向數字化工業應用的開放性平臺&#xff0c;幫助世界領先的復雜互聯產品制造商轉變其產…

大三上實訓內容

項目一&#xff1a;爬取天氣預報數據 【內容】 在中國天氣網(http://www.weather.com.cn)中輸入城市的名稱&#xff0c;例如輸入信陽&#xff0c;進入http://www.weather.com.cn/weather1d/101180601.shtml#input 的網頁顯示信陽的天氣預報&#xff0c;其中101180601是信陽的…

SpringCloud面試題——Nacos

一&#xff1a;什么是Nacos&#xff1f; 二&#xff1a;服務心跳與服務注冊原理&#xff1f; 在spring容器啟動的時候&#xff0c;nacos客戶端會進行兩步操作。 向nacos服務端發送心跳向nacos服務端注冊當前服務 服務心跳 客戶端在啟動的時候&#xff0c;會開啟一個心跳線程…

私域運營:掌控用戶,領航變革

隨著互聯網技術的迅速進步&#xff0c;眾多電商平臺如雨后春筍般涌現。盡管淘寶、京東等第三方平臺在流量和銷售額方面占據了絕對優勢&#xff0c;但私域流量運營的興起也引發了廣泛關注。盡管尚處于初級階段&#xff0c;但私域運營已成為當前最熱門的話題之一。 私域運營指的…

HttpComponents: 概述

文章目錄 1. 概述2. 生態位 1. 概述 早期的Java想要實現HTTP客戶端需要借助URL/URLConnection或者自己手動從Socket開始編碼&#xff0c;需要處理大量HTTP協議的具體細節&#xff0c;不但繁瑣還容易出錯。 Apache Commons HttpClient的誕生就是為了解決這個問題&#xff0c;它…

高德地圖畫漸變線

高德地圖畫漸變線&#xff0c;思路是將線和顏色均分為多個小線段和小顏色&#xff0c;實現漸變&#xff0c;類似于下圖。 如果需要多段線&#xff0c;自己循環拼一下就可以了&#xff0c;方法返回多個小線段組成的polyline數組。 /** 高德地圖畫漸變線* author: liyun* params…

【WPS】Excel表格數據透視表

數據少量還好&#xff0c;如果輸數多起來就麻煩了&#xff0c;最近需要匯報一個情況。 描述 譬如&#xff1a;開發&#xff08;80.00%->91.16%&#xff09;&#xff1a;共計43項&#xff08;本周新增1項&#xff09;&#xff0c;本周新增已完成2項&#xff0c;共已完成36項…

wps中將橫軸和縱軸數據互換

wps中將橫軸和縱軸數據互換 今天遇到個比較奇怪的需求, 要把excel數據的橫軸和縱軸互換 在我理解中程序做這種事情應該很簡單的 結果搜索好多教程都是說怎么講圖表xy軸互換 終于找到如何轉表格數據的特此記錄一下 復制需要轉換的內容新建一個sheet選擇性粘貼(CtrlAltV)選擇轉置…

Linux高級系統編程 - 5 管道

復制文件描述符 dup函數 作用 : 文件描述符復制 語法 #include <unistd.h> int dup(int oldfd); 參數 : 所需復制的文件描述符 返回值 復制得到的文件描述符 功能 : 從文件描述符表中 , 尋找一個最小可能的文件描述符&#xff08;通過返回值返回&#xff09;作為…