FPGA入門知識(shí)介紹
近幾年來(lái),由于現(xiàn)場(chǎng)可編程門陣列(FPGA)的使用非常靈活,又可以無(wú)限次的編程,已受到越來(lái)越多的電子編程者的喜愛,很多朋友都想學(xué)習(xí)一些FPGA入門知識(shí)準(zhǔn)備進(jìn)行這個(gè)行業(yè),現(xiàn)在關(guān)于FPGA入門知識(shí)的書籍、論壇、教程等種類繁多各式各樣。下面筆者也通過搜尋一些關(guān)于FPGA入門知識(shí)的資料供大家學(xué)習(xí)和參考。
本文引用地址:http://m.butianyuan.cn/article/193065.htmFPGA入門知識(shí)首先要從FPGA的定義開始,什么是FPGA呢,有什么作用這些都是基本需要了解的東西。FPGA是可編程器件,目前以硬件描述語(yǔ)言(Verilog 或 VHDL)所完成的電路設(shè)計(jì),可以經(jīng)過簡(jiǎn)單的綜合與布局,快速的燒錄至 FPGA 上進(jìn)行測(cè)試,是現(xiàn)代 IC 設(shè)計(jì)驗(yàn)證的技術(shù)主流。
FPGA入門知識(shí)還應(yīng)該包含F(xiàn)PGA工作原理、FPGA的基本特點(diǎn)、FPGA芯片結(jié)構(gòu)等基礎(chǔ)的知識(shí),下面小編從以下幾個(gè)方面來(lái)對(duì)FPGA入門知識(shí)進(jìn)行簡(jiǎn)單的介紹。
FPGA工作原理
FPGA采用了邏輯單元陣列LCA這樣一個(gè)概念,內(nèi)部包括可配置邏輯模塊CLB、輸出輸入模塊IOB和內(nèi)部連線三個(gè)部分。FPGA利用小型查找表(16×1RAM)來(lái)實(shí)現(xiàn)組合邏輯,每個(gè)查找表連接到一個(gè)D觸發(fā)器的輸入端,觸發(fā)器再來(lái)驅(qū)動(dòng)其他邏輯電路或驅(qū)動(dòng)I/O,由此構(gòu)成了即可實(shí)現(xiàn)組合邏輯功能又可實(shí)現(xiàn)時(shí)序邏輯功能的基本邏輯單元模塊,這些模塊間利用金屬連線互相連接或連接到I/O模塊。FPGA的邏輯是通過向內(nèi)部靜態(tài)存儲(chǔ)單元加載編程數(shù)據(jù)來(lái)實(shí)現(xiàn)的,存儲(chǔ)在存儲(chǔ)器單元中的值決定了邏輯單元的邏輯功能以及各模塊之間或模塊與I/O間的聯(lián)接方式,并最終決定了FPGA所能實(shí)現(xiàn)的功能, 加電時(shí),F(xiàn)PGA芯片將EPROM中數(shù)據(jù)讀入片內(nèi)編程RAM中,配置完成后,F(xiàn)PGA進(jìn)入工作狀態(tài)。掉電后,F(xiàn)PGA恢復(fù)成白片,內(nèi)部邏輯關(guān)系消失,因此,F(xiàn)PGA能夠反復(fù)使用。FPGA的編程無(wú)須專用的FPGA編程器,只須用通用的EPROM、PROM編程器即可。當(dāng)需要修改FPGA功能時(shí),只需換一片EPROM即可。這樣,同一片F(xiàn)PGA,不同的編程數(shù)據(jù),可以產(chǎn)生不同的電路功能。FPGA是由存放在片內(nèi)RAM中的程序來(lái)設(shè)置其工作狀態(tài)的,因此,工作時(shí)需要對(duì)片內(nèi)的RAM進(jìn)行編程。用戶可以根據(jù)不同的配置模式,采用不同的編程方式。
FPGA的基本特點(diǎn)
1)采用FPGA設(shè)計(jì)ASIC電路(專用集成電路),用戶不需要投片生產(chǎn),就能得到合用的芯片。
2)FPGA可做其它全定制或半定制ASIC電路的中試樣片。
3)FPGA內(nèi)部有豐富的觸發(fā)器和I/O引腳。
4)FPGA是ASIC電路中設(shè)計(jì)周期最短、開發(fā)費(fèi)用最低、風(fēng)險(xiǎn)最小的器件之一。
5) FPGA采用高速CMOS工藝,功耗低,可以與CMOS、TTL電平兼容。
可以說(shuō),F(xiàn)PGA芯片是小批量系統(tǒng)提高系統(tǒng)集成度、可靠性的最佳選擇之一。
FPGA芯片結(jié)構(gòu)
目前主流的FPGA仍是基于查找表技術(shù)的,已經(jīng)遠(yuǎn)遠(yuǎn)超出了先前版本的基本性能,并且整合了常用功能(如RAM、時(shí)鐘管理和DSP)的硬核(ASIC型)模塊。FPGA芯片主要由7部分完成,分別為:可編程輸入輸出單元、基本可編程邏輯單元、完整的時(shí)鐘管理、嵌入塊式RAM、豐富的布線資源、內(nèi)嵌的底層功能單元和內(nèi)嵌專用硬件模塊。
1. 可編程輸入輸出單元(IOB)
可編程輸入/輸出單元簡(jiǎn)稱I/O單元,是芯片與外界電路的接口部分,完成不同電氣特性下對(duì)輸入/輸出信號(hào)的驅(qū)動(dòng)與匹配要求。為了便于管理和適應(yīng)多種電器標(biāo)準(zhǔn),F(xiàn)PGA的IOB被劃分為若干個(gè)組(bank),每個(gè)bank的接口標(biāo)準(zhǔn)由其接口電壓VCCO決定,一個(gè)bank只能有 一種VCCO,但不同bank的VCCO可以不同。只有相同電氣標(biāo)準(zhǔn)的端口才能連接在一起,VCCO電壓相同是接口標(biāo)準(zhǔn)的基本條件。
I/O塊內(nèi)部結(jié)構(gòu)圖
典型的IOB內(nèi)部結(jié)構(gòu)示意圖
2. 可配置邏輯塊(CLB)
CLB是FPGA內(nèi)的基本邏輯單元。CLB的實(shí)際數(shù)量和特性會(huì)依器件的不同而不同,但是每個(gè)CLB都包含一個(gè)可配置開關(guān)矩陣,此矩陣由4或6個(gè)輸入、一些 選型電路(多路復(fù)用器等)和觸發(fā)器組成。開關(guān)矩陣是高度靈活的,可以對(duì)其進(jìn)行配置以便處理組合邏輯、移位寄存器或RAM。
4. 嵌入式塊RAM(BRAM)
大多數(shù)FPGA都具有內(nèi)嵌的塊RAM,這大大拓展了FPGA的應(yīng)用范圍和靈活性。塊RAM可被配置為單端口RAM、雙端口RAM、內(nèi)容地址存儲(chǔ)器 (CAM)以及FIFO等常用存儲(chǔ)結(jié)構(gòu)。CAM存儲(chǔ)器在其內(nèi)部的每個(gè)存儲(chǔ)單元中都有一個(gè)比較邏輯,寫入 CAM中的數(shù)據(jù)會(huì)和內(nèi)部的每一個(gè)數(shù)據(jù)進(jìn)行比較,并返回與端口數(shù)據(jù)相同的所有數(shù)據(jù)的地址,因而在路由的地址交換器中有廣泛的應(yīng)用。除了塊RAM,還可以將 FPGA中的LUT靈活地配置成RAM、ROM和FIFO等結(jié)構(gòu)。在實(shí)際應(yīng)用中,芯片內(nèi)部塊RAM的數(shù)量也是選擇芯片的一個(gè)重要因素。
5. 豐富的布線資源
布線資源連通FPGA內(nèi)部的所有單元,而連線的長(zhǎng)度和工藝決定著信號(hào)在連線上的驅(qū)動(dòng)能力和傳輸速度。FPGA芯片內(nèi)部有著豐富的布線資源,根據(jù)工藝、長(zhǎng)度、寬度和分布位置的不同而劃分為4類不同的類別。第一類是全局布線資源,用于芯片內(nèi)部全局時(shí)鐘和全局復(fù)位/置位的布線;第二類是長(zhǎng)線資源,用以完成芯片 Bank間的高速信號(hào)和第二全局時(shí)鐘信號(hào)的布線;第三類是短線資源,用于完成基本邏輯單元之間的邏輯互連和布線;第四類是分布式的布線資源,用于專有時(shí)鐘、復(fù)位等控制信號(hào)線。
在實(shí)際中設(shè)計(jì)者不需要直接選擇布線資源,布局布線器可自動(dòng)地根據(jù)輸入邏輯網(wǎng)表的拓?fù)浣Y(jié)構(gòu)和約束條件選擇布線資源來(lái)連通各個(gè)模塊單元。從本質(zhì)上講,布線資源的使用方法和設(shè)計(jì)的結(jié)果有密切、直接的關(guān)系。
6. 底層內(nèi)嵌功能單元
內(nèi)嵌功能模塊主要指DLL(Delay Locked Loop)、PLL(Phase Locked Loop)、DSP和CPU等軟處理核?,F(xiàn)在越來(lái)越豐富的內(nèi)嵌功能單元,使得單片F(xiàn)PGA成為了系統(tǒng)級(jí)的設(shè)計(jì)工具,使其具備了軟硬件聯(lián)合設(shè)計(jì)的能力,逐步向SOC平臺(tái)過渡。
DLL和PLL具有類似的功能,可以完成時(shí)鐘高精度、低抖動(dòng)的倍頻和分頻,以及占空比調(diào)整和移相等功能。
7. 內(nèi)嵌專用硬核
內(nèi)嵌專用硬核是相對(duì)底層嵌入的軟核而言的,指FPGA處理能力強(qiáng)大的硬核(Hard Core),等效于ASIC電路。為了提高FPGA性能,芯片生產(chǎn)商在芯片內(nèi)部集成了一些專用的硬核。例如:為了提高FPGA的乘法速度,主流的FPGA 中都集成了專用乘法器;為了適用通信總線與接口標(biāo)準(zhǔn),很多高端的FPGA內(nèi)部都集成了串并收發(fā)器(SERDES),可以達(dá)到數(shù)十Gbps的收發(fā)速度。
結(jié)束語(yǔ)
了解現(xiàn)場(chǎng)可編程門陣列(FPGA)的一些基本知識(shí)對(duì)于想要開發(fā)和編程用戶是十分必要的。本文主要是針對(duì)初級(jí)的FPGA愛好者對(duì) FPGA入門知識(shí)進(jìn)行簡(jiǎn)單的總結(jié),F(xiàn)PGA入門需要了解FPGA的工作原理、基本特點(diǎn)、以及FPGA芯片的構(gòu)成和功能模塊等各個(gè)方面。希望通過閱讀筆者的這篇FPGA入門知識(shí)介紹文章可以對(duì)想要了解FPGA的您有所幫助。
評(píng)論