導读(dú):如(rú)果(guǒ)想(xiǎng)快(kuài)速学習,那(nà)麼(me)可(kě)以(yǐ)進(jìn)入(rù)明(míng)德揚官网(wǎng)進(jìn)行免費課程系(xì)列学習,这(zhè)樣(yàng)可(kě)以(yǐ)讓你的(de)開(kāi)發(fà)板盡快(kuài)動(dòng)起来(lái),早(zǎo)點(diǎn)拿起開(kāi)發(fà)板用(yòng)起来(lái),掌握的(de)也(yě)快(kuài),但是(shì)後(hòu)期(qī)沒(méi)有(yǒu)系(xì)統理論支持(chí),以(yǐ)及(jí)企業級实操項目訓練,麻(má)煩就(jiù)比較大,只(zhī)能(néng)自(zì)己摸索,花大量(liàng)的(de)时(shí)間(jiān)。这(zhè)樣(yàng)你需要(yào)找(zhǎo)專業的(de)FPGA培訓機(jī)構来(lái)做系(xì)統的(de)学習還(huán)有(yǒu)实操項目,FPGA学習最(zuì)關(guān)鍵的(de)就(jiù)是(shì)項目的(de)实操。理論学的(de)再好(hǎo)要(yào)談实戰,否則你自(zì)学的(de)再好(hǎo)還(huán)是(shì)个(gè)菜鳥,因(yīn)为(wèi)沒(méi)辦(bàn)法應(yìng)对(duì)实際工作中(zhōng)遇到(dào)的(de)各(gè)種(zhǒng)問(wèn)題(tí)的(de)。
一(yī)、FPGA学習重(zhòng)點(diǎn)是(shì)什麼(me)?
1、 看(kàn)代(dài)碼,建模型(fpga邏輯模型)
只(zhī)有(yǒu)在(zài)腦海中(zhōng)建立了(le)一(yī)个(gè)个(gè)邏輯模型,理解(jiě)FPGA內(nèi)部(bù)邏輯結構实現(xiàn)的(de)基礎,才能(néng)明(míng)白为(wèi)什麼(me)写Verilog和(hé)写C整體(tǐ)思(sī)路(lù)是(shì)不(bù)一(yī)樣(yàng)的(de),才能(néng)理解(jiě)順序執行語(yǔ)言和(hé)并行執行語(yǔ)言的(de)設計(jì)方(fāng)法上(shàng)的(de)差异(yì)。在(zài)看(kàn)到(dào)一(yī)段(duàn)簡單程序的(de)时(shí)候應(yìng)該想(xiǎng)到(dào)是(shì)什麼(me)樣(yàng)的(de)功能(néng)電(diàn)路(lù)。
2、 用(yòng)數学思(sī)維来(lái)簡化(huà)設計(jì)邏輯(FPGA設計(jì)技巧)
学習FPGA不(bù)僅邏輯思(sī)維很重(zhòng)要(yào),好(hǎo)的(de)數学思(sī)維也(yě)能(néng)讓你的(de)設計(jì)化(huà)繁为(wèi)簡,所(suǒ)以(yǐ)啊,那(nà)些看(kàn)見(jiàn)高(gāo)數就(jiù)头(tóu)疼的(de)童鞋(xié)需要(yào)重(zhòng)視一(yī)下(xià)这(zhè)門(mén)課哦。舉个(gè)簡單的(de)例子,比如(rú)有(yǒu)两(liǎng)个(gè)32bit的(de)數據(jù)X[31;0]與(yǔ)Y[31;0]相乘。當然,无論Altera還(huán)是(shì)Xilinx都有(yǒu)現(xiàn)成(chéng)的(de)乘法器IP核可(kě)以(yǐ)調用(yòng),这(zhè)也(yě)是(shì)最(zuì)簡單的(de)方(fāng)法,但是(shì)两(liǎng)个(gè)32bit的(de)乘法器将耗費大量(liàng)的(de)資源。那(nà)麼(me)有(yǒu)沒(méi)有(yǒu)节(jié)省(shěng)資源,又不(bù)太複雜的(de)方(fāng)式来(lái)实現(xiàn)呢?我(wǒ)们(men)可(kě)以(yǐ)稍做修改:
将X[31;0]拆成(chéng)两(liǎng)部(bù)分(fēn)X1[15;0]和(hé)X2[15;0],令X1[15;0]=X[31;16],X2[15;0]=X[15;0],則X1左(zuǒ)移16位後(hòu)與(yǔ)X2相加可(kě)以(yǐ)得到(dào)X;同(tóng)樣(yàng)将Y[31;0]拆成(chéng)两(liǎng)部(bù)分(fēn)Y1[15;0]和(hé)Y2[15;0],令Y1[15;0]=Y[31;16],Y2[15;0]=Y[15;0],則Y1左(zuǒ)移16位後(hòu)與(yǔ)Y2相加可(kě)以(yǐ)得到(dào)Y,則X與(yǔ)Y的(de)相乘可(kě)以(yǐ)轉(zhuǎn)化(huà)为(wèi)X1和(hé)X2分(fēn)别與(yǔ)Y1和(hé)Y2相乘,这(zhè)樣(yàng)一(yī)个(gè)32bit*32bit的(de)乘法運算轉(zhuǎn)換成(chéng)了(le)四(sì)个(gè)16bit*16bit的(de)乘法運算和(hé)三(sān)个(gè)32bit的(de)加法運算。轉(zhuǎn)換後(hòu)的(de)占用(yòng)資源将会(huì)減少(shǎo)很多(duō),有(yǒu)興趣的(de)童鞋(xié),不(bù)妨綜合一(yī)下(xià)看(kàn)看(kàn),看(kàn)看(kàn)两(liǎng)者(zhě)差多(duō)少(shǎo)。
3、 时(shí)鐘(zhōng)與(yǔ)觸發(fà)器的(de)關(guān)系(xì)(fpga时(shí)序應(yìng)用(yòng))
“时(shí)鐘(zhōng)是(shì)时(shí)序電(diàn)路(lù)的(de)控制者(zhě)”这(zhè)句(jù)話(huà)太經(jīng)典了(le),可(kě)以(yǐ)说(shuō)是(shì)FPGA設計(jì)的(de)聖言。FPGA的(de)設計(jì)主(zhǔ)要(yào)是(shì)以(yǐ)时(shí)序電(diàn)路(lù)为(wèi)主(zhǔ),因(yīn)为(wèi)組合邏輯電(diàn)路(lù)再怎麼(me)複雜也(yě)變(biàn)不(bù)出(chū)太多(duō)花樣(yàng),理解(jiě)起来(lái)也(yě)不(bù)沒(méi)太多(duō)困難。但是(shì)时(shí)序電(diàn)路(lù)就(jiù)不(bù)同(tóng)了(le),它(tā)的(de)所(suǒ)有(yǒu)動(dòng)作都是(shì)在(zài)时(shí)鐘(zhōng)一(yī)拍一(yī)拍的(de)节(jié)奏下(xià)轉(zhuǎn)變(biàn)觸發(fà),可(kě)以(yǐ)说(shuō)时(shí)鐘(zhōng)就(jiù)是(shì)整个(gè)電(diàn)路(lù)的(de)控制者(zhě),控制不(bù)好(hǎo),電(diàn)路(lù)功能(néng)就(jiù)会(huì)混亂。
打(dǎ)个(gè)比方(fāng),时(shí)鐘(zhōng)就(jiù)相當于(yú)人(rén)體(tǐ)的(de)心(xīn)髒,它(tā)每一(yī)次(cì)的(de)跳動(dòng)就(jiù)是(shì)觸發(fà)一(yī)个(gè)CLK,向(xiàng)身(shēn)體(tǐ)的(de)各(gè)个(gè)器官供血(xuè),維持(chí)着機(jī)體(tǐ)的(de)正(zhèng)常運作,每一(yī)个(gè)器官體(tǐ)統正(zhèng)常工作少(shǎo)不(bù)了(le)組織细(xì)胞的(de)構成(chéng),那(nà)麼(me)觸發(fà)器就(jiù)可(kě)以(yǐ)比作基本(běn)單元(yuán)組織细(xì)胞。
时(shí)序邏輯電(diàn)路(lù)的(de)时(shí)鐘(zhōng)是(shì)控制时(shí)序邏輯電(diàn)路(lù)狀态轉(zhuǎn)換的(de)“發(fà)動(dòng)機(jī)”,沒(méi)有(yǒu)它(tā)时(shí)序邏輯電(diàn)路(lù)就(jiù)不(bù)能(néng)正(zhèng)常工作。因(yīn)为(wèi)时(shí)序邏輯電(diàn)路(lù)主(zhǔ)要(yào)是(shì)利用(yòng)觸發(fà)器存儲電(diàn)路(lù)的(de)狀态,而(ér)觸發(fà)器狀态變(biàn)換需要(yào)时(shí)鐘(zhōng)的(de)上(shàng)升(shēng)或(huò)下(xià)降沿,由(yóu)此(cǐ)可(kě)見(jiàn)时(shí)鐘(zhōng)在(zài)时(shí)序電(diàn)路(lù)中(zhōng)的(de)核心(xīn)作用(yòng)。
最(zuì)後(hòu)簡單说(shuō)一(yī)下(xià)體(tǐ)会(huì)吧,歸結起来(lái)就(jiù)是(shì)多(duō)实踐、多(duō)思(sī)考、多(duō)問(wèn)。实踐出(chū)真(zhēn)知,看(kàn)100遍(biàn)别人(rén)的(de)方(fāng)案(àn)不(bù)如(rú)自(zì)己去(qù)实踐一(yī)下(xià)。实踐的(de)動(dòng)力一(yī)方(fāng)面(miàn)来(lái)自(zì)興趣,一(yī)方(fāng)面(miàn)来(lái)自(zì)壓力。有(yǒu)需求会(huì)容易形成(chéng)壓力,也(yě)就(jiù)是(shì)说(shuō)最(zuì)好(hǎo)能(néng)在(zài)实際的(de)項目開(kāi)發(fà)中(zhōng)鍛煉,而(ér)不(bù)是(shì)为(wèi)了(le)学習而(ér)学習。
明(míng)德揚科教的(de)教学以(yǐ)潘文(wén)明(míng)先(xiān)生(shēng)的(de)《至(zhì)簡設計(jì)法》为(wèi)中(zhōng)心(xīn),其核心(xīn)就(jiù)是(shì)一(yī)个(gè)“簡”字(zì)。
除了(le)在(zài)設計(jì)思(sī)路(lù)、过(guò)程、結果(guǒ)等方(fāng)面(miàn)实現(xiàn)了(le)至(zhì)簡化(huà),学習方(fāng)法也(yě)是(shì)最(zuì)簡單,完全(quán)适合于(yú)0基礎的(de)学員。正(zhèng)常情(qíng)況下(xià),完全(quán)沒(méi)有(yǒu)基礎的(de)学員通(tòng)过(guò)30天(tiān)的(de)学習,就(jiù)能(néng)独立完成(chéng)FPGA項目的(de)学習。








