0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

通过采用VHDL语言进行MTM总线主模块有限状态机的设计与仿真验证

电子设计 作者:电子设计 2018-11-19 09:29 次阅读

MTM总线(Module Testing and Maintenance bus,MTMbus)是一种同步、串行、用于系统级的背板测试及维护总线,可以实现IEEE1149.5标准所规定的故障检测、容错以及扩展的命令集。该技术已经被美军"宝石柱"和"宝石台"计划的航空电子系统体系结构采用。

当前MTM总线主模块有限状态机主要采用VerilogHDL程序编写的状态机描述,Verilog HDL语言并不可以进行系统级的硬件描述。

VHDL是一种标准化的硬件描述语言,不仅可以用于系统级的硬件描述而且在设计系统硬件时没有嵌入与工艺有关的信息,在工艺更新时无须修改原设计程序。文中设计的状态机采用"单进程"式状态机描述,与"三进程"和"双进程"式相比可以有效地节省FPGA芯片的资源,从而进一步减少功耗,提高系统的稳定性。

通过简要分析MTM总线的基本结构、各模块间的通讯方式、主模块有限状态机模型基于VHDL语言设计了主模块有限状态机;并且利用QuartusⅡ9.0版本软件和Cyclone系列EP1C60240C6芯片对所设计的MTM总线主模块状态机的VHDL代码进行了时序仿真和功能仿真。

1 MTM总线结构设计

1.1 MTM总线的基本结构

MTM总线的基本结构如图1所示,总线定义了4条必选信号线和一条可选信号线,即MCTL(控制信号线)、MMD(主模数据信号线)、MSD(从模块数据信号线)、MCLK(时钟信号线)和MPR(请求暂停信号线)。

通过采用VHDL语言进行MTM总线主模块有限状态机的设计与仿真验证

图1 MTM总线结构图

MTM总线上的所有模块采用主从结构的通讯协议,该总线有且只能有一个主模块,最多可以有250个能够被独立寻址的从属模块。MTM总线多站点结构和寻址能力允许主模块一次可以寻址一个从模块、多个从模块(多点寻址方式)和所有的从模块(广播寻址方式),并且与之通讯。M TM总线的主模块有限状态机是MTM总线主模块的核心控制单元,它控制着整个信息传输过程。MTM总线控者使用消息交换的方式与从模块进行通讯,消息是由一系列的包组成,包括一个头包,一个可选答应包和一系列数据包,包的长度为17位,高16位数据信息,最低位用于奇校验,消息包的控制必须由主模块控制。

1.2 MTM主模块

主控制模块设计如图2所示。主控制模块在MTM总线协议中处于主控地位,主要功能是将来自微处理器的数据按照IEEE1149.5标准定义的消息格式进行打包送到指定的从控制模块;同时将来自指定从控制模块的消息包进行解包,并且提取有用数据传回微处理器,供微处理器分析和处理。

通过采用VHDL语言进行MTM总线主模块有限状态机的设计与仿真验证

图2 主控制模块设计

主状态机是主控制模块的核心单元,它的作用是控制整个信息传输过程。

主状态机的状态转换图如图3.当主状态机处于某个给定的状态时,MCTL和MMD信号的逻辑值在MCLK的上升沿产生;在每个MCLK信号周期,主状态机根据控制信号的只发生状态转换;在主状态机的17个传送状态下发送17位的数据包,其他状态不发送数据,同时接收MSD上的数据;在每个数据包发送后,主状态机至少保持在暂停状态不少于4个MCLK周期,若当前接收的MSD数据有效则使接收单元使能信号有效;当主状态机进入结束状态时,当前消息传送结束。

通过采用VHDL语言进行MTM总线主模块有限状态机的设计与仿真验证

图3 主状态机的状态转换图

2 基于VHDL的主模块有限状态机的的设计

VHDL主要用于描述数字系统的结构、行为、功能和接口,同时支持层次化和模块化设计,并且可以进行仿真和综合。

数字电路分为组合逻辑电路和时序逻辑电路两种。组合逻辑电路的输出只与当前输入有关,时序逻辑电路的输出与当前输入和过去输入都有关。状态机是一种广义的时序电路,一般包括用于状态译码和产生输出信号组合逻辑和存储状态的寄存器逻辑两部分。

根据MTM总线主模块的状态转换图,其基于VHDL有限状态机的代码如下:

通过采用VHDL语言进行MTM总线主模块有限状态机的设计与仿真验证

通过采用VHDL语言进行MTM总线主模块有限状态机的设计与仿真验证

通过采用VHDL语言进行MTM总线主模块有限状态机的设计与仿真验证

3 仿真验证

QuartusⅡ是Altera公司推出的集成开发软件,使用QuartusⅡ可以完成从设计输入、综合适配、仿真到编程下载整个设计过程,Quart usⅡ也可以直接调用Synplify Pro、以及ModelSim等第3方EDA工具来完成设计任务的综合和仿真。

文中利用QuartusⅡ9.0版本软件和Cyclone系列EP1C6Q240C6芯片对所设计的MTM总线主模块状态机的VHDL代码进行了时序仿真和功能仿真,分别如图4、图5所示。

通过采用VHDL语言进行MTM总线主模块有限状态机的设计与仿真验证

图4 时序仿真波形图

通过采用VHDL语言进行MTM总线主模块有限状态机的设计与仿真验证

图5 功能仿真波形图

通过波形图可以观察到,该状态机可以很好的实现主状态机的状态转换。当M1输入为"0"时(此时M2、M3为无关状态),MTM总线主模块按照从高到低进行消息传送,直到进入"PAUSE"(暂停状态)然后状态回到"xfer16"(S16)继续进行消息传送;当M1输入为"1"时,主模块无条件进入"waiting"(等待状态);在主模块处于"waiting"状态时若M3输入为"1"状态转入"idle"(空闲状态)再次由高到低位的消息传送。

使用VHDL语言描述,语法更为严谨,描述更为清晰简洁;采用"单进程"式状态机描述可以有效地节省FPGA芯片的资源(表1),从而进一步减少功耗,提高系统的稳定性。

表1 编译报告

通过采用VHDL语言进行MTM总线主模块有限状态机的设计与仿真验证

4 结束语

文中通过研究MTM总线的基本结构和主从模块间的通讯协议,分析了主状态机的状态转换,并使用VHDL语言设计了该有限状态机,并使用QuartusⅡ开发软件对该状态机进行了仿真和验证,仿真结果表明该程序可以正确描述主状态机的状态转换,该有限状态机使用"单进程"式描述,与"三进程"和"双进程"式相比程序简洁明了并且能够有效地节省资源,减少功耗,提高系统的稳定性。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 仿真
    +关注

    关注

    50

    文章

    3871

    浏览量

    132133
  • 微处理器
    +关注

    关注

    11

    文章

    2109

    浏览量

    81378
  • 总线
    +关注

    关注

    10

    文章

    2695

    浏览量

    87157
  • vhdl
    +关注

    关注

    30

    文章

    814

    浏览量

    127666
收藏 人收藏

    评论

    相关推荐

    FPGA有限状态机

    FPGA有限状态机
    发表于 09-08 08:45

    有限状态机有什么类型?

    在实际的应用中,根据有限状态机是否使用输入信号,设计人员经常将其分为Moore型有限状态机和Mealy型有限状态机两种类型。
    发表于 04-06 09:00

    MOORE型有限状态机的几种设计方法是什么

    MOORE型有限状态机的几种设计方法是什么VHDL设计MOORE型有限状态机时速度问题是什么
    发表于 05-07 06:01

    什么是有限状态机

    在嵌入式,机器人领域,由于多的复杂逻辑状态,我们编写程序的时候不得不考虑很多种情况,容易造成功能间的冲突。有限状态机(finite-state machine),简称状态机,是一种表示有限
    发表于 12-20 06:51

    有限状态机的硬件描述语言设计方法

    实验目的 1、 熟悉用硬件描述语言VHDL)设计一般状态机所包含的几个基本部分;2、 掌握用硬件描述语言VHDL)设计Moore型和M
    发表于 09-03 09:48 0次下载

    基于有限状态机在LIN总线开发中的应用

    基于有限状态机在LIN总线开发中的应用      引言   随着汽车智能化程度的提高和迅速升级
    发表于 04-20 13:47 753次阅读
    基于<b class='flag-5'>有限状态机</b>在LIN<b class='flag-5'>总线</b>开发中的应用

    VHDL语言状态机电路中的设计

    简要介绍了 VHDL 语言进行工程设计的优点,并详细说明了利用VHDL语言设计状态机电电路的过程
    发表于 07-18 10:31 84次下载
    <b class='flag-5'>VHDL</b><b class='flag-5'>语言</b>在<b class='flag-5'>状态机</b>电路中的设计

    基于VHDLMTM总线模块有限状态机设计

    为了能够更简洁严谨地描述MTM总线的主模块有限状态机状态转换,同时减少FPGA芯片功耗,提高系统稳定性,文中在分析
    发表于 05-29 15:39 20次下载
    基于<b class='flag-5'>VHDL</b>的<b class='flag-5'>MTM</b><b class='flag-5'>总线</b>主<b class='flag-5'>模块</b><b class='flag-5'>有限状态机</b>设计

    有限状态机_FSM_的实现

    本文主要介绍了IP模块有限状态机的实现。
    发表于 03-22 15:42 0次下载

    有限状态机FSM在PLD中的实现分析

    本文通过举例 利用VHDL 语言描述了不同模式的有限状态机 分析了有限状态机在 PLD 中综合的特点 。
    发表于 03-22 15:41 3次下载

    有限状态机的建模与优化设计

    本文提出一种优秀 、高效的 Verilog HDL 描述方式来进行有限状态机设计 介绍了 有限状态机的建模原则 并通过一个可综合的实例 验证
    发表于 03-22 15:19 1次下载

    VHDL有限状态机设计-ST

    EDA的有限状态机,广义而言是指只要涉及触发器的电路,无论电路大小都可以归结为状态机有限状态机设计在学习EDA时是很重要的一章。
    发表于 06-08 16:46 3次下载

    有限状态机设计是HDL Designer Series的关键应用

    有限状态机的设计是HDL Designer Series™工具的关键应用。 尽可能地对于设计人员编写导致状态机性能不佳的VHDL,可以使用HDL Designer用于生成VHDL的Se
    发表于 04-08 10:05 3次下载

    一个基于事件驱动的有限状态机

    EFSM(event finite state machine,事件驱动型有限状态机),是一个基于事件驱动的有限状态机,主要应用于嵌入式设备的软件系统中。 EFSM的设计原则是:简单!EFSM的使用者只需要关心:
    的头像 发表于 08-30 09:28 480次阅读
    一个基于事件驱动的<b class='flag-5'>有限状态机</b>

    有限状态机分割设计

    有限状态机分割设计,其实质就是一个状态机分割成多个状态机
    的头像 发表于 10-09 10:47 345次阅读