nios自定义外设教程.pdf

nios自定义外设教程.pdf

ID:52794144

大小:163.72 KB

页数:10页

时间:2020-03-30

nios自定义外设教程.pdf_第1页
nios自定义外设教程.pdf_第2页
nios自定义外设教程.pdf_第3页
nios自定义外设教程.pdf_第4页
nios自定义外设教程.pdf_第5页
资源描述:

《nios自定义外设教程.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、自定义指令设计定义指令是基于NIOSII处理器SOPC系统的一个重要特征。NIOSII处理器定制指令不仅扩展了CPU的指令集,还能提高对时间要求严格的软件运行速度,因此提高了系统的整体性能。采用定制指令,用户可以实现传统处理器无法达到的最佳性能。在对数据处理速度要求比较高的场合,把由标准指令序列实现的核心功能变成由一个用于定制的指令来实现,可以明显提高软件的执行效率。给予硬件处理模块的定制指令可通过单个时钟周期或者多个时钟周期的硬件算法操作完成原本十分复杂的处理任务。NIOSII处理器最多支持256条的定制指令,加速通常由软件实现的逻

2、辑和复杂的数学运算。具有定制指令的NiosII硬件结构如图1所示。图1具有定制指令的NiosII硬件结构用户指令实质上就是让软核处理器完成由硬件逻辑实现的某种功能,这个硬件逻辑连接到NIOSII处理器的算术逻辑单元上。对于NIOSII的标准指令,NIOSII使用ALU来完成相应的算术逻辑操作;对于自定义指令,则采用用户自己建立的硬件逻辑来完成运算。用户指令分多种,有组合逻辑指令、多周期指令、扩展指令等等,学明白一个,也就举一反三了,Altera提供了用户模块HDL的模板,通过裁减就可以适应多种指令类型了。模板存放的路径为:alter

3、akitsios2examplesverilogcustom_instruction_templates用户指令逻辑模块结构如图2所示。ò图2用户指令逻辑结构例子://VerilogCustomInstructionTemplateFileforCombinatorialLogicmoduleci_nand(dataa,//OperandA(alwaysrequired)datab,//OperandB(optional)result//result(alwaysrequired));//INPUTSinput[31:0]

4、dataa;input[31:0]datab;//OUTPUTSoutput[31:0]result;//custominstructionlogic(note:noexternalinterfacesareallowedincombinatoriallogic)assignresult=~(dataa&datab);endmodule#include"stdio.h"#include"system.h"#include"sys/alt_timestamp.h"#include"alt_types.h"intmain(void){al

5、t_u32time1,time2;alt_u32a,b,c;a=0xff00ff00;b=0xf0f0f0f0;if(alt_timestamp_start()<0){//开启时间标记服务printf("Can'tStartTimestamp...");}time1=alt_timestamp();//测试时间点1c=ALT_CI_CI_NAND(a,b);//通过宏使用定制指令time2=alt_timestamp();//测试时间点2printf("TheInstructionci_nandruns%ld",time2-t

6、ime1);printf("c=%x",c);time1=alt_timestamp();//测试时间点1c=~(a&b);//通过NiosII指令实现与非功能time2=alt_timestamp();//测试时间点2printf("The~(a&b)runs%ld",time2-time1);printf("c=%x",c);return0;}在生成的system.h文件中,关于CRC自定义指令的宏如下:#defineALT_CI_CI_NAND_N0x00000000#defineALT_CI_CI_NAND(A,B

7、)__builtin_custom_inii(ALT_CI_CI_NAND_N,(A),(B))。“ALT_“是宏定义的前缀,表示为Altera公司,CI是用户定制指令的意思。CI_NAND是用户指令的逻辑模块名称,N表示指令操作码。modulemul16(clk,//CPUsystemclock(requiredforextendedmulti-cycle)reset,//CPUmasterasynchronousactivehighreset(requiredforextendedmulti-cycle)clk_en,//Cloc

8、k-qualifier(requiredforextendedmulti-cycle)dataa,//OperandA(alwaysrequired)datab,//OperandB(optional)result,//

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。