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