第八周---FPGA流水灯显示和串口循环输出实验
文章目錄
- 前言
- 1.流水燈顯示
- 2.串口循環輸出“Hello Nios-II”字符串到筆記本電腦
前言
學習 Quartus-II 、Platform Designer、Nios-II SBT 的基本操作;初步了解 SOPC 的開發流程,基本掌握 Nios-II 軟核的定制方法;掌握 Nios-II 軟件的開發流程,軟件的基本調試方法。
完成以下實驗:1) 流水燈顯示; 2) 串口循環輸出“Hello Nios-II”字符串到筆記本電腦。
1.流水燈顯示
第一步:從開始菜單啟動Quartus II 13.1(64 bit) ,如下
第二步:菜單欄選擇File—>New Project Wizard,新建工程
第三步:彈出新建工程對話框,點擊Next,下一步
第三步:如下圖,依次設置工程的存放路徑,工程名稱,頂層文件名稱,如圖依次設置好,這里我們將所有工程相關的文件放在prj文件夾內,便于工程文件與源碼文件的管理,同時要保持工程名稱與頂層實體名稱一致,繼續Next
第四步:添加設計文件,這一步我們不需要添加,后續我們會新建相應的代碼文件。這里繼續Next
第五步:選擇FPGA器件,如圖所示,這里我們選擇器件家族是CycloneIV系列的,封裝是FBGA,管腳數為256,速度等級為8。這里速度等級越小,速度越快。這里我們FPGA的具體型號為EP4CE6F17C8。大家通過這個對話框了解這個器件的基本資源。這里我簡單介紹一下這些資源的名稱,在后面的章節里我們還會詳細講解FPGA內部資源與結構。
1、CoreVoltage是內核電壓,Cyclone IV的內核電壓是1.2V。
2、LE是Altera最基本的邏輯單元,LEs表示FPGA的所有的邏輯資源, 我們這款芯片的邏輯資源數為6272。
3、User I/Os表示用戶IO數,這里共有180個IO可以供用戶使用。
4、Memory Bits與embedded multiplier 9-bit elements實際是一回事,后者簡稱M9K,M9K就是指位寬為9bit,深度為1K的RAM。這里一共有30個M9K,大家計算一下9102430=276480就是Memory Bits。
5、PLL鎖相環,內部一共有兩個鎖相環。
6、Global clocks全局時鐘網絡數,這里一共有10個。設計中的時鐘信號會優先全局時鐘資源。
第六步:設置EDA工具,這里我們就設置一下仿真工具,使用默認Modelsim
-Altera,語言選擇Verilog。實際后面我們不建議大家使用Modelsim-Altera。我們會推薦大家在直接使用Modelsim-SE,后者的通用性更強。繼續Next。
第七步:總結新建工程的基本信息。到這里就完成工程的建立
第八步:新建verilog源文件,如下圖,點擊新建文件圖標,或者通過菜單欄File—>New打開新建文件向導
在新建文件向導中,選擇Verilog HDL File,點擊OK。
因為我們已經配置過UltraEdit為默認編輯器,此時會打開UltraEdit(注意:UltraEdit編輯Verilog代碼前,要添加語法高亮文件,詳見3.3.3節內容),彈出新建源文件,將源文件另存至src文件夾下,命名為led_test.v與頂層實體名稱一致。我們將源碼文件和工程文件放在不同文件夾下,方便日后的工程維護。
編寫代碼邏輯,這里我們實現了一個流水燈。這里我們用了一個27位的計數器,時鐘頻率為50MHz,周期為20ns,當計數到第25位置位時,計數器值為25’d16777216,此時時間為16777216*20ns=335ms。這樣每大約經過335ms,計數器的[26:24]位就會加1。我們第一個always實現計數器,第二個always實現控制不同時間時LED的輸出,即每隔335ms改變一次LED的輸出狀態
實驗代碼:
2.串口循環輸出“Hello Nios-II”字符串到筆記本電腦
第一步 創建工程如同1中的一樣
第二步:選擇合適芯片進行FPGA開發
第三步 設置tools中Qsys設置
第四步 配置,線路連接:
第五步 然后保存文件,關閉Qsys。
回到Quarters,選擇New->Verilog HDL File。
實驗代碼
第六步 打開Nios II Software Build Tools for Eclipse
File->New->Nios II Application and BSP from Template
第七步 打開hello_world中的.c
點擊保存,選擇hello_wold_bsp,右鍵后,選擇Nios II中的Generate BSP
總結
以上是生活随笔為你收集整理的第八周---FPGA流水灯显示和串口循环输出实验的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎样查看自己的IP地址
- 下一篇: 车牌识别