



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Xilinx可编程逻辑器件设计与开发(基础篇)连载50:Spartan12.7PicoBlaze设计实例一、设计要求1.PICOBLAZE嵌入式系统,包括1个8位的方波输出口,一个驱动两位7段LED的输出口,一个时钟输入和一个中断输入。
2.在Spartan-3anstarter套件中实现。二、设计过程1.在ISE11.x中建立一个新的项目,项目名为kcpsm3_int_test,并加入源文件kcpsm3.vhd,这仅仅是一个PicoBlaze控制器核文件,读者可以根据自己的爱好选择不同的设计语言。2.编写PicoBlaze的汇编语言源程序,本例中的汇编源程序为int_test.psm,具体如下。;Interruptexample
;
CONSTANTwaveform_port,02;定义方波输出端口ID为02
CONSTANTcounter_port,04;定义中断计数器输出端口ID为04
CONSTANTsel_port,08;定义2位7段LED选择输出端口ID为08
CONSTANTpattern_10101010,AA;定义方波输出口初始值
CONSTANTini_sel,01;定义2位7段LED位选初始值为01
NAMEREGsA,interrupt_counter;将sA寄存重新命名为interrupt_counter
;
start:LOADinterrupt_counter,00;中断计数寄存器清零
LOADs2,pattern_10101010;将方波数据载入寄存器s2中
LOADsD,ini_sel;将位选值装载入寄存器sD中
ENABLEINTERRUPT;使能中断
;
drive_wave:OUTPUTs2,waveform_port;输出方波
OUTPUTsD,sel_port;输出LED位选
LOADs0,FF;延时
loop3:LOADs1,FF
loop4:SUBs1,01
ADDs1,01
SUBs1,01
JUMPNZ,loop4
SUBs0,01
JUMPNZ,loop3
XORs2,FF;方波值取反
XORsD,FF;位选值取反
JUMPdrive_wave
;
ADDRESS2B0;定义程序存储地址
int_routine:ADDinterrupt_counter,01;中断计数器加1
OUTPUTinterrupt_counter,counter_port;输出计数值
OUTPUTsD,sel_port;输出位选
LOADsF,FF;延时
loop1:LOADsE,FF
loop2:SUBsE,01
ADDsE,01
SUBsE,01
JUMPNZ,loop2
SUBsF,01
JUMPNZ,loop1
XORsD,FF
RETURNIENABLE;中断返回
;
ADDRESS3FF;中断入口地址
JUMPint_routine
3.将int_test.psm文件拷贝到Assembler目录下,运行DOS命令,进入
Assembler目录,运行如下命令:
kcpsm3int_test.psm>screen回车编译后Assembler目录中产生了一些新的文件,如图12-30所示。其中INT_TEST.VHD/INT_TEST.V文件为我们需要的文件,它就是PicoBlaze的程序存储器文件,将它加入到kcpsm3_int_test项目中。可以看到,生成的PROM文件名与汇编源程序的文件名相同。图12-30编译后Assembler目录文件其中screen文件为一个文本文件,编译过程记录在此文件中,如果源文件有错误,错误信息会在此文件中找到。4.建立一个顶层文件。在顶层文件中完成PROM文件以及PicoBlaze核文件的连接。下面对顶层文件进行简要说明。
例化kcpsm3和INT_TEST。
初始化未用的PicoBlaze输入引脚in_port和reset。
扩展输出寄存器,分别是waveforms、counter和sel,其端口ID分别为0x02、0x04和0x08。
中断输入逻辑。
将计数器的结果译码为7段LED的输入编码。顶层文件源代码如下。
--
libraryIEEE;
useIEEE.STD_LOGIC_1164.ALL;
useIEEE.STD_LOGIC_ARITH.ALL;
useIEEE.STD_LOGIC_UNSIGNED.ALL;--
-------------------------------------------------------------------------
entitykcpsm3_int_testis
Port(LED:outstd_logic_vector(6downto0);
waveforms:outstd_logic_vector(7downto0);
interrupt_event:instd_logic;
clk:instd_logic;
selp:outstd_logic);
endkcpsm3_int_test;
-------------------------------------------------------------------------
architectureBehavioralofkcpsm3_int_testis
--
componentkcpsm3
Port(address:outstd_logic_vector(9downto0);
instruction:instd_logic_vector(17downto0);
port_id:outstd_logic_vector(7downto0);
write_strobe:outstd_logic;
out_port:outstd_logic_vector(7downto0);
read_strobe:outstd_logic;
in_port:instd_logic_vector(7downto0);
interrupt:instd_logic;
interrupt_ack:outstd_logic;
reset:instd_logic;
clk:instd_logic);
endcomponent;
--
componentint_test
Port(address:instd_logic_vector(9downto0);
instruction:outstd_logic_vector(17downto0);
clk:instd_logic);
endcomponent;
--
-------------------------------------------------------------------------
signaladdress:std_logic_vector(9downto0);
signalinstruction:std_logic_vector(17downto0);
signal
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东省六校2025届高三下学期联考化学试题含解析
- 2025年文化、办公用设备或器具项目投资风险评估报告
- 2025年高低压费控系统项目建议书
- 跨境电子商务与仓储的关系试题及答案
- 2024年国际物流师考试应试策略试题及答案
- 浙江省“温州八校”2025届高考全国统考预测密卷化学试卷含解析
- 湖北省部分高中协作体2025届高三下学期3月一模联考历史试题答案
- 2025年全数字摄影测量系统项目合作计划书
- CPSM考试智能化复习试题及答案
- 了解国际物流师职业的多样性和含义与试题及答案
- 2025建设工程监理合同示范文本
- 大模型落地应用实践方案
- 高速公路网命名和编号规定(附条文说明)
- 社会工作法规与政策中级考前冲刺题库300题(带详解)
- 体检中心培训内容
- 2025版股权对赌协议转让合同范本:风险投资合同
- 无人机救援任务操作培训方案
- 独家模特签约正规合同范例
- DB51T 2860-2021“天府名品”认证通 用规范
- 慢病控制体重
- DB3714T 0002-2020 园林绿化种植土壤
评论
0/150
提交评论