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