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