|
例說(shuō)FPGA連載9:FPGA板級(jí)電路設(shè)計(jì)五要素 特權(quán)同學(xué),版權(quán)所有 配套例程和更多資料下載鏈接: http://pan.baidu.com/s/1c0nf6Qc
和純粹基于PC機(jī)的各種軟件編程不同,F(xiàn)PGA器件的學(xué)習(xí)僅靠一臺(tái)PC機(jī)是不夠的。對(duì)于任何一個(gè)學(xué)習(xí)者而言,能夠擁有一塊板載FPGA器件的電路板平臺(tái)是非常必要的。當(dāng)然了,前期的開(kāi)發(fā)調(diào)試肯定也還是離不開(kāi)PC機(jī)。和基于PC機(jī)的軟件編程(如在Visual C++工具上實(shí)現(xiàn)C/C++語(yǔ)言的編程,在各種網(wǎng)絡(luò)編程工具上實(shí)現(xiàn).net/java語(yǔ)言的編程)相同的是,可編程器件的開(kāi)發(fā)也有專(zhuān)用的語(yǔ)言(目前主流的語(yǔ)言是Verilog和VHDL)和專(zhuān)用的開(kāi)發(fā)工具(如Xilinx公司的開(kāi)發(fā)工具ISE/Vivado,Altera公司的開(kāi)發(fā)工具Quartus II以及其他的第三方工具)。不同點(diǎn)也顯而易見(jiàn),PC的軟件編程由于最終就是實(shí)現(xiàn)在PC機(jī)本地或者網(wǎng)絡(luò)上,那么它就不需要開(kāi)發(fā)者配備額外的設(shè)備;而基于FPGA器件的開(kāi)發(fā),其最終的功能是需要實(shí)現(xiàn)在特定的FPGA器件內(nèi)部的,因此開(kāi)發(fā)者勢(shì)必需要首先具備載有FPGA器件的一塊電路板。除此以外,還需要具備一條用于連接PC機(jī)和可編程器件的用于傳輸配置數(shù)據(jù)流的連接線,我們通常稱(chēng)此連接線為“下載線”。 如圖2.1所示,對(duì)于任何一個(gè)FPGA開(kāi)發(fā)者而言,一條下載線和一塊板載FPGA器件的電路板應(yīng)該說(shuō)是最基本的硬件配備了。電路板的作用不言而喻,我們?cè)O(shè)計(jì)的目的便是希望通過(guò)對(duì)板載的FPGA器件編程,以控制電路板上的其他外設(shè)按照我們既定的功能運(yùn)轉(zhuǎn);而下載線是起到連接PC機(jī)和電路板的作用,它將協(xié)助開(kāi)發(fā)人員將已經(jīng)在PC機(jī)的軟件工具上預(yù)先設(shè)計(jì)好的功能配置數(shù)據(jù)流固化到電路板的FPGA器件中(可用于前期的開(kāi)發(fā)、調(diào)試以及產(chǎn)品化后的升級(jí))。
圖2.1 下載線和電路板 既然需要一塊板載FPGA器件的電路板,那么這塊電路板該如何設(shè)計(jì)呢?如圖2.2和圖2.3所示,分別為Xilinx公司最新的的Zynq Soc FPGA開(kāi)發(fā)板和Altera公司最新的Cyclone V Soc FPGA開(kāi)發(fā)板。乍一看,整齊有序且美觀大方,豐富的外設(shè)資源,恐怕大伙都要垂涎三尺了,而要咱們初學(xué)者也DIY一個(gè),那真叫 “比駱駝穿過(guò)針的眼還難”。
圖2.2 Xilinx – Zynq Soc FPGA開(kāi)發(fā)板
圖2.3 Altera - Cyclone V Soc FPGA開(kāi)發(fā)板 別心慌,先拋開(kāi)電路板各種各樣復(fù)雜的外設(shè)功能,我們可以先探討一下單純實(shí)現(xiàn)一片F(xiàn)PGA器件的核心電路(即能讓FPGA工作起來(lái)的最基本且元器件最少的電路)是如何設(shè)計(jì)的。相比于其它嵌入式系統(tǒng)芯片的電路設(shè)計(jì),單純的FPGA核心電路其實(shí)還算是非常簡(jiǎn)單的。根據(jù)過(guò)往的設(shè)計(jì)經(jīng)驗(yàn)中,筆者簡(jiǎn)單的將FPGA核心電路歸納為五部分:電源電路、時(shí)鐘電路、復(fù)位電路、配置電路和外設(shè)電路,我們姑且稱(chēng)之為五要素。下面我們將逐一探討各個(gè)要素在FPGA器件的運(yùn)行中扮演的角色及其常規(guī)電路的設(shè)計(jì)方式。 |