SOPC第一课 建立QSYS系统
開發(fā)板:小梅哥AC620
軟件:quartus 13.1
- 介紹
軟核處理器代表:nios II Xilinx 的 microBlaze核
nios II提供強(qiáng)大的HAL系統(tǒng)庫支持
2004年推出nios II
在QSYS完成后生成一個系統(tǒng)模塊,由QSYS最終生成的系統(tǒng)模塊相當(dāng)于傳統(tǒng)的單片機(jī)或ARM
本課程任務(wù):
搭建帶有2KB指令高速緩存的NIOS II/s
4KB片內(nèi)ROM存儲器(on chip ROM)用來存儲程序代碼以及程序運(yùn)行空間
4KB片內(nèi)RAM存儲器(on_chip RAM)用來讀取變量、堆棧等空間
用戶可以在nios II指令集仿真器(ISS)上仿真軟件運(yùn)行。如果讀者擁有開發(fā)板以及USB blaster下載電纜,用戶,將能目睹。
- 搭建QSYS
QSYS提供GUI界面,所有設(shè)置保存在一個以系統(tǒng)命名的qsys文件中。該系統(tǒng)創(chuàng)建了所有的qsys輸出文件(HDL邏輯文件、C程序的頭文件和庫文件、模擬仿真文件等)
system.qsys:QSYS系統(tǒng)文件(.qsys)–用來描述系統(tǒng)的硬件架構(gòu)
system.sopcinfo:sopc信息文件(.sopcinfo)提供給eclipse 硬件信息
時鐘頻率要求要與系統(tǒng)實際運(yùn)行的時鐘頻率相匹配。否則一些設(shè)計到精確時序參數(shù)的外設(shè)(定時器、UART、SPI等等)可能無法正常工作
復(fù)位向量:用來設(shè)置CPU復(fù)位后從何處開始啟動,我們可以將CPU的復(fù)位向量設(shè)置于FLASH,例如EPCS存儲器。這樣系統(tǒng)即可上電后自動從flash中復(fù)制程序代碼到內(nèi)存中并運(yùn)行。該選項只有當(dāng)CPU的存儲器系統(tǒng)就緒后方可設(shè)置
異常向量:用來存放CPU處理異常事件的代碼,例如終端處理代碼。在一個典型的系統(tǒng)中,該向量應(yīng)該指向一個低延遲的存儲器,例如SDRAM、SRAM、或者片上存儲器(on chip RAM)
fast TLB Miss Exception vextor: 不做介紹,與MMU相關(guān)
本選項主要設(shè)置CPU的數(shù)據(jù)和指令緩存部件
instruction cache:用來緩存NIOS II處理器的各種指令,該緩存大小從512字節(jié)到64K字節(jié)。
data cache:數(shù)據(jù)緩存用于存放緩存數(shù)據(jù)的大小,改緩存大小從512字節(jié)到64K字節(jié)。
添加ROM和RAM
不用使能非默認(rèn)初始化文件,默認(rèn)會有IDE編譯生成給QSYS。
同理,創(chuàng)建4KB的RAM
添加PIO
設(shè)置4個bit的PIO
添加ID
當(dāng)QSYS生成NIOS系統(tǒng)時,將為該NIOS II系統(tǒng)生成一個ID號。該標(biāo)識會被寫入SYSTEM ID寄存器中,供IDE編譯器和用戶辨別所運(yùn)行的程序是否與目標(biāo)系統(tǒng)匹配。
如果用戶程序不是基于IDE的NIOS II系統(tǒng),那么調(diào)試時,NIOS II將阻止用戶下載程序到NIOS II系統(tǒng),當(dāng)然,我們也可以在調(diào)試時候,選擇忽略系統(tǒng)ID的核對。
將其PIO雙擊導(dǎo)出
copy verilog代碼
點擊generate
搭建軟件部分
將QSYS軟核納入工程
ctrl+K編譯綜合
分配管教
BSP工程創(chuàng)建時會根據(jù).sopcinfo文件中定義的NIOS II系統(tǒng)的硬件信息,生成對應(yīng)的設(shè)備驅(qū)動(drivers)HAL庫(HAL)以及硬件信息頭文件(system.h)
在左端將BSP關(guān)聯(lián)起來
關(guān)閉優(yōu)化
這部分代碼在第二課講解,為什么這么編寫
注意事項:一旦重新編譯quartus,就需要重新生成BSP
最后在開發(fā)板上面實現(xiàn)了小燈的閃爍。
總結(jié)
以上是生活随笔為你收集整理的SOPC第一课 建立QSYS系统的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决NIOS II工程拷贝后无法编译问题
- 下一篇: SOPC第三课---同时点亮4个LED灯