Xilinx可编程逻辑器件设计与开发(基础篇)连载50:Spartan.docx

上传人:lao****ou 文档编号:873420 上传时间:2024-07-05 格式:DOCX 页数:3 大小:52.53KB
下载 相关 举报
Xilinx可编程逻辑器件设计与开发(基础篇)连载50:Spartan.docx_第1页
第1页 / 共3页
Xilinx可编程逻辑器件设计与开发(基础篇)连载50:Spartan.docx_第2页
第2页 / 共3页
Xilinx可编程逻辑器件设计与开发(基础篇)连载50:Spartan.docx_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《Xilinx可编程逻辑器件设计与开发(基础篇)连载50:Spartan.docx》由会员分享,可在线阅读,更多相关《Xilinx可编程逻辑器件设计与开发(基础篇)连载50:Spartan.docx(3页珍藏版)》请在第一文库网上搜索。

1、Xi1inX可编程逻辑器件设计与开发(基础篇)连载50:Spartan12. 7PicoB1aze设计实例一、设计要求1 .picob1aze嵌入式系统,包括个8位的方波输出口,一个驱动两位7段1ED的输出口,一个班输入和一个中断输入。2 .在SPartan-3anstarter套件中实现。二、设计过程1 .在ISEI1X中建立一个新的项目,项目名为kcpsm3_int_test,并加入源文件kcpsm3.vhd,这仅仅是一个PiCoBIaZe控制器核文件,读者可以根据自己的爱好选择不同的设计语言。2 .编写PiCOB1aZe的汇编语言源程序,本例中的汇编源程序为int_test,psm,具体

2、如下。;Interruptexamp1e,CONSTANTwaveform_port,02;定义方波输出端口ID为02CONSTANTcounter_port,04;定义中断计数器输出端口ID为04CONSTANTse1_port,08;定义2位7段1ED选择输出端口ID为08CONSTANTpattern_10101010,AA;定义方波输出口初始值CONSTANTini_se1,O1;定义2位7段1ED位选初始值为O1NAMEREGsA,interrupt_counter;将SA寄存重新命名为interrupt_counter9start:1OADinterrupt_counter,00;

3、中断计数寄存器清零1OADs2,pattern_10101010;将方波数据载入寄存器s2中1OADsD,ini_se1;将位选值装载入寄存器SD币一ENAB1EINTERRUPT;使能中断9drive_wave:OUTPUTs2,waveform_port;输出方波OUTPUTsD,se1_port;输出1ED位还1OADs,FF;延时1oop3:1OADsi,FF1oop4:SUBsi,01ADDsi,01SUBsi,01JUMPNZ,1oop4SUBs,01JUMPNZ,1oop3XORs2,FF;方波值取反XORsD,FF;位选值取反JUMPdrive_wave9ADDRESS2B0;

4、定义程序存储地址int_routine:ADDinterrupt_counter,O1;中断计数器加1OUTPUTinterrupt_counter,counter_port;输出计数值OUTPUTsD,se1_port;输出位选1OADsF,FF;延时Ioop1:1OADsE,FF1oop2:SUBsE,O1ADDsE,O1SUBsE,O1JUMPNZ,1oop2SUBsF,O1JUMPNZ,Ioop1XORsD,FFRETURNIENAB1E;中断返回,ADDRESS3FF;中断入口地址JUMPint_routine3 .将int-tcst.psm文件拷贝到ASSenIbIer目录下,运行

5、DOS命令,进入Assemb1er目录,运行如下命令:kcpsm3int_test,psmscreen回车编译后ASSCmb1Cr目录中产生了一些新的文件,如图12-30所示。其中INT_TEST.VHD/INT_TEST.V文件为我们需要的文件,它就是PiCoB1aZe的程序存储器文件,将它加入到kcpsm3_int_test项目中。可以看到,生成的PROM文件名与汇编源程序的文件名相高。图12-30编译后ASSemb1er目录文件其中SCreen文件为一个文本文件,编译过程记录在此文件中,如果源文件有错误,错误信息会在此文件中找到。4 .建立一个顶层文件。在顶层文件中完成PROM文件以及P

6、iCOBIaZe核文件的连接。下面对顶层文件进行简要说明。例化kcpsm3和INT_TESTo初始化未用的PiCoBIaZe输入引脚in_port和reset。扩展输出寄存器,分别是WaVefOrmS、counter和sei,其端口ID分别为0x02、0x04和0x08o中断输入逻辑。将计数器的结果译码为7段1ED的输入编码。顶层文件源代码如下。1ibraryIEEE;useIEEE.STD1OGIC1164.A11;useIEEE.STDJOGIJARITH.A11;useIEEE.STD_1OGICONSIGNED.A11;entitykcpsm3_int_testisPort(1ED:o

7、utstd_1ogic_vector(6downto0);waveforms:outstd_1ogic_vector(7downto0);interrupt_event:instd_1ogic;e1k:instd_1ogic;se1p:outstd_1ogic);endkcpsm3_int_test;architectureBehaviora1ofkcpsm3_int_testiscomponentkcpsm3Port(address:outstd_1ogic_vector(9downto0);instruction:instd1ogic_vector(17downto0);portid:ou

8、tstd_1ogic_vector(7downto0);write_strobe:outstd_1ogic;out_port:outstd_1ogic_vector(7downto0);read_strobe:outstd_1ogic;in_port:instd_1ogic_vector(7downto0);interrupt:instd_1ogic;interruptack:outstd_1ogic;reset:instd_1ogic;e1k:instd_1ogic);endcomponent;componentint_testPort(address:instd_1ogic_vector(

9、9downto0);instruction:outstd1ogic_vector(17downto0);e1k:instd_1ogic);endcomponent;signa1address:std_1ogic_vector(9downto0);signa1instruction:std_1ogic_vector(17downto0);signa1port_id:std_1ogic_vector(7downto0);signa1out_port:std_1ogic_vector(7downto0);signa1in_port:std_1ogic_vector(7downto0);signa1write_strobe:std_1ogic;

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

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

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

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

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



客服