原创 PicoBlaze 学习笔记6:利用pBlazIDE对PicoBlaze汇编(psm)进行仿真

2009-5-11 17:47 8689 5 5 分类: FPGA/CPLD

PicoBlaze 学习笔记6:利用pBlazIDEPicoBlaze汇编(psm)进行仿真<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


 


我觉得PicoBlaze的开发还很原始,一个DOS的编译工具(KCPSM3),一个还要转换格式的仿真工具(pBlazIDE),而且没有官方的C编译器。一切的一切,仿佛回到了80年代,在DOS下开发51单片机的时代,虽然我也不知道当年开发单片机的艰辛,不过从PicoBlaze也体验了一把。


 


PicoBlaze的非官方仿真工具pBlazIDE下载网址:(V3.6)


http://www.mediatronix.com/tools/pBlazIDE36.zip


 


http://www.mediatronix.com 这个也是它的官网。


 


pBlazIDE的语法和PicoBlaze的汇编语法是有区别的,所以在用pBlazIDE仿真PicoBlaze之前要进行转换。


简单的设定和导入PSM文件


1)要使用语法高亮,首先要在Settings -> Options -> Format 标签下,选择default


 

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />点击看大图



 


2)首先要在settings -> picoblaze 3选择pico的版本为3


 


c3ce27e4-da7c-4f04-88a8-18cb3f6a0dfd.JPG


 


3)接着用File -> Import导入符合KCPSM语法规范的源代码


 


9a6afd61-413a-4be0-82a0-37a687f695c4.JPG


 


4) 点击上部中间工具条的 Format 按钮,将代码变得美观点


把上次的LED.psm汇编程序,导入pBlazIDE



 

点击看大图 


 


点击Simulate——Simulate,提示出错。原来


      LOAD s0,01  pBlazIDE变成了LOAD s01 (添加英文逗号)


      LOAD s0,00  pBlazIDE变成了LOAD s0,0


 


再次点解Simulate——Simulate,能运行,但运行到LED_port提示出错(?IO not mapped)


          “LED_port  EQU  $80”修改成”LED_port  DSOUT $80”


 


好了,这样就可以仿真I/O了。


 


1e78f027-0520-49b3-900e-08b901574c6a.JPG(Step One)但不运行,可以看到I/O仿真窗口的LED0亮了



 


0c54a720-7b1f-42d5-8df6-c12bee2de6e1.JPG


 


下面就LED.psm程序,pBlazIDE语法KCPSM3语法的对比。


 



pBlazIDE语法


KCPSM3语法


delay_1us_constant  EQU       11


LED_port           DSOUT      $80                


 


 


LED: LOAD  s0, 1


     OUT  s0, LED_port


     CALL  wait_1s


     LOAD  s0, 0


     OUT   s0, LED_port


     CALL  wait_1s


     JUMP  LED


CONSTANT delay_1us_constant, 0B


CONSTANT LED_port, 80              


 


 


LED:LOAD s0,01


     OUTPUT s0,LED_port


     CALL wait_1s


     LOAD s0,00


     OUTPUT s0,LED_port


     CALL wait_1s


     JUMP LED


 


两种语法要转换的不同点:


1)     KCPSM3汇编代码中,直接操作数是以16进制表示的,在pblazeIDE中是转化为10进制的,如要把KCPSM3汇编中的<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />0F转化成15(pblazeIDE)


 


2)     KCPSM3语法到pblazeIDE的转换,要把在原先程序中的output替换为out,在KCPSM的汇编语法中,输出可以用直接操作数写端口,也就是说


output s0,0


是合法的,在pblazeIDE中,我们要通过DSOUT定义端口才可以进行输出。


 


3)关于IO的仿真:


三种IO:纯输出DSOUT,纯输入DSIN,输入输出DSIO


输入输出面板的值多能改变。


KCPSM3语法到pblazeIDE的转换,把相应的IO接口改成DSINDSOUT


 


 4) 分布式的RAM仿真


RamROM面板的值为16byte,分布式的RAM仿真;分别用DSRAMDSROM来独立的表示。


 

pblazIDE帮助说明 pdf


 


参考资料:


1)     picoblaze的调试工具pBlazIDE的使用注意点 -- 1oh1oh1oh's Blog


http://blog.ednchina.com/1oh1oh1oh/129298/message.aspx


2)     picoblaze(3): 一个简单的例子+如何仿真 - savor's Blog


   http://kalman.is-programmer.com/posts/6223.html


3)     picoblaze(4): 利用pblazeIDE进行pico开发 - savor's Blog


   http://kalman.is-programmer.com/posts/6225.html

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
5
关闭 站长推荐上一条 /3 下一条