關(guān)鍵詞: FPGA , CPLD , DIY
就算你代碼再怎么牛逼,硬件描述語(yǔ)言再怎么熟練,沒(méi)有認(rèn)知FPGA的工作原理,一切都是浮云。因此,在真正開(kāi)始實(shí)戰(zhàn)演練之前,Bingo將首先介紹FPGA最小工作配置要求,以及一些基本的外設(shè),并通過(guò)DIY CPLD/FPGA系統(tǒng)板案例的分析講解,用淺顯易懂的語(yǔ)言,讓初學(xué)者深刻認(rèn)識(shí)CPLD/FPGA的工作原理,能夠有一個(gè)更深刻的軟硬件思維。
一、Altium Designer 09 winter 軟件介紹
Layout的軟件有很多,包括Altium Designer、PADS、Cadence等。Altium Designer是入門(mén)比較簡(jiǎn)單,也在一些基本場(chǎng)合應(yīng)用較多的軟件。國(guó)內(nèi)大學(xué)生,很大一部分上都應(yīng)用了這款軟件,此處以此為平臺(tái)設(shè)計(jì)CPLD/FPGA系統(tǒng)板。由于本軟件不是本書(shū)的主要內(nèi)容,因此如何安裝在此處略去。
二、Altium Designer 09 winter 軟件使用
Altium Designer軟件已更新到2010,由于Bingo長(zhǎng)期使用09版本,故本書(shū)中以Winter 09作為L(zhǎng)ayout平臺(tái),不再添加新版本描述的累贅。以下是Bingo發(fā)現(xiàn)或者總結(jié)的關(guān)于Altium Designer的部分精髓,如果您是一個(gè)初學(xué)者,請(qǐng)仔細(xì)看每一篇博文,希望對(duì)你有用:
(1)Altium Designer Winter 09 Rulse Design:
(2)Altium Designer 發(fā)現(xiàn)的機(jī)密
(3)TMD的Altium Designer的***功能:
對(duì)于本章節(jié)關(guān)于Layout的闡述,都建立在Altium Designer winter 09平臺(tái), 以及Bingo DIY 元件庫(kù)Crazy_PCB.lib。此庫(kù)為Bingo大學(xué)2年Layout的項(xiàng)目經(jīng)驗(yàn),通過(guò)點(diǎn)點(diǎn)滴滴的積累下來(lái)的DIY 封裝庫(kù),所有元件都通過(guò)測(cè)試,并且應(yīng)用在多項(xiàng)項(xiàng)目中,下載地址為:
?id=86259
讀者若有興趣,可以自行下載;若有問(wèn)題,可以聯(lián)系Bingo,隨時(shí)更新庫(kù)文件。
最后,推介一個(gè)PCB Layout的知名論壇,希望對(duì)PCB學(xué)習(xí)者有用:
三、Step By Step DIY CPLD核心板
再怎么牛逼的代碼設(shè)計(jì)能力,作為一個(gè)硬件工程師,如果自己不會(huì)設(shè)計(jì)版圖,或者說(shuō)完全不懂硬件平臺(tái)的架構(gòu),而是以購(gòu)買(mǎi)人家的系統(tǒng)板作為平臺(tái),相應(yīng)的在上面實(shí)現(xiàn)功能,這未免有太大的依賴性;同時(shí),對(duì)于創(chuàng)造發(fā)揮也有一定的局限性。在公司可以有嚴(yán)格的分工,固定員工負(fù)責(zé)某部分的技術(shù)。但對(duì)于電子信息的初學(xué)者而言,就算你一味寫(xiě)代碼,了解或者掌握基礎(chǔ)的硬件設(shè)計(jì),將會(huì)對(duì)軟件有更深刻的理解和構(gòu)思,所謂“硬件是軟件的平臺(tái)”,沒(méi)有平臺(tái),靈魂沒(méi)有肉體。
以下是Bingo在學(xué)習(xí)過(guò)程中的兩個(gè)小設(shè)計(jì),借此以淺俗易懂的語(yǔ)言,介紹CPLD/FPGA的工作原理以及核心系統(tǒng)版設(shè)計(jì),希望對(duì)讀者有一定的幫助。
1. EPM240T100C5N 引腳介紹
MUX II數(shù)據(jù)手冊(cè)下載地址:
EPM240T100C5N IC 引腳介紹:
2. EPM240T100C5N 工作條件
(1)VCC = 3.3V, GND = 0V
(2)4個(gè)CLK全局時(shí)鐘接口至少有一個(gè)輸入作為驅(qū)動(dòng)時(shí)鐘
(3)JTAG接口,用來(lái)燒錄代碼
注意:MUX II 可以不用外部晶振,因?yàn)镸UX II 內(nèi)部有一塊UFM,可作為內(nèi)部晶振,能夠達(dá)到10M的頻率(不是很準(zhǔn)確),具體再次不做闡述。
3. EPM240T100C5N 核心板設(shè)計(jì)
(1)電源模塊
a) 由于CPLD內(nèi)核工作需要3.3V電壓,因此電源模塊需要能提供3.3V電源,由AMS1117-3.3直接產(chǎn)生,供給FPGA VCCIO。電路圖如下所示:
b) 由于PLD工作頻率之高,為了得到更穩(wěn)定的時(shí)候,更穩(wěn)定的工作狀態(tài),提供更穩(wěn)定的電源,需要在每個(gè)VCC接口下拉一個(gè)104的電容。如下圖所示:
關(guān)于并聯(lián)電容有如下作用:
此處為去耦電容,去藕電容就是起到高頻信號(hào)提供回流路徑,就是去除高頻耦合,滿足驅(qū)動(dòng)電路電流的變化,避免相互間的耦合干擾 ;同時(shí)也有濾波的作用(根據(jù)TI的模擬設(shè)計(jì)方案,若是幾百兆的頻率工作,最好同時(shí)并聯(lián)103一下的電容,已達(dá)到更好的狀態(tài))。
(2)時(shí)鐘模塊
時(shí)鐘是CPLD工作的必須條件(除非在要求不高的場(chǎng)合,使用內(nèi)部UFM),用50MHz的晶振產(chǎn)生時(shí)鐘源,供給CPLD,作為驅(qū)動(dòng)時(shí)鐘。其電路如下所示:
(3)復(fù)位模塊
考慮到電路的穩(wěn)定性,工作的可控性,在電路板中一般都設(shè)定復(fù)位模塊,來(lái)實(shí)現(xiàn)硬件的異常復(fù)位或者重新開(kāi)始工作。具體電路圖如下所示:
注意:復(fù)位信號(hào)與CPLD的全局時(shí)鐘輸入IO相連,這并不意味著只能連全局時(shí)鐘,只是全局時(shí)鐘連接能夠達(dá)到更大的同步性以及可控性,而一般IO是具有局部性,在時(shí)序要求相當(dāng)嚴(yán)格的場(chǎng)合,這樣更保險(xiǎn)。
(4)JTAG模塊
保證一個(gè)模塊的運(yùn)行,這理所當(dāng)然需要一個(gè)靈魂。而這個(gè)靈魂的通道,就是JTAG接口。JTAG和PC通信,燒錄配置信息。具體電路圖如下所示:
4. CPLD核心板Layout注意事項(xiàng)
(1)每一個(gè)VCC的去耦電容要盡可能靠近端口,以達(dá)到更好的去耦效果
(2)JTAG接口4條信號(hào)線,大致保持等長(zhǎng),保證信號(hào)完備性
(3)晶振盡可能靠近IC,CLK輸入信號(hào)線不能與IO信號(hào)線平行
(4)電源盡量做到數(shù)模隔離,減少干擾
(5)必要時(shí)加上防短路電路
5. CPLD核心板實(shí)物圖
若有需要參考原理圖的讀者,請(qǐng)下載Bingo設(shè)計(jì)的原理圖,下載地址為:
?id=86263
注:原理圖見(jiàn)附件。
四、Step By Step DIY FPGA系統(tǒng)板
1. EP2C8Q208C8N 引腳 介紹
Cyclone II數(shù)據(jù)手冊(cè)下載地址:
EPM2C8Q208C8 引腳介紹:
相對(duì)于CPLD而言,此款型號(hào)FPGA出了引腳上增多外,多了1.2V內(nèi)核電壓,ASP接口,兩個(gè)鎖相環(huán),以及配置方式選擇引腳 MSEL。
2. EP2C8Q208C8N 工作條件
(1)VCC1 = 3.3V,VCC2 = 1.2V, GND = 0V
(2)8個(gè)CLK全局時(shí)鐘接口至少有一個(gè)輸入作為驅(qū)動(dòng)時(shí)鐘
(3)JTAG接口,用來(lái)配置FPGA
(4)ASP接口,用來(lái)燒錄EPCS
(5)MSEL,用來(lái)選擇工作模式(同時(shí)接地為JTAG+ASP模式)
注意1:(4)不是必須的,可以間接通過(guò)JTAG下載jic文件來(lái)配置EPCS。
注意2:對(duì)于Cyclone IV器件而言,除了IO,PLL增加以外,另需2.5V芯片工作電壓;以及JTAG保護(hù)電路。
3. EP2C8Q208C8N 系統(tǒng)板設(shè)計(jì)
(1)電源模塊
相對(duì)于CPLD而言,此款型號(hào)FPGA增添了1.2V電壓產(chǎn)生電路,作為內(nèi)核電壓。具體電路圖如下所示:
(2)時(shí)鐘模塊
同CPLD模塊,此處不做過(guò)多闡述。
(3)復(fù)位模塊
同CPLD模塊,此處不做過(guò)多闡述。
(4)JTAG模塊
同CPLD模塊,此處不做過(guò)多闡述。
(5)ASP模塊
ASP模塊作為燒錄pof文件到EPCS中的通道,也是PC通信的接口。具體電路圖如下所示(ASP+JTAG):
(6)PLL模塊
本款芯片內(nèi)置2個(gè)PLL,用來(lái)鎖相,來(lái)產(chǎn)生復(fù)合要求的頻率,增加頻率穩(wěn)定性和可靠性。具體電路圖如下所示:
(7)EPC4 模塊
EPCS4用來(lái)存儲(chǔ)pof文件信息,用來(lái)配置FPGA,相當(dāng)于單片機(jī)中的flash,用來(lái)存儲(chǔ)啟動(dòng)代碼。
以上(1)到(7)便是FPGA最小系統(tǒng)版配置,以下是作為系統(tǒng)板外圍配置介紹。本例中以具備SDRAM,SRAM,UART等電路的系統(tǒng)板為題材,其余外設(shè)的具體電路圖介紹如下:
(8)按鍵,LED模塊
按鍵是設(shè)備用戶控制接口,作為人機(jī)交互接口;LED是指示燈顯示信號(hào),作為工作狀態(tài)的反饋信號(hào)。具體電路圖如下所示:
(9)串口通信模塊
串口通信模塊作為與PC的通信接口,通過(guò)純硬件描述語(yǔ)言描述協(xié)議或者UART IP核的應(yīng)用,來(lái)完成硬件與PC機(jī)的通信,人機(jī)交互的終端。具體電路圖如下所示:
(10)VGA接口模塊
VGA 15 PIN接口是專用于VGA視頻信號(hào)的驅(qū)動(dòng)的。由于FPGA的高速,高精度,VAG的驅(qū)動(dòng)是FPGA最擅長(zhǎng)的功能之一。此模塊同時(shí)采用AD7120KST50視頻轉(zhuǎn)換芯片,把16bit數(shù)字信號(hào)轉(zhuǎn)換為RGB565信號(hào),從而在硬件上實(shí)現(xiàn)了真彩顯示的要求。具體電路圖如下所示:
(11)SDRAM存儲(chǔ)模塊
此模塊作為FPGA片上系統(tǒng)(SOPC)的內(nèi)存,同時(shí)也可以作為VGA顯示的顯存,總之有大容量存儲(chǔ)功能,主要完成FPGA海量數(shù)據(jù)的存儲(chǔ)和搬運(yùn)。具體電路圖如下所示:
(12)SRAM存儲(chǔ)模塊
SRAM是掉電丟失存儲(chǔ)芯片,一般用來(lái)作為液晶顯存,配合VGA刷屏工作;同時(shí)在片上系統(tǒng)中,在容量大小滿足的情況下,也可以作為內(nèi)存使用。本設(shè)計(jì)中為了擴(kuò)大SRAM內(nèi)存,用兩片SRAM串聯(lián)的形式來(lái)達(dá)到目的。具體電路圖如下所示:
注意:沒(méi)有用nand flash的原因,是因?yàn)镋PCS4,EPCS16對(duì)于一般的片上系統(tǒng)而言,已經(jīng)足夠滿足了代碼的容量,因此,對(duì)于一般應(yīng)用,可以省略該IC,降低成本。
4. FPGA系統(tǒng)板Layout注意事項(xiàng)
(1)每一個(gè)VCC的去耦電容要盡可能靠近IO,來(lái)達(dá)到更好的去耦效果
(2)JTAG 接口4條信號(hào)線要大致等長(zhǎng),以保證時(shí)序的準(zhǔn)確性
(3)ASP接口信號(hào)線要大致等長(zhǎng),以保證時(shí)序的準(zhǔn)確性
(4)EPCS信號(hào)線與FPGA之間的連線要等長(zhǎng),以保證時(shí)序的準(zhǔn)確性
(5)晶振盡可能靠近IC,CLK輸入信號(hào)線不能與IO信號(hào)線平行
(6)電源盡量做到數(shù)模隔離,減少干擾
(7)必要時(shí)在電源輸入加上反接電源。
(8)按鍵輸入可以接在全局時(shí)鐘CLK上,在節(jié)約IO的基礎(chǔ)上,滿足信號(hào)的同時(shí)性。
(9)SDRAM數(shù)據(jù)線,地址線保持基本等長(zhǎng),以保證時(shí)序的準(zhǔn)確性。
(10)SRAM數(shù)據(jù)線,地址線保持基本等長(zhǎng),以保證時(shí)序的準(zhǔn)確性。
(11)ADV7120信號(hào)線要求等長(zhǎng),保證RGB565信號(hào)的完善。
5. FPGA系統(tǒng)板實(shí)物圖
若有需要參考原理圖的讀者,請(qǐng)下載Bingo設(shè)計(jì)的原理圖,下載地址為:?id=86263
Cyclone II
Cyclone III
評(píng)論