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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

SOPC第一课 建立QSYS系统

發(fā)布時間:2025/4/5 windows 12 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SOPC第一课 建立QSYS系统 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

開發(fā)板:小梅哥AC620
軟件:quartus 13.1

  • 介紹
    軟核處理器代表:nios II Xilinx 的 microBlaze核
    nios II提供強大的HAL系統(tǒng)庫支持
    2004年推出nios II
    在QSYS完成后生成一個系統(tǒng)模塊,由QSYS最終生成的系統(tǒng)模塊相當于傳統(tǒng)的單片機或ARM

本課程任務:
搭建帶有2KB指令高速緩存的NIOS II/s
4KB片內ROM存儲器(on chip ROM)用來存儲程序代碼以及程序運行空間
4KB片內RAM存儲器(on_chip RAM)用來讀取變量、堆棧等空間


用戶可以在nios II指令集仿真器(ISS)上仿真軟件運行。如果讀者擁有開發(fā)板以及USB blaster下載電纜,用戶,將能目睹。

  • 搭建QSYS
    QSYS提供GUI界面,所有設置保存在一個以系統(tǒng)命名的qsys文件中。該系統(tǒng)創(chuàng)建了所有的qsys輸出文件(HDL邏輯文件、C程序的頭文件和庫文件、模擬仿真文件等)
    system.qsys:QSYS系統(tǒng)文件(.qsys)–用來描述系統(tǒng)的硬件架構
    system.sopcinfo:sopc信息文件(.sopcinfo)提供給eclipse 硬件信息


時鐘頻率要求要與系統(tǒng)實際運行的時鐘頻率相匹配。否則一些設計到精確時序參數(shù)的外設(定時器、UART、SPI等等)可能無法正常工作

復位向量:用來設置CPU復位后從何處開始啟動,我們可以將CPU的復位向量設置于FLASH,例如EPCS存儲器。這樣系統(tǒng)即可上電后自動從flash中復制程序代碼到內存中并運行。該選項只有當CPU的存儲器系統(tǒng)就緒后方可設置
異常向量:用來存放CPU處理異常事件的代碼,例如終端處理代碼。在一個典型的系統(tǒng)中,該向量應該指向一個低延遲的存儲器,例如SDRAM、SRAM、或者片上存儲器(on chip RAM)
fast TLB Miss Exception vextor: 不做介紹,與MMU相關

本選項主要設置CPU的數(shù)據(jù)和指令緩存部件
instruction cache:用來緩存NIOS II處理器的各種指令,該緩存大小從512字節(jié)到64K字節(jié)。
data cache:數(shù)據(jù)緩存用于存放緩存數(shù)據(jù)的大小,改緩存大小從512字節(jié)到64K字節(jié)。
添加ROM和RAM

不用使能非默認初始化文件,默認會有IDE編譯生成給QSYS。
同理,創(chuàng)建4KB的RAM
添加PIO

設置4個bit的PIO

添加ID
當QSYS生成NIOS系統(tǒng)時,將為該NIOS II系統(tǒng)生成一個ID號。該標識會被寫入SYSTEM ID寄存器中,供IDE編譯器和用戶辨別所運行的程序是否與目標系統(tǒng)匹配。
如果用戶程序不是基于IDE的NIOS II系統(tǒng),那么調試時,NIOS II將阻止用戶下載程序到NIOS II系統(tǒng),當然,我們也可以在調試時候,選擇忽略系統(tǒng)ID的核對。

將其PIO雙擊導出
copy verilog代碼
點擊generate

搭建軟件部分
將QSYS軟核納入工程

ctrl+K編譯綜合

分配管教

BSP工程創(chuàng)建時會根據(jù).sopcinfo文件中定義的NIOS II系統(tǒng)的硬件信息,生成對應的設備驅動(drivers)HAL庫(HAL)以及硬件信息頭文件(system.h)


在左端將BSP關聯(lián)起來


關閉優(yōu)化

#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 = 0; IOWR_ALTERA_AVALON_PIO_DATA(PIO_0_BASE, led);//點亮LED燈 i = 0; while(i<500000) //延時功能,非精確延時,數(shù)值太小將無法看到燈的閃爍效果 { i++; } led = 1; IOWR_ALTERA_AVALON_PIO_DATA(PIO_0_BASE, led);//熄滅LED燈 i = 0; while(i<500000) //延時功能,非精確延時,數(shù)值太小將無法看到燈的閃爍效果 { i++; } } return 0; }

這部分代碼在第二課講解,為什么這么編寫

注意事項:一旦重新編譯quartus,就需要重新生成BSP
最后在開發(fā)板上面實現(xiàn)了小燈的閃爍。

總結

以上是生活随笔為你收集整理的SOPC第一课 建立QSYS系统的全部內容,希望文章能夠幫你解決所遇到的問題。

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