本(běn)文(wén)的(de)文(wén)檔編号(hào):000800000013
需要(yào)看(kàn)对(duì)應(yìng)的(de)視頻,請點(diǎn)擊視頻編号(hào):000800000162
1、本(běn)文(wén)章(zhāng)是(shì)講解(jiě)了(le)如(rú)何使用(yòng)至(zhì)簡設計(jì)法来(lái)时(shí)序1位LED燈(dēng)間(jiān)隔1秒(miǎo),亮(liàng)N秒(miǎo)(其中(zhōng)N=1 .2. …. 9)的(de)功能(néng)
項目背景
LED(Light Emitting Diode),發(fà)光(guāng)二(èr)极(jí)管(guǎn),是(shì)一(yī)種(zhǒng)能(néng)够将電(diàn)能(néng)轉(zhuǎn)化(huà)为(wèi)可(kě)見(jiàn)光(guāng)的(de)固态的(de)半導體(tǐ)器件(jiàn),它(tā)可(kě)以(yǐ)直(zhí)接把電(diàn)轉(zhuǎn)化(huà)为(wèi)光(guāng)。LED的(de)心(xīn)髒是(shì)一(yī)个(gè)半導體(tǐ)的(de)晶片(piàn),晶片(piàn)的(de)一(yī)端附在(zài)一(yī)个(gè)支架上(shàng),一(yī)端是(shì)負极(jí),另(lìng)一(yī)端連(lián)接電(diàn)源的(de)正(zhèng)极(jí),使整个(gè)晶片(piàn)被(bèi)环(huán)氧樹(shù)脂封(fēng)裝(zhuāng)起来(lái)。
半導體(tǐ)晶片(piàn)由(yóu)两(liǎng)部(bù)分(fēn)組成(chéng),一(yī)部(bù)分(fēn)是(shì)P型半導體(tǐ),在(zài)它(tā)里(lǐ)面(miàn)空穴占主(zhǔ)導地(dì)位,另(lìng)一(yī)端是(shì)N型半導體(tǐ),在(zài)这(zhè)邊(biān)主(zhǔ)要(yào)是(shì)電(diàn)子。但这(zhè)两(liǎng)種(zhǒng)半導體(tǐ)連(lián)接起来(lái)的(de)时(shí)候,它(tā)们(men)之間(jiān)就(jiù)形成(chéng)一(yī)个(gè)P-N結。當電(diàn)流通(tòng)过(guò)導線(xiàn)作用(yòng)于(yú)这(zhè)个(gè)晶片(piàn)的(de)时(shí)候,電(diàn)子就(jiù)会(huì)被(bèi)推向(xiàng)P區(qū),在(zài)P區(qū)里(lǐ)電(diàn)子跟空穴複合,然後(hòu)就(jiù)会(huì)以(yǐ)光(guāng)子的(de)形式發(fà)出(chū)能(néng)量(liàng),这(zhè)就(jiù)是(shì)LED燈(dēng)發(fà)光(guāng)的(de)原理。而(ér)光(guāng)的(de)波(bō)长也(yě)就(jiù)是(shì)光(guāng)的(de)顔色(sè),是(shì)由(yóu)形成(chéng)P-N結的(de)材料決定(dìng)的(de)。
LED可(kě)以(yǐ)直(zhí)接發(fà)出(chū)紅(hóng)、黃、藍(lán)、綠(lǜ)、青(qīng)、橙、紫、白色(sè)的(de)光(guāng)。
最(zuì)初LED用(yòng)作儀器儀表(biǎo)的(de)指示光(guāng)源,後(hòu)来(lái)各(gè)種(zhǒng)光(guāng)色(sè)的(de)LED在(zài)交通(tòng)信(xìn)号(hào)燈(dēng)和(hé)大面(miàn)積顯示屏中(zhōng)得到(dào)了(le)廣泛應(yìng)用(yòng),産生(shēng)了(le)很好(hǎo)的(de)經(jīng)濟效益和(hé)社会(huì)效益。以(yǐ)12英寸(cùn)的(de)紅(hóng)色(sè)交通(tòng)信(xìn)号(hào)燈(dēng)为(wèi)例,在(zài)美國(guó)本(běn)来(lái)是(shì)采用(yòng)长壽命,低光(guāng)視效能(néng)的(de)140瓦(wǎ)白熾燈(dēng)作为(wèi)光(guāng)源,它(tā)産生(shēng)2000流明(míng)的(de)白光(guāng)。經(jīng)紅(hóng)色(sè)濾光(guāng)片(piàn)後(hòu),光(guāng)損失90%,只(zhī)剩下(xià)200流明(míng)的(de)紅(hóng)光(guāng)。而(ér)在(zài)新設計(jì)的(de)燈(dēng)中(zhōng),Lumileds公司采用(yòng)了(le)18个(gè)紅(hóng)色(sè)LED光(guāng)源,包(bāo)括電(diàn)路(lù)損失在(zài)內(nèi),共(gòng)耗電(diàn)14瓦(wǎ),即可(kě)産生(shēng)同(tóng)樣(yàng)的(de)光(guāng)效。汽車信(xìn)号(hào)燈(dēng)也(yě)是(shì)LED光(guāng)源應(yìng)用(yòng)的(de)重(zhòng)要(yào)領域。
对(duì)于(yú)一(yī)般照明(míng)而(ér)言,人(rén)们(men)更(gèng)需要(yào)白色(sè)的(de)光(guāng)源。1998年(nián)發(fà)白光(guāng)的(de)LED開(kāi)發(fà)成(chéng)功。这(zhè)種(zhǒng)LED是(shì)将GaN芯片(piàn)和(hé)钇铝石(dàn)榴石(dàn)(YAG)封(fēng)裝(zhuāng)在(zài)一(yī)起做成(chéng)。GaN芯片(piàn)發(fà)藍(lán)光(guāng)(λp=465nm,Wd=30nm),高(gāo)温(wēn)燒結制成(chéng)的(de)含Ce3+的(de)YAG荧光(guāng)粉受此(cǐ)藍(lán)光(guāng)激發(fà)後(hòu)發(fà)出(chū)黃色(sè)光(guāng)射,峰(fēng)值550nLED燈(dēng)m。藍(lán)光(guāng)LED基片(piàn)安(ān)裝(zhuāng)在(zài)碗(wǎn)形反(fǎn)射腔中(zhōng),覆蓋以(yǐ)混有(yǒu)YAG的(de)樹(shù)脂薄层,約200-500nm。 LED基片(piàn)發(fà)出(chū)的(de)藍(lán)光(guāng)部(bù)分(fēn)被(bèi)荧光(guāng)粉吸收(shōu),另(lìng)一(yī)部(bù)分(fēn)藍(lán)光(guāng)與(yǔ)荧光(guāng)粉發(fà)出(chū)的(de)黃光(guāng)混合,可(kě)以(yǐ)得到(dào)白光(guāng)。
对(duì)于(yú)InGaN/YAG白色(sè)LED,通(tòng)过(guò)改變(biàn)YAG荧光(guāng)粉的(de)化(huà)学組成(chéng)和(hé)調节(jié)荧光(guāng)粉层的(de)厚度(dù),可(kě)以(yǐ)獲得色(sè)温(wēn)3500-10000K的(de)各(gè)色(sè)白光(guāng)。这(zhè)種(zhǒng)通(tòng)过(guò)藍(lán)光(guāng)LED得到(dào)白光(guāng)的(de)方(fāng)法,構造簡單、成(chéng)本(běn)低廉、技術(shù)成(chéng)熟度(dù)高(gāo),因(yīn)此(cǐ)運用(yòng)最(zuì)多(duō)。
明(míng)德揚的(de)教学板一(yī)共(gòng)有(yǒu)8个(gè)可(kě)發(fà)綠(lǜ)光(guāng)的(de)LED燈(dēng)。下(xià)面(miàn)是(shì)LED燈(dēng)的(de)原理图(tú)。
图(tú) 130 LED原理图(tú)
左(zuǒ)邊(biān)的(de)LED1~LED8是(shì)板子上(shàng)LED燈(dēng)的(de)丝(sī)印(yìn)。右(yòu)邊(biān)的(de)LED1~LED8_NET是(shì)信(xìn)号(hào)線(xiàn)名,读(dú)者(zhě)在(zài)板子上(shàng)是(shì)看(kàn)不(bù)到(dào)这(zhè)些信(xìn)号(hào)線(xiàn)的(de)。
LED燈(dēng)一(yī)端連(lián)着高(gāo)電(diàn)平3.3V,另(lìng)一(yī)端是(shì)信(xìn)号(hào)線(xiàn)LED1~LED8_NET。如(rú)果(guǒ)LED1~LED8_NET是(shì)高(gāo)電(diàn)平,則電(diàn)流不(bù)導通(tòng),那(nà)麼(me)LED燈(dēng)則不(bù)会(huì)發(fà)光(guāng)。如(rú)果(guǒ)LED1~LED8_NET是(shì)低電(diàn)平,則電(diàn)流会(huì)導通(tòng),那(nà)麼(me)LED燈(dēng)就(jiù)發(fà)光(guāng)。所(suǒ)以(yǐ)LED燈(dēng)發(fà)光(guāng)與(yǔ)否,取(qǔ)決于(yú)信(xìn)号(hào)LED1~LED8_NET处于(yú)什麼(me)電(diàn)平。
信(xìn)号(hào)線(xiàn)LED1~LED8_NET又連(lián)到(dào)哪里(lǐ)呢?搜索下(xià)原理图(tú)文(wén)檔,可(kě)以(yǐ)發(fà)現(xiàn)这(zhè)些信(xìn)号(hào)是(shì)連(lián)到(dào)FPGA的(de)管(guǎn)脚上(shàng)的(de)。
图(tú) 131
下(xià)面(miàn)信(xìn)号(hào)線(xiàn)和(hé)FPGA管(guǎn)脚的(de)連(lián)接图(tú),例如(rú)信(xìn)号(hào)線(xiàn)LED1是(shì)連(lián)接到(dào)FPGA的(de)AA4管(guǎn)脚上(shàng)。
|
教学板丝(sī)印(yìn) |
信(xìn)号(hào)線(xiàn) |
FPGA管(guǎn)脚 |
|
LED1 |
LED1_NET |
AA4 |
|
LED2 |
LED2_NET |
AB4 |
|
LED3 |
LED3_NET |
AA5 |
|
LED4 |
LED4_NET |
AB6 |
|
LED5 |
LED5_NET |
AA10 |
|
LED6 |
LED6_NET |
AB13 |
|
LED7 |
LED7_NET |
AB14 |
|
LED8 |
LED8_NET |
AB16 |
LED1~LED8_NET分(fēn)别與(yǔ)FPGA的(de)8个(gè)管(guǎn)脚相連(lián),所(suǒ)以(yǐ)LED1~LED8_NET处于(yú)什麼(me)電(diàn)平,即LED燈(dēng)是(shì)否要(yào)發(fà)光(guāng),就(jiù)取(qǔ)決于(yú)FPGA管(guǎn)脚的(de)輸出(chū)了(le)。
例如(rú)FPGA管(guǎn)脚AB14連(lián)到(dào)LED7上(shàng)。要(yào)控制这(zhè)个(gè)燈(dēng)的(de)亮(liàng)滅,FPGA只(zhī)需要(yào)将管(guǎn)脚AB14輸出(chū)为(wèi)低高(gāo)就(jiù)可(kě)以(yǐ)了(le)。當輸出(chū)为(wèi)高(gāo)電(diàn)平时(shí),LED7燈(dēng)为(wèi)滅,當輸出(chū)为(wèi)低電(diàn)平时(shí),LED7燈(dēng)为(wèi)暗(àn)。8个(gè)LED燈(dēng)都可(kě)由(yóu)FPGA独立控制。
2 設計(jì)目标(biāo)
本(běn)工程使用(yòng)1个(gè)LED燈(dēng)---LED1,实現(xiàn)一(yī)个(gè)閃爍燈(dēng)的(de)功能(néng)。工程的(de)工作时(shí)鐘(zhōng)是(shì)50M,也(yě)就(jiù)是(shì)时(shí)鐘(zhōng)周期(qī)为(wèi)20ns。當管(guǎn)脚AA4輸出(chū)低電(diàn)平时(shí),LED1燈(dēng)亮(liàng),輸出(chū)高(gāo)電(diàn)平时(shí),LED1燈(dēng)滅。具體(tǐ)功能(néng)要(yào)求是(shì):隔1秒(miǎo),亮(liàng)N秒(miǎo)。N的(de)變(biàn)化(huà)是(shì):1,2,3,---,9秒(miǎo),然後(hòu)再次(cì)循环(huán)。下(xià)面(miàn)是(shì)波(bō)形图(tú):
图(tú) 132
上(shàng)板效果(guǒ)图(tú)如(rú)下(xià)图(tú)所(suǒ)示。
图(tú) 133
3 設計(jì)实現(xiàn)
3.1 頂层信(xìn)号(hào)
新建目录(lù):D:mdy_bookmy_led。在(zài)該目录(lù)中(zhōng),新建一(yī)个(gè)名为(wèi)my_led.v的(de)文(wén)件(jiàn),并用(yòng)GVIM打(dǎ)開(kāi),開(kāi)始編写代(dài)碼。
我(wǒ)们(men)先(xiān)分(fēn)析一(yī)下(xià)板子上(shàng)的(de)LED燈(dēng)。要(yào)控制1个(gè)LED燈(dēng)亮(liàng)和(hé)滅,那(nà)就(jiù)FPGA需要(yào)産生(shēng)一(yī)个(gè)信(xìn)号(hào),假定(dìng)为(wèi)led,这(zhè)个(gè)信(xìn)号(hào)連(lián)接到(dào)led燈(dēng)上(shàng)。要(yào)讓LED燈(dēng)滅,FPGA将信(xìn)号(hào)led輸出(chū)为(wèi)1;要(yào)讓LED燈(dēng)亮(liàng),FPGA将信(xìn)号(hào)led輸出(chū)为(wèi)0。下(xià)面(miàn)表(biǎo)格表(biǎo)示了(le)硬(yìng)件(jiàn)電(diàn)路(lù)图(tú)的(de)連(lián)接關(guān)系(xì)。
|
器件(jiàn) |
原理图(tú)信(xìn)号(hào) |
FPGA管(guǎn)脚 |
FPGA工程信(xìn)号(hào) |
|
LED1 |
LED1_NET |
AA4 |
led |
|
X1 |
SYS_CLK |
G1 |
clk |
|
K1 |
SYS_RST |
AB12 |
rst_n |
綜上(shàng)所(suǒ)述,我(wǒ)们(men)这(zhè)个(gè)工程需要(yào)三(sān)个(gè)信(xìn)号(hào),时(shí)鐘(zhōng)clk,複位rst_n和(hé)輸出(chū)信(xìn)号(hào)led。将module的(de)名稱定(dìng)義为(wèi)my_led,为(wèi)此(cǐ),代(dài)碼如(rú)下(xià):
|
1 2 3 4 5 |
module my_led( clk , rst_n , led ); |
其中(zhōng)clk、rst_n是(shì)輸入(rù)信(xìn)号(hào),led是(shì)輸出(chū)信(xìn)号(hào),并且三(sān)个(gè)信(xìn)号(hào)都是(shì)1比特(tè)的(de),根(gēn)據(jù)这(zhè)些信(xìn)息,我(wǒ)们(men)補充輸入(rù)輸出(chū)端口(kǒu)定(dìng)義。代(dài)碼如(rú)下(xià):
|
1 2 3 |
input clk ; input rst_n ; output led ; |
3.2 信(xìn)号(hào)設計(jì)
我(wǒ)们(men)再分(fēn)析一(yī)下(xià)功能(néng)需求,LED燈(dēng)的(de)變(biàn)化(huà)規律是(shì)暗(àn)1秒(miǎo),亮(liàng)N秒(miǎo),其中(zhōng)N的(de)變(biàn)化(huà)是(shì):1,2,3,---,9秒(miǎo),然後(hòu)再次(cì)循环(huán)。從現(xiàn)象(xiàng)轉(zhuǎn)化(huà)成(chéng)信(xìn)号(hào),其实就(jiù)是(shì)信(xìn)号(hào)led=1持(chí)續1秒(miǎo),然後(hòu)led=0持(chí)續N秒(miǎo),其中(zhōng)N的(de)變(biàn)化(huà)是(shì):1,2,3,---,9秒(miǎo)。波(bō)形示意(yì)图(tú)如(rú)下(xià):
图(tú) 134
上(shàng)图(tú)就(jiù)是(shì)led信(xìn)号(hào)的(de)變(biàn)化(huà)波(bō)形图(tú)。在(zài)第(dì)1次(cì)时(shí),led=1并持(chí)續1秒(miǎo),然後(hòu)led=0并持(chí)續1秒(miǎo),共(gòng)2秒(miǎo)时(shí)間(jiān);在(zài)第(dì)2次(cì)时(shí),led=1并持(chí)續1秒(miǎo),然後(hòu)led=0并持(chí)續2秒(miǎo),共(gòng)3秒(miǎo)时(shí)間(jiān);以(yǐ)此(cǐ)類(lèi)推,第(dì)9次(cì)时(shí),led=1并持(chí)續1秒(miǎo),然後(hòu)led=0并持(chí)續9秒(miǎo),共(gòng)10秒(miǎo)时(shí)間(jiān)。然後(hòu)又再次(cì)重(zhòng)複。
由(yóu)波(bō)形图(tú)可(kě)知,我(wǒ)们(men)需要(yào)1个(gè)計(jì)數器用(yòng)来(lái)計(jì)算时(shí)間(jiān),如(rú)2秒(miǎo)、3秒(miǎo)等。本(běn)工程的(de)工作时(shí)鐘(zhōng)是(shì)50MHz,即周期(qī)为(wèi)20ns,計(jì)數器計(jì)數到(dào)2_000_000_000/20=100_000_000个(gè),我(wǒ)们(men)就(jiù)能(néng)知道(dào)2秒(miǎo)时(shí)間(jiān)到(dào)了(le)。以(yǐ)此(cǐ)類(lèi)推,在(zài)第(dì)2次(cì)时(shí),數到(dào)150_000_000个(gè),就(jiù)知道(dào)了(le)3秒(miǎo)时(shí)間(jiān)到(dào)。第(dì)9次(cì)时(shí),數到(dào)500_000_000个(gè),就(jiù)表(biǎo)示10秒(miǎo)时(shí)間(jiān)到(dào)。另(lìng)外(wài),由(yóu)于(yú)該計(jì)數器是(shì)不(bù)停地(dì)計(jì)數,永遠(yuǎn)不(bù)停止的(de),可(kě)以(yǐ)認为(wèi)加1条(tiáo)件(jiàn)一(yī)直(zhí)有(yǒu)效,可(kě)写成(chéng):assign add_cnt==1。綜上(shàng)所(suǒ)述,結合變(biàn)量(liàng)法,該計(jì)數器的(de)代(dài)碼如(rú)下(xià)。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
always @(posedge clk or negedge rst_n)begin if(!rst_n)begin cnt0<= 0; end else if(add_cnt0)begin if(end_cnt0) cnt0<= 0; else cnt0<= cnt0 + 1; end end
assign add_cnt0 = 1 ; assign end_cnt0 = add_cnt0&& cnt0== x-1; |
其中(zhōng)x表(biǎo)示該計(jì)數器cnt0要(yào)數的(de)个(gè)數。該值如(rú)何定(dìng)義,後(hòu)面(miàn)再思(sī)考。
再次(cì)观察波(bō)形图(tú),我(wǒ)们(men)發(fà)現(xiàn)有(yǒu)第(dì)1次(cì),第(dì)2次(cì)直(zhí)到(dào)第(dì)9次(cì)的(de)字(zì),说(shuō)明(míng)这(zhè)還(huán)需要(yào)另(lìng)外(wài)一(yī)个(gè)計(jì)數器来(lái)表(biǎo)示第(dì)幾(jǐ)次(cì)。該計(jì)數器表(biǎo)示次(cì)數,自(zì)然是(shì)一(yī)次(cì)完成(chéng)了(le)就(jiù)加1,因(yīn)为(wèi)加1条(tiáo)件(jiàn)可(kě)为(wèi)end_cnt0。該計(jì)數器一(yī)共(gòng)要(yào)數9次(cì)。所(suǒ)以(yǐ)代(dài)碼为(wèi):
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
always @(posedge clk or negedge rst_n)begin if(!rst_n)begin cnt1 <= 0; end else if(add_cnt1)begin if(end_cnt1) cnt1 <= 0; else cnt1 <= cnt1 + 1; end end
assign add_cnt1 = end_cnt0; assign end_cnt1 = add_cnt1 && cnt1==9-1 ; |
有(yǒu)了(le)两(liǎng)个(gè)計(jì)數器,我(wǒ)们(men)来(lái)思(sī)考輸出(chū)信(xìn)号(hào)led的(de)變(biàn)化(huà)。概括起来(lái),led有(yǒu)两(liǎng)種(zhǒng)變(biàn)化(huà)點(diǎn):變(biàn)0和(hé)變(biàn)1。變(biàn)0的(de)原因(yīn)都是(shì)計(jì)數到(dào)1秒(miǎo)时(shí)間(jiān),也(yě)就(jiù)是(shì)cnt0數到(dào)1_000_000_000/20=50_000_000个(gè)时(shí),led變(biàn)0。變(biàn)1的(de)原因(yīn),都是(shì)計(jì)數时(shí)間(jiān)到(dào)了(le),即end_cnt0。所(suǒ)以(yǐ)led信(xìn)号(hào)的(de)代(dài)碼如(rú)下(xià):
|
1 2 3 4 5 6 7 8 9 10 11 |
always @(posedge clk or negedge rst_n)begin if(rst_n==1'b0)begin led <= 1 ; end else if(add_cnt0 && cnt0==50_000_000-1)begin led <= 0 ; end else if(end_cnt0)begin led <= 1 ; end end |
最(zuì)後(hòu)我(wǒ)们(men)再来(lái)思(sī)考變(biàn)量(liàng)x,我(wǒ)们(men)在(zài)讨論計(jì)數器cnt0的(de)时(shí)候,曾經(jīng)说(shuō)过(guò)“計(jì)數器計(jì)數到(dào)2_000_000_000/20=100_000_000个(gè),我(wǒ)们(men)就(jiù)能(néng)知道(dào)2秒(miǎo)时(shí)間(jiān)到(dào)了(le)。以(yǐ)類(lèi)類(lèi)推,在(zài)第(dì)2次(cì)时(shí),數到(dào)150_000_000个(gè),就(jiù)知道(dào)了(le)3秒(miǎo)时(shí)間(jiān)到(dào)。第(dì)9次(cì)时(shí),數到(dào)500_000_000个(gè),就(jiù)表(biǎo)示10秒(miǎo)时(shí)間(jiān)到(dào)。”可(kě)以(yǐ)看(kàn)到(dào),cnt0要(yào)數多(duō)少(shǎo)个(gè)是(shì)跟第(dì)幾(jǐ)次(cì)有(yǒu)關(guān)系(xì)的(de)。第(dì)1次(cì),數100_000_000个(gè),第(dì)2次(cì)數150_000_000个(gè)。也(yě)就(jiù)是(shì)與(yǔ)cnt1有(yǒu)關(guān)。因(yīn)此(cǐ)x的(de)代(dài)碼如(rú)下(xià):
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
always @(*)begin if(cnt1==0)begin x = 100_000_000 ; end else if(cnt1==1)begin x = 150_000_000 ; end else if(cnt1==2)begin x = 200_000_000 ; end else if(cnt1==3)begin x = 250_000_000 ; end else if(cnt1==4)begin x = 300_000_000 ; end else if(cnt1==5)begin x = 350_000_000 ; end else if(cnt1==6)begin x = 400_000_000 ; end else if(cnt1==7)begin x = 450_000_000 ; end else begin x = 500_000_000 ; end end |
此(cǐ)次(cì),主(zhǔ)體(tǐ)程序已經(jīng)完成(chéng)。接下(xià)来(lái)是(shì)将module補充完整。
3.3 信(xìn)号(hào)定(dìng)義
接下(xià)来(lái)定(dìng)義信(xìn)号(hào)類(lèi)型。
cnt0是(shì)用(yòng)always産生(shēng)的(de)信(xìn)号(hào),因(yīn)此(cǐ)類(lèi)型为(wèi)reg。cnt0計(jì)數的(de)最(zuì)大值为(wèi)500_000_000,需要(yào)用(yòng)29根(gēn)線(xiàn)表(biǎo)示,即位宽(kuān)是(shì)29位。
因(yīn)此(cǐ)代(dài)碼如(rú)下(xià):
|
1 |
reg [28:0] cnt0 ; |
add_cnt0和(hé)end_cnt0都是(shì)用(yòng)assign方(fāng)式設計(jì)的(de),因(yīn)此(cǐ)類(lèi)型为(wèi)wire。并且其值是(shì)0或(huò)者(zhě)1,1个(gè)線(xiàn)表(biǎo)示即可(kě)。因(yīn)此(cǐ)代(dài)碼如(rú)下(xià):
|
1 2 |
wire add_cnt0 ; wire end_cnt0 ; |
cnt1是(shì)用(yòng)always産生(shēng)的(de)信(xìn)号(hào),因(yīn)此(cǐ)類(lèi)型为(wèi)reg。cnt1計(jì)數的(de)最(zuì)大值为(wèi)8,需要(yào)用(yòng)4根(gēn)線(xiàn)表(biǎo)示,即位宽(kuān)是(shì)4位。因(yīn)此(cǐ)代(dài)碼如(rú)下(xià):
|
1 |
reg [ 3:0] cnt1 ; |
add_cnt1和(hé)end_cnt1都是(shì)用(yòng)assign方(fāng)式設計(jì)的(de),因(yīn)此(cǐ)類(lèi)型为(wèi)wire。并且其值是(shì)0或(huò)者(zhě)1,1根(gēn)線(xiàn)表(biǎo)示即可(kě)。因(yīn)此(cǐ)代(dài)碼如(rú)下(xià):
|
1 2 |
wire add_cnt1 ; wire end_cnt1 ; |
led是(shì)用(yòng)always方(fāng)式設計(jì)的(de),因(yīn)此(cǐ)類(lèi)型为(wèi)reg。并且其值是(shì)0或(huò)者(zhě)1,1根(gēn)線(xiàn)表(biǎo)示即可(kě)。因(yīn)此(cǐ)代(dài)碼如(rú)下(xià):
|
1 |
reg led ; |
x是(shì)用(yòng)always方(fāng)式設計(jì)的(de),因(yīn)此(cǐ)類(lèi)型为(wèi)reg。并且其值是(shì)最(zuì)大是(shì)500_000_000,需要(yào)29根(gēn)線(xiàn)表(biǎo)示即可(kě)。因(yīn)此(cǐ)代(dài)碼如(rú)下(xià):
|
1 |
reg [28:0] x ; |
至(zhì)此(cǐ),整个(gè)代(dài)碼的(de)設計(jì)工作已經(jīng)完成(chéng)。下(xià)一(yī)步是(shì)新建工程和(hé)上(shàng)板查看(kàn)現(xiàn)象(xiàng)。
4 綜合與(yǔ)上(shàng)板
4.1 新建工程
首先(xiān)在(zài)d盤中(zhōng)創建名为(wèi)“my_led”的(de)工程文(wén)件(jiàn)夾,将写的(de)代(dài)碼命名为(wèi)“my_led.v”,頂层模块(kuài)名为(wèi)“my_led”。
图(tú) 135
图(tú) 136
然後(hòu)打(dǎ)開(kāi)Quartus Ⅱ,點(diǎn)擊File下(xià)拉列表(biǎo)中(zhōng)的(de)New Project Wzard...新建工程選項。
图(tú) 137
3.再出(chū)現(xiàn)的(de)界面(miàn)中(zhōng)直(zhí)接點(diǎn)擊Next。
图(tú) 138
4.之後(hòu)出(chū)現(xiàn)的(de)是(shì)工程文(wén)件(jiàn)夾、工程名、頂层模块(kuài)名設置界面(miàn)。按照之前(qián)的(de)命名進(jìn)行填写,然後(hòu)點(diǎn)擊Next,在(zài)出(chū)現(xiàn)的(de)界面(miàn)再點(diǎn)擊next。
图(tú) 139
图(tú) 140
5.之後(hòu)是(shì)文(wén)件(jiàn)添加界面(miàn)。添加之前(qián)写的(de)“my_led.v”文(wén)件(jiàn),點(diǎn)擊右(yòu)側的(de)“Add”按鈕,之後(hòu)文(wén)件(jiàn)会(huì)在(zài)下(xià)方(fāng)顯示出(chū)来(lái),之後(hòu)點(diǎn)擊“Next”。
图(tú) 141
器件(jiàn)型号(hào)選擇界面(miàn)。選擇Cyclone ⅣE,在(zài)芯片(piàn)型号(hào)選擇处選擇EP4CE15F23C8,然後(hòu)點(diǎn)擊“Next”。
图(tú) 142
EDA工具界面(miàn)。直(zhí)接點(diǎn)擊“Next”。
图(tú) 143
8.之後(hòu)出(chū)現(xiàn)的(de)界面(miàn),點(diǎn)擊“Finish”。
图(tú) 144
4.2 綜合
1.新建工程步驟完成(chéng)後(hòu),就(jiù)会(huì)出(chū)現(xiàn)以(yǐ)下(xià)界面(miàn)。選中(zhōng)要(yào)編譯的(de)文(wén)件(jiàn),點(diǎn)擊編譯按鈕。
图(tú) 145
2.編譯成(chéng)功後(hòu)会(huì)出(chū)現(xiàn)一(yī)下(xià)界面(miàn)。
图(tú) 146
4.3 配置管(guǎn)脚
图(tú) 147
在(zài)菜單欄中(zhōng),選中(zhōng)Assignments,然後(hòu)選擇Pin Planner,就(jiù)会(huì)弹出(chū)配置管(guǎn)脚的(de)窗(chuāng)口(kǒu)。
图(tú) 148
在(zài)配置窗(chuāng)口(kǒu)最(zuì)下(xià)方(fāng)中(zhōng)的(de)location一(yī)列,參考下(xià)表(biǎo)中(zhōng)最(zuì)右(yòu)两(liǎng)列配置好(hǎo)FPGA管(guǎn)脚。
|
器件(jiàn) |
原理图(tú)信(xìn)号(hào) |
FPGA管(guǎn)脚 |
FPGA工程信(xìn)号(hào) |
|
LED1 |
LED1_NET |
AA4 |
led |
|
X1 |
SYS_CLK |
G1 |
clk |
|
K1 |
SYS_RST |
AB12 |
rst_n |
配置完成(chéng)後(hòu),關(guān)閉Pin Planner,软(ruǎn)件(jiàn)自(zì)動(dòng)会(huì)保存管(guǎn)脚配置信(xìn)息。
4.4 再次(cì)綜合
图(tú) 149
在(zài)菜單欄中(zhōng),選中(zhōng)Processing,然後(hòu)選擇Start Compilation,再次(cì)对(duì)整个(gè)工程進(jìn)行編譯和(hé)綜合。
图(tú) 150
出(chū)現(xiàn)上(shàng)面(miàn)的(de)界面(miàn),就(jiù)说(shuō)明(míng)編譯綜合成(chéng)功。
4.5 連(lián)接開(kāi)發(fà)板
图(tú)中(zhōng),下(xià)载器接入(rù)電(diàn)腦USB接口(kǒu),電(diàn)源接入(rù)電(diàn)源,然後(hòu)摁下(xià)下(xià)方(fāng)藍(lán)色(sè)開(kāi)關(guān)。
图(tú) 151
4.6 上(shàng)板
1.單擊以(yǐ)下(xià)界面(miàn)中(zhōng)的(de)
。
图(tú) 152
2.会(huì)出(chū)現(xiàn)如(rú)下(xià)界面(miàn),點(diǎn)擊add file添加.sof文(wén)件(jiàn),點(diǎn)擊“Start”,会(huì)在(zài)“Progress”出(chū)顯示進(jìn)度(dù)。
图(tú) 153
3.進(jìn)度(dù)条(tiáo)中(zhōng)提(tí)示成(chéng)功後(hòu),即可(kě)在(zài)開(kāi)發(fà)板上(shàng)观察到(dào)相應(yìng)的(de)現(xiàn)象(xiàng)。








