原创 Avalon-Microsequencer简单汇编器的实现方案

2007-7-30 22:24 5915 5 5 分类: FPGA/CPLD

    在前面的日志里,我介绍了Avalon-Microsequencer这一简单的CPU,还介绍了用Virtual JTAG实现的Avalon-MM总线主控制器。 riple


    这两个Avalon-MM总线主控制器都可以比较方便地实现对Avalon-MM总线的简单操作,这两个主设备都给Avalon-MM总线的开发引入了较佳的可控性。 riple


    但是,这两个工具也有本质上的区别:Avalon Vjtag Master采用交互式的程序输入,操作序列是由操作者一句一句逐个输入的,灵活,但是速度慢,不具有可重复性,更适合调试使用;Avalon-Microsequencer采用预存储式的程序输入,操作序列是预先定义在程序ROM中的,速度快,可重复性好,适合用于最终的产品中,但是灵活性稍差,代码修改起来不方便,而且需要手工编写二进制代码。 riple


    这些天我一直在想,能不能把这两个工具联合起来使用,把Avalon Vjtag Master调试成功的操作直接用于Avalon-Microsequencer的程序输入,把二者的优点结合起来。 riple


 


    具体的做法是,在Avalon Vjtag Master的Tcl程序中加入操作记录功能,把手工输入的操作命令记录到一个文件中(汇编语言文件),然后把这个文件用Tcl转化为Avalon-Microsequencer的ROM初始化文件(二进制文件),该文件就可以用来初始化Avalon-Microsequencer的ROM,实现调试操作向实际应用的自动转化,还可以避免手工汇编的麻烦。 riple


    进一步,还可以改进现有的Avalon Vjtag Master的Tcl程序,实现批量执行汇编语言文件的功能,以验证记录的操作序列或手工编写的操作序列;还可以通过上述的汇编程序,把手工编写的经过验证的汇编语言文件自动转化为Avalon-Microsequencer的可执行二进制文件,用于最终产品。 riple


    这样一来,Avalon Vjtag Master可以直接执行、调试汇编语言文件;而Avalon-Microsequencer可以利用调试的成果,获得可执行二进制文件。通过一系列的Tcl程序,这两个工具的操作流程就自动化地联系起来了,从而避免人为的失误。 riple


 


    为了实现上述目标,需要完成三个基本Tcl程序: riple


    1. Avalon Vjtag Master命令行操作序列记录程序。 riple


    2. Avalon Vjtag Master汇编语言文件直接执行程序。 riple


    3. Avalon Vjtag Master汇编语言汇编程序。 riple


 


    上述三个Tcl程序还只是完成了基本的操作框架,为了提高这一开发流程的实用性,还需要逐步加入如下几个功能: riple


    1. 汇编语言注释添加的功能。 riple


    2. 支持Avalon-Microsequencer的循环和跳转指令。 riple


    3. 待定。 riple

文章评论0条评论)

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