原创 Avalon-Microsequencer简单汇编工具开发成功

2007-12-14 23:04 5979 7 9 分类: FPGA/CPLD

    开发成功已经有一周了,才腾出时间来写篇日志。 riple


    上周五晚上的这个时间,还在为如何屏蔽无效位、如何自动生成屏蔽操作的掩码在伤脑筋;周六一大早起来,把梦中想好的两条组合命令实现了;接下来,又实现了代码段起始地址的自动获取和汇编语言文件的编译;最重要的是,实现了命令行脚本的离线运行功能,即使没有硬件开发板,也能编译汇编文件了。 riple


    这一Tcl程序的操作界面如下,可以很容易地看出,是从vjtag_master的操作界面移植来的: riple


点击看大图


    实现的功能如下: riple


    1. 操作指令记录和汇编文件编译功能。通过init和done两条指令打开和关闭目标二进制文件,供记录操作指令对应的二进制指令;通过compile指令把一个用汇编指令编写的文件编译为目标二进制文件,编译功能支持Micro-Sequencer的全部9条基本指令。 riple


    2. 原始指令执行功能。除了jmp和jmpd指令外,通过vjtag_master模拟执行了Micro-Sequencer的7条基本指令。 riple


    3. 组合指令执行功能。为了方便汇编语言的编写,设计了等价于多条原始指令组合执行的组合指令。 riple


    4. 总线状态调试功能。保留了vjtag_master的调试指令。 riple


    汇编文件rar和编译生成的二进制文件rar在此。汇编文件可以采用各种文件类型(.txt、.tcl),编译生成的microsequencer_classic_0.mif文件是Quartus II专用的存储器初始化文件,用于初始化Avalon-microsequencer的指令ROM。 riple


    比较这两个文件可以看出,汇编文件中的18条汇编指令编译后得到44条二进制指令。在汇编文件中通过set指令可以定义Avalon-MM总线上特定地址值对应的变量,在后续指令中可以通过引用该变量访问特定地址;通过get_addr指令可以获得下一条指令在指令存储器中对应的地址值,这一地址值可以通过set命令指定给一个变量,在跳转指令中引用该变量,可以访问特定代码段的起始地址。 riple


    这一简单编译工具采用Tcl语言编写,是从avalon_vjtag_master.tcl改编来的,是原有工具的升级版,源代码在此rar。在windows命令行执行quartus_stp -t avalon_vjtag_master.tcl即可运行。 riple


 


相关链接:


Microsequencer - From Wikipedia, the free encyclopedia


A microsequencer circuit


Microsequencer allowing a sequence of conditional jumps without requiring the insertion of NOP or other instructions


A Wisdom Archive on microsequencer


The scc-32/scc-16 Microsequencers and AHBDBG System Debugger


Dynamically Reconfigurable N-Way Microsequencer


 

文章评论2条评论)

登录后参与讨论

用户211934 2009-7-21 16:07

这也叫详解?!

用户349880 2008-1-16 13:23

???

ash_riple_768180695 2007-12-17 10:04

实现FSM的三种方法。

ash_riple_768180695 2007-12-16 14:27

近期写作计划:

FSM类:输入逻辑时序优化,及注意事项。Moore、Mealy型的比较和lookahead型Mealy。Quartus对状态机编码的优化。

AMS类:数据宽度16位,代码深度可调。在初始化8842中的应用。用户自定义指令(函数)的添加。协处理器的添加。

statesequencer:分析和应用。

SOPC:多核。ST互联模式。ST互联的应用。

ATA:新旧协议支持的命令集变化。ATA协议的发展过程。

用户130678 2007-4-20 09:20

h
相关推荐阅读
ash_riple_768180695 2015-12-18 11:06
学习示例程序:FPGA快速系统原型设计--敏捷实践
        学习与开发板配套的示例程序,是敏捷实践的起点。示例程序是厂商针对开发板上提供的硬件资源和接口量身定做的工程,可以展示其FPGA芯片的功能和性能特点。从示例程序入手最大的好处就是:示...
ash_riple_768180695 2015-11-03 16:46
开发板选取:FPGA快速系统原型设计--敏捷实践
    既然是“实践”,就不能只谈编码和仿真,必须要上板运行、调试。这个虚拟项目的目标是实现一块兼容Intel82574L以太网控制器的千兆网卡,需要运行在一块具备PCIe接口和10/100/10...
ash_riple_768180695 2015-10-22 12:41
开篇:FPGA快速系统原型设计--敏捷实践
    虽然借用了 “系统原型开发”的标题,本系列文章将围绕FPGA IP级别的开发这个主题展开,如果可能的话,将扩展至FPGA System级别的开发。     先上一篇PPT:RSPwFP...
ash_riple_768180695 2013-08-26 10:21
学习SystemVerilog(二)——学习它的理由
    学习SystemVerilog的理由也很多,我在阅读SystemVerilog for Design 和 SystemVerilog for Verification两本书前言的过程中,总...
ash_riple_768180695 2013-08-26 10:19
学习SystemVerilog(一)——不学习它的理由
    想要学习SystemVerilog已经很久了。曾经尝试通过Accellera网站上给出的LRM学习,怎奈内容众多,找不出入手点和重点,只能望而却步。虽然手头有三本SystemVerilog...
ash_riple_768180695 2011-06-26 23:20
Hardware-Assisted IEEE1588 Implementation Analysis
06/18/11 11:00:05 PM         最近一段时间在研究IEEE1588-2008精确时间同步协议(PTP)。该协议可以在软件中实现,如果需要提高时间同步...
我要评论
2
7
关闭 站长推荐上一条 /2 下一条