原创 PicoBlaze 学习笔记1:PicoBlaze介绍

2009-5-11 17:01 8211 5 5 分类: FPGA/CPLD

                    PicoBlaze 学习笔记1:PicoBlaze介绍


<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

         Xilinx公司的嵌入式解决方案已三类RISC结构的微处理器为核心可裁剪的软核处理器(PicoBlazeMicroBlaze)硬核处理器(PowerPC)


 


  MicroBlaze采用功能强大的32位流水线RISC结构,包含3232位通用寄存器和一个可选的32位移位寄存器,时钟可达150MHz。占用资源不到1000Silice


 


PicoBlaze是由VHDL语言在早期开发的小型8位软处理器内核包,其汇编器是简单的DOS可执行文件KCPSM2.exe,用汇编语言编写的程序经过编译后放入FPGA的块RAM存储器区。


XC3S500EFPGA中,只用到了96Silice,也就是只占用到5%的逻辑资源。PicoBlaze执行一条命令需要2个时钟周期,在Spartan3E Starter Kit板上以50MHz时钟为例,PicoBlaze也能达到25MIPS的性能。


 


Xilinx对于PicoBlazeIP核是免费提供的,你可以从如下网址进行下载:
http://www.xilinx.com/products/ipcenter/picoblaze-S3-V2-Pro.htm


需要注意的是:PicoBlaze对应Xilinx不同系列的CPLDFPGA有不同的版本,因此在下载前你需要确认一下你所使用的硬件平台。这里我所使用的是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" />


 


c26ca66d-c8be-4a6f-9520-92848a9841ed.JPG


 


Verilog目录——该目录中包含了PicoBlaze Verilog文件,如果工程师使用的开发语言是Verilog,则可直接调用该目录下的.v文件:




 kcpsm3.v


KCPSM3的核心VHDL描述 


 embedded_kcspm3.v


连接了program ROMKCPSM3VHDL描述文件


 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缓冲器,占用了18Slice


 uart_rx.v


UART接收器核,带有8位数据位,无奇偶校验,1位停止位,整型16字节FIFO缓冲器,占用了22Slice


 kcuart_tx.v


UART发送器核,带有8位数据位,无奇偶校验,1位停止位。可作为发送器单独使用,但一般作为uart_tx的组成部分来使用


 kcuart_rx.v


UART接收器核,带有8位数据位,无奇偶校验,1位停止位。可作为发送器单独使用,但一般作为uart_rx的组成部分来使用


 bbfifo_16x8.v


深度为16字节的FIFO,占用资源为8 Slice。在uart_txuart_rx中用到,也可作为FIFO单独使用


 


VHDL目录——该目录中包含了PicoBlaze VHDL文件,如果工程师使用的开发语言是VHDL,则可直接调用该目录下的vhd文件(包含的文件作用与同名的vhd文件相同,在此不再说明),还有几个是多出来的:


 




 uart9_tx.vhd


带有奇偶校验和16字节FIFOUART发送器


 uart9_rx.vhd


带有奇偶校验和16字节FIFOUART接收器


 kcuart9_rx.vhd


带有奇偶校验的UART接收器


 kcuart9_tx.vhd


带有奇偶校验的UART发送器


 bbfifo9_16x9.vhd


深度为16字节的FIFO,占用资源为9 Slice。在uart_txuart_rx中用到,也可作为FIFO单独使用


 


kcpsm3.ngc——该文件为经过封装了的kcpsm3的网表文件,在非HDL的设计流程中可以作为Black Box使用;


Assembler——该目录下包含了将psm文件转换成ROM文件所需的各种工具:




 KCPSM3.EXE


KCPSM3的汇编程序 


 ROM_form.vhd


生成ROMvhd文件模版


 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——该目录下包含了适用于PicoBlazeJTAG工具:




 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的博客-与非网


http://www.eefocus.com/myspace/blog/show.php?id=143892

文章评论0条评论)

登录后参与讨论
我要评论
0
5
关闭 站长推荐上一条 /2 下一条