PicoBlaze 学习笔记1:PicoBlaze介绍
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
Xilinx公司的嵌入式解决方案已三类RISC结构的微处理器为核心可裁剪的软核处理器(PicoBlaze、MicroBlaze)硬核处理器(PowerPC)
MicroBlaze采用功能强大的32位流水线RISC结构,包含32个32位通用寄存器和一个可选的32位移位寄存器,时钟可达150MHz。占用资源不到1000个Silice。
PicoBlaze是由VHDL语言在早期开发的小型8位软处理器内核包,其汇编器是简单的DOS可执行文件KCPSM2.exe,用汇编语言编写的程序经过编译后放入FPGA的块RAM存储器区。
在XC3S500E的FPGA中,只用到了96个Silice,也就是只占用到5%的逻辑资源。PicoBlaze执行一条命令需要2个时钟周期,在Spartan3E Starter Kit板上以50MHz时钟为例,PicoBlaze也能达到25MIPS的性能。
Xilinx对于PicoBlaze的IP核是免费提供的,你可以从如下网址进行下载:
http://www.xilinx.com/products/ipcenter/picoblaze-S3-V2-Pro.htm
需要注意的是:PicoBlaze对应Xilinx不同系列的CPLD和FPGA有不同的版本,因此在下载前你需要确认一下你所使用的硬件平台。这里我所使用的是Spartan3系列和Virtex-II Pro平台对应的PicoBlaze IP核。
PicoBlaze for CoolRunner?-II CPLDs https://static.assets-stash.eet-china.com/album/old-resources/2009/5/11/22708dfa-237b-4b67-9366-1c3c73119b70.zip
PicoBlaze for Spartan?-3, Virtex?-4, Virtex-II and Virtex-II Pro FPGAs
part1 https://static.assets-stash.eet-china.com/album/old-resources/2009/5/11/659378a9-c512-4fa9-bb6b-1ae647d9217e.rar part2https://static.assets-stash.eet-china.com/album/old-resources/2009/5/11/e1edd8a4-7489-4a55-ac10-22da25fd2ea4.rar
PicoBlaze for Virtex, Virtex-E, Spartan-II and Spartan-IIE FPGAs
https://static.assets-stash.eet-china.com/album/old-resources/2009/5/11/e2ae59f1-27d5-42a7-bef7-0a168122101b.zip
PicoBlaze for Virtex-II, Virtex-II Pro FPGAs
https://static.assets-stash.eet-china.com/album/old-resources/2009/5/11/59a50ef8-7091-4463-97cd-f56146f6fc29.zip
下面解压缩PicoBlaze for Spartan?-3,对所包含的各个文件以及PicoBlaze的结构作一个简要说明
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
Verilog目录——该目录中包含了PicoBlaze 的Verilog文件,如果工程师使用的开发语言是Verilog,则可直接调用该目录下的.v文件:
kcpsm3.v | KCPSM3的核心VHDL描述 |
embedded_kcspm3.v | 连接了program ROM的KCPSM3的VHDL描述文件 |
kcpsm3_int_test.vhd | 压缩包自带的设计案例的VHDL文件 |
test_bench.v | 对应kcpsm3_int_test.vhd的测试VHDL文件,相当于一个kcpsm3 test bench的模版 |
uart_clock.v | 基于UART的实时时钟参考设计的VHDL文件 |
uart_tx.v | UART发送器核,带有8位数据位,无奇偶校验,1位停止位,整型16字节FIFO缓冲器,占用了18个Slice |
uart_rx.v | UART接收器核,带有8位数据位,无奇偶校验,1位停止位,整型16字节FIFO缓冲器,占用了22个Slice |
kcuart_tx.v | UART发送器核,带有8位数据位,无奇偶校验,1位停止位。可作为发送器单独使用,但一般作为uart_tx的组成部分来使用 |
kcuart_rx.v | UART接收器核,带有8位数据位,无奇偶校验,1位停止位。可作为发送器单独使用,但一般作为uart_rx的组成部分来使用 |
bbfifo_16x8.v | 深度为16字节的FIFO,占用资源为8 Slice。在uart_tx和uart_rx中用到,也可作为FIFO单独使用 |
VHDL目录——该目录中包含了PicoBlaze 的VHDL文件,如果工程师使用的开发语言是VHDL,则可直接调用该目录下的vhd文件(包含的文件作用与同名的vhd文件相同,在此不再说明),还有几个是多出来的:
uart9_tx.vhd | 带有奇偶校验和16字节FIFO的UART发送器 |
uart9_rx.vhd | 带有奇偶校验和16字节FIFO的UART接收器 |
kcuart9_rx.vhd | 带有奇偶校验的UART接收器 |
kcuart9_tx.vhd | 带有奇偶校验的UART发送器 |
bbfifo9_16x9.vhd | 深度为16字节的FIFO,占用资源为9 Slice。在uart_tx和uart_rx中用到,也可作为FIFO单独使用 |
kcpsm3.ngc——该文件为经过封装了的kcpsm3的网表文件,在非HDL的设计流程中可以作为Black Box使用;
Assembler——该目录下包含了将psm文件转换成ROM文件所需的各种工具:
KCPSM3.EXE | KCPSM3的汇编程序 |
ROM_form.vhd | 生成ROM的vhd文件模版 |
ROM_form.v | 生成ROM文件的v文件模版 |
ROM_form.coe | 生成ROM所需的系数的模版 |
cleanup.bat | 批处理文件,能自动清理KCPSM3.EXE对*.psm汇编后产生的文件 |
int_test.psm | 压缩包自带的设计案例的psm汇编文件 |
uclock.psm | 基于UART的实时时钟的psm汇编文件 |
DATA2MEM_assistance——该目录包含了能直接修改bitstream文件中的Block Memory所在的数据段的工具:
PB_BMM.EXE | 能够定位FPGA配置文件中的Block Memory所在的数据段 (注1) |
change_pb_bits.bat | 批处理文件,能够自动进行Block Memory中的数据修改 |
注1:该工具对于基于PicoBlaze设计的配置文件bitstream是可行的(这应该是因为基于PicoBlaze的设计结构简单),对于其他设计生成的bitstream文件不一定可行。
JTAG_loader——该目录下包含了适用于PicoBlaze的JTAG工具:
hex2svfsetup.exe | JTAG用到的可执行程序 |
hex2svf.exe | 同上 |
svf2xsvf.exe | 同上 |
playxsvf.exe | 同上 |
jtag_loader.bat | 批处理文件,能够自动按顺序执行上述4个可执行程序 |
JTAG_Loader_ROM_form.vhd | 包含了JTAG接口的ROM模版,VHDL格式 |
Normal_ROM_form.vhd | 常规ROM模版,同前面的ROM_form.vhd |
JTAG_Loader_ROM_form.v | 包含了JTAG接口的ROM模版,Verilog格式 |
Normal_ROM_form.v | 常规ROM模版,同前面的ROM_form.v |
本文参考自:
PicoBlaze 介绍(二)-simux的博客-与非网
文章评论(0条评论)
登录后参与讨论