SOPC第一课 建立QSYS系统
開發(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)化
這部分代碼在第二課講解,為什么這么編寫
注意事項:一旦重新編譯quartus,就需要重新生成BSP
最后在開發(fā)板上面實現(xiàn)了小燈的閃爍。
總結
以上是生活随笔為你收集整理的SOPC第一课 建立QSYS系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决NIOS II工程拷贝后无法编译问题
- 下一篇: SOPC第三课---同时点亮4个LED灯