PicoBlaze处理器软核中的KCPSM6应用技巧与案例.docx

上传人:lao****ou 文档编号:788916 上传时间:2024-05-22 格式:DOCX 页数:17 大小:340.95KB
下载 相关 举报
PicoBlaze处理器软核中的KCPSM6应用技巧与案例.docx_第1页
第1页 / 共17页
PicoBlaze处理器软核中的KCPSM6应用技巧与案例.docx_第2页
第2页 / 共17页
PicoBlaze处理器软核中的KCPSM6应用技巧与案例.docx_第3页
第3页 / 共17页
PicoBlaze处理器软核中的KCPSM6应用技巧与案例.docx_第4页
第4页 / 共17页
PicoBlaze处理器软核中的KCPSM6应用技巧与案例.docx_第5页
第5页 / 共17页
亲,该文档总共17页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《PicoBlaze处理器软核中的KCPSM6应用技巧与案例.docx》由会员分享,可在线阅读,更多相关《PicoBlaze处理器软核中的KCPSM6应用技巧与案例.docx(17页珍藏版)》请在第一文库网上搜索。

1、PicoB1aze处理器软核中的KCPSM6应用技巧与案例PicoB1aze是8位微处理器,在Xi1inx公司的Virtex、Spartan-II系列以上F记A与COoIRUnne1n系列以上的CP1D器件设计中以IP核的方式提供,使用是免费的。常见的版本有KCPSM3和KCPSM6。其中KCPSM支持7系列的XiIinXFPGA0PiCOB1aZe非常小,只有一个VHD1/Veri1og文件,KCPSM6在FPGA中只需要26块逻辑单元S1ice,每个指令都可以再2个晅周期内完成,在Spartan-6中可以达到105MHZ时钟频率(-2速度等级),在Kin纹x-7(-3速度等级)中能到达23

2、8MHz。它能提供两个寄存器Bank,每个Bank有16个寄存器。KCPSM6ArchitectureandFeaturesOCopyright2010-2014XnxPteaMrefertodscrptknsonthfo11owingpageI:XK-INX.另外很多时候我们用FPGA的HD1语言很难实现某些功能,但是用软件方式就比较容易,但是我们又不希望花很多硬件资源去搭建一个嵌入式系统,比如基于MiCrOB1aZe的系统。这样,我们就可以使用轻量级的PiCOBIaZe实现。通常使用汇编语言写PiCoB1aZe程序,以KCPSM6为例,我们基于它的指令集可以很方便实现一些简单的程序,指令集

3、如下:KCPSIVI6InstructionSetMA:12bitddr000tTTTXM3-btconstant00toFFPP:-b1tport:000torrpI4-bitportXD0toFRgistfIoXEShiftandRotateintmftHand1ingS3OOxyO1OAD,X.SY4714x06S1OX.28000DXSAB1CINTERRUPTaO1xkk1OKDkk4714x07S11sX28001ENAB1XXNTERftOPT7:XxyOSTAR,YT14x04S1X5X1429000RETURN:DXSAB1CI7kkSTAR714x00S1AXB42900X

4、MTWN:KNAB1CFgOpcodeIAOtructiMR1SX109iC11Fg“83Eaaa“26XyOJUMP“JUMPZJUMPN2rJUMPCJUM?NCvJUW(SsY59IOxyOADO”SY7037001RCCBKKB59eoIIXrI2yADObXkkADOCYstYInputandOutput60UxkkADOCYXkk7308y0IMPUTX.S119xkkSGBbX.kk742CxyOOUTPUTB.(sY)(2IAxyOSUCY修X.SY742OxppOOTTOTbXpp62IBxkMSUBCY,X.kk702BkkpOVTWTKpAhthmettcTestarSc

5、ratchPadMmoryRgMrBankSetoction37000REGBAKXASubroutines6JOCxyO6JODxkk64OExyO64OFxkk65XCxyO(5IDxkk&IExyOtIFxkkP*QeMTESTSXtYTESTX.XkTESTCYXYTESTCYSXkkCOKPARsXSYC0KPREXkkCoKPARCCY8XYC0MPARCYXkka3Caa24XyO2500031000JSOOO)90003C00021xKkCA11CA11Z9aaaCA11NZtaaaCA11C.CAU.NCrM4CAU4(s.,Y)RHTOfUiRCTVRNZFETORNNZR

6、ETVMCRtTVWiHC10AD4RETWNXkKVrknContro1OCopynght20162014XJiraX4x80EXi11N)Ias:t-b1tcratchXdIocat1oaMtoITx:te9itrwitbinbanXWtoFy:ZqAttwithinbank0toFXi1inx提供了相应的汇编器,可以生成带指令数据的ROM的VHD1/Veri1og代码,也可以生成HEX文件供动态加载到幽?。下面介绍开发流程,我们以一个简单的开关输入皿输出为例,之后我们会介绍简单的流水灯以及中断。首先,我们去Xi1inx官网下载所需的KCPSM6的相关文件以及辅助程序。本文基于ZedBOa

7、rd进行试验,所以只需要下载PiCOB1aZeforU1traSca1e,7-series,6-seriesFPGAs即可。下载后解压出来,会有很多实例,JTAG1oader以及kcpsm6.exe汇编器等。以下是汇编器的功能图:your_program.psmnKCPSM6Assemb1eryour_program.vhdyour_program.v(Usedindesign)ROM_form.vhdROM_form.v(Temp1ate)KCPSm6处理器核与rom相连,rom中装载我们的编译后的代码数据。这两个模块都是通过工具生成,不过我们的程序还是需要写汇编代码实现。KCPSm6外部信

8、号很少,常用的就是in_port和OUt_port,地址线和bramenab1e以及instruction信号与rom相连,在不使用中断和休眠信号的一般情况下,我们的处蝇系统如下所示:情况下将interrupt和SIeeP拉低即可。C1k连接在FPGA外部输入的时钟引脚上,我们这里是Y9(IOOMHz)o本文使用Veri1og语言实现硬件逻辑。创建一个基于ZedBoard的xc7z020-2c1g484的工程。建立一个顶层文件top.V,参照下载的文件夹中的VeriIOg目录中的kcpsm6designtemp1ate,v,添加处理器核的例化JC:U$er$dcDesktopKCPSMpico

9、B1azeKCPSM6Re1ea$e930Sept14Veri1ogkcpsm6de$igntem.IO!回看M1i文件(F)喝率(E)超素视图(V)K(M)i8(1)a(T)(O)feh(R)插件(P)S(W)?X。白品OoSI4r%e3C1tH(ESHkcp6-dsjcn-t4*p1t.31109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143/TheKCPSMGparameterscanbedefinedasrequiredbutth

10、edefau1/andthesewou1dbeadequateformostdesigns.1/kcpsm6#(.interrupt_vector(),.scratch_pad_memory_size(:),.hwbui1d(8,hOO)3processor(.address(address),.instruction(instruction),.bram_enab1e(bram_enab1e),.port-id(port_id),.write_strobe(write_strobe),.k_write_trobe(k_write_strob.out_port(OUt_JPort)/.read

11、_strobe(read_strobe),.in_port(in_port),.interrupt(interrupt),.interrupt_ack(interrupt_ack),.reset(kcpsm6_reset),.s1eep(kcp9m6_s1eep),.c1k(c1k);S/Inmanydesigns(especia11yyourfirst)interruptands1eeparetheseinputs1owunti1youneedthem.assignassignkcp9m6_s1eep;interrupt1*b.;/Thedefau1tProgramMemoryrecomme

12、ndedfordeve1opment.z157Iine5:3881n:119Cd:31Se1:00DosWindow,.j,.iiH.vj添加内部信号7071W1KR(11:0Aririraaa;72wire17:instruction;73wirebrem_enab1e;74wire70pcrt_id;75wire7:0outport;76reg7:0in_port;77wirewrite_stroJoe;7RwiTRk_wr-ita_;79wireread_strobe;80reginterrupt;/Seenoteabove81WXXVxxi1cxxup1_auk;82wirekcpsms1eep;/Seeno,t-above8384regkcpsm6_reset;/Seenote-2rfin另外,由于我们暂时没用到中断和休眠,将kcpsm6SIeeP和interrupt拉低f!inanydcigno(copscia11yyourfirntinrcrruptand01c3pccnotuaod.ffTetheseinputs1ohunti1yoneedthem.-/a

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 工作总结

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服