资源描述:
《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,//