基于VHDL的MTM总线主模块有限状态机设计
- 格式:pdf
- 大小:264.27 KB
- 文档页数:3
MTM 总线(Module Testing and Maintenance bus ,MTM -bus )是一种同步、串行、用于系统级的背板测试及维护总线,可以实现IEEE1149.5标准所规定的故障检测、容错以及扩展的命令集[1]。
该技术已经被美军“宝石柱”和“宝石台”计划的航空电子系统体系结构采用[2]。
当前MTM 总线主模块有限状态机主要采用VerilogHDL 程序编写的状态机描述,Verilog HDL 语言并不可以进行系统级的硬件描述。
VHDL 是一种标准化的硬件描述语言,不仅可以用于系统级的硬件描述而且在设计系统硬件时没有嵌入与工艺有关的信息,在工艺更新时无须修改原设计程序。
文中设计的状态机采用“单进程”式状态机描述,与“三进程”和“双进程”式相比可以有效地节省FPGA 芯片的资源,从而进一步减少功耗,提高系统的稳定性[3]。
通过简要分析MTM 总线的基本结构、各模块间的通讯方式、主模块有限状态机模型基于VHDL 语言设计了主模块有限状态机;并且利用Quartus Ⅱ9.0版本软件和Cyclone 系列EP1C6Q240C6芯片对所设计的MTM 总线主模块状态机的VHDL 代码进行了时序仿真和功能仿真。
1MTM 总线结构设计1.1MTM 总线的基本结构MTM 总线的基本结构如图1所示,总线定义了4条必选信号线和一条可选信号线,即MCTL (控制信号线)、MMD (主模数据信号线)、MSD (从模块数据信号线)、MCLK (时钟信号线)和MPR (请求暂停信号线)。
MTM 总线上的所有模块采用主从结构的通讯协议,该总线有且只能有一个主模块,最多可以有250个能够被独立寻址的从属模块。
MTM 总线多站点结构和寻址能力允许主模块一次可以寻址一个从模块、多个从模块(多点寻址方式)和所有的从模块(广播寻址方式),并且与之通讯。
MTM 总线的主模块有限状态机是MTM 总线主模块的核心控制单元,它控制着整个信息传输过程[4]。
MTM 总线控者使用消息交换的方图1MTM 总线结构图Fig.1MTM busstructure 基于VHDL 的MTM 总线主模块有限状态机设计王超,白忠臣,李世雄,秦水介(贵州大学贵州省光电子技术及应用重点实验室,贵州贵阳550025)摘要:为了能够更简洁严谨地描述MTM 总线的主模块有限状态机的状态转换,同时减少FPGA 芯片功耗,提高系统稳定性,文中在分析MTM 总线结构和主模块有限状态机模型的基础上,基于VHDL 语言采用“单进程”式对该有限状态机进行了设计,并在Quartus Ⅱ开发软件中实现了对语言代码的编译及程序的时序仿真和功能仿真;通过对仿真波形图的分析验证了该状态机设计的正确性和有效性。
关键词:VHDL ;MTM 总线;有限状态机;主控制模块中图分类号:TN79+1文献标识码:A文章编号:1674-6236(2012)09-0001-03Design of MTM bus master module ’s finite state machine based on VHDLW ANG Chao ,B AI Zhong -chen ,L I Shi -xiong ,Q IN Shui -jie(Key Lab of Photoelectron Technology and Application ,Guizhou University ,Guiyang 550025,China )Abstract:To describe the State transition of the core unit of MTM -bus briefly and rigorously ,while reducing the power consumption of FPGA chip ,improve the stability of the system ,the finite state machine with “single process ”type by VHDL language on the basic of analyzing MTM -bus architecture and finite state machine model of the main module are designed ,at the same time ,using the circumstance of Quartus Ⅱto implement the compilation of Language code and the timing simulation ,functional simulation ;the correctness and effectiveness of this finite state machine design is proved by the analysis of simulation waveforms.Key words:VHDL ;MTM bus ;FSM ;master control module电子设计工程Electronic Design Engineering第20卷Vol.20第9期No.92012年5月May.2012收稿日期:2011-10-13稿件编号:201110050基金项目:贵州省国际科技合作计划(黔科合外G 字[2011]7001号);贵州省社会发展公关项目(黔科合SY[2010]3037号)作者简介:王超(1986—),男,山东滕州人,硕士研究生。
研究方向:集成电路设计。
-1-《电子设计工程》2012年第9期式与从模块进行通讯,消息是由一系列的包组成,包括一个头包,一个可选答应包和一系列数据包,包的长度为17位,高16位数据信息,最低位用于奇校验,消息包的控制必须由主模块控制[5]。
1.2MTM主模块主控制模块设计如图2所示。
主控制模块在MTM总线协议中处于主控地位,主要功能是将来自微处理器的数据按照IEEE1149.5标准定义的消息格式进行打包送到指定的从控制模块;同时将来自指定从控制模块的消息包进行解包,并且提取有用数据传回微处理器,供微处理器分析和处理。
主状态机是主控制模块的核心单元,它的作用是控制整个信息传输过程。
主状态机的状态转换图如图3。
当主状态机处于某个给定的状态时,MCTL和MMD信号的逻辑值在MCLK的上升沿产生;在每个MCLK信号周期,主状态机根据控制信号的只发生状态转换;在主状态机的17个传送状态下发送17位的数据包,其他状态不发送数据,同时接收MSD上的数据;在每个数据包发送后,主状态机至少保持在暂停状态不少于4个MCLK 周期,若当前接收的MSD数据有效则使接收单元使能信号有效;当主状态机进入结束状态时,当前消息传送结束[3]。
2基于VHDL的主模块有限状态机的的设计VHDL主要用于描述数字系统的结构、行为、功能和接口,同时支持层次化和模块化设计,并且可以进行仿真和综合。
数字电路分为组合逻辑电路和时序逻辑电路两种。
组合逻辑电路的输出只与当前输入有关,时序逻辑电路的输出与当前输入和过去输入都有关。
状态机是一种广义的时序电路,一般包括用于状态译码和产生输出信号组合逻辑和存储状态的寄存器逻辑两部分[4]。
根据MTM总线主模块的状态转换图,其基于VHDL有限状态机的代码如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity ztj isport(M1,M2,M3,clk:in std_logic;state:out std_logic_vector(4downto0));end ztj;architecture hav of ztj istype st is(s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15,s16,powerup,idle,pause,eom,waiting);signal ps,ns:st;beginprocess(clk)beginif clk’event and clk=’1’thenps<=ns;end if;end process;process(M1,M2,M3,ps)begincase ps iswhen powerup=>if M1=’1’thenns<=waiting;elsif M3=’0’thenns<=powerup;elsens<=idle;end if;state<=“10001”;…………when s16=>if M1=’0’thenns<=s15;elsens<=waiting;end if;state<=“10000”;…………when s0=>if M1=’0’thenns<=pause;elsens<=waiting;end if;state<="00000";…………when waiting=>if M1=’0’and M3=’1’thenns<=idle;elsens<=waiting;end if;state<="10101";when others=>null;end case;end process;end;3仿真验证QuartusⅡ是Altera公司推出的集成开发软件,使用QuartusⅡ可以完成从设计输入、综合适配、仿真到编程下载整个设计过程,QuartusⅡ也可以直接调用Synplify Pro、以及ModelSim等第3方EDA工具来完成设计任务的综合和仿真。
文中利用QuartusⅡ9.0版本软件和Cyclone系列EP1C6Q240C6芯片对所设计的MTM总线主模块状态机的VHDL代码进行了时序仿真和功能仿真,分别如图4、图5所示。
通过波形图可以观察到,该状态机可以很好的实现主状态机的状态转换。
当M1输入为“0”时(此时M2、M3为无关状态),MTM总线主模块按照从高到低进行消息传送,直到进入“PAUSE”(暂停状态)然后状态回到“xfer16”(S16)继续进行消息传送;当M1输入为“1”时,主模块无条件进入“waiting”(等待状态);在主模块处于“waiting”状态时若M3输入为“1”状态转入“idle”(空闲状态)再次由高到低位的消息传送。
使用VHDL语言描述,语法更为严谨,描述更为清晰简洁;采用“单进程”式状态机描述可以有效地节省FPGA芯片的资源(表1),从而进一步减少功耗,提高系统的稳定性。