我的 FPGA 學習歷程(02)—— 實驗:點亮 LED 燈


關於 Quartus 的操作可以使用 Quartus 自帶的幫助,幫助中帶有全套的操作教程。

中文網絡教程鏈接(鏈接至 altera中文官網,點擊觀看)

  1. Quartus II 軟件設計系列:基礎
  2. Quartus II 軟件中的原理圖設計
  3. SignalTap II 嵌入式邏輯分析器
  4. 使用 Nios II 處理器
  5. 系統控制台
  6. Nios II 處理器開發軟件:設計流程
  7. Nios II 處理器開發軟件:MMU 和 MPU

無論是英文幫助還是網絡中文教程,他們的前提是 你是有基礎的,這些教程之會教給你我們的 quartus 套件該如何使用,至於 verilog 你應該實現學習,處理器的基本支持您應該都聽的懂。入門知識並不在他們的職責之內,這本無可厚非,卻給了入門帶來了極大的困難。

這是我的第一個實驗,目的是用一個按鍵控制一個 LED 燈,使用原理圖輸入。

1. 點擊 file –> new project wizard,新建一個項目

新建項目1

 

2. 輸入工程目錄

        quartus要求事先新建一個空目錄用於保存項目文件,路徑不能有中文和空格。

        此外項目名稱和頂層模塊名稱一般和目錄名稱一致。

        第三行的名稱在使用 HDL 輸入時必須和 頂層模塊名稱一致,否則編譯報錯,這里用的是原理圖輸入,暫時可以不管

新建項目2

3.添加其他文件到項目中

        如果你已經寫好了 verilog 文件,並且頂層模塊名稱與項目要求一致,在這里添加其他文件路徑,這里我們留空。

新建項目3

4.選擇 FPGA 的型號。

       我用的 AX301 板上的 FPGA 屬於 Cyclone IV EP4CE6FC8N,

Cyclone IV 是 Altera 的低端系列,Cyclone IV 有兩個系列,其中 E 系列為不帶高速收發器,而GX 系列帶有高速收發器。另外結尾的 N 代表無鉛工藝,L 代表 低電壓。

       從下面的表格中可也看到,該芯片有 6272 個 LE 單元,180 個用戶管腳,2 個鎖相環。

新建項目4

5.其他工具

       quartus 可以使用其他工具來完成 FPGA 的設計,第一項是綜合器的選擇,第二項是仿真工具的選擇,第四項是板級選擇。

       因為我們用不着,所以留空。

新建項目5

6.項目總覽

      用於確認前幾部的選擇是否正確,看看就可以。

新建項目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,查看用戶手冊,我的用戶手冊如下

按鍵對應引腳

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盤)。

       裝好驅動后設備管理器是這個樣子的

USB-Blaster驅動

12.燒寫到SRAM

        一些個介紹 FPGA 的書中應該有提到,FPGA 基於 SRAM 工藝,SRAM 可以被反復配置,這個配置的過程就對 FPGA 進行編程,使之變成我們想要的功能,簡單的編程可能像本項目一樣只用到幾個門,而復雜點的或許是編寫數碼管或者屏幕驅動。

后期可以把 FPGA 配置為一個處理器 ,quartus 中的 Qsys 或 SOPCBuilder 可以方便的生成一個處理器的 HDL 代碼,這個被稱為為 NIOS 的處理器遠不像 ARM 那么復雜,可以供嵌入式處理器的入門學習。

       連好開發板的必須線纜,下面進入燒寫步驟。

       設置 USB-Blaster

配置USB-Blaster

        點擊 AddFile… 選擇項目 output_files 目錄的 sof 文件(我的是 test_project.sof)。點擊 start 按鈕開始燒寫,圖為燒寫成功。

燒寫成功

     由於 sof 文件燒寫到的 SRAM 斷電后就會丟失。所以 sof 文件多用與用戶調試,而 jic 文件和 pof 文件可以固定在 altera 的專用配置芯片 EPCS 上,從而實現離線運行。

保持連接電腦的狀態,測試下按鍵,是否在按下時LED點亮了。你是否成功了呢?   (●'◡'●)

最后當然記得按照以下步驟來斷開連接:

  1. 關閉開發板電源
  2. 拔下 USB-Blaster 和電腦的 USB 連線
  3. 取下開發板的電源線
  4. 最后斷開 Jtag口。 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM