4位閃爍燈一、項目背景 LED燈的理論、教學板的原理圖,已經在案例1位閃爍燈中有詳細的描述,在此不再講述,有興趣的讀者可以返回去閱讀。 本工程使用4個LED燈---LED1~LED4,實現一個呼吸燈的功能。這4個燈具體的變化情況為: 第1個燈隔1秒后,亮1秒;然后第2個燈隔1秒后,亮2秒;然后第3個燈隔1秒后,亮3秒,最后第4個燈隔1秒,亮4秒。如此循環往復。 下面是波形圖: 上板效果圖如下圖所示。 上板的演示視頻,請登陸網址查看:。 我們先分析一下板子上的LED燈。每個LED燈都有一個信號來控制,該信號為0,則燈亮,如果該信號為1,則燈來。現在我們要控制4個LED燈亮滅,那就需要4個信號,假設分別為led0、led1、led2和led3。這4個信號分別連接到4個led燈上。如果要讓LED0燈0亮,LED1~3燈來,那FPGA就讓led0信號為0,led1~3信號都為1。 綜上所述,我們這個工程需要6個信號:時鐘clk,復位rst_n、led0、led1、led2和led3。 我們再分析一下功能需求,第1個燈隔1秒后,亮1秒;然后第2個燈隔1秒后,亮2秒;然后第3個燈隔1秒后,亮3秒,最后第4個燈隔1秒,亮4秒。如此循環往復。 上面的功能需求,也可以翻譯成:對于LED0,復位后,先滅1秒,亮1秒,然后再滅12秒,循環往復;對于LED1,復位后,先滅3秒,亮2秒,然后再滅9秒,循環往復;對于LED2,復位后,先滅6秒,亮3秒,然后再滅5秒,循環往復;對于LED3,先滅10秒,亮4秒,循環往復。 再將其翻譯成信號來理解: 復位后,讓信號led0=1并持續1秒,然后讓led0=0并持續1秒,然后讓led0=1持續12秒。循環往復。 復位后,讓信號led1=1并持續3秒,然后讓led1=0并持續2秒,然后讓led1=1持續9秒。循環往復。 復位后,讓信號led2=1并持續6秒,然后讓led2=0并持續3秒,然后讓led2=1持續5秒。循環往復。 復位后,讓信號led3=1并持續10秒,然后讓led3=0并持續4秒。循環往復。 再將其翻譯成波形如下圖所示。 由圖中可看到,信號led0~led3的變化單位最小是1秒,同時4個信號都是經過14秒后就循環一次。由至簡設計法的思想,很容易就得出我們需要2個計數器,1個計數器用來計算1秒時間,另1個計數器用來計算14秒。有了這兩個計數器,led0~led3的變化時間就有了標準。 我們用1個計數器用來計算1秒時間,該計數器名稱為cnt0。本工程的工作時鐘是50MHz,即周期為20ns,計數器計數到1_000_000_000/20=50_000_000個,我們就能知道1秒時間到了。該計數器是不停地計數,永遠不停止的,可以認為加1條件一直有效,可寫成:assignadd_cnt==1。綜上所述,該計數器的代碼如下。 我們再用1個計數器用來表示14秒,名稱為cnt1。該計數器表示次數,自然是每隔1秒就加1,那就是end_cnt0。該計數器一共要數14次。所以代碼為: 有了兩個計數器,我們來思考輸出信號led0的變化。概括起來,led0有兩種變化點:變0和變1。變0的原因都是計數到1秒時間,也就是add_cnt1 &&cnt1==1-1時,led0變0。變1的原因,則是數到2秒時間時,即add_cnt1 &&cnt1==2-1時,led0變1。所以led0信號的代碼如下: 接下來我們思考輸出信號led1的變化。概括起來,led1有兩種變化點:變0和變1。變0的原因都是計數到3秒時間,也就是add_cnt1 &&cnt1==3-1時,led1變0。變1的原因,則是數到5秒時間時,即add_cnt1 &&cnt1==5-1時,led1變1。所以led1信號的代碼如下: 接下來我們思考輸出信號led2的變化。概括起來,led2有兩種變化點:變0和變1。變0的原因都是計數到6秒時間,也就是add_cnt1 &&cnt1==6-1時,led2變0。變1的原因,則是數到9秒時間時,即add_cnt1 &&cnt1==9-1時,led2變1。所以led2信號的代碼如下: 接下來我們思考輸出信號led3的變化。概括起來,led3有兩種變化點:變0和變1。變0的原因都是計數到10秒時間,也就是add_cnt1 &&cnt1==10-1時,led3變0。變1的原因,則是數到14秒時間時,即add_cnt1 &&cnt1==14-1,也就是end_cnt1時,led3變1。所以led3信號的代碼如下: 此次,主體程序已經完成。接下來是將module補充完整。 將module的名稱定義為huxiled。并且我們已經知道該模塊有六個信號:clk、rst_n、led0、led1、led2、led3。為此,代碼如下: 其中clk、rst_n是輸入信號,led0、led1、led2、led3是輸出信號,并且六個信號都是1比特的,根據這些信息,我們補充輸入輸出端口定義。代碼如下: 接下來定義信號類型。 cnt0是用always產生的信號,因此類型為reg。cnt0計數的最大值為500_000_000,需要用29根線表示,即位寬是29位。因此代碼如下: add_cnt0和end_cnt0都是用assign方式設計的,因此類型為wire。并且其值是0或者1,1個線表示即可。因此代碼如下: cnt1是用always產生的信號,因此類型為reg。cnt1計數的最大值為8,需要用4根線表示,即位寬是4位。因此代碼如下: add_cnt1和end_cnt1都是用assign方式設計的,因此類型為wire。并且其值是0或者1,1根線表示即可。因此代碼如下: led0、led1、led2、led3是用always方式設計的,因此類型為reg。并且其值是0或者1,1根線表示即可。因此代碼如下: 至此,整個代碼的設計工作已經完成。下一步是新建工程和上板查看現象。 首先在d盤中創建名為“huxiled”的工程文件夾,將寫的代碼命名為“huxiled.v”,頂層模塊名為“huxiled”。 然后打開Quartus Ⅱ,點擊File下拉列表中的New Project Wzard...新建工程選項。 3.再出現的界面中直接點擊Next。 4.之后出現的是工程文件夾、工程名、頂層模塊名設置界面。按照之前的命名進行填寫,然后點擊Next。
基于FPGA至簡設計法的4位閃爍燈 附件更詳細
相關推薦
熱點推薦
16位復數乘法器 轉發(內含代碼 文檔資料)
本帖最后由 taiyangyu_2 于 2017-4-14 15:16 編輯
明德揚首創全新FPGA設計技巧--至簡設計法,教你如何一步一步去完成一個復雜電路的設計,里面很多有實用技巧,熟練
2017-04-12 19:39:43
4位閃爍燈設計就這么簡單
4位閃爍燈設計1 項目背景LED燈的理論、教學板的原理圖,已經在案例1位閃爍燈中有詳細的描述,在此不再講述,有興趣的讀者可以返回去閱讀。2 設計目標本工程使用4個LED燈---LED1~LED4
2019-08-21 10:37:03
FPGA 1位閃爍燈設計
由FPGA獨立控制。二、設計目標本工程使用1個LED燈---LED1,實現一個閃爍燈的功能。工程的工作時鐘是50M,也就是時鐘周期為20ns。當管腳AA4輸出低電平時,LED1燈亮,輸出高電平
2018-09-21 13:20:12
FPGA至簡設計法為什么這么簡單
由潘文明先生開創的IC/FPGA至簡設計法,具備劃時代的意義。這種設計方法不僅將IC/FPGA學習難度降到了最低,同時將設計過程變得簡單,并規范了代碼避免了混亂,將出錯幾率降到最低。下面我們來看
2017-12-15 15:10:57
FPGA至簡設計法高效設計
本帖最后由 Stark揚 于 2018-9-26 16:52 編輯
至簡設計法高效設計我們描述了明德揚的通用設計方法。在闡述案例過程中,我們畫出了大量的波形圖。有讀者可能會問,在工作中,我們
2018-09-20 10:44:18
FPGA至簡設計法高效設計[1241003385]
至簡設計法高效設計上一節我們描述了明德揚的通用設計方法。在闡述案例過程中,我們畫出了大量的波形圖。有讀者可能會問,在工作中,我們是不是也需要先大量地畫波形圖,再來寫代碼呢?不是的!工作中,我們要
2018-09-20 09:09:27
FPGA至簡設計法案例2
FPGA至簡設計法案例2例2. 當收到en=1后,dout間隔3個時鐘后,產生寬度為2個時鐘周期的高電平脈沖。 如上面波形圖所示,在第3個時鐘上升沿看到en==1,間隔3個時鐘后,dout變1,再過
2019-08-01 09:58:24
FPGA至簡設計法案例4
FPGA至簡設計法案例4至簡設計法經典案例4 案例4. 當收到en=1時,dout間隔1個時鐘后,產生2個時鐘周期的高電平脈沖,并且重復3次。上面波形圖顯示了描述的功能。第3個時鐘上升沿收到en
2019-08-02 08:47:47
FPGA至簡設計法經典案例
設計法在微觀上,則制定得實用的規范。詳細到,要不要添加信號;怎么添加信號;添加信號的名字規范等,我們都做了詳細的規定。下面我們用4個經典例子,講述了至簡設計法的使用技巧。其他復雜功能,無論怎么變,都是這
2018-09-14 10:18:01
至簡設計法之OV7670圖像采集
本帖最后由 chunfen2634 于 2017-7-21 09:43 編輯
至簡設計法之OV7670圖像采集題目實現攝像頭OV7670的配置及完成圖像的采集。請讀者考慮實現該功能需要哪些模塊
2017-07-11 11:00:48
至簡設計法完成數字時鐘設計
,其風格也是五花八門,第一感覺是貌似能看懂,但就是不知道怎么設計出來的。其實如果有正確的設計思路和方法,其實現起來是非常簡單的。下面我們就核心的數字模塊為例,講解如何使用至簡設計法來實現。數字模塊的功能
2020-02-22 18:17:23
至簡設計原理與應用目錄
至簡設計原理與應用目錄簡介: 本書收集整理了作者在FPGA項目實踐中的經驗點滴。既有常用FPGA設計技巧;也有多個項目案例分析,小到閃爍燈,大到邊緣檢測,AD采集等項目,并且這些案例大都以特定
2019-07-24 12:00:04
至簡設計法經典案例
制定得實用的規范。詳細到,要不要添加信號;怎么添加信號;添加信號的名字規范等,我們都做了詳細的規定。下面我們用4個經典例子,講述了至簡設計法的使用技巧。其他復雜功能,無論怎么變,都是這4個經典案例的變種
2019-07-31 17:17:27
FFT至簡設計法實現法_FFT算法_蝶形運算_fpga
DIT-FFT至簡設計實現法工程說明本設計討論的是基于至簡設計法實現按時間抽選的基2-FFT算法(即DIF-FFT)實現過程,支持N由8到1024。案例補充說明本案例無論是模塊劃分、計數器設計、還是
2017-08-02 17:32:27
《FPGA至簡設計原理與應用》FPGA學習筆記——4位閃爍燈設計
《FPGA至簡設計原理與應用》學習筆記——4位閃爍燈設計作者:一條咸魚 本文為明德揚原創及錄用文章,轉載請注明出處!個人感想:本文首先分析了至簡設計法案例—4位閃爍燈,然后通過該案例舉一反三,實現了
2020-04-24 14:08:18
《FPGA至簡設計原理與應用》學習筆記——1位閃爍燈設計
《FPGA至簡設計原理與應用》學習筆記——1位閃爍燈設計 作者:一條咸魚 個人總結及感悟:對于學習本案例,首先要理解案例的頂層框架,再是理解框架下面的邏輯,最后才是理解代碼。這一點對于自己動手寫代碼
2020-04-15 11:35:54
【至簡設計案例系列】基于FPGA的密碼鎖(XILINX ISE版)
至簡案例系列:密碼鎖作者:造就狂野青春本文為明德揚原創及錄用文章,轉載請注明出處!一、總體設計1.概述 本文基于明德揚至簡設計法和明德揚設計規范,設計了一個基于FPGA的數字密碼鎖,實現了在撥碼開關
2020-04-24 14:40:00
【至簡設計案例系列】基于FPGA的頻率、電壓測量
本文為明德揚原創及錄用文章,轉載請注明出處!一、總體設計1.概述本文基于明德揚至簡設計法和明德揚設計規范,設計了一個基于FPGA的頻率、電壓測量儀器,實現了測量AD采集后的波形頻率和電壓(峰峰
2020-04-23 10:52:07
【教程】看完就懂!運用至簡設計法進行呼吸燈設計
怎樣控制led燈亮的頻率呢?通過控制led燈亮的時間長度。Q3:怎樣控制燈亮的時間?通過計數FPGA的時鐘個數。Q4:該怎樣計數FPGA的時鐘個數?本設計的基本思想:我們讓led燈在1s內由暗慢慢
2019-12-19 11:07:02
【明德揚】傾情分享海量FPGA設計技巧學習資料 轉
的畢業設計題目,看看如何使用至簡設計法來設計數字時鐘。4.至簡設計法中的四段式狀態機現在流行的狀態機設計,一般可分為一段式、兩段式和三段式,然而我們明德揚卻發明了四段式狀態機,并制定了一些規則,從此設計再不
2017-03-27 19:20:53
【每周FPGA案例】至簡設計法-電子密碼鎖
。基于明德揚至簡設計法和明德揚設計規范,設計一個基于FPGA的密碼鎖、并將數值顯示在數碼管上,然后根據輸入的鍵值判斷密碼是否正確。1.1.2 設計目標實現電子密碼鎖的功能,具體功能要求如下:1. 密碼4位
2020-09-25 09:55:32
【每周FPGA案例】至簡設計系列_基于FPGA的測距系統
概述學習了明德揚至簡設計法和明德揚設計規范,本人用FPGA設計了一個測距系統。該系統采用超聲波進行測量距離再在數碼管上顯示。在本案例的設計過程中包括了超聲波的驅動、三線式數碼管顯示等技術。經過逐步改進
2020-08-19 21:50:19
【潘文明至簡設計法】FPGA學習資料匯總,免費下載
` 本帖最后由 chunfen2634 于 2017-6-29 15:27 編輯
大家好,這里潘老師將精心錄制和編輯的fpga學習系列教程——《至簡設計法視頻教程》分享給大家。教程充分考慮0
2017-06-29 15:19:35
【潘文明至簡設計法】系列教程 GVIM視頻教程
。明德揚的模板,包含了至簡設計法的計數器、狀態機、FIFO和模塊結構等,這些是RTL代碼最常見的部分。使用這些模板的時候,工程師只需按順序填空,就能快速地進行設計,可節省大量時間。本視頻介紹了明德揚
2017-06-15 11:22:29
華為內部資料:FPGA設計高級技巧(altera篇)以及代碼書寫規范
明德揚首創全新FPGA設計技巧--至簡設計法,教你如何一步一步去完成一個復雜電路的設計,里面很多有實用技巧,熟練運用這些技巧,有助于你寫出非常優秀的代碼。例:4位流水線乘法器,例子采用了明德揚至簡設計法中的方法技巧,非常簡潔易讀,歡迎比較![qq]3225224637[/qq]
2017-04-10 19:02:15
基于FPGA至簡設計法的4位閃爍燈
4位閃爍燈一、項目背景LED燈的理論、教學板的原理圖,已經在案例1位閃爍燈中有詳細的描述,在此不再講述,有興趣的讀者可以返回去閱讀。二、設計目標本工程使用4個LED燈---LED1~LED4,實現一
2019-08-06 09:02:27
基于FPGA至簡設計法的4位閃爍燈 附件更詳細
4位閃爍燈一、項目背景LED燈的理論、教學板的原理圖,已經在案例1位閃爍燈中有詳細的描述,在此不再講述,有興趣的讀者可以返回去閱讀。 二、設計目標本工程使用4個LED燈---LED1~LED4,實現
2018-09-26 09:48:03
基于至簡設計法實現的PWM調制verilog
明德揚分享的調制PWM驅動LED工程,利用脈沖寬度調制調制出幾個不同寬度的脈沖來驅動LED燈,添加verilog文件即可使用。基于至簡設計法實現的PWM調制verilog.rar (281.92 KB )
2019-01-18 06:35:18
基于至簡設計法實現的鬧鐘工程
`本案例:明德揚首創全新FPGA設計技巧--至簡設計法,教你如何一步一步去完成一個復雜電路的設計,里面很多有實用技巧,熟練運用這些技巧,有助于你寫出非常優秀的FPGA設計代碼。非常簡潔易讀,歡迎比較
2019-07-31 08:51:28
基于至簡設計法的數字時鐘設計
就是不知道怎么設計出來的。其實如果有正確的設計思路和方法,其實現起來是非常簡單的。下面我們就核心的數字模塊為例,講解如何使用至簡設計法來實現。 數字模塊的功能,是產生6個信號,分別表示時十位、時個位
2017-02-15 17:32:23
基于至簡設計法的數字時鐘設計
模塊為例,講解如何使用至簡設計法來實現。數字模塊的功能,是產生6個信號,分別表示時十位、時個位、分十位、分個位、秒十位和秒個位的值。例如上述信號值依次為2、1、4、3、5、9時,則表示時間為21點43分
2019-07-24 09:54:17
明德揚FPGA項目實踐1位閃爍燈設計
低電平時,LED7燈為暗。8個LED燈都可由FPGA獨立控制。2設計目標本工程使用1個LED燈---LED1,實現一個閃爍燈的功能。工程的工作時鐘是50M,也就是時鐘周期為20ns。當管腳AA4輸出低電平
2018-11-07 09:25:38
明德揚至簡設計法原理與應用1.1FPGA簡介
LUT可以看成一個有4位地址線的RAM。當用戶通過原理圖或HDL語言描述了一個邏輯電路以后,FPGA開發軟件會自動計算邏輯電路的所有可能結果,并把真值表(即結果)事先寫入RAM,這樣,每輸入一個信號
2018-11-12 15:11:39
明德揚至簡設計法資料大全
/id_XMjg3NjYyMDY1Ng==.html?spm=a2hzp.8253869.0.0明德揚 至簡設計法教程FPGA定位問題案例4http://v.youku.com/v_show
2017-07-27 17:05:14
明德揚至簡設計原理資料包(官方原版)
本帖最后由 W陳老師 于 2022-3-3 10:13 編輯
潘文明至簡設計法,是以發明者名字命名的FPGA設計方法,綜合采用多種科學、嚴謹的方法,將整個設計過程規范化,實現“至簡”設計。其
2022-02-18 15:30:26
明德揚獨創“至簡設計法”介紹
潘文明至簡設計法介紹潘文明至簡設計法,是以發明者名字命名的FPGA設計方法,綜合采用多種科學、嚴謹的方法,將整個設計過程規范化,實現“至簡”設計。其專著《手把手教你FPGA》2017年由北京航天
2019-07-25 16:50:44
潘文明至簡設計法之SPI接口至簡代碼設計
本帖最后由 chunfen2634 于 2017-6-22 14:31 編輯
我們的至簡設計法,綜合了運用多種科學、嚴謹的代碼設計方法,將整個設計過程完整化、規范化,令學習方法至簡、設計過程至
2017-06-22 10:20:39
潘文明至簡設計法系列教程-Verilog快速掌握新版簡介
使用的過程中容易犯一些錯誤。明德揚至簡設計法由擁有多年FPGA代碼編寫經驗的潘文明老師首創,不僅能讓初學者在短時間內掌握Verilog語言,而且編寫出的代碼簡潔無冗余、準確度高。我們將通過一系列
2017-06-12 11:58:50
用至簡設計法進行PWM流水燈設計
本帖最后由 chunfen2634 于 2017-7-7 10:09 編輯
《用至簡設計法進行PWM流水燈設計》脈沖寬度調制(pulse width modelation)簡稱PWM,利用
2017-07-06 10:25:51
用至簡設計法進行PWM流水燈設計
波形圖 一個周期為10ms,高電平為6ms,低電平時間為4ms的PWM,其占空比(高電平時間占整個周期的比例)為60%。 明德揚的FPGA開發板共有8個LED燈。產生8個管腳的PWM圖,如圖2-8所示
2019-07-26 14:15:16
轉【明德揚FPGA學習指南】至簡設計法之串行結構的FIR濾波器設計
各位童鞋,明德揚的革命性的FPGA設計方法----至簡設計法,已經正式推出了。至簡設計法,是明德揚培訓時重點培訓的內容,設計FPGA不用再盲目設計、反復修改,而是有思路、有步驟,爭取一次性就設計正確
2017-05-23 10:11:26
LED閃爍燈制作教程
本文將介紹LED閃爍燈,分為單組閃爍、兩組交替閃爍和三組循環閃爍等類型。還介紹了單組閃爍燈電路、兩組交替閃爍燈電路、三組循環閃爍燈電路圖詳解。
2018-02-22 11:02:00
26655
26655
最全關于關燈LED微亮和節能燈閃爍的問題分析
本文首先介紹了LED的原理與LED燈特點,其次介紹了節能燈原理,最后詳細介紹了關于關燈LED微亮和節能燈閃爍的問題分析。
2018-05-18 11:20:18
14347
14347FPGA1位閃爍燈設計[1241003385]
1位閃爍燈設計 一、項目背景 LED(Light Emitting Diode),發光二極管,是一種能夠將電能轉化為可見光的固態的半導體器件,它可以直接把電轉化為光。LED的心臟是一個半導體的晶片
2018-09-23 17:42:01
810
810LED燈閃爍是怎么回事
使用LED等是家家戶戶的選擇,然而也有的人在安裝LED等之后,燈就會不停的閃爍。在晚上的時候,就會覺得比較嚇人,那么LED燈閃爍是什么原因呢?想要解決閃爍的問題,就一定要找對原因,才可以徹底的改善。下面就給大家介紹一下LED燈閃爍的原因吧。
2018-12-31 15:16:00
20419
20419基于FPGA至簡設計法的4位閃爍燈
4位閃爍燈一、項目背景LED燈的理論、教學板的原理圖,已經在案例1位閃爍燈中有詳細的描述,在此不再講述,有興趣的讀者可以返回去閱讀。?二、設計目標本工程使用4個LED燈---LED1~LED4,實現
2019-01-10 11:26:54
498
498至簡設計法:程序設計(2)
由潘文明先生開創的IC/FPGA至簡設計法,具備劃時代的意義。這種設計方法不僅將IC/FPGA學習難度降到了最低,同時將設計過程變得簡單,并規范了代碼避免了混亂,將出錯幾率降到最低。
2019-11-27 07:00:00
1471
1471至簡設計法:運算符(3)
明德揚至簡設計法,提取大量的實際項目,采用科學的手段統計分析,找出其內在通用性部分,并建立相關的體系,實現了“填空式”設計!首先,把復雜的代碼劃分成幾種類型的模塊,然后以統一規范的代碼格式,通過相應的腳本語言建立可調用的通用模板。不僅如此,通過模板生成的代碼可參數化定制,一旦生成無需修改。
2019-11-27 07:02:00
1514
1514LED燈閃爍的原因 LED燈閃爍故障解決方法
的疲勞和不適。然而,要解決LED燈的閃爍問題,并不是一件非常困難的事情。下面我將詳細闡述LED燈閃爍的原因以及解決方法。 首先,我們來探討一下LED燈閃爍的原因。LED燈閃爍可能有多種原因,下面我將主要介紹三種常見的原因。 第一,電流不穩定。
2023-12-11 15:31:23
55121
55121
電子發燒友App































評論