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