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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

SOPC第三课---同时点亮4个LED灯闪烁

發布時間:2025/4/5 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SOPC第三课---同时点亮4个LED灯闪烁 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本欄目將會介紹Alteral的SOPC系列,整個過程不會沿襲教材,那樣就成了抄教材了,而是將課程筆記匯總,并且把一些我實驗過程中犯過的錯誤記錄下來。
更新時間比較緩慢。
資源: 鋯石A4開發板
小梅哥AC620開發板
----

  • 介紹
    SOPC是基于FPGA的SOC系統
  • 建立基于NIOS II處理器系統來控制一個LED燈閃爍
  • 創建工程

  • 打開QSYS

    nios的3種性能
    經濟型,標準型,快速型
    硬件乘法器的類型默認使用嵌入式的硬件乘法
    exception vector(異常向量)
    出現異常后,從哪一個地址開始運行。
    MMU and MPU
    要在nios跑linux系統才勾選,
    細節在以后的應用中再不斷補充

  • 建系統






我們建立好上面的系統。
指令總線就是加減乘除
數據總線就是數字。所以對于存儲的設備,我們會進行加減乘除等運算。但是對于輸出管腳等非存儲設備,我們只用將CPU的數據送達即可,不需要將指令送達。指令在存儲類設備or cpu中完成。
我們的pio需要導出,控制著我們的led亮or滅
地址,我們可以自動分配。如果我們要清醒ROM從0開始分配,用小鎖鎖住即可,再進行自動分配。
另外設置好nios里面的復位向量(指向ROM)和異常向量(指向RAM)
注意nios時鐘要與實際的時鐘一致
將HDL example拷貝到quartus頂層文件當中。

并記得把我們的qsys系統納入我們的FPGA工程。


我們現在把PIO改為控制4個燈
注意只有在generate過后,才會生成正確的HDL模板


注意我們添加的QSYS系統是.qip
管腳分配,可在assignment edtor里面把之前的管腳名字刪除,然后重新分配管腳

#include "system.h" #include "altera_avalon_pio_regs.h" #include "alt_types.h" int main(void) { alt_u8 led = 0; alt_u32 i; while(1) { led = 0X0; IOWR_ALTERA_AVALON_PIO_DIRECTION(PIO_0_BASE,0XF);//此寄存器控制PIO的方向 IOWR_ALTERA_AVALON_PIO_DATA(PIO_0_BASE, led);//點亮LED燈 i = 0; while(i<500000) //延時功能,非精確延時,數值太小將無法看到燈的閃爍效果 { i++; } led = 0XF; IOWR_ALTERA_AVALON_PIO_DATA(PIO_0_BASE, led);//熄滅LED燈 i = 0; while(i<500000) //延時功能,非精確延時,數值太小將無法看到燈的閃爍效果 { i++; } } return 0; }

另外記得一旦quartus編譯過后,一定要重新生成bsp
一定要先保存,再編譯,eclipse不會自動保存
下面是測試結果

總結

以上是生活随笔為你收集整理的SOPC第三课---同时点亮4个LED灯闪烁的全部內容,希望文章能夠幫你解決所遇到的問題。

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