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

12.3 picoblaze性能
表12-4列出了picoblaze微控制器在不同的fpga系列和不同的速度等级的器件中能达到的最高频率。通常情况下,如果对性能要求不是太高,最好是让picoblaze在低频下工作,因为它所处理的外设一般为低速设备,例如,串行通信,按键等。另外,低频工作也会减少等待周期,降低系统功耗。
12.4 picoblaze在fpga设计中的应用
picoblaze以三种方式提供给设计者使用,包括vhdl源码、verilog源码和黑盒子。ise6.1及以上版本均可以支持。下面主要介绍vhdl源码的设计流程,关于verilog和黑盒子方式,请参阅xilinx相关文档。
picoblaze的vhdl源文件是kcpsm3.vhd,它支持xst综合和modelsim仿真,也可以应用其他综合和仿真工具。建议设计者不要以各种方式更改源码。
kcpsm3.vhd模块component声明以及例化如下,kcpsm3包括alu、寄存器、暂存器等,但是不包括指令存储器。
由于kcpsm3不包括指令存储器,因此需要另外建立指令存储器,并将指令存储器与kcpsm3连接。指令存储器component和例化方式如下所示。
picoblaze的汇编源程序的扩展名为psm,其程序存储器的文件名由汇编源文件名决定,如果汇编源文件名为my_rom.psm,经过picoblaze编译后产生的程序存储器的vhdl的文件名即为my_rom.vhd,其中的ram被.psm文件初始化,将这个文件与kcpsm3连接,即可实现完整的picoblaze系统。
12.5 picoblaze开发工具
picoblaze开发工具主要有三个:xilinx kcpsm3、mediatronix pblazide和xilinx system generator,如表12-5所示,本节主要介绍xilinx kcpsm3 和mediatronix pblazide。
12.5.1 kcpsm3开发工具
一、 编译器 kcpsm3编译器是一个简单的dos可执行程序,还有三个临时文件。将kcpsm3.exe、rom_form.vhd、rom_form.v和rom_form.coe四个文件拷贝到工作目录。源程序可以用任何文本编辑器编辑,其扩展名为.psm。注意:文件名不超过7个字符。dos命令如下:
kcpsm3 [.psm]
二、 编译错误 kcpsm3编译过程中,如果程序有错误,会在dos窗口显示,然而由于编译比较快,很难看清错误信息,因此kcpsm3提供一个命令,可以将错误信息写入一个文本文件。
kcpsm3 [.psm] > screen_dump.txt
三、 输入输出文件 kcpsm3编译器包括4个输入文件和15个输出文件,如图12-24所示。
12.5.2 mediatronix pblazide 开发工具
mediatronix pblazide 软件界面如图12-25 所示,它是一个免费的图形化的集成开发环境,它包括的特性介绍如下。
图12-25 mediatronix pblazide 软件界面
语法彩色高亮显示。
指令集仿真(iss)。支持断点、寄存器视窗、存储器视窗。
源代码格式化。
kcpsm3-to-pblazide 导入功能/语法转换。
支持html 输出,包括彩色高亮显示。
此工具可以从 下载。
一、 设置pblazide pblazide 支持4 个picoblaze 版本,如图12-26 所示。对于spartan-3、virtex-2、virtex-2 pro 和virtex-4/5/6 选择settings→picoblaze 3。
图12-26 设置pblazide 的picoblaze 版本
二、 将kcpsm3 代码导入pblazide 如图12-27 所示,由于kcpsm3 源码与pblazide 源码存在差异,所以当用pblazide进行代码调试时,需要应用导入命令file→import 进行转换,如图12-28 所示。
图12-27 kcpsm3 源码与pblazide 源码的区别
图12-28 将kcpsm3 代码导入pblazide
kcpsm3 源码与pblazide 源码的差异如表12-6 所示。
三、 picoblaze代码模拟 在pblazide开发环境中,开发者可以对应用程序代码进行模拟运行,可以设置断点,观察寄存器、存储器、暂存器的内容,也可以监控输入/输出口以及标志位的状态。这一步骤与常用的keil51等模拟器相似,不再详述。
12.6 picoblaze设计开发包
一个picoblaze设计主要包含两个部分,分别是控制器硬件部分和控制器软件汇编源程序。xilinx的kcpsm3开发包中主要包括如图12-29所示内容,下面分别就每个部分进行简单介绍。
assembler文件夹包括kcpsm3编译器、hdl格式的picoblaze程序存储器文件rom_form.v/rom_form.vhd、bram数据文件rom_form.coe,另外还有一个清除中间文件的批处理文件cleanup.bat。
data2mem_assistance文件夹中的文件用来更新fpga的bit配置文件。在进行基于picoblaze的fpga开发时,picoblaze的硬件一般不需要频繁改动,而其psm软件则需要进行多次修改调试,如果psm软件每改一次,就对整个设计进行一次布局布线,就需要花费较多的调试时间,特别是当使用较大规模的fpga 时,布局布线时间特别长。为了解决这个问题,xilinx开发了data2mem工具,使用它可以在不进行布局布线操作的情况下,更新bit文件,这极大地节省了调试时间。详细的使用方法请参考其中的txt 说明文档。
图12-29 kcpsm3 开发包
jtag_loader 文件夹中的文件讲述了如何用jtag 下载电缆更改picoblaze 的程序存储器的内容,而不需要重新运行布局布线。详细使用方法请参考其中的jtag_loader_quick_guide.pdf 文件。
vhdl 文件夹包含了kcpsm3.vhd 的微控制器硬件描述文件以及一个串口相关文件。
verilog 文件夹包含了kcpsm3.v 的微控制器硬件描述文件以及一个串口相关文件。
kcpsm3 开发包中的kcpsm3_manual.pdf 文件为picoblaze 的应用手册,uart_manual.pdf 文件为用picoblaze 实现串口通信的应用手册,uart_real_time_clock.pdf 文件为一个用picoblaze 实现的时钟描述文件,kcpsm3.ngc 为picoblaze 的网表文件。另外,读者还可以从xilinx 的官方网站下载更多的xilinx 验证过的参考设计和应用文档,包括xapp213、xapp387、xapp374、xapp627、ug129 等。

3G通信—什么是UMTS
任天堂宣布将开发最新款的VR硬件
iPhone语音助手Siri加入新功能 可回复新冠病毒相关问题
WCDMA分布式基站的合理应用
比特币混合交易的好处是什么
Xilinx可编程逻辑器件设计与开发(基础篇)连载49:Spartan
长沙惠科第8.6代项目及LGD广州工厂均指向大尺寸OLED面板
【干货】电池启动的碳固定策略
如果再有人问你MySQL 索引原理你就把这篇文章分享给他!
液晶电视机屏幕损坏还能修复吗
荣耀畅玩8C续航测试 实际效果如何
dhcp和pppoe的区别是什么
神经元和函数算法之间的关系(干货)
安达发APS|APS智能排程软件的核心优势
手机连接器的测试项目可选用弹片微针模组
连接器基础事项与新型连接器
Designer笔记本电脑的视频电路拆解
这款上汽大众凌渡,售价狂跌3万,销量暴涨200%,连思域都被踩在脚下
耐能将于五月底完成首次对外的技术并购
5G连接是否适合产品设计和应用?