關於 Quartus 的操作可以使用 Quartus 自帶的幫助,幫助中帶有全套的操作教程。
中文網絡教程鏈接(鏈接至 altera中文官網,點擊觀看)
- Quartus II 軟件設計系列:基礎
- Quartus II 軟件中的原理圖設計
- SignalTap II 嵌入式邏輯分析器
- 使用 Nios II 處理器
- 系統控制台
- Nios II 處理器開發軟件:設計流程
- Nios II 處理器開發軟件:MMU 和 MPU
無論是英文幫助還是網絡中文教程,他們的前提是 你是有基礎的,這些教程之會教給你我們的 quartus 套件該如何使用,至於 verilog 你應該實現學習,處理器的基本支持您應該都聽的懂。入門知識並不在他們的職責之內,這本無可厚非,卻給了入門帶來了極大的困難。
這是我的第一個實驗,目的是用一個按鍵控制一個 LED 燈,使用原理圖輸入。
1. 點擊 file –> new project wizard,新建一個項目
2. 輸入工程目錄
quartus要求事先新建一個空目錄用於保存項目文件,路徑不能有中文和空格。
此外項目名稱和頂層模塊名稱一般和目錄名稱一致。
第三行的名稱在使用 HDL 輸入時必須和 頂層模塊名稱一致,否則編譯報錯,這里用的是原理圖輸入,暫時可以不管
3.添加其他文件到項目中
如果你已經寫好了 verilog 文件,並且頂層模塊名稱與項目要求一致,在這里添加其他文件路徑,這里我們留空。
4.選擇 FPGA 的型號。
我用的 AX301 板上的 FPGA 屬於 Cyclone IV EP4CE6FC8N,
Cyclone IV 是 Altera 的低端系列,Cyclone IV 有兩個系列,其中 E 系列為不帶高速收發器,而GX 系列帶有高速收發器。另外結尾的 N 代表無鉛工藝,L 代表 低電壓。
從下面的表格中可也看到,該芯片有 6272 個 LE 單元,180 個用戶管腳,2 個鎖相環。
5.其他工具
quartus 可以使用其他工具來完成 FPGA 的設計,第一項是綜合器的選擇,第二項是仿真工具的選擇,第四項是板級選擇。
因為我們用不着,所以留空。
6.項目總覽
用於確認前幾部的選擇是否正確,看看就可以。
7.項目建成之后,點擊 file –-> new,新建一個原理圖文件
8.原理圖編輯器
雙擊原理圖空白處,彈出以下對話框,在搜索框中輸入 not,表示選擇非門。
同理 and2 就是兩輸入的與門、or2 就是或門。要注意看看其他原件的符號,免得用的時候不知道。
輸入完成后是這個樣子,箭頭按鈕表示選擇,小手表示拖動,此外還有導線(wire),總線(bus)和幾個繪圖按鈕(方塊、橢圓什么的)
如果輸入或者輸出是總線,則需要把名稱改為像這樣的 led[7..0],而不是 led[7:0]。
除了輸入輸出、符號之外,導線也可命名(右鍵點擊導線,進行重命名)。
quartus 和 protel 一樣使用網絡標號來連接導線和總線,比如把一段總線命名為 a[3..0],接着把四根其他導線命名為a[3]、a[2]、a[1]、a[0],就可以可以實現他們之間的連接。
9.分配 FPGA 管腳
這個項目中用到了兩個引腳,一個按鍵和一個 LED,查看用戶手冊,我的用戶手冊如下
這里我選擇使用 LED0 和 KEY1,需要記住兩個引腳名稱 G15 和 E15。(-。-;)
分配管腳后
10.項目設置
這片 EP4CE6F17C8 芯片上可以接多個時鍾,但由於該芯片內置了 PLL (鎖相環,用於分頻,倍頻,改變時鍾相位),對於初學者而言鎖相環就夠了並不需要使用多個時鍾,所以芯片上就多出來的時鍾管腳就用在按鍵上了,這個需要設置一下
在 project –> settings 下點擊右上角的 Device…
找到 Device and Pin Options 這個頁面,設置復用管腳為普通管腳
設置不用的管腳為三態,點擊確定
由於上次我們沒有設置引腳對應的管腳,雖然也生成了 sof 文件,但這個文件不能用。需要再次編譯一下項目。
編譯后查看一下警告、錯誤和提示信息。這里提示的是沒有時序約束文件,初學者不用理會。
警告提示沒有時鍾,時鍾在時序邏輯中一定會用到,這里是簡單組合邏輯,沒用用到時鍾
而最上面的提示就是多用管腳的設置信息。
分配管腳后原理發生了變化,圖上顯示了分配的管腳名稱
11.USB-Blaster 驅動安裝
黑金的手冊和視頻上反復強調,不要帶電插拔 Jtag 線(就是那組10pin 的排線),由於低端的 Cyclone IV 中沒有鉗位二極管,帶電插拔 Jtag 口可能會燒壞 FPGA,我的流程是先關閉開發板開關,連上 Jtag 的兩頭,將 USB-Blaster 的另一頭接上 usb 線,然后連接 USB-blaster 到電腦,連接開發板電源,最后打開開發板電源開關。
連好 USB-Blaster 到電腦,在控制面板依次找到 系統和安全 >> 系統 >> 設備管理器
沒有安裝驅動的在設備管理器中選擇有黃色感嘆號的設備,選擇更新驅動程序,手動指定驅動文件夾路徑到 C:\altera\13.0sp1\quartus\drivers\usb-blaster (這里假設安裝路徑為C盤)。
裝好驅動后設備管理器是這個樣子的
12.燒寫到SRAM
一些個介紹 FPGA 的書中應該有提到,FPGA 基於 SRAM 工藝,SRAM 可以被反復配置,這個配置的過程就對 FPGA 進行編程,使之變成我們想要的功能,簡單的編程可能像本項目一樣只用到幾個門,而復雜點的或許是編寫數碼管或者屏幕驅動。
后期可以把 FPGA 配置為一個處理器 ,quartus 中的 Qsys 或 SOPCBuilder 可以方便的生成一個處理器的 HDL 代碼,這個被稱為為 NIOS 的處理器遠不像 ARM 那么復雜,可以供嵌入式處理器的入門學習。
連好開發板的必須線纜,下面進入燒寫步驟。
設置 USB-Blaster
點擊 AddFile… 選擇項目 output_files 目錄的 sof 文件(我的是 test_project.sof)。點擊 start 按鈕開始燒寫,圖為燒寫成功。
由於 sof 文件燒寫到的 SRAM 斷電后就會丟失。所以 sof 文件多用與用戶調試,而 jic 文件和 pof 文件可以固定在 altera 的專用配置芯片 EPCS 上,從而實現離線運行。
保持連接電腦的狀態,測試下按鍵,是否在按下時LED點亮了。你是否成功了呢? (●'◡'●)
最后當然記得按照以下步驟來斷開連接:
- 關閉開發板電源
- 拔下 USB-Blaster 和電腦的 USB 連線
- 取下開發板的電源線
- 最后斷開 Jtag口。