picoblaze流水灯参考设计方案.docx
- 文档编号:27888391
- 上传时间:2023-07-06
- 格式:DOCX
- 页数:13
- 大小:440.29KB
picoblaze流水灯参考设计方案.docx
《picoblaze流水灯参考设计方案.docx》由会员分享,可在线阅读,更多相关《picoblaze流水灯参考设计方案.docx(13页珍藏版)》请在冰豆网上搜索。
picoblaze流水灯参考设计方案
基于picoblaze的流水灯参考设计
前言
我写下这篇文章,旨在一步一步教初学者如何开始第一个picoblaze嵌入式设计,让初学者了解picoblaze原理与架构的同时,掌握其开发环境与流程。
刚接触的朋友,只要照着做,肯定可以做出来,如果遇到问题,可以把问题发到我邮箱:
threegn@。
第一步:
PicoBlaze开发包KCPSM3的下载:
1、打开Xilinx官方网站
2、在新打开的页面中,在“搜索IP核”框中,输入picoblaze,点击“搜索”,
3、然后点击“PicoBlaze8位微控制器 ”,
4、点击“下载”转到登录页面,
5、如果你已经有Xilinx网站的账号,则直接输入账号与密码,点击“signin”。
如果还没有Xilinx网站的账号,则点右边的“Createaccount",然后按照它的提示一步一步完成注册(不会注册的朋友自己想办法),再回到刚才的登录页面点击“signin”,
6、进入picoblazedownload页面,在picoblazeType(s)下拉列表中选择PicoBlazeforSpartan-3(E/L),Virtex-4,Virtex-II(Pro)FPGAs,确认其他个人信息没有问题后,再点“下一步”,
CO2
7、点击“我接受”,
8、在弹出来的对话框中,选择“是”或者“否”都可以,没有区别。
9、然后再点一次“我接受”,在接下来的页面中,点击“PicoBlazeLounge”。
10、选择第五行的PicoBlazeforSpartan-3,Virtex-4,Virtex-IIandVirtex-IIProFPGAs,点击右边的“Downloaddesignfiles”。
然后按照提示把文件保存好。
第二步,学会picoblaze的IP核KCPSM3的使用
下载完成后,我们把刚才下载的KCPSM3.ZIP文件解压
找到KCPSM3_Manual.pdf,看文档可以发现,从第1到12页,都是在讲picoblaze的原理功能特性等方面的内容,然后13,14两页是讲picoblaze结合VHDL语言的使用,第15页是讲picoblaze结合Verilog语言的使用,再看16页到39页,全部是讲picoblaze的汇编指令,由于今天是入门教程,我们先跳过这前面的39页,直接从40页仔细看起,按照上面所说的一步一步操作。
1,把Assembler文件夹下的KCPSM3.EXE,ROM_form.vhd,ROM_form.v和ROM_form.coe这四个文件复制到我们的工作目录下,为方便讲解,我们创建一个临时工作目录,如:
D:
\Xilinx\pico_led。
2,用记事本或者文本文档编辑以下内容,并以“.psm”扩展名保存,我们这里取名为picoled.psm。
start:
loads2,aa;
led:
outputs2,02;
loads0,ff;
loop1:
loads3,10;
loop2:
loads1,ff;
loop3:
subs1,01;
adds1,01;
subs1,01;
jumpnz,loop3;
subs3,01;
jumpnz,loop2;
subs0,01;
jumpnz,loop1;
xors2,ff;
jumpled;
3,打开系统的“开始”菜单,点击“运行”。
4,在弹出来的对话框中,输入“cmd”。
5,输入命令D:
6,输入cdXilinx\pico_led
7,输入kcpsm3picoled.psm
8,成功后,在工作目录下,会生成很多的文件,其中有PASS1~PASS5,否则就没有成功。
第三步、建立ISE工程,并综合仿真,下载调试
1,在VHDL文件夹下,找到KCPSM3.VHD文件,同样复制到工作目录下
2,新建一工程,取名为pico_led。
然后,输入以下顶层源文件。
libraryIEEE;
useIEEE.STD_LOGIC_1164.ALL;
useieee.std_logic_arith.all;
useieee.std_logic_unsigned.all;
entitypico_ledis
Port(clk:
inSTD_LOGIC;
reset:
inSTD_LOGIC;
led:
outSTD_LOGIC_VECTOR(7downto0));
endpico_led;
architectureBehavioralofpico_ledis
componentkcpsm3is
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;
componentpicoledis
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);
signalport_id:
std_logic_vector(7downto0);
signalout_port:
std_logic_vector(7downto0);
signalin_port:
std_logic_vector(7downto0);
signalwrite_strobe:
std_logic;
signalread_strobe:
std_logic;
signalinterrupt:
std_logic:
='0';
signalinterrupt_ack:
std_logic;
signalreset_r:
std_logic;
signalcnt:
std_logic_vector(4downto0);
signalclk_r:
std_logic;
begin
processor:
kcpsm3
portmap(address=>address,
instruction=>instruction,
port_id=>port_id,
write_strobe=>write_strobe,
out_port=>out_port,
read_strobe=>read_strobe,
in_port=>in_port,
interrupt=>interrupt,
interrupt_ack=>interrupt_ack,
reset=>reset_r,
clk=>clk);
reset_r<=notreset;
program:
picoled
portmap(address=>address,
instruction=>instruction,
clk=>clk);
process(write_strobe,out_port)
begin
ifwrite_strobe='1'then
led<=out_port;
endif;
endprocess;
endBehavioral;
2,把KCPSM3.VHD,还有PICOLED.VHD添加进工程,然后结合自己的开发板或者学习板,就可以综合实现,下载与调试了。
写在最后:
picoblaze是xilinx官方提供的三大嵌入式IP核之一,掌握它的开发流程,只是FPGA嵌入式学习的第一步,对于刚接触FPGA,或者刚接触FPGA嵌入式的朋友,一定要在你自己的板子上调试通过,如果手上还没有开发板,可以到我朋友的淘宝网店看一下:
一、质量与服务非常好,已经有来自全国各地的好几百人买了他的学习板,形成了一个的小小社区,无论你有什么问题,只要在他群里一问,一般马上就有人回答。
二、资源丰富,价格最低。
其实买东西,就要看他的扩展性和资源,同时还有价格,在这方面,他的板子,是整个淘宝网上扩展性最强,价格最低的,对于经济的紧张的朋友来说,这是不二之选。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- picoblaze 流水 参考 设计方案