明德?lián)PFPGA項目實(shí)踐1位閃爍燈設計

發(fā)布時(shí)間:2018-11-7 09:24    發(fā)布者:luckyb1
1 項目背景
      LED(Light Emitting Diode),發(fā)光二極管,是一種能夠將電能轉化為可見(jiàn)光的固態(tài)的半導體器件,它可以直接把電轉化為光。LED的心臟是一個(gè)半導體的晶片,晶片的一端附在一個(gè)支架上,一端是負極,另一端連接電源的正極,使整個(gè)晶片被環(huán)氧樹(shù)脂封裝起來(lái)。
      半導體晶片由兩部分組成,一部分是P型半導體,在它里面空穴占主導地位,另一端是N型半導體,在這邊主要是電子。但這兩種半導體連接起來(lái)的時(shí)候,它們之間就形成一個(gè)P-N結。當電流通過(guò)導線(xiàn)作用于這個(gè)晶片的時(shí)候,電子就會(huì )被推向P區,在P區里電子跟空穴復合,然后就會(huì )以光子的形式發(fā)出能量,這就是LED燈發(fā)光的原理。而光的波長(cháng)也就是光的顏色,是由形成P-N結的材料決定的。
      LED可以直接發(fā)出紅、黃、藍、綠、青、橙、紫、白色的光。
      最初LED用作儀器儀表的指示光源,后來(lái)各種光色的LED在交通信號燈和大面積顯示屏中得到了廣泛應用,產(chǎn)生了很好的經(jīng)濟效益和社會(huì )效益。以12英寸的紅色交通信號燈為例,在美國本來(lái)是采用長(cháng)壽命,低光視效能的140瓦白熾燈作為光源,它產(chǎn)生2000流明的白光。經(jīng)紅色濾光片后,光損失90%,只剩下200流明的紅光。而在新設計的燈中,Lumileds公司采用了18個(gè)紅色LED光源,包括電路損失在內,共耗電14瓦,即可產(chǎn)生同樣的光效。汽車(chē)信號燈也是LED光源應用的重要領(lǐng)域。
      對于一般照明而言,人們更需要白色的光源。1998年發(fā)白光的LED開(kāi)發(fā)成功。這種LED是將GaN芯片和釔鋁石榴石(YAG)封裝在一起做成。GaN芯片發(fā)藍光(λp=465nm,Wd=30nm),高溫燒結制成的含Ce3+的YAG熒光粉受此藍光激發(fā)后發(fā)出黃色光射,峰值550nLED燈m。藍光LED基片安裝在碗形反射腔中,覆蓋以混有YAG的樹(shù)脂薄層,約200-500nm。 LED基片發(fā)出的藍光部分被熒光粉吸收,另一部分藍光與熒光粉發(fā)出的黃光混合,可以得到白光。
      對于InGaN/YAG白色LED,通過(guò)改變YAG熒光粉的化學(xué)組成和調節熒光粉層的厚度,可以獲得色溫3500-10000K的各色白光。這種通過(guò)藍光LED得到白光的方法,構造簡(jiǎn)單、成本低廉、技術(shù)成熟度高,因此運用最多。

      明德?lián)P的教學(xué)板一共有8個(gè)可發(fā)綠光的LED燈。下面是LED燈的原理圖。


      左邊的LED1~LED8是板子上LED燈的絲印。右邊的LED1~LED8_NET是信號線(xiàn)名,讀者在板子上是看不到這些信號線(xiàn)的。
      LED燈一端連著(zhù)高電平3.3V,另一端是信號線(xiàn)LED1~LED8_NET。如果LED1~LED8_NET是高電平,則電流不導通,那么LED燈則不會(huì )發(fā)光。如果LED1~LED8_NET是低電平,則電流會(huì )導通,那么LED燈就發(fā)光。所以L(fǎng)ED燈發(fā)光與否,取決于信號LED1~LED8_NET處于什么電平。

      信號線(xiàn)LED1~LED8_NET又連到哪里呢?搜索下原理圖文檔,可以發(fā)現這些信號是連到FPGA的管腳上的。


      下面信號線(xiàn)和FPGA管腳的連接圖,例如信號線(xiàn)LED1是連接到FPGA的AA4管腳上。


      LED1~LED8_NET分別與FPGA的8個(gè)管腳相連,所以L(fǎng)ED1~LED8_NET處于什么電平,即LED燈是否要發(fā)光,就取決于FPGA管腳的輸出了。
      例如FPGA管腳AB14連到LED7上。要控制這個(gè)燈的亮滅,FPGA只需要將管腳AB14輸出為低高就可以了。當輸出為高電平時(shí),LED7燈為滅,當輸出為低電平時(shí),LED7燈為暗。8個(gè)LED燈都可由FPGA獨立控制。
2設計目標
      本工程使用1個(gè)LED燈---LED1,實(shí)現一個(gè)閃爍燈的功能。工程的工作時(shí)鐘是50M,也就是時(shí)鐘周期為20ns。當管腳AA4輸出低電平時(shí),LED1燈亮,輸出高電平時(shí),LED1燈滅。具體功能要求是:隔1秒,亮N秒。N的變化是:1,2,3,---,9秒,然后再次循環(huán)。下面是波形圖:


      上板效果圖如下圖所示:


3設計實(shí)現3.1 頂層信號
      新建目錄:D:\mdy_book\my_led。在該目錄中,新建一個(gè)名為my_led.v的文件,并用GVIM打開(kāi),開(kāi)始編寫(xiě)代碼。
       我們先分析一下板子上的LED燈。要控制1個(gè)LED燈亮和滅,那就FPGA需要產(chǎn)生一個(gè)信號,假定為led,這個(gè)信號連接到led燈上。要讓LED燈滅,FPGA將信號led輸出為1;要讓LED燈亮,FPGA將信號led輸出為0。下面表格表示了硬件電路圖的連接關(guān)系。

      綜上所述,我們這個(gè)工程需要三個(gè)信號,時(shí)鐘clk,復位rst_n和輸出信號led。將module的名稱(chēng)定義為my_led,為此,代碼如下:


      綜上所述,我們這個(gè)工程需要三個(gè)信號,時(shí)鐘clk,復位rst_n和輸出信號led。將module的名稱(chēng)定義為my_led,為此,代碼如下:




      其中clk、rst_n是輸入信號,led是輸出信號,并且三個(gè)信號都是1比特的,根據這些信息,我們補充輸入輸出端口定義。代碼如下:


3.2  信號設計
      我們再分析一下功能需求,LED燈的變化規律是暗1秒,亮N秒,其中N的變化是:1,2,3,---,9秒,然后再次循環(huán)。從現象轉化成信號,其實(shí)就是信號led=1持續1秒,然后led=0持續N秒,其中N的變化是:1,2,3,---,9秒。波形示意圖如下:


      上圖就是led信號的變化波形圖。在第1次時(shí),led=1并持續1秒,然后led=0并持續1秒,共2秒時(shí)間;在第2次時(shí),led=1并持續1秒,然后led=0并持續2秒,共3秒時(shí)間;以此類(lèi)推,第9次時(shí),led=1并持續1秒,然后led=0并持續9秒,共10秒時(shí)間。然后又再次重復。
      由波形圖可知,我們需要1個(gè)計數器用來(lái)計算時(shí)間,如2秒、3秒等。本工程的工作時(shí)鐘是50MHz,即周期為20ns,計數器計數到2_000_000_000/20=100_000_000個(gè),我們就能知道2秒時(shí)間到了。以此類(lèi)推,在第2次時(shí),數到150_000_000個(gè),就知道了3秒時(shí)間到。第9次時(shí),數到500_000_000個(gè),就表示10秒時(shí)間到。另外,由于該計數器是不停地計數,永遠不停止的,可以認為加1條件一直有效,可寫(xiě)成:assignadd_cnt==1。綜上所述,結合變量法,該計數器的代碼如下。





      其中x表示該計數器cnt0要數的個(gè)數。該值如何定義,后面再思考。
      再次觀(guān)察波形圖,我們發(fā)現有第1次,第2次直到第9次的字,說(shuō)明這還需要另外一個(gè)計數器來(lái)表示第幾次。該計數器表示次數,自然是一次完成了就加1,因為加1條件可為end_cnt0。該計數器一共要數9次。所以代碼為:



      有了兩個(gè)計數器,我們來(lái)思考輸出信號led的變化。概括起來(lái),led有兩種變化點(diǎn):變0和變1。變0的原因都是計數到1秒時(shí)間,也就是cnt0數到1_000_000_000/20=50_000_000個(gè)時(shí),led變0。變1的原因,都是計數時(shí)間到了,即end_cnt0。所以led信號的代碼如下:



      最后我們再來(lái)思考變量x,我們在討論計數器cnt0的時(shí)候,曾經(jīng)說(shuō)過(guò)“計數器計數到2_000_000_000/20=100_000_000個(gè),我們就能知道2秒時(shí)間到了。以類(lèi)類(lèi)推,在第2次時(shí),數到150_000_000個(gè),就知道了3秒時(shí)間到。第9次時(shí),數到500_000_000個(gè),就表示10秒時(shí)間到!笨梢钥吹,cnt0要數多少個(gè)是跟第幾次有關(guān)系的。第1次,數100_000_000個(gè),第2次數150_000_000個(gè)。也就是與cnt1有關(guān)。因此x的代碼如下:



      此次,主體程序已經(jīng)完成。接下來(lái)是將module補充完整。
3.3  信號定義
      接下來(lái)定義信號類(lèi)型。
      cnt0是用always產(chǎn)生的信號,因此類(lèi)型為reg。cnt0計數的最大值為500_000_000,需要用29根線(xiàn)表示,即位寬是29位。


       因此代碼如下:


      add_cnt0和end_cnt0都是用assign方式設計的,因此類(lèi)型為wire。并且其值是0或者1,1個(gè)線(xiàn)表示即可。因此代碼如下:


      cnt1是用always產(chǎn)生的信號,因此類(lèi)型為reg。cnt1計數的最大值為8,需要用4根線(xiàn)表示,即位寬是4位。因此代碼如下:


​      add_cnt1和end_cnt1都是用assign方式設計的,因此類(lèi)型為wire。并且其值是0或者1,1根線(xiàn)表示即可。因此代碼如下:




​      led是用always方式設計的,因此類(lèi)型為reg。并且其值是0或者1,1根線(xiàn)表示即可。因此代碼如下:


      x是用always方式設計的,因此類(lèi)型為reg。并且其值是最大是500_000_000,需要29根線(xiàn)表示即可。因此代碼如下:


​      至此,整個(gè)代碼的設計工作已經(jīng)完成。下一步是新建工程和上板查看現象。
4    綜合與上板4.1 新建工程
      首先在d盤(pán)中創(chuàng )建名為“my_led”的工程文件夾,將寫(xiě)的代碼命名為“my_led.v”,頂層模塊名為“my_led”




​      然后打開(kāi)Quartus Ⅱ,點(diǎn)擊File下拉列表中的New Project Wzard...新建工程選項:


​      3.再出現的界面中直接點(diǎn)擊Next。


​      4.之后出現的是工程文件夾、工程名、頂層模塊名設置界面。按照之前的命名進(jìn)行填寫(xiě),然后點(diǎn)擊Next,在出現的界面再點(diǎn)擊next。




​      5.之后是文件添加界面。添加之前寫(xiě)的“my_led.v”文件,點(diǎn)擊右側的“Add”按鈕,之后文件會(huì )在下方顯示出來(lái),之后點(diǎn)擊“Next”


      器件型號選擇界面。選擇Cyclone ⅣE,在芯片型號選擇處選擇EP4CE15F23C8,然后點(diǎn)擊“Next”。​


      EDA工具界面。直接點(diǎn)擊“Next”​


​      8.之后出現的界面,點(diǎn)擊“Finish”。


​4.2  綜合
      1.新建工程步驟完成后,就會(huì )出現以下界面。選中要編譯的文件,點(diǎn)擊編譯按鈕。


      2.編譯成功后會(huì )出現一下界面


4.3  配置管腳


​      在菜單欄中,選中Assignments,然后選擇Pin Planner,就會(huì )彈出配置管腳的窗口。


​      在配置窗口最下方中的location一列,參考下表中最右兩列配置好FPGA管腳。


​      配置完成后,關(guān)閉Pin Planner,軟件自動(dòng)會(huì )保存管腳配置信息。
4.4   再次綜合​


      在菜單欄中,選中Processing,然后選擇Start Compilation,再次對整個(gè)工程進(jìn)行編譯和綜合。​



      出現上面的界面,就說(shuō)明編譯綜合成功。
4.5   連接開(kāi)發(fā)板
      圖中,下載器接入電腦USB接口,電源接入電源,然后摁下下方藍色開(kāi)關(guān)。


​4.6   上板
      1.單擊以下界面中的。


​      2.會(huì )出現如下界面,點(diǎn)擊add file添加.sof文件,點(diǎn)擊“Start”,會(huì )在“Progress”出顯示進(jìn)度。


​       3.進(jìn)度條中提示成功后,即可在開(kāi)發(fā)板上觀(guān)察到相應的現象。


本文地址:http://selenalain.com/thread-549650-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页