日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

第八周---FPGA流水灯显示和串口循环输出实验

發布時間:2023/12/8 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第八周---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的輸出狀態
實驗代碼:

module led_test(input i_clk, //input clk ,50mhzinput i_rst_n, //reset, active lowoutput reg [3:0]o_led //led out);reg [26:0] led_count; //------------------------------------------------------------------- // 流水燈計數器 //------------------------------------------------------------------- always @ (posedge i_clk or negedge i_rst_n)beginif(!i_rst_n)led_count <=27'd0; elseled_count <=led_count + 27'd1; end//-------------------------------------------------------------------// 計數器bit24置1,表示已大約計數335ms,每隔335ms,led_count[26:24]自動加1//------------------------------------------------------------------- always @ (posedge clk or negedge i_rst_n)beginif(!i_rst_n)o_led <=4'b1111; else begincase(led_count[26:24]) //when 25th bit set= 335ms3'b000: o_led<= 4'b1110; 3'b001: o_led<= 4'b1101; 3'b010: o_led<= 4'b1011; 3'b011: o_led<= 4'b0111; 3'b100: o_led<= 4'b1100; 3'b101: o_led<= 4'b1001; 3'b110:o_led <= 4'b0011;3'b111: o_led<= 4'b0000; default: o_led<= o_led; endcaseendend endmodule


2.串口循環輸出“Hello Nios-II”字符串到筆記本電腦

第一步 創建工程如同1中的一樣


第二步:選擇合適芯片進行FPGA開發

第三步 設置tools中Qsys設置

第四步 配置,線路連接:


第五步 然后保存文件,關閉Qsys。
回到Quarters,選擇New->Verilog HDL File。
實驗代碼

module hello_world(input clk,input reset_n ); //此處的代碼可以通過Qsys中的Generate->Generate Example,復制里面的內容,粘貼到此處,進行相應的修改 system_qsys u_qsys (.clk_clk (clk), // clk.clk.reset_reset_n (reset_n) // reset.reset_n);endmodule

第六步 打開Nios II Software Build Tools for Eclipse
File->New->Nios II Application and BSP from Template

第七步 打開hello_world中的.c

#include <stdio.h> int main() {printf("Hello world!\n");return 0; }

點擊保存,選擇hello_wold_bsp,右鍵后,選擇Nios II中的Generate BSP

總結

以上是生活随笔為你收集整理的第八周---FPGA流水灯显示和串口循环输出实验的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。