(本(běn)文(wén)为(wèi)明(míng)德揚原創,轉(zhuǎn)载需注明(míng))很多(duō)人(rén)听(tīng)到(dào)这(zhè)个(gè)词并不(bù)知道(dào)FPGA是(shì)什麼(me),全(quán)英文(wén)的(de)單词以(yǐ)及(jí)中(zhōng)文(wén)翻譯是(shì)什麼(me)意(yì)思(sī),哪怕是(shì)百(bǎi)度(dù)一(yī)下(xià),上(shàng)面(miàn)關(guān)于(yú)FPGA的(de)解(jiě)釋也(yě)是(shì)相对(duì)繁雜,沒(méi)有(yǒu)擊中(zhōng)要(yào)點(diǎn),对(duì)初学者(zhě)来(lái)说(shuō),依然有(yǒu)不(bù)少(shǎo)疑問(wèn)。什麼(me)是(shì)FPGA? 我(wǒ)们(men)的(de)FPGA有(yǒu)个(gè)中(zhōng)文(wén)名稱叫“現(xiàn)场可(kě)編程的(de)門(mén)阵(zhèn)列”,这(zhè)又是(shì)一(yī)个(gè)什麼(me)概念呢?
要(yào)了(le)解(jiě)这(zhè)个(gè)概念之前(qián),我(wǒ)们(men)来(lái)談一(yī)談大家(jiā)都比較熟悉的(de)一(yī)種(zhǒng)東(dōng)西(xī)——芯片(piàn)。例如(rú)單片(piàn)機(jī),單片(piàn)機(jī)應(yìng)該是(shì)我(wǒ)们(men)比較熟悉的(de),在(zài)高(gāo)校(xiào)的(de)課程中(zhōng)也(yě)有(yǒu)單片(piàn)機(jī)的(de)課程。那(nà)麼(me),作为(wèi)一(yī)種(zhǒng)集成(chéng)電(diàn)路(lù)芯片(piàn)的(de)單片(piàn)機(jī)它(tā)有(yǒu)什麼(me)特(tè)點(diǎn)呢?可(kě)以(yǐ)说(shuō),單片(piàn)機(jī)里(lǐ)面(miàn)的(de)電(diàn)路(lù)是(shì)固定(dìng)的(de),里(lǐ)面(miàn)有(yǒu)多(duō)少(shǎo)个(gè)器件(jiàn)有(yǒu)多(duō)少(shǎo)个(gè)管(guǎn)脚IO 都是(shì)已經(jīng)确定(dìng)的(de),內(nèi)部(bù)有(yǒu)多(duō)少(shǎo)个(gè)乘法器也(yě)是(shì)确定(dìng)的(de),而(ér)且他(tā)所(suǒ)处的(de)位置,他(tā)所(suǒ)处的(de)布(bù)局(jú),全(quán)部(bù)都是(shì)确定(dìng)的(de)。我(wǒ)们(men)在(zài)使用(yòng)單片(piàn)機(jī)的(de)过(guò)程中(zhōng),只(zhī)要(yào)編程去(qù)实現(xiàn)它(tā)对(duì)應(yìng)功能(néng)就(jiù)可(kě)以(yǐ)了(le),也(yě)就(jiù)是(shì)说(shuō),它(tā)的(de)硬(yìng)件(jiàn)是(shì)确定(dìng)的(de)。還(huán)有(yǒu)和(hé)單片(piàn)機(jī)相似的(de)很多(duō)其他(tā)芯片(piàn),例如(rú)我(wǒ)们(men)的(de)DSP(數字(zì)信(xìn)号(hào)处理),他(tā)们(men)的(de)電(diàn)路(lù)特(tè)點(diǎn)都是(shì)固定(dìng)的(de),當我(wǒ)们(men)設計(jì)完成(chéng)之後(hòu),他(tā)们(men)的(de)位置、資源、功效,全(quán)部(bù)都是(shì)确定(dìng)的(de),但是(shì)FPGA和(hé)这(zhè)類(lèi)電(diàn)路(lù)都不(bù)一(yī)樣(yàng),我(wǒ)们(men)可(kě)以(yǐ)認为(wèi)它(tā)內(nèi)部(bù)的(de)電(diàn)路(lù)結構是(shì)不(bù)确定(dìng)的(de)。
FPGA就(jiù)是(shì)一(yī)个(gè)可(kě)以(yǐ)通(tòng)过(guò)編程来(lái)改變(biàn)內(nèi)部(bù)結構的(de)芯片(piàn),它(tā)里(lǐ)面(miàn)有(yǒu)多(duō)少(shǎo)个(gè)乘法器、多(duō)少(shǎo)个(gè)計(jì)算器都是(shì)可(kě)以(yǐ)通(tòng)过(guò)編程来(lái)改變(biàn)的(de),甚至(zhì)他(tā)的(de)位置,乘法器的(de)位置在(zài)哪里(lǐ)都是(shì)可(kě)以(yǐ)編程去(qù)改變(biàn),这(zhè)就(jiù)是(shì)我(wǒ)们(men)FPGA在(zài)結構上(shàng)的(de)最(zuì)大的(de)不(bù)同(tóng),也(yě)是(shì)它(tā)最(zuì)顯著的(de)特(tè)點(diǎn)之一(yī),所(suǒ)以(yǐ)稱为(wèi)“現(xiàn)场可(kě)編程的(de)門(mén)阵(zhèn)列”。
我(wǒ)们(men)講的(de)編程,PFGA的(de)編程、FPGA設計(jì),其实就(jiù)是(shì)改變(biàn)这(zhè)个(gè)芯片(piàn)的(de)內(nèi)部(bù)結構,也(yě)就(jiù)是(shì)说(shuō),我(wǒ)们(men)可(kě)以(yǐ)通(tòng)过(guò)編程来(lái)实現(xiàn)多(duō)个(gè)乘法器、除法器、多(duō)个(gè)電(diàn)路(lù)之間(jiān)的(de)一(yī)種(zhǒng)關(guān)系(xì),通(tòng)过(guò)改變(biàn)这(zhè)種(zhǒng)關(guān)系(xì)改變(biàn)它(tā)们(men)的(de)硬(yìng)件(jiàn)結構和(hé)实現(xiàn)我(wǒ)们(men)所(suǒ)需的(de)功能(néng)。而(ér)对(duì)應(yìng)的(de)單片(piàn)機(jī),并不(bù)是(shì)改變(biàn)它(tā)的(de)硬(yìng)件(jiàn)結構,而(ér)是(shì)改變(biàn)它(tā)的(de)指令,例如(rú)我(wǒ)们(men)说(shuō)的(de)读(dú)指令、写指令、跳轉(zhuǎn)等等,通(tòng)过(guò)改變(biàn)它(tā)的(de)指令執行的(de)先(xiān)後(hòu)順序去(qù)实現(xiàn)我(wǒ)们(men)所(suǒ)需要(yào)的(de)功能(néng),这(zhè)就(jiù)是(shì)單片(piàn)機(jī)。而(ér)FPGA卻不(bù)是(shì),FPGA是(shì)改變(biàn)它(tā)的(de)硬(yìng)件(jiàn)電(diàn)路(lù)有(yǒu)多(duō)少(shǎo)个(gè)乘法器、多(duō)少(shǎo)个(gè)除法器,它(tā)有(yǒu)多(duō)少(shǎo)root(ROM),位置在(zài)哪里(lǐ)?通(tòng)过(guò)改變(biàn)它(tā)的(de)內(nèi)部(bù)電(diàn)路(lù)来(lái)实現(xiàn)它(tā)的(de)功能(néng),这(zhè)就(jiù)是(shì)fpga 跟單片(piàn)機(jī)的(de)不(bù)同(tóng),當我(wǒ)们(men)談到(dào)單片(piàn)機(jī),我(wǒ)们(men)可(kě)認为(wèi)它(tā)是(shì)專用(yòng)集成(chéng)電(diàn)路(lù),而(ér)FPGA就(jiù)是(shì)可(kě)編程的(de)集成(chéng)電(diàn)路(lù)。
明(míng)德揚最(zuì)近(jìn)做了(le)抖音(yīn)系(xì)列短(duǎn)視頻,感(gǎn)興趣可(kě)以(yǐ)關(guān)注明(míng)德揚抖音(yīn)号(hào):FPGA技巧分(fēn)享(87481069842)至(zhì)簡書(shū)籍短(duǎn)視頻(74803215644)
內(nèi)容不(bù)斷更(gèng)新!點(diǎn)赞+關(guān)注,学習不(bù)迷路(lù)!








