高級的嵌入式市場主要分為以下三類:ARM、DSP 和 FPGA。
其中 ARM 是行業內的佼佼者,目前幾乎所有的安卓智能手機都使用 ARM 授權的 CPU架構;而 DSP(數字信號處理器) 早年就被大面積的應用與電話、DVD、通訊基站等領域。DSP 與 ARM 的區別在於,ARM 是通用 CPU,DSP 則是專用 CPU。FPGA 則與他們不同,FPGA 的名稱的由來是由於 FPGA 功能的成型是在實驗室等通常工作環境下進行的;區別與專有集成電路 (ASIC)在晶圓工廠的制造,所以 FPGA 被稱為是 現場可編程門陣列。
我的開發板是 黑金 AX301,當時傻乎乎的以為 FPGA 一定是比 51 高級的芯片,在商品介紹圖片上的 VGA 接口,考慮到我的是筆記本電腦的顯示器不可外接,在調試時需要一個外接屏幕顯示打印信息,於是又另買了個 7寸的 VGA 顯示器(-____-)。
我的開發板長這個樣子(紅色的配套的下載器,必須的):
拿到開發板后,需要做的事情:
- 看看板子附帶的光盤資料,包括用戶手冊、原理圖等等。熟悉下資料。
- 第二步,altera 官網注冊一個賬號,下載一個 Quartus 軟件。
- 熟悉光盤里的資料。
- 按照視頻上的要求打開一個 Quartus 工程(.qpf 結尾)。
- 裝好 USB-Blaster 驅動連上開發板的 Jtag 口,下載一個(.sof)文件看看效果。
- 按照 PDF 教程里的說明轉化(.sof)文件文件為(.jic)文件,並燒錄到 EPCS 里去。
Quartus 有 免費使用 的網絡版本,免費版本與注冊版本的區別如下:
- 免費版沒有多線程編譯的功能,如果是多核 CPU,免費版只會使用其中一個 CPU,編譯速度會慢一些。
- 免費版如果使用了 IP 核,生成的燒錄文件(.sof)只能在線使用(一直連着電腦),而(.pof)只能使用一個小時。
- 免費版中 Qsys 或者 SOPCBuilder中只能使用 NIOS 精簡核,否則 quartus 編譯報錯。
Quartus 其他版本的區別:
- 9 ~ 10 版本中默認包括了圖形仿真激勵輸入工具,10 ~ 12 版本中又把他刪除了,但在 13 之后的版本再次添加該工具,如果沒有圖形仿真激勵輸入工具要想仿真只能通過編寫 testbench 腳本,testbench 腳本的編寫和 Modelsim 的操作方法對於初學者而言會是個巨大的障礙。
- 11 版本之后 Qsys 會代替 SOPCbuilder 用於構建 NIOS 處理器。
- 14 版本之后的 Quartus 只存在對 64 位機器的支持,而 Modelsim 目前只有 32位版本的。也就是說,如果用戶安裝了 14 之后的版本,在運行 Modelsim仿真軟件時需要 CPU 的虛擬化功能。
總的來說,對於入門而言免費的版本就足夠了。
黑金社區為開發板制作了整套 PDF 教程,而且難得文筆輕松活潑。可惜對我而言筆記性質的教程是教不會初學者什么,想要看懂那些教程需要事先有硬件從業者的經歷以及相關知識。
此外光盤上還附帶有夏文宇老師的《數字邏輯設計》 PDF 版,這本書從語法的角度詳細描述了 verilog 語言,但可能由於成書較早,書中並沒有嚴格的區分可綜合邏輯和不可綜合邏輯,更要命的是沒有介紹實驗的方法,讀者並不知道該用什么軟件來練習書中的例子。
當時在網上查不到任何關於 verilog 的入門視頻,只能去買本《FPGA數字邏輯設計教程——Verilog》作為教材硬着頭皮去啃了。意外的的是老外寫的書着實質量不錯,可惜譯作是以 xilinx 公司的 FPGA 作為練習的例子,使用 ISE 作為開發環境。本以為多多少少的會有些問題,但 verilog 語言強大的通用性消去了不同廠家產品的區別;當我試着把書中的多個開關輸入改為常數,把多個 LED 燈減少到不超過 4 個 LED 燈作為練習,一年下來的入門學習並沒有受到什么影響。
上面講的英文詞匯,可能會讓人覺得雲里霧里,難以理清它們之間的關系和區別。這里簡單的以 51 單片機作為對比,介紹下 FPGA 的相關術語。
| 名稱 |
FPGA |
FPGA |
8051 |
| 生產廠商 |
Altera |
Xilinx |
STC |
| 設計工具 |
Quartus |
ISE |
Keil |
| 語言 |
Verilog HDL、VHDL |
Verilog HDL、VHDL |
C |
最后講一下 Quartus 的安裝,Quartus 是 Altera 公司的產品,它同時支持 Windows 和 Linux 操作系統。其中 Web 版本的下載和使用是免費的,任何人可以到 Altera 官網去注冊下載,百度搜索也可以得到一些下載鏈接,這里假設您已經下載好了對應您機器的版本。
無論是下載組合包,還是獨立文件或者是 DVD 鏡像,解壓后應該能找到類似以下的一些文件,當然不同的版本會有些區別:
雙擊 setup.bat 或者 QuartusSetup.exe 開始安裝,安裝中可能會出現窗口假死的情況,這是由於磁盤讀寫達到上限所導致的:
許可證,不管他,(¬︿̫̿¬☆)哼。
安裝路徑選擇,不想失敗的話就不要做任何修改,默認的是在 C:\altera\13.0sp1,不是在 C:\Program Files\altera\13.0sp1。安裝目錄不允許有任何中文、空格或者特殊符號;同樣的,工程目錄也是如此。
Quartus 安裝選項,64 位機器的請勾上 Quartus II 64-bit support,Modelsim-Altera 也存在免費和付費的版本。
如果安裝了 DSP Builder 就會有這一步,DSP Builder 可以聯合 Matlab 進行 DSP 的設計,這里我沒有裝 Matlab,需要的同學請自行設定。
耐心的等上大約 30 分鍾,配置好的可能會快一些,安裝過程中會有些小彈窗。
完畢,下圖的三個選項是:是否創建桌面快捷方式、是否立即啟動 Quartus 軟件、是否反饋用戶信息。
裝完后,如果提示沒有安裝器件庫,像這樣:
點擊上圖中的確定或是在 Tool 菜單中打開器件安裝工具,注:較老版本的 Quartus 沒有這個 Install Devices 選項:
找到你存放器件庫壓縮包(.qdz)的目錄:
選擇要安裝的器件庫,如果目錄下有多個 qdz 文件,這里會顯示更多。
成功,Quartus 安裝完成。o(^▽^)o


![准備的文件_thumb[1] 准備的文件_thumb[1]](/image/aHR0cHM6Ly9pbWFnZXMyMDE1LmNuYmxvZ3MuY29tL2Jsb2cvNzcxNzMzLzIwMTYwNS83NzE3MzMtMjAxNjA1MzAxMzEzMjI4NTItMzA2OTU5NDY1LnBuZw==.png)
![1_thumb[1] 1_thumb[1]](/image/aHR0cHM6Ly9pbWFnZXMyMDE1LmNuYmxvZ3MuY29tL2Jsb2cvNzcxNzMzLzIwMTYwNS83NzE3MzMtMjAxNjA1MzAxMzEzMjQyMTEtMTAwMjY5MzI0My5wbmc=.png)
![2_thumb[1] 2_thumb[1]](/image/aHR0cHM6Ly9pbWFnZXMyMDE1LmNuYmxvZ3MuY29tL2Jsb2cvNzcxNzMzLzIwMTYwNS83NzE3MzMtMjAxNjA1MzAxMzEzMjUyNTgtMjAyMjc1NDMzLnBuZw==.png)
![3_thumb[2] 3_thumb[2]](/image/aHR0cHM6Ly9pbWFnZXMyMDE1LmNuYmxvZ3MuY29tL2Jsb2cvNzcxNzMzLzIwMTYwNS83NzE3MzMtMjAxNjA1MzAxMzEzMjYzNTItMTM3NTAyNjY2Ni5wbmc=.png)
![4_thumb[1] 4_thumb[1]](/image/aHR0cHM6Ly9pbWFnZXMyMDE1LmNuYmxvZ3MuY29tL2Jsb2cvNzcxNzMzLzIwMTYwNS83NzE3MzMtMjAxNjA1MzAxMzEzMjc2OTYtMTQ3MzAxMTExOC5wbmc=.png)
![5_thumb[1] 5_thumb[1]](/image/aHR0cHM6Ly9pbWFnZXMyMDE1LmNuYmxvZ3MuY29tL2Jsb2cvNzcxNzMzLzIwMTYwNS83NzE3MzMtMjAxNjA1MzAxMzEzMjg3MjctMTM2MDE2OTA4My5wbmc=.png)
![6_thumb[1] 6_thumb[1]](/image/aHR0cHM6Ly9pbWFnZXMyMDE1LmNuYmxvZ3MuY29tL2Jsb2cvNzcxNzMzLzIwMTYwNS83NzE3MzMtMjAxNjA1MzAxMzEzMjk5OTItMTIwOTM4NDIwNS5wbmc=.png)
![8_thumb[1] 8_thumb[1]](/image/aHR0cHM6Ly9pbWFnZXMyMDE1LmNuYmxvZ3MuY29tL2Jsb2cvNzcxNzMzLzIwMTYwNS83NzE3MzMtMjAxNjA1MzAxMzEzMzEwMzktMTQ4MDUyNjY4LnBuZw==.png)
![9_thumb[1] 9_thumb[1]](/image/aHR0cHM6Ly9pbWFnZXMyMDE1LmNuYmxvZ3MuY29tL2Jsb2cvNzcxNzMzLzIwMTYwNS83NzE3MzMtMjAxNjA1MzAxMzEzMzIxMzMtODcyMjQ1NDE1LnBuZw==.png)
![device_unable_thumb[1] device_unable_thumb[1]](/image/aHR0cHM6Ly9pbWFnZXMyMDE1LmNuYmxvZ3MuY29tL2Jsb2cvNzcxNzMzLzIwMTYwNS83NzE3MzMtMjAxNjA1MzAxMzEzMzMwMDgtMjEwMDU5NDA5NC5wbmc=.png)
![devices_install_thumb[1] devices_install_thumb[1]](/image/aHR0cHM6Ly9pbWFnZXMyMDE1LmNuYmxvZ3MuY29tL2Jsb2cvNzcxNzMzLzIwMTYwNS83NzE3MzMtMjAxNjA1MzAxMzEzMzQwODYtNDU0MzE4NDkzLnBuZw==.png)
![devices_1_thumb[1] devices_1_thumb[1]](/image/aHR0cHM6Ly9pbWFnZXMyMDE1LmNuYmxvZ3MuY29tL2Jsb2cvNzcxNzMzLzIwMTYwNS83NzE3MzMtMjAxNjA1MzAxMzEzMzUxNjQtMTgwMzQ0OTMzLnBuZw==.png)
![devices_2_thumb[1] devices_2_thumb[1]](/image/aHR0cHM6Ly9pbWFnZXMyMDE1LmNuYmxvZ3MuY29tL2Jsb2cvNzcxNzMzLzIwMTYwNS83NzE3MzMtMjAxNjA1MzAxMzEzMzYyMTEtNTUwMzI4ODg1LnBuZw==.png)
![devices_3_thumb[2] devices_3_thumb[2]](/image/aHR0cHM6Ly9pbWFnZXMyMDE1LmNuYmxvZ3MuY29tL2Jsb2cvNzcxNzMzLzIwMTYwNS83NzE3MzMtMjAxNjA1MzAxMzEzMzcxMzMtMTAzNTU3NTg5OC5wbmc=.png)
![devices_4_thumb[1] devices_4_thumb[1]](/image/aHR0cHM6Ly9pbWFnZXMyMDE1LmNuYmxvZ3MuY29tL2Jsb2cvNzcxNzMzLzIwMTYwNS83NzE3MzMtMjAxNjA1MzAxMzEzMzc5OTItMTIyNjc0MzUzMi5wbmc=.png)
![devices_6_thumb[1] devices_6_thumb[1]](/image/aHR0cHM6Ly9pbWFnZXMyMDE1LmNuYmxvZ3MuY29tL2Jsb2cvNzcxNzMzLzIwMTYwNS83NzE3MzMtMjAxNjA1MzAxMzEzMzkwMDgtMTA5Mjg1OTgwMy5wbmc=.png)