




已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
NIOS II Step By Step(1)-NIOS II自定義指令NIOS II Step By Step(1)-NIOS II自定義指令可編程軟核處理器最大的特點(diǎn)是靈活,靈活到我們可以方便的增加指令,這在其他SOC系統(tǒng)中做不到的,增加用戶指令可以把我們系統(tǒng)中用軟件處理時(shí)耗費(fèi)時(shí)間多的關(guān)鍵算法用硬邏輯電路來(lái)實(shí)現(xiàn),大大提高系統(tǒng)的效率,更突出的一點(diǎn)是:我們通過(guò)下面的逐步操作會(huì)認(rèn)識(shí)到,這是一個(gè)聽起來(lái)高深,其實(shí)比較容易實(shí)現(xiàn)的功能(我們站在EDA工具這個(gè)巨人肩上,風(fēng)光無(wú)限啊:),通過(guò)這一文檔的介紹可以增強(qiáng)我們掌握NIOS II所有的技術(shù)手段的信心,這也是我把NIOS II 用戶指令放在最前面的用意。7 q$ 1 Q! i/ aFPGA設(shè)計(jì)網(wǎng)論壇 用戶指令就是我們讓NIOS II軟核完成的一個(gè)功能,這個(gè)功能由電路模塊來(lái)實(shí)現(xiàn),這個(gè)電路模塊是用HDL語(yǔ)言描述的。它被連接到NIOS II軟核的算術(shù)邏輯部件上,下面就是示意圖: c_i_1.jpg (22.21 KB)2008-1-6 15:21 用戶指令分多種,有組合邏輯指令、多周期指令、擴(kuò)展指令等等,學(xué)明白一個(gè),也就舉一反三了, Altera提供了用戶模塊HDL的模板,通過(guò)裁減就可以適應(yīng)多種指令類型了。下面就是這個(gè)模版的Verilog形式,很簡(jiǎn)單吧,我想看到這里很多人會(huì)說(shuō):oh,thats easy。模塊里面的內(nèi)容不要我說(shuō)了,也說(shuō)不盡,是你智慧表演的舞臺(tái)了,八仙過(guò)海,各顯神通的機(jī)會(huì)來(lái)了:)7 l4 O- 5 / * P: V! n( d3 O P) A/Verilog Custom Instruction Template% p, N) W: - 5 r. t; * l Cmodule _module_name(FPGA設(shè)計(jì)網(wǎng)論壇9 v / N7 _% g/ M7 M) clk, / CPUs master-input clk 0 s m* b& w8 f# - S$ Yreset, / CPUs master asynchronous reset . x- R3 q7 s5 ! j J( Y6 Z( z Qclk_en, / Clock-qualifier R: 7 _s$ ( M0 X( start, / True when this instr. issues 7 h1 K0 P: i u# s8 zFPGA設(shè)計(jì)網(wǎng)論壇done, / True when instr. completes % q0 F2 & J. Z7 Ldataa, / operand A # G& W* K( J( x- D. datab, / operand B - X0 u- W3 O) dbn, / N-field selector FPGA設(shè)計(jì)網(wǎng)論壇, D1 u8 , K& vm ka, / operand A selector m! l! M6 _: F# n Fb, / operand b selector 6 Q. G6 |# qz& p i/ Vc, / result destination selector J X* N4 ) L& Y, G y# t7 % readra, / register file index % J8 c3 b% C; m0 n2 d. x3 ?readrb, / register file index 2 b% ) % e L2 cwriterc,/ register file index 0 u9 U9 B8 R# I/ eresult / result / b5 e m/ 4 g& J- c+ a$ N1 H7 A: Q 1 E);+ N# ; d; c; h1 D6 Minput clk; M1 O, a* j! W W, | input reset;6 X6 - % G0 X4 M0 I9 1 Sinput clk_en;4 t# fy! / fdinput start; f9 k: CI- a% w* a* N) Winput readra;/ M: o* h3 ?9 h# O) d0 input readrb;/ ?9 w+ U( o1 B+ input writerc; V! n7 t) T- s9 Cinput 7:0 n;% _7 |$ 9 b6 Winput 4:0 a;1 U 5 l; M# $ yinput 4:0 b; X( _2 z) u+ U3 r4 sFPGA設(shè)計(jì)網(wǎng)論壇input 4:0 c; B7 q9 Q6 e1 |4 l6 n+ I4 b9 minput 31:0dataa;- v: H; g1 B# h$ L: g. u* Qinput 31:0datab;# y0 | q N* E9 S: d2 o3 Coutput31:0result;& j2 k0 t; D) j koutput done;FPGA設(shè)計(jì)網(wǎng)論壇4 j% l3 e- o9 l * K$ FPGA設(shè)計(jì)網(wǎng)論壇8 a6 D9 f7 l* h8 ) : |/ Port Declaration& ; w; z& U9 A/ c/ Wire Declaration6 j& 5 P3 C: O) F& k1 D4 H/ Integer Declaration) G. j% J. M. uL& E7 / Concurrent AssignmentFPGA設(shè)計(jì)網(wǎng)論壇 a8 ?, + k: I4 U/ Always Construct, R9 u9 I8 B8 g# m+ u! QendmoduleFPGA設(shè)計(jì)網(wǎng)論壇$ w5 U! N+ 0面兩張圖和表可以幫助我們更深入的理解和總結(jié):- ; m- N: b9 c_i_2.jpg (25.96 KB)2008-1-6 15:21c_i_3.jpg (78.43 KB)2008-1-6 15:21; P8 V+ 7 G% n2 o萬(wàn)事開頭難,那我們就挑個(gè)軟的捏,來(lái)做一條組合邏輯指令吧,下面就是模塊示意圖:FPGA設(shè)計(jì)網(wǎng)論壇# X7 % M這個(gè)模塊只有兩個(gè)輸入,A,B,都是32BIT的,輸出也是32BIT的。你可以讓他們是C=A+B,也可以C=A+1。我們給出一個(gè)HDL范例:2 z% C+ w# X* O- R& t& /Verilog Custom Instruction Template/ S1 Z B. c6 N1 u Lmodule test_custom_instruction(FPGA設(shè)計(jì)網(wǎng)論壇 n( F/ ?1 S0 m5 Ndataa, / operand A / w! Tf# k8 h* c kdatab, / operand B FPGA設(shè)計(jì)網(wǎng)論壇! y% / H# D) Dresult / result $ R8 k: h- Hx7 _. pFPGA設(shè)計(jì)網(wǎng)論壇);1 g7 Z( q% 6 C% A, linput 31:0dataa;5 j& T N q) i1 C* v D8 ?: Uinput 31:0datab;2 q, U$ w) N: Y6 b! boutput31:0result;: l% 5 M: i/ - ?8 ?FPGA設(shè)計(jì)網(wǎng)論壇5 P2 1 l0 V% # m; _assign result=dataa+1;) v; s$ |/ I, N- XV( : L9 R, C z3 d1 K4 X, c- t endmodule+ K2 O# e3 p* / v% e上面的模塊實(shí)現(xiàn)A+1,很簡(jiǎn)單。其他指令類型也就是增加了PORT口,里面處理更復(fù)雜一點(diǎn)。下面是多周期指令的塊圖:4 o* A% n7 C2 O: E c_i_5.jpg (14.97 KB)2008-1-6 15:21 有了以上概念,和HDL模塊的準(zhǔn)備,我們可以進(jìn)入實(shí)際操作了,打開QUARTUS II,建一個(gè)工程,再進(jìn)入SOPC BUILDER,建好相關(guān)的SOPC 環(huán)境,下圖是FreeDev2.1 EP1C12+100M開發(fā)板的一個(gè)配置! d! l9 , T c_i_6.jpg (143.94 KB)2008-1-6 15:21 X- m) f* & z: n9 p/ % Q雙擊CPU項(xiàng)就進(jìn)入CPU配置,設(shè)置用戶指令我們要選最后一個(gè)表單(Custom Instructions TAB)。見下圖- O, u+ s8 Z6 C* WFPGA設(shè)計(jì)網(wǎng)論壇c_i_7.jpg (36.71 KB)2008-1-6 15:210 $ Q. P2 Z8 i1 I& 4 6 YC在該表單中我們點(diǎn)擊IMPORT,來(lái)加入我們的HDL模塊,見下圖:c_i_8.jpg (43.42 KB)2008-1-6 15:211 db2 K1 P7 I在IMPORT操作窗口上,點(diǎn)擊ADD增加用戶指令模塊,點(diǎn)擊read port list from files顯示模塊PORT。$ 最后點(diǎn)擊Add to System完成用戶指令的添加。在SOPC BUILDER 中生成系統(tǒng),并在QUARTUS II中重新編譯整個(gè)工程,并program編程開發(fā)板器件,這樣硬件部分就完成了。下面我們就可以在NIOS II IDE中來(lái)編程使用我們的指令了。: 5 W- t; H5 d& b由于我們?cè)赟OPC BUILDER 中增加了用戶指令,SOPC BUILDER 生成的PTF文件中包含了相關(guān)信息,我們?cè)贜IOS II IDE 中增加新軟件工程項(xiàng)目編譯時(shí),系統(tǒng)根據(jù)SOPC BUILDER生成的PTF文件生成了硬件系統(tǒng)描述的system.h。在該頭文件中系統(tǒng)已經(jīng)為用戶指令生成了相關(guān)的宏,我們以上定制的用戶指令在system.h中相關(guān)部分如下:/*- + z1 M6 N* k7 G! O: S! D+ o* custom instruction macroswww.fpga-desi*/#define ALT_CI_TEST_CUSTOM_INSTRUCTION_N 0x000000005 y2 l/ q- k1 p# . R#defineALT_CI_TEST_CUSTOM_INSTRUCTION(A,B) _builtin_custom_inii(ALT_CI_TEST_CUSTOM_INSTRUCTION_N,(A),(B), d%1 8 f8 S6 B4 F# G8 t. k注意_builtin_custom_inii是Altera 移植GCC后的built_in Function。5 |6 7 X/ K2 B/ C# v最后,我們創(chuàng)建一個(gè)Hello World工程,稍微改動(dòng)一下: O U, % J0 g# b! b#include 1 i3 t6 V$ p4 j l( #include + f9 e, d9 D( 3 x4 G! B5 ?+ b! E# Amint main()& I4 F4 T3 A% M! Y* 4 Dint a
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 內(nèi)蒙古自治區(qū)赤峰市紅山區(qū)赤峰第四中學(xué)2024-2025學(xué)年高二下學(xué)期4月月考地理試題 含解析
- 教學(xué)方法精細(xì)化運(yùn)用與發(fā)展課件
- 外墻磚維修安全施工方案
- 模式經(jīng)營(yíng)種植協(xié)議書
- 滴滴退市和解協(xié)議書
- 授權(quán)簽訂合同協(xié)議書
- 活動(dòng)場(chǎng)景布置協(xié)議書
- 活動(dòng)板房拆除協(xié)議書
- 機(jī)械租用合同協(xié)議書
- 渠道招商授權(quán)協(xié)議書
- 項(xiàng)目聯(lián)合體協(xié)議(標(biāo)前)
- 智能工廠數(shù)字化交付 第2部分:設(shè)計(jì)交付 征求意見稿
- 護(hù)理查房(抑郁發(fā)作)
- 2023年新高考天津數(shù)學(xué)高考真題(解析版)
- 小學(xué)英語(yǔ)滬教版單詞表(測(cè)試版)
- 博物館物業(yè)服務(wù)投標(biāo)方案(技術(shù)方案)
- 2024年高級(jí)電工職業(yè)鑒定考試題庫(kù)-下(多選、判斷題)
- GB/T 32399-2024信息技術(shù)云計(jì)算參考架構(gòu)
- 2024-2030年中國(guó)郵輪行業(yè)市場(chǎng)發(fā)展?fàn)顩r及發(fā)展前景與趨勢(shì)研究報(bào)告
- 文言文二則 囊螢夜讀 公開課一等獎(jiǎng)創(chuàng)新教學(xué)設(shè)計(jì)+說(shuō)課稿+(共25張)
- 2023年山東煙臺(tái)中考滿分作文《這一路風(fēng)光真好》
評(píng)論
0/150
提交評(píng)論