基于NIOS-II軟核流水燈和串口通信實現

文章目錄

  • 一、創建工程
  • 二、系統設計
      • 1. 在 “component library” 標簽欄中找到 “Nios II Processor” 后點擊 Add
      • 2. 在 ”Component Library” 標簽欄中的查找窗口輸入 jtag 找到 ”JTAG UART ”,然后點擊 Add
      • 3. 添加片上存儲器 On-Chip Memory(RAM)核
      • 4. 查找窗口輸入 pio 找到 ”PIO” 后點擊Add
      • 5. 添加片 System ID Peripheral 核
      • 6. 后續工作
  • 三、基于NIOS-II軟核流水燈實現
  • 四、運行流水燈項目
  • 五、串口通信
  • 六、參考文章

一、創建工程

在這里插入圖片描述
接著一路next

二、系統設計

  • 打開platform designer
  • 啟動 Qsys 后,點擊 File —> save,在文件名中填寫為 kernel,后點擊 OK
    在這里插入圖片描述
  • 鼠標放在 clk_0 處點擊右鍵 Edit 或是雙擊 clk_0 元件,對 Clock 進行時鐘設置,設為為 50M
    在這里插入圖片描述
  • 添加 CPU 和外圍器件

1. 在 “component library” 標簽欄中找到 “Nios II Processor” 后點擊 Add

在這里插入圖片描述
- 在 Nios Core 欄中選擇 Nios II/f 選項,其他保持默認選項
- 將 nios2_qsys_0 重命名為 cpu,點擊 ”Rename” 即可重新命名
- 將 cpu 的 clk 和 reste_n 分別與系統時鐘 clk_0 的 clk 和 clk_reset 相連
在這里插入圖片描述

2. 在 ”Component Library” 標簽欄中的查找窗口輸入 jtag 找到 ”JTAG UART ”,然后點擊 Add

在這里插入圖片描述
- 在 ”Name” 列中將 jtag_uart_0 重命名為 jtag_uart。
- 連線,進行 clk、reset 以及 master-slave 的連線,進行中斷 irq 連線
在這里插入圖片描述

3. 添加片上存儲器 On-Chip Memory(RAM)核

在左側 ”Component Library” 標簽欄中的查找窗口輸入 On Chip 找到 ”On-Chip Memory(RAM or ROM)” 后點擊 Add,修改size如圖中的大小。在這里插入圖片描述
- 將 onchip_memory2_0 改名為 onchip_ram
- 進行時鐘、數據端口、指令端口的連接
在這里插入圖片描述

4. 查找窗口輸入 pio 找到 ”PIO” 后點擊Add

確定以下選項:Width 為 8bits,Direction 選擇 output,其余選項保持默認,點擊Finish。
在這里插入圖片描述
- 返回 ”System Contents” 標簽欄可以看到新加入的 ”PIO” 核。在 ”Name” 列中將pio_0 改名為 pio_led。并在在 Export 欄處雙擊,把輸出口引出來,并命名為 out_led。
- 進行時鐘、數據端口、指令端口的連接
在這里插入圖片描述

5. 添加片 System ID Peripheral 核

  • 在左側 ”Component Library” 標簽欄中的查找窗口輸入 sys 找到 ” System ID Peripheral” 后點擊 Add,保持默認選項,單擊 Finish。
  • 將 sysid_qsys_0 改名為 sysid
  • 進行時鐘、數據端口的連接
    在這里插入圖片描述
    所有的連線如圖所示
    在這里插入圖片描述

6. 后續工作

  • 基地址分配:點擊 Qsys 主界面菜單欄中的 ”System” 下的 ”Assign Base Addresses”。
    在這里插入圖片描述
  • 分配中斷號:在 ”IRQ” 標簽欄下點選 ”Avalon_jtag_slave” 和 IRQ 的連接點就會為 ”jtag_uart” 核添加一個值為 0 的中斷號。
    在這里插入圖片描述
  • 指定 NIos II 的復位和異常地址:從 ”System Contents” 標簽欄雙擊建立好的 cpu 進入 Nios II Processor 的配置界面,配置 Reset Vector 和 Exception Vector 為 ”onchip_ram.s1”,點擊 Finish。
    在這里插入圖片描述
  • 點擊 Qsys 主界面菜單欄中的 ”System” 下的 ”Create Global Reset Network”。完成后會自動連接所有復位端口
  • 生成 Qsys 系統:點選 ”Generation HDL” 標簽欄中 Generate 按鈕生成 Qsys 系統

在這里插入圖片描述

  • 在 Quartus-II 中新建一個原理圖,然后在該原理圖(BDF)文件中添加 Qsys 生成的系統符號
    在這里插入圖片描述
  • 點擊 Assignments-Settings,添加 kernel.qip 文件
    在這里插入圖片描述
  • 進行邏輯連接和生成管腳,在 kernel 模塊內點擊鼠標右鍵選取 Generate Pin for Symbol Ports 生成管腳
    在這里插入圖片描述
  • 菜單里選擇 Assignments-device,然后如下圖所示點擊 Device pin options
    在這里插入圖片描述
  • 進行 unused pin 設置,可能會收到外部信號的干擾,將未用引腳設置為 As
    在這里插入圖片描述
  • 編譯工程
  • 綁定引腳
    在這里插入圖片描述
    完成后關閉 Pin Planner,回到 Quartus Prime 主界面后再次編譯項目。

三、基于NIOS-II軟核流水燈實現

  1. 在 Quartus-II 界面,點擊Tools,然后點擊 Nios II Software Build Tools for Eclipse 打開 Nios II SBT for Eclipse
  2. 啟動 Workspace 選擇當前的項目目錄,點 OK
  3. 創建工程
    在這里插入圖片描述
    在 ”SOPC Information File name” 窗口中選擇 kernel.sopcinfo 文件,以便將生成硬件配置信息和軟件應用關聯,CPU 欄會自動選擇”CPU”。在 ”Project name” 輸入 ”helloWorld” ,Project template選擇 Hello World。
    在這里插入圖片描述
  • 將 hello_world.c 中的程序修改為流水燈控制程序
#include "system.h"
#include "altera_avalon_pio_regs.h"
#include "alt_types.h"
const alt_u8
led_data[8]={0x01,0x03,0x07,0x0F,0x1F,0x3F,0x7F,0xFF};
int main (void) {int count=0;alt_u8 led;volatile int i;while (1){if (count==7){count=0;}else{count++;}led=led_data[count];IOWR_ALTERA_AVALON_PIO_DATA(PIO_LED_BASE, led);i = 0;while (i<500000)i++;}return 0;
}

右鍵單擊項目名稱,在彈出的菜單中選擇 Build Project
在這里插入圖片描述

四、運行流水燈項目

  • 啟動下載硬件代碼在這里插入圖片描述
  • 運行/調試程序,在菜單欄中選擇 Run →Run Configurations
  • 配置 Run Configurations,轉到 ”Target Connection” 標簽欄,點擊右側的 Refresh Connections 將 USB-Blaster 加入
    在這里插入圖片描述
  • 運行結果

在這里插入圖片描述

五、串口通信

實現DE2-115開發板串口輸出“Hello Nios-II”字符到筆記本電腦

只需要在這個項目的基礎上修改hello_world.c中的代碼,改為

#include "system.h"
#include "altera_avalon_pio_regs.h"
#include "alt_types.h"
#include "stdio.h"
const alt_u8
led_data[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
int main (void)
{int count=0;alt_u8 led;volatile int i;while (1){ if (count==7){count=0;}else{count++;}led=led_data[count];IOWR_ALTERA_AVALON_PIO_DATA(PIO_LED_BASE, led);i = 0;printf("Hello Nios-II\n");while (i<500000)i++;}return 0;
}

再按照之前的方法燒錄運行即可
運行結果:
串口

六、參考文章

軟核燒錄時遇到報錯參考的這篇文章:
鏈接: NIOS Ⅱ開發常見問題

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/12838.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/12838.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/12838.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

做簡單易用的GIS資源管理軟件

在室外資源管理領域&#xff0c;采用基于GIS的解決方案已成為主流趨勢&#xff0c;旨在實現資源的高效利用和管理。GIS技術結合資源對象的規劃、定位和監控&#xff0c;為企業提供全面的管理方案&#xff0c;從而優化資源使用、提高運營效率和降低成本。 然而&#xff0c;許多資…

龍迅LT8911EX LVDS橋接到EDP,支持4K30HZ分辨率

龍迅LT8911EX描述&#xff1a; Lontium LT8911EX是LVDS到eDP轉換器&#xff0c;具有單端口或雙端口可配置的LVDS接收器&#xff0c;有1個時鐘通道和最多8個數據通道&#xff0c;每個數據通道最大運行1.2Gbps&#xff0c;最大輸入帶寬為9.6Gbps。轉換器將輸入LVDS數據去序列化&…

OpenNJet產品體驗:探索無限可能

文章目錄 前言一、OpenNJet是什么&#xff1f;二、OpenNJet特性和優點三、OpenNJet功能規劃四、OpenNJet快速上手五、OpenNJet的使用總結 前言 現代社會網絡高速發展&#xff0c;同時也迎來了互聯網發展的高峰&#xff0c;OpenNJet作為一個基于NGINX的面向互聯網和云原生應用提…

掏心經驗分享,軟考中項0基礎入門篇!

想備考下半年中項&#xff08;系統集成項目管理工程師&#xff09;的朋友&#xff0c;不知道如何了解軟考中項&#xff0c;今天給大家整理一篇關于我自己在備考軟考時的一些考量和踩過的一些坑。&#xff08;無廣&#xff0c;放心看&#xff09; 很多小伙伴總是聽大家說軟考中…

NGM-SLAM:首創融合神經輻射場子圖的3DGS-SLAM,問鼎SOTA!

論文標題&#xff1a; NGM-SLAM: Gaussian Splatting SLAM with Radiance Field Submap 論文作者&#xff1a; Mingrui Li, Jingwei Huang, Lei Sun Aaron, Xuxiang Tian, Tianchen Deng, Hongyu Wang 導讀&#xff1a; 3DGS技術因其性能卓越而備受關注&#xff0c;3DGS-SLA…

uniapp微信小程序通過螢石云接入海康攝像機

需求&#xff1a;在uniapp微信小程序上查看海康威視的攝像機監控視頻和和操作攝像機拍攝方向 在螢石云接入海康攝像機設備&#xff0c;由于不同品牌設備在不同時間段接入方式可能不一致&#xff0c;具體接入方式查看官方文檔或咨詢官方客服。 海康攝像機官方客服熱線&#xf…

stack、queue、priority_queue以及仿函數

我們上次對std中的list進行實現&#xff0c;今天我們要實現stack、queue、priority_queue以及仿函數。 目錄 stack堆堆的框架構造函數push插入pop刪除size()大小empty()判斷空top()取棧頂的元素 queue隊列隊列框架問題&#xff1a; 這里我們為什么用deque? 插入刪除取頭數據取…

AI交互數字人賦能農業數字化、智能化推廣營銷

2024陵水荔枝文化節上“數字新農人”陵小荔身著黎族服飾、佩戴銀器亮相開幕式現場&#xff0c;AI交互數字人生動地以互動式推介和歌舞等形式&#xff0c;帶領賓客們了解陵水荔枝的發展歷程、產業布局、未來愿景等。如今&#xff0c;越來越多農產品品牌通過3D虛擬數字人定制&…

Redis和數據庫能做到強一致嗎?

在現代軟件系統中&#xff0c;數據一致性是至關重要的&#xff0c;特別是對于需要處理大量并發請求和實時數據的系統。Redis 和數據庫都是常見的數據存儲解決方案&#xff0c;但它們在保證數據一致性方面有著不同的特點和限制。 本文將深入探討 Redis 和數據庫是否能夠做到強一…

最詳細的提單知識總結 | 數字貿易綜合服務平臺 | 箱訊科技

在外貿交易中&#xff0c;國際物流是必不可少的一個步驟。國際物流掌控好&#xff0c;就等于把貨物牢牢握在手心&#xff0c;不怕貨財兩空。 本期將向大家介紹正本提單、電放提單、海運單三種國際海運放貨方式以及區分它們的方法。 超實用&#xff01;外貿人趕緊收藏~ 正本提…

CTF例題:[SWPU2019]Web1(無列名注入)

網址&#xff1a;BUUCTF在線評測 搜索web1 啟動靶機 點擊鏈接進入題目 進入題目后發現有登錄和注冊接口&#xff0c;直接注冊登錄。 首先通過1進行測試&#xff0c;查看是否有注入點 出現報錯&#xff0c;說明可能存在注入點 然后繼續測試發現該服務器過濾了&#xff1a; or、…

vue(九) 生命周期 v3.0和v2.0對比,父子組件生命周期的執行順序

文章目錄 生命周期vue2.0生命周期1.圖示2.生命周期解釋說明3.代碼示例 vue3.0生命周期1.圖示2.生命周期解釋說明3.代碼示例 父子組件中生命周期執行順序v.3和v2.0生命周期對比 生命周期 每個 Vue 組件實例在創建時都需要經歷一系列的初始化步驟&#xff0c;比如設置好數據偵聽…

Android 獲取已安裝應用、包名、應用名、版本號、版本名

1、相關代碼 List<ApplicationInfo> installedApps getPackageManager().getInstalledApplications(0);for (ApplicationInfo appInfo : installedApps) {CharSequence getAppName getPackageManager().getApplicationLabel(appInfo);String appNamegetAppName.toStrin…

怎么做私域?先來了解私域運營模式!

現在&#xff0c;很多企業都在做私域&#xff0c;但仍舊有很多人會問&#xff1a;我的私域到底要怎么做&#xff1f; 關于這個問題&#xff0c;不同產品無論在消費頻次與客單價上&#xff0c;還是在決策鏈路的長度和復雜度上&#xff0c;都有巨大的差異&#xff0c;消費者需要…

前端 JS 經典:雙等號運算符的運算和轉換規則

1. 運算規則 兩端存在 NaN&#xff0c;返回 false NaN NaN; // false NaN 1; //false undefined 和 null 只有與自身比較&#xff0c;或者相互比較時&#xff0c;才返回 true&#xff0c;和其他原始類型比較都返回 false。 undefined null; // true undefined undefine…

flutter組件封裝技巧

這段代碼是一個用于創建一個&#xff08;GradeTag&#xff09;組件的類。這個組件可以根據輸入的年級和顏色創建一個具有不同顏色和百分比顯示的標簽。 實現原理&#xff1a; 使用GradeTag.origin構造函數來創建一個包含默認顏色和百分比的字符串。這個構造函數使用了assert來…

如何使用AspectJ做切面,打印jar包中方法的執行日記

最近在工作中遇到一個redis緩存中的hash key莫名其妙被刪除的問題&#xff0c;我們用了J2Cache&#xff0c;二級緩存用的是redis。hash key莫名其妙被刪除又沒有日志&#xff0c;就想到做一個切面在調用redis刪除hash key的方法的時候&#xff0c;打印日志&#xff0c;并且把調…

高德、百度開車導航APP是怎么知道紅綠燈倒計時的?

高德、百度開車導航APP之所以能夠知道紅綠燈的倒計時&#xff0c;這背后是一系列復雜的科技手段和數據分析的綜合運用。從交管部門提供的數據&#xff0c;到導航軟件自身通過大數據和算法進行的計算&#xff0c;每一個環節都為紅綠燈倒計時的準確呈現提供了支撐。 首先&#xf…

白酒:低酒精度白酒的消費特點與市場前景

低酒精度白酒的消費特點與市場前景是酒類市場的一個重要話題。隨著品質意識的提高和消費者口味的多樣化&#xff0c;低酒精度白酒逐漸受到越來越多的關注。云倉酒莊豪邁白酒作為白酒的品牌之一&#xff0c;其消費特點和市場前景值得深入探討。 首先&#xff0c;從消費特點來看…

基于YOLOv5的道路裂縫檢測,加入一種基于內容引導注意力(CGA)的混合融合提升2個多點

&#x1f4a1;&#x1f4a1;&#x1f4a1;本文主要內容:詳細介紹道路裂縫檢測整個過程&#xff0c;從數據集到訓練模型到結果可視化分析。 &#x1f4a1;&#x1f4a1;&#x1f4a1;通過加入一種基于內容引導注意力(CGA)的混合融合提升檢測性能&#xff0c; 特征融合創新 | 一…