当前位置:首页 >> 信息与通信 >>

基于VHDL的Mealy状态机设计


基于 VHDL 的 Mealy 状态机设计

物理与电子信息科学系 姓名: 姓名:孙家芳 指导教师: 指导教师:胡湘娟

电子信息科学与技术专业 学号: 学号:05120126

摘 要: 伴随着集成电路(IC)技术的发展,电子设计自动化(EDA)逐渐成为重要的设计 手段,已经广泛应用于模拟与数字电路系统等许多领域。EDA的一个重要特征就是使用硬 件描述语言(HDL)来完成的设计文件, 诞生于1982年的VHDL语言是经IEEE确认的标准硬件 描述语言, 在电子设计领域受到了广泛的接受。 本文首先综述了EDA技术的发展概况, VHDL 语言的的历史、开发步骤及其优点;着重介绍了使用EDA技术,用VHDL语言完成了Moore 状态机的设计工作;通过开发工具Max+plusⅡ的编译和功能仿真,验证了方法的合理性和 通用性;最后介绍了设计结果分析及状态机设计的几点体会。 关键词: 关键词:EDA;VHDL;Mealy 型;有限状态机

目 录 1.引言…………………………………………………………………(2) 2.EDA 技术概述……………………………………………………(2)
2.1 什么是 EDA ………………………………………………………………(2) 2.2 EDA 的发展………………………………………………………………(3)

3.硬件描述语言(HDL)……………………………………………(5)
3.1 VHDL 语言简介…………………………………………………………(5) 3.2 VHDL 语言的特点………………………………………………………(5)

4.MAX+PLUSⅡ软件………………………………………………(8)
4.1 MAX+PLUSⅡ简介………………………………………………(6) 4.2 MAX+PLUSⅡ的特点………………………………………………(7)

5.Mealy 型状态机的 VHDL 设计 …………………………………(8)
5.1 状态机的定义……………………………………………………………(8) 5.2 状态机的分类……………………………………………………………(8) 5.3 态机的设计步骤…………………………………………………………(9) 5.4Mealy 状态机的设计………………………………………………………(9) 5.5 Mealy 状态机优化………………………………………………………(12)

6.状态机设计的几点体会 …………………………………………(15)
6.1 把握整体与细节…………………………………………………………(15) 6.2 资料的重要性…………………………………………………………(15) 6.3 常用工具软件的运用…………………………………………………(15)

参考文献 …………………………………………………………… (16) 致谢 ………………………………………………………………… (18)

1

1、引言
20 世纪末,电子技术得到了飞速发展,在其推动下,现代电子技术几乎渗透 到了社会的各个领域,有力的推动了社会生产力的发展和社会信息化程度的提高, 同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。 现代电子设计的核心是 EDA(Electronic Design Automation)技术。EDA 技 术就是依赖功能强大的计算机, EDA 工具软件平台上, 在 对以硬件描述语言 HDL (Hardware Description Languge)为系统逻辑描述手段完成的设计文件,自动的 完成逻辑编译、逻辑简化、逻辑分割、逻辑综合、结构综合(布局布线) ,以及 逻辑优化和仿真测试,直至实现即定的电子线路系统功能。 EDA 技术是微电子技术和现代电子设计技术的结合,是这两个领域共同孕 育的奇葩。EDA 技术在硬件实现了方面融合了大规模集成电路制造技术、IC 版 图设计技术、ASIC 测试和封装技术、FPGA/CPLD 编程下载技术、自动测试技 术等;在计算机辅助工程方面融合了计算机辅助设计(CAD) 、计算机辅助制造 (CAM) 、计算机辅助测试(CAT) 、计算机辅助工程(CAE)技术以及多种计 算机云烟的设计概念;而在现代电子学方面则容纳了更多的内容,如电子线路设 计理论、 数字信号处理技术、 数字系统建模和优化技术及长线技术理论等。 因此, EDA 技术为现代电子理论和设计的表达与实现提供了可能性。在现代技术的所有 领域中, 得以飞速发展的科学技术多为计算机辅助设计, 而非自动化设计。 显然, 最早进入设计自动化的技术领域之一是电子技术,这就是为什么电子技术始终处 于所有科学技术发展最前列的原因之一。 本文主要运用 EDA 技术,通过 MAX+PLUSⅡ软件对 Mealy 状态机进行设 计,并对程序及仿真结果进行分析和概括。

2. EDA 技术概述
2.1 什么是 EDA 在电子设计技术领域,可编程逻辑器件(如 PLD,GAL)的应用,已有了很 好的普及。随着可编程逻辑器件集成规模不断扩大,自身功能的不断完善和计算 机辅助设计技术的提高,在现代电子系统设计领域中的 EDA 便应运而生了。传 统的数字电路设计模式, 如利用卡诺图的逻辑化简手段以及难懂的布尔方程表达 方式和相应的 TTL 或 4000 系列小规模集成芯片的堆砌技术正在迅速地退出历史 舞台。 EDA 是一种实现电子系统或电子产品自动化设计的技术,它与电子技术、

2

微电子技术的发展密切相关,吸收了计算机科学领域的大多数最新研究成果,以 高性能的计算机作为工作平台, 20 世纪 90 年代初从 CAD(计算机辅助设计)、 是 CAM(计算机辅助制造)、CAT(计算机辅助测试)和 CAE(计算机辅助工程)的概 念发展而来的 。EDA 技术就是以计算机为工具,在 EDA 软件平台上,根据硬 件描述语言 HDL 完成的设计文件,自动地完成逻辑编译、化简、分割、综合及 优化、布局线、仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载 等工作。设计者的工作仅限于利用软件的方式来完成对系统硬件功能的描述,在 EDA 工具的帮助下和应用相应的 FPG/CPLD 器件, 就可以得到最后的设计结果。 尽管目标系统是硬件,但整个设计和修改过程如同完成软件设计一样方便和高 效。当然,这里的所谓 EDA 主要是指数字系统的自动化设计,因为这一领域的 软硬件方面的技术已比较成熟,应用的普及程度也已比较大。而模拟电子系统的 EDA 正在进入实用,其初期的 EDA 工具不一定需要硬件描述语言。此外,从应 用的广度和深度来说,由于电子信息领域的全面数字化,基于 EDA 的数字系统 的设计技术具有更大的应用市场和更紧迫的需求性。 2.2 EDA的发展 EDA(Electronics Design Automation 电子设计自动化)技术伴随着半导体技 术、集成技术和计算机技术的发展,经历了计算机辅助设CAD(Computer Assist Design)、计算机辅助工程设计CAE(Computer AssistEngineering Design)和电子 设计自动化ESDA(Electronics Systems Design Automation)三个发展阶段。 90年代以来, EDA技术的发展和普及给电子系统的设计带来了革命性的变化, 并 已渗透到电子系统设计的各个领域。目前,EDA工具的应用范围涉及模拟、微波 等各个领域,可以实现各个领域电子系统设计的测试、设计仿真和布局布线等。 EDA技术是以计算机硬件和系统软件为基本工作平台,在电路与系统、数据库、 图形学、图论、拓扑逻辑、计算数学、优化理论等诸多学科基础上研制成的、商 品化的EDA通用支撑软件和应用软件包。 电子设计工程师只要完成对电子系统的 功能描述,就可以利用计算机和EDA工具完成电路的功能设计、逻辑设计、性能 分析、时序测试直至印刷电路板PCB(Printed Circuit Board)的自动设计。近十年 来,微电子技术和计算机技术的进步及电子产品市场运作节奏的加快,涉及诸多 领域的现代电子设计技术已迈入一个全新的阶段。 应用系统设计从单纯的专用集 成电路ASIC(Application SpecificIntegrated Circuit)设计走向了系统设计和单片系 尤其是20 世纪90 年代初的系统编程技术ISP(In 统SOC(System On a Chip)设计,
[2]

3

System Programmability),为电子产品的设计和生产带来了革命性的变化。

3.硬件描述语言(HDL)
3.1VHDL语言 VHDL(Very2High2Speed Integrated CircuitHard2wareDescriptionLanguage)是 用来描述从抽样到具体级别硬件的工业标准语言。 年代初期,因为美国军事工 80 业需要描述电子系统的标准方法,美国开始进行VHDL的开发,它是美VHSIC(超 高速集成电路)的一部分,并于1986年和1987年分别成为美国和IEEE的工业标 准。 此后,各EDA公司相继推出了自己的VHDL设计环境,并迅速地被接纳为一种 通用的设计交换媒介。 作为一种规范和建模语言,它不只是意味着编写代码,而且 也便于建立层次结构和用元件库进行设计。 VHDL翻译成中文就是超高速集成电路硬件描述语言,是一种快速的电路设 计工具, 功能涵盖了电路描述、 电路合成、 电路仿真等三大电路设计工作。 VHDL 是用来描述从抽象到具体硬件级别的工业标准语言, 并已成为一种通用的硬件设 计交换媒介。 计算机辅助工程软件的供应商已把VHDL作为其CAD或EDA软件输 入与输出的标准,例如SYNOPSYS、ALTERA、CA-DENCE、VIEWLOGIC 等 EDA厂商均提供了VHDL的编辑器,并在其仿真工具、综合工具和布图工具中提 供了对VHDL 的支持。特别值得一提的是ALTERA公司不仅提供大规模的CPLD 和EPGA器件,同时也提供一套十分有特色的综合工具MAXPLUS-Ⅱ,设计者既 可以使用原理图输入, 也可以使用文本输入方式, 更可以二者混合输入。 从编译、 综合、布线到仿真、下载一气呵成,十分方便。 3.2 VHDL语言的特点 VHDL是一种面向设计的标准硬件描述语言,主要用于描述数字系统的结 构、行为、功能和接口。VHDL不仅保留了一般计算机高级语言简洁、高效的编 程风格和规范易读的语言形式,而且还包含了许多独特的具有硬件特性的语言。 其主要特点如下。 ①VHDL支持数字电路的开发环境,并能抽象表示电路的结构和行为,降低了硬 件电路的设计难度,并能进行系统的早期模拟以保证设计的正确性。 ②VHDL支持多种设计方法:自顶向下、自底向上或混合的方法;支持逻辑设计中 层次与领域的描述;支持行为描述、RTL方式描述、门级描述。 ③VHDL设计与工艺无关。在传统的硬件设计中,设计者必须手工检查与工艺有

4

关的因素,如时序、面积、驱动强度等。用VHDL设计的最大优点是在工艺上无 需花费过多的时间和精力。

4.MAX+PLUSⅡ
4.1 MAX+PLUSⅡ简介 本次设计选用的开发环境为美国 ALTERA 公司自行设计开发的 EDA 工具 MAX+PLUSⅡ,其全称为 Mu1tiple Array Matrix and Programmable Logic User Systems。它具有运行速度快,界面统一,功能集中,易学易用等特点。它的器 件系列从最初的 Max 系列到最新的 FLEX10K 系列,从 500 门到 10 万门提供了 满足各种条件需要的一系列器件。 其中最为先进的 FLEX 系列采用独特的快通道 技术,使得器件的可预测性大大增强,速度也得到提高,资源利用率达 70%左右 时,FLEX10K 系列可以提供 7OMHz 左右的工作速度。MAX+PLUSⅡ结合各种 系列器件的物理结构,提供了各种的优化措施,以在提高工作速度和资源利用率 之间给以平衡。从而对大多数设计提供解决方案。 MAX+PLUSⅡ提供了原理图输入、文本输入(采用硬件描述语言)和波形输入 等多种输入手段, 并可以任意组合使用。 利用该工具所配备的编辑、 编译、 仿真、 综合、芯片编程等功能,可将设计电路图或电路描述程序变成基本的逻辑单元写 入到可编程的芯片中(如即 GA 芯片),做成 ASIC 芯片。用户首先对所做项目进 行设计,明确设计目的、设计要求;然后利用原理图输入方式或文本输入方式进 行设计输入; 输入完成后, 进行编译, 若编译过程中发现错误, 则检查设计输入, 修改错误,直至没有错误发生;编译完成后,就可以进行仿真,检查设计是否达 到设计要求,否则的话,还需重新检查设计输入;仿真结果达到要求后,就可以 进行烧录, 把设计程序下载到目的芯片中; 最后把芯片放到实际系统中进行验证、 测试。图 2 给出了用 MAX+PLUSⅡ进行 FP 以开发的流程。
Altera Max+plusⅡ

设计

输入

编译

仿真

烧录

验证

图 2 用 MAX+PLUSⅡ开发的 FPGA 的流程示意图

5

MAX+PLUSⅡ借助 EDIF 网表文件, SRAM 目标文件(.sof)、 LPM、 VerilogHDL 和 VHDL 能与 Candence、Mentor Graphics、OrCAD、Synopsys、Synplicity 和 Viewlogic。等公司提供的其它多种 EDA 工具接口。MAX+PLUSⅡ编译器可以在 PC 机及各种工作站平台上运行,这使 MAX+PLUSⅡ成为工业界中唯一与平境。 4.2 MAX+PLUSⅡ的特点 MAX+PLUSⅡ的特点: (1) MAX+PLUSⅡ的编译核心支持Altera公司的FLEX 10K、 FLE 8K、 MAX9000、 MAX7000、FLASHHlogic、MAX5000、Classic系列可编程逻辑器件。 (2)MAX+PLUSⅡ的设计输入、处理与校验功能一起提供了全集成化的一套可 编程逻辑开发工具,可加快动态调试,缩短开发周期。 (3) MAX+PLUSⅡ支持各种HDL设计输入, 包括VHDL、 Verilog和Altera AHDL。 (4)MAX+PLUSⅡ与其他工业标准设计输入、综合与校验工具链接。与CAE工 具的接口符合EDIF200和209、参数化模块库(LPM) 、Verilog、VHDL及其他标 准。 设计者可使用Altera或标准CAE 设计工具去建立逻辑设计, 使用MAX+PLUS Ⅱ编译器对Altera器件设计进行编译, 并使用Altera或其他CAE校验工具进行器件 或板级仿真。MAX+PLUSⅡ支持与Synopsys、Viewlogic、Mentor Graphics、 Cadence、Exemplar、Data I/O、Intergraph、Minc、OrCAD等公司提供的工具接 口。

5.Mealy型状态机的VHDL设计
5.1状态机的定义 状态机是由状态寄存器和组合逻辑电路构成的, 能够根据控制信号按照预先 设定的状态进行状态转移,是协调相关信号动作,完成特定操作的控制中心,属 于种时序逻辑电路。常用的状态机有三个部分组成,即当前状态寄存器(Current State,CS)、下一状态组合逻辑(Next State,NS)和输出组合逻辑(Output Logic,OL)。

5.2状态机的分类
从信号输出方式上,有限状态机分为:Moore型和Mealy型两类,从输出时序 上看前者属于异步输出状态机,后者属于同步输出状态机(所谓同步或异步都是 相对于时钟信号而言的。不依赖于时钟而有效的信号称为异步信号,而依赖于时 钟才有效的信号称为同步信号)。Moore型有限状态机的输出仅为当前状态的函 数, 这类状态机在输入发生变化后再等待时钟的到来,时钟使状态发生变化时才

6

导致输出的变化; Mealy型有限状态机的输出是当前状态和所有输入信号的函数, 它的输出在输入变化后立即发生。从结构图上看它们的区别如图3和图4所示。
current_state PROCESS COM 图 3 Moore 型状态机 current_state input comb_outputs

PROCESS COM

comb_output s

图 4 Mealy 型状态机

与Moore型状态机相比较,Mealy状态机的输出变化要领先一个时钟周期。通 过状态机的工作时序图比较容易区分这两种类型的状态机,如果单纯从VHDL代 码来区分,就主要看他的输出与输入是否有关系,有关系的就是Moore型状态机, 无关的就是Mealy型状态机.正确的区别两类状态机是正确设计的前提,只有才能 按照自己的意愿或者要求去设计不同类型的状态机。 5.3 状态机的设计步骤 利用VHDL语言设计状态机,所有的状态可表示为case-when结构中的一个 when子句,而状态的转换则通过if-then-else语句实现。 1、利用枚举型定义状态信号 type StateType is(s0,s1,s2…); -- 枚举类型 signal present_state,next_state:StateType; -- 现态和次态信号 2、建立状态机进程 state_comb:process(present_state,din) – 状态转换进程 begin …… end process state_comb;[7] 3、在进程中定义状态的转换 在进程中使用 case-when 语句,因状态 s0 是状态转换的起点,因此,把 s0 作为 case 语句中第一个 when 子句项, 然后利用 if-then-else 语句列出转移到次态 的条件,即可写出状态转换流程:

7

case present_state is when s0=>z<=’0’;if din=’1’then next_state<=s1; else next_state<=s0;end if; ……

5.4 Mealy型状态机的设计
与Moore型状态机相比较,Mealy机的输出变化要领先一个周期,即一旦输入 信号或状态发生变化,输出信号即刻发生变化。 Mealy状态机的结构框图如图5所示:
output input 组合逻辑 clk 寄 存 器 reset 当前状态

图5 Mealy状态机结构框图 对Mealy状态机设计首先要把整个流程图画出来,根据流程图设计各个部分。 下图是流程图:
根据系统要求 建立状态转换图

根据状态转移图编 写 VHDL 设计程序

利用 EDA 工具 进行仿真、验证

图6 状态机的VHDL设计流程图

8

根据流程图的设计步骤画出状态转换图,如下图所示:
0/01010

1/10100 ST0 1/10000

ST4

ST1

1/01001 0/11011

0/10011 0/10111

ST3 1/10101

ST2

图7

状态转换图

然后根据状态转换图写出程序代码,程序如下面所示: library ieee; use ieee.std_logic_1164.all; entity mealy2 is port ( clk,datain,reset:in std_logic; q:out std_logic_vector(4 downto 0)); end mealy2; architecture behav of mealy2 is type states is (st0,st1,st2,st3,st4); signal stx : states; signal q1 : std_logic_vector(4 downto 0); begin comreg : process(clk,reset) begin

9

if reset='1' then stx<=st0; elsif clk'event and clk = '1' then case stx is when st0 => if datain ='1' then stx<= st1;else stx<=st0;end if; when st1 => if datain ='0' then stx<= st2;else stx<=st0;end if; when st2 => if datain ='1' then stx<= st3;else stx<=st0;end if; when st3 => if datain ='0' then stx<= st4;else stx<=st0;end if; when st4 => if datain ='1' then stx<= st0;else stx<=st0;end if; when others => stx<=st0; end case; end if; end process comreg; com1: process (stx,datain,clk) variable q2 : std_logic_vector( 4 downto 0); begin case stx is when st0=>if datain='1' then q2 :="10000";else q2:="01010";end if; when st1=>if datain='0' then q2 :="10111";else q2:="10100";end if; when st2=>if datain='1' then q2 :="10101";else q2:="10011";end if; when st3=>if datain='0' then q2 :="11011";else q2:="01001";end if; when st4=>if datain='1' then q2 :="11101";else q2:="01101";end if; when others => q2:="00000"; end case; if clk'event and clk ='1' then q1<=q2;end if; end process com1; q<=q1; end behav; 程序分析:这段程序是2进程Mealy型状态机。由entity语句引导的是主体, 由architecture语句引导的是结构体。 在结构体中,进程comreg是时序与组合混合型进程,它将状态机的主控时序 电路和主控状态译码电路同时用一个进程来表达。这个进程也是状态转换过程。

10

reset复位后初始状态设置为st0,当datain为高电平且clk信号处于上升延时,将st1 赋值给stx, 即状态由st0转换为st1;当datain为底电平且clk信号处于上升延时, 将st2赋值给stx,即状态由st1转换为st2;当datain为高电平且clk信号处于上升延 时,将st3赋值给stx, 即状态由st2转换为st3;当datain为底电平且clk信号处于上 升延时,将st4赋值给stx, 即状态由st3转换为st4;当datain为高电平且clk信号处 于上升延时, 将st4赋值给stx, 即状态由st4转换为st0。 其他情况状态均转换为st0。 进程com1负责根据状态和输入信号给出不同的输出信号。这个进程是输出 过程。当为状态st0时,datain为高电平,则输出为“10000”,datain为低电平, 则输出为“01010”;当为状态st1时,datain为高电平,则输出为“10100”,datain 为低电平, 则输出为 “10111” 当为状态st2时, ; datain为高电平, 则输出为 “10101” , datain为低电平,则输出为“10011”;当为状态st3时,datain为高电平,则输出 为“01001”,datain为低电平,则输出为“11011”;当为状态st4时,datain为高 电平,则输出为“11101”,datain为低电平,则输出为“01101”。此进程最后 用一个IF语句产生一个锁存器,将q2锁存后再输出。由于是同步锁存的缘故,没 有发生锁存后延时一个时钟周期的现象。 对程序进行编译仿真后得出几幅仿真图,如下所示: 其中reset为复位信号,高电平有效,datain为输入信号,clk是时钟信号,上升 延有效,q为输出信号,q1~65为输出q的16进值,stx为状态。

此图的状态由st0、st1、st2、st3和st4依次循环转换下去。reset信号复位以 后,状态无条件转换为状态st0。此后每一个clk上升延依照datain输入信号的高低 进行状态转换。

11

当状态为st1, 输入datain为高电平时, 此图标尺处体现了状态由st1转换到st0。 状态由st1到st0,而不是st1到st2。

此图标尺处体现了状态由st2转换到st0。 当状态为st2, 输入datain为低电平时, 状态由st2到st0,而不是st2到st3。

此图标尺处体现了状态由st3转换到st0。 当状态为st3, 输入datain为高电平时, 状态由st3到st0,而不是st3到st4。

12

5.5Mealy状态机优化 毛刺的产生,一方面由于通常的状态机中都包含有组合逻辑进程,使得输 出信号在时钟的有效边沿产生毛刺;另一方面当状态信号是多位值的时候,在电 路中就对应了多条信号线,如果同时有几条信号线跳变,由于存在传输延迟,各 信号线上的值发生改变的时间会有先后,使得状态迁移的时候在初始状态和目的 状态间出现临时状态,虽然它只存在了很短的时间,但仍然会影响电路的稳定。 对于第一种情况,在大多数条件下,毛刺对电路的影响可忽略不计,但是当 状态机的输出信号作为三态使能控制或者时钟信号使用的时候, 就必须要消除毛 刺。消除的方法可以用改进有限状态机的描述方法来解决这个问题:把时钟信号 引入组合进程,用时钟来同步状态迁移和信号输出,在电路上表现为先将输出信 号保存在触发器中,当时钟有效边沿到来的时候输出; 或者在电路设计时,选用延 迟时间较小的器件,且尽可能采用级数少的电路结构。 对于第二种情况,需要重新调整状态编码。一般而言,编有顺序编码、 One-Hot编码、格雷码、随机编码等。如果vhdl描述中没有对各个状态的编码专 门指定,模拟器和综合器一般按照状态的定义顺序进行编码。为了消除传输延迟 造成的毛刺,理想的解决方法是使相邻状态间只有1位信号改变,因此应该按照 格雷码制进行编码。在某些情况下,状态编码不能保证只有一位发生变化时,有 2种编码方法可以保证状态机编码仍然维持。位变化,第一种方法是一个状态分 配多个编码;第二种方法是在状态译码时采用分组译码,这样就保证了状态迁移 时只有。位状态线发生变化。 在同步电路中,一般情况下“毛刺”不会产生重大影响。因为“毛刺”仅 发生在时钟有效边沿之后的一小段时间内, 只要在下一个时钟有效边沿到来之前 “毛刺”消失即可。但当状态机的输出信号作为其他功能模块的控制信号,例如 作为异步控制、态使能控制或时钟信号使用时,将会使受控模块发生误动作,造 成系统工作混乱。因此,在这种情况下必须通过改变设计消除毛刺。 消除状态机输出信号的“毛刺”一般可采用三种方案: (1)调整状态编码,使相邻状态间只有1位信号改变,从而消除竞争冒险的发 生条件,避免了毛刺的产生。常采用的编码方式为格雷码。它适用于顺序迁移的 状态机。 (2)在有限状态机的基础上采用时钟同步信号,即把时钟信号引入组合进程。

13

状态机每一个输出信号都经过附加的输出寄存器,并由时钟信号同步,因而保证 了输出信号没有毛刺。这种方法存在一些弊端:由于增加了输出寄存器,硬件开 销增大,这对于一些寄存器资源较少的目标芯片是不利的;从状态机的状态位到 达输出需要经过两级组合逻辑,这就限制了系统时钟的最高工作频率;由于时钟 信号将输出加载到附加的寄存器上, 所以在输出端得到信号值的时间要比状态的 变化延时一个时钟周期。 (3)直接把状态机的状态码作为输出信号,即采用状态码直接输出型状态机, 使状态和输出信号一致, 使得输出译码电路被优化掉了, 因此不会出现竞争冒险。 这种方案,占用芯片资源少,信号与状态变化同步,因此速度快,是一种较优方 案。但在设计过程中对状态编码时可能增加状态向量,出现多余状态。虽然可用 case语句中whenothers来安排多余状态,但有时难以有效控制多余状态,运行时 可能会出现难以预料的情况。因此它适用于状态机输出信号较少的场合。

6、本次论文设计的几点体会
6.1 把握整体跟细节 设计状态机首先要有个系统的把握,要从整体上去概述,画出一个流程图, 然后根据流程图才能一步一步的做下去。 如果没有一个大概的流程就很难着手做 下去。其次在流程图中的每一步都是一个细节,有句话叫“细节决定成败” ,在 结构图、状态转换图、程序代码、仿真等方面是都不能出错。本次论文主要采用 自顶而下的设计方法,把一个整体划分为几个子模块,然后对各个模块依次进行 设计,划分的好坏,将直接影响到整个的系统开发。因此要对认真对待整体与细 节。 6.2 资料的重要性 查找资料也是一个漫长而具体的过程, 单纯从教科书上很难编写出一篇完整 的论文。找资料就花掉了近一周的时间,而看懂资料与筛选资料又是一个更加漫 长的过程。论文中的大部分内容都源于所查找的资料,如果没有网上查找的资料 就很难写出一篇完整的论文。 6.3 常用工具软件的运用 以前总觉的对 word 软件很熟悉,真正到了运用起来的时候,发现很多东西 都很生硬,很陌生。尤其是在绘图等方面根本是一窍不通。通过这次论文的写 作,加深对常用工具软件的了解,同时也发现了自己的不足,在以后的学习生 活中要继续加强对常用软件的学习与使用。

14

参考文献:
[1] 康华光.电子技术基础.数字部分(第四版)[M].北京:高等教育出版社,2000.7,428~ 457 [2] 潘松,黄继业.EDA 技术实用教程(第二版)[M].北京:科学出版社,2005,1~29 [3] 刘力,胡博.关于 VHDL 与 EDA[J].电大理工,2007.6,71~72 [4] 赵鑫, 蒋亮, 齐兆群, 李晓凯.VHDL 与数字电路设计[M].北京: 机械工业出版社, 2005.4, 1~7 [5] 陈耀和.VHDL 语言设计技术[M].北京:电子工业出版社,2004.3,7~8 [6] 万莉莉.Moore 型和 Mealy 型有限状态机的 VHDL 设计[J].科技信息,1994,220~222 [7] 曾繁泰,陈美金.VHDL 程序设计(第二版)[M].北京:清华大学出版社,254~277 [8] 刘瑞新.VHDL 语言与 FPGA 设计.基于 Protel DXP 开发平台[M].北京: 机械工业出版社, 2004.4,318~334 [9] 朱小莉,陈迪平,王镇道.VHDL 设计 MOORE 型有限状态机时速度问题的探讨[J].半导 体技术,2002.4,48~51 [10] 吴蓉.Moore型有限状态机的VHDL设计与资源利用研究[J]. 兰州铁道学院学报, 2003.2,90~93

15

Ground on Moore Type FSM’S VHDL Design Method
Department of Physics and Electronic Information Science, Electronic Information Science and Technology Number of student:05120126 : Tutor: Hu Xiang Juan Name:Sun Jia Fang :

Abstract :The Electronic Design Automation(EDA) technology has become an important design method of analog and digital circuit system as the integrated circuit’s growing. One important characteristic of the EDA is that the design documents should be completed by the HDL.The VHDL is one of the standard hardware description languages validated by IEEE,which was firstly introduced in 1982.And it was widely used by electronic designer now. We firstly presenit some background information of EDA and VHDL in this thesis. The design of mealy type FSM,which more attention is fulfilled by the VHDL,is also be discussed. A practical example tests that the way is retional and general by compiler and simulation of Max+plusⅡ.Finally the analyse of the designing result was introduced and my several experiences about the designing of mealy type FSM. Keywords:Electronic Design Automation(EDA),VHDL,Mealy type,Finite State Machine (FSM)

16





这次论文的写作是在我的导师胡湘娟老师的精心指导下完成的。自始至终, 胡老师在我的学习和生活上,都给了我巨大的帮助。感谢胡老师对我进行的悉心 指导和严格要求。胡老师兢兢业业的工作精神、严谨的治学态度、踏实真诚的处 事作风, 都使我深受感动, 这是我在现在和今后的工作中、 学习中要努力学习的。 衷心地感谢胡老师!是您, 教给了我如何治学和如何做人的道理!感谢物电系的各 位老师和同学在我大学学业中所给予的指导和鼓励。感谢本班的同学,特别是本 寝室的室友,他们给了我莫大的帮助和鼓舞,他们都提出了很多有益的建议和解 决方法。这里,向你们表示我衷心的感谢和诚挚的祝愿!同时,也向我的家人致 以真心的谢意!他们在我的大学阶段及整个人生中给予我的一切是无法用言语来 表达的。最后,衷心感谢各位评阅老师!感谢您们在百忙之中参与我的论文评阅 工作。这里向帮助我的老师和同学表示深深的感谢,谢谢!

17


相关文章:
状态机VHDL讲解
状态机VHDL讲解 - VHDL 的结构非常适合编写状态机, 而且编写方式不唯一, 电路的集成也会随着编写的方式 而改变。状态机设计主要用到 case when 和 if else ...
状态机及其VHDL设计
状态机及其VHDL设计 - 第7章 状态机及其 VHDL 设计 内容提要: 内容提要:有限状态机(Finite State Machine,简称 FSM)是一类很重要的时序电路, 是许多数字...
基于FPGA的状态机的实现
基于FPGA的状态机的实现_电子/电路_工程科技_专业资料。序列检测有限状态机的...图 5 Moore 型状态机仿真电路图 图 6 Mealy状态机仿真电路图 七、 设计...
基于VHDL状态机设计的智能交通控制灯
基于VHDL状态机设计的智能交通控制灯 - 基于 VHDL 状态机设计的智能交通控制灯 来源:国外电子元器件 作者:徐春娇 1 设计方案 十字路口设计两组交通灯分别控制东西...
FPGA用状态机实现序列检测器的设计报告
FPGA 实验报告 题目:用状态机实现序列检测器的设计一.实验目的:用状态机实现...详述其功能和对序列数检测 的逻辑过程; 答:本实验代码表达的是 Mealy 型状态...
FPGA用状态机实现序列检测器的设计
FPGA用状态机实现序列检测器的设计 - ***大学 实验报告 课程名称: 实验名称: 姓学班名: 号: 级: 基于 FPGA 的现代数字系统设计状态机实现序列检测器...
VHDLFPGA状态机
VHDL 与数字系统设计》课程设计报告 ( 2014 -- 2015 年度第 1 学期) 名题院班学 称: VHDL 与数字系统设计 目: 系: 级: 号: 简单状态机 电气与电子...
VHDL设计 有限状态机设计
VHDL设计 有限状态机设计 - 南京工程学院 通信工程学院 实验报告 课程名称 实验项目名称 实验学生班级 实验学生姓名 实验时间实验地点 可编程逻辑电路设计A 有限...
VHDL状态机111000
VHDL状态机111000_工学_高等教育_教育专区。图像识别算法与系统设计题目:VHDL 第...而在这里例化已经编写好的子模块 mealy_controller。 在 mealy_controller 模块...
基于VHDL语言状态机编写流水灯
基于VHDL语言状态机编写流水灯_电子/电路_工程科技_专业资料。基于VHDL语言利用状态机编写流水灯 程序采用元件例化方式编写基于VHDL 语言状态机编写流水灯采用元件例化...
更多相关标签: