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

一种应用VHDL语言设计有限状态机控制器的方法


第2期 2003 年 4 月

微 处 理 机
M ICRO PRO CESSO R S

N o. 2 A p r. , 2003

一种应用 V HDL 语言设计有限状态机控制器的方法
牛 斌, 马 利, 张玉奇
( 辽宁大学信息科学与技术学院, 沈阳 110036)

  摘 要 本文对利用 V HDL 语言设置有限状态机控制器的过程进行系统的论述。 通过对控制 器控制对象的时序分析, 抽象出控制器的行为描述, 并划分控制器的状态。 在此基础上, 针对 ADC0809 模数转换器的控制器进行设计, 并通过了系统仿真和逻辑分析仪测试。 从而给出了利用
V HDL 语言设计有限状态机控制器的一种方法。

关键词 控制器 状态机 时序

A Kind of M e thod to D e s ig n the F in ite S ta te M a ch ine C on tro lle r w ith VHDL L a ng ua g e
N iu B in, et a l
(T he inf orm a tion science and technology colleg e of L iaon ing U n iv ersity , S heny ang 110036)

1 引 言

元。 信息单元主要进行信息的传输和运算, 而控制单 元的主要任务是控制信息处理单元的微操作的顺 序。 控制单元的实现方式有: 有限状态机、 控制寄存 器和微代码控制器等。 有限状态机在时间尺度上对 其控制信号进行离散化控制, 利用状态转移使控制 信号在有限状态机的状态节拍控制下变化, 以实现 对被控对象的控制。 有限状态机的关键是如何把一 个实际的时序逻辑关系抽象成一个时序逻辑函数, 传统的电路图输入法通过直接设计寄存器组来实现 各个状态之间的转换, 而用硬件描述语言来描述有

限状态机, 可以充分发挥硬件描述语言的抽象建模 能力, 具体的逻辑化简和电路设计也可由计算机自 动完成, 提高了设计工作的效率。 本 文 提 出 已 知 被 控 对 象 的 时 序, 如 何 应 用 V HDL 语言实现有限状态机控制器的设计, 并举例 说明设计的分析、 实现过程。
牛斌, 男 39 岁, 硕士研究生, 主要研究方向: 嵌入式系统 收稿日期: 2002- 12- 19

  Abstract   T h is a rt icle sy stem ica lly sta tes the p rocess of estab lish ing the F in ite Sta te M a 2 ch ine. B y ana lyzing the t i ing of the con t ro lled ob ject ion, the con t ro ller’s behavio ra l sta tem en t m can been ab st ract and it s sta te can been ca rved up too. B a sed on it, design the ADC0809’s con 2 t ro ller. T he p ro ject ha s p a ssed the sy stem ic si u la t ion and the test of the log ic ana lyzer. So a k ind m of m ethod to design the fin ite sta te m ach ine con t ro ller w ith V HDL language is p ropo sed. Keywords con t ro ller, fin ite sta te m ach ine, t i ing m

2 设计方法简述

数字系统通常划分为信息处理单元和控制单

标准硬件描述语言 ( 如 V HDL 语言) 的出现, 促 进了集成电子系统高层次设计的发展。 在应用硬件 描述语言描述完整的数字系统时, 现在多采用从上 至下的设计方法, 所以设计过程主要从数字系统的 系统级设计出发, 采用硬件描述语言对系统在系统 级或寄存器传输级进行描述, 通过 EDA 工具的综 合, 最终实现向版图级或 FPGA 的映射。 在系统级和寄存器传输级完成 V HDL 的描述 主要分以下几步: ( 1) 分析控制器设计指标, 建立系统算法模型 图; ( 2) 分析被控对象的时序状态, 确定控制器有限 状态机的各个状态及输入 输出条件; ( 3) 应用 V HDL 语言完成描述。

3 ADC 0809 控制器设计实例

在数模混合系统中, 数模转换器将模拟信号转 换成数字信号, 在系统的前级设计中具有重要地位,

?20?

微 处 理 机

2003 年 

而数模转换控制器主要是根据数模转换器的工作时 序, 控制其完成 A D 转换。 为了清晰地说明如何对 于 已 知 控 制 对 象 时 序 的 控 制 器 进 行 设 计, 以 ADC0809 控制器为例, 说明整个分析设计过程。 3. 1 有限状态机的系统进程模型图划分 系统级的设计是控制器设计的第一步, 是将控 制器指标规范用自然语言描述, 并将其语言描述转 换为真值表、 状态图或算法模型的过程。 对 V HDL 语言来说, 系统级的设计就是用一系列相互关联的 进程组成硬件算法模型, 即将描述系统功能的自然 语言翻译为进程, 每个进程完成不同的功能, 并通过 进程模型图来表示。在 ADC0809 控制器的设计中, 可将其划分为三个进程, 即状态生成进程、 状态转换 进程及状态机输出进程。 三部分关系如图 1 所示。
图 1 状态机进程划分图

3. 2 状态划分

在进行状态机控制部分的设计过程中, 主要是 通过分析 ADC0809 的时序来确定状态转换进程中 的各个状态和几个状态下的控制信号输出。 3. 2. 1 ADC0809 时序分析 ADC0809 为单极性输入, 8 位转换逐次逼近 ~ A D 转换器, 可对 0 5V 的 I T 0~ I T 7 8 路模拟 N N 信号分时进行转换, 完成一次转换的时间约为 100 微秒。 其与控制器连接方法及时序图见图 2 所示。

图 2 ADC0809 控制器连接方法及其时序图

    其 中 D 7~ D 0 为 A D 变 换 数 据 输 出; AD 2 DR ESS 为 8 路通道选择地址; STA R T 信号是转换 启动信号, 上升沿有效; EO C 为状态结束标志, 低电 平转为高电平时转换结束; O E 为数据输出允许信 号, 高电平有效; AL E 为地址锁存允许信号; LO CK 为数据锁存信号。 在转换开始前, ADC0809 需要在 AL E 上升沿 控制下, 将 3 位 8 路通道选择地址锁入锁存器, 以确 定 转 换 信 号 通 道; 然 后 在 时 钟 的 下 降 沿 产 生 STA R T 信号启动转换, 这时 ADC0809 的 EO C 信 号由高电平转为低电平, 开始数据转换, 直到 EO C 信号由低电平转为高电平时转换结束; 之后使能 O E 信号, 使转换数据输出。 3. 2. 2 系统控制器分析 系统控制器的进程划分结束后, 需要进一步讨 论状态转换进程中各个状态的划分。 根据 ADC0809 的控制时序, 首先对各个控制 信号进行初始化, 设置 S0 为初始状态; 在 S1 状态产 生 AL E 信号的上升沿, 使模拟通道的地址送入地 址寄存器中; 从时序图可以看出, 启动信号 STA R T 应在产生 AL E 信号的同一时钟下降沿产生, 由于

V HDL 语言在同一进程内不允许时钟的两个沿作 为敏感变量, 所以将产生 STA R T 信号单列为一个

状 态 S2, 启 动 转 换; 在 启 动 转 换 后, ADC0809 使 EO C 置为低电平, 设置 S3 状态等待 A D 转换结 束; 当数据转换结束后, EO C 信号由低电平转换为 高电平, 状态机进入 S4 状态, 开启输出允许 O E; 状 态机进入 S5 状态, 开启数据锁存信号 LO CK 对输 出数据进行锁存; 为产生与其它进程通信的信号, 状 态机设置 S6 状态作为最后一个状态, 然后跳转回 S0 初始状态。 其状态转换及控制输出如图 3 所示。

图 3 状态转换及控制输出

 2 期

牛斌等: 一种应用 V HDL 语言设计有限状态机控制器的方法

?21?

3. 2. 3 控制器的 V HDL 设计

根据以上设计思想和 V HDL 语言的特点, 控制 器的状态生成进程以时钟信号为敏感量, 当时钟发 生有效跳变时, 状态机的状态发生变化, 即产生下一 状 态。 而状态转换进程采用组合逻辑进程, 使用
CA SE 语句检查状态机的当前状态, 然后使用 IF TH EN - EL SE 语句决定下一状态。 这种描述风格

件中后, 利用美国泰克 T EK1230C64 逻辑分析仪测 量时序如图 5 所示。

产 生 结 构 化 的 V HDL 代 码, 并 且 可 读 性 好。 用 V HDL 语言描述的控制器有限状态机的状态转换 部分为:  p rocess ( cu rren t _ sta te, eoc)  beg in ca se cu rren t _ sta te is w hen s0 = > qq < = 0; a le < = ’0’; sta rt < = ’0’; oe< = ’0’; lock< = ’0’;    nex t _ sta te< = s1; …… w hen s2 = > qq < = 3; a le < = ’1’; sta rt < = ’1’; oe< = ’0’; lock< = ’0’;    if ( eoc= ’0’) then    nex t _ sta te< = s3;   else    nex t _ sta te< = s2;   end if; ……
end ca se;

图 4 时序仿真图

图 5 逻辑分析仪测量时序图

通过对仿真结果和验证结果的分析, 其时序与 在实际应用中此设计可实现 ADC0809 的时序相符。 对 ADC0809 的控制, 完成模数转换, 达到了设计要 求。

5 结 论
随着 V HDL 语言在数字系统设计中的广泛应 用, 控制器部分采用有限状态机进行设计实现是一 种行之有效的设计方法。 本文根据控制对象的时序 抽象系统的行为描述, 应用 EDA 软件进行了编译、 综合、 适配、 仿真, 并通过逻辑分析仪对设计结果进 行验证, 为数字系统的控制器设计提供了一种有效 的方法。
参考文献 1 潘松, 王国栋 V HDL 实用教程. 成都: 电子科技大学出版 . 社, 2000- 02 2 王志华, 邓仰东 数字集成系统的结构化设计与高层次综 . 合. 北京: 清华大学出版社, 2000- 07 3 SD evada s, A N ew ton. D ecom po sition and Facto riza tion of Sequen tia l F in ite Sta te M ach ines IEEE T ran saction s ~ on Com p u ter- A ided D esign. 1989, 8 ( 11) : 1206 1217

 end p rocess; 状态转换进程中状态改变信号 cu rren t _ sta te 和转换结束信号 EO C 决定状态的跳转, 故将其作为 敏感变量, 以控制整个状态机的状态转换。 而在 S6 中, 可根据用户需要, 添加适当的、 用于与其它进程 之间通信的信号。 例如, 若将转换数据写入存储器 中, 可在此状态中加入转换结束标志, 以通知存储器 进程进行读写操作。

4 设计仿真与验证
本设计在 M A X + PLU S 10. 0 软件平台上进 行编译、 综合、 适配后进行时序仿真。 其仿真波形如 图 4 所示。 在下载到 AL T ERA 公司的 EPM 7128 器


相关文章:
一种应用VHDL语言设计有限状态机控制器的方法.pdf
一种应用VHDL语言设计有限状态机控制器的方法 - 第2期 2003 年 4 月
基于VHDL语言的有限状态机设计方法.pdf
基于VHDL语言的有限状态机设计方法 - 计算机技术与应用进展 .04-02 基于V D 语言的有限状态机设计方法’ HL 朱维勇 傅桂生 合肥工业大学电气与自 动化学院 2....
用VHDL语言设计电梯控制器.doc
VHDL语言设计电梯控制器_专业资料。这是一个电梯...2、设计要求 、 1) 2) 综合应用课程中学到的理论...个状态机之间转换的代码; 电梯进程为 10 个状态机...
VHDL语言 第九章 有限状态机_图文.ppt
VHDL语言 第九章 有限状态机 - 第九章 有限状态机 9.1 概述 有限状态机主要功能是用来实现一个数字电路设计中的控制部分, 它与CPU的功能相似。状态机优于CPU的...
有限状态机的设计与优化.pdf
一种应用 VHDL 语言设计有限状态机控制器的方法 [ J] . 微处理机, 2
基于VHDL语言的实用电梯控制器的设计.pdf
基于VHDL语言的实用电梯控制器的设计 - 首先提出了一种基于有限状态机的电梯控制器算法,然后根据该算法设计一个三层电梯控制 器,该电梯控制器的正确性经过了仿真...
应用VHDL语言设计A_D和LED显示控制器.pdf
应用VHDL语言设计A_D和LED显示控制器_信息与通信_...个 0 有效 采用 FSM 的设计方法有以下优点 : ...有限状态机状态转换图 ① VHDL 综合器易于优化 ; ...
基于VHDL的三层电梯控制器的标准设计_图文.doc
设计一个电梯控制器,要求能控制电梯完成 3 个楼层...运用有限状态机的 设计方法,设计了两个进程相互配合...本文采用 VHDL 语言设计实用三层电梯控制器,其...
第6章 VHDL状态机_图文.pdf
6.2 状态机类型根据状态机的状态数是否为有限个,...常用的设计方法之一,经常被用于对状态化简,对于可...各状态及输入、输出条件;③应用VHDL语言完 成状态...
基于VHDL语言有限状态机的电子密码锁设计_论文.pdf
基于VHDL语言有限状态机的电子密码锁设计 - 201 3年第 1O期 ( 总第
基于VHDL的六层电梯控制器的标准设计_图文.doc
设计一个电梯控制器,要求能控制电梯完成 3 个楼层...运用有限状态机的 设计方法,设计了两个进程相互配合...本文采用 VHDL 语言设计实用三层电梯控制器,其...
8 VHDL语言状态机_图文.ppt
状态机特点 ? 克服了纯硬件数字系统顺序方式控制不灵活的缺 点。 ? VHDL...一种应用VHDL语言设计有... 3页 免费 第八章有限状态机的VHDL... 16...
基于VHDL的两种交通信号控制器的设计与比较_图文.pdf
文中提出了基于 VHDL 语言的两种交通信号控制器的设计与比较,分别采用有限状态机和计数器两种设计方法,给出了控制 器的部分 VHDL 代码,利用 QuartusII 进行全程...
基于VHDL语言的A_D采样控制器设计.pdf
控制器设计 基于 VHDL 语言的 A/ D 采样控制器...硬件描述语言中状态机的 设计 方法设计 A DC 0809...高、 转换速度 较快的特点而得到了更为广泛的应用...
VHDL语言的AD采样控制器设计.doc
VHDL语言的AD采样控制器设计_计算机硬件及网络_IT/...广泛应用于数字传感器、过程控制、监测等领域。 用...这里是用双进程的有限状态机(FSM)来设计通道地址...
课程设计--基于VHDL的三层电梯控制器的设计.doc
摘要本设计运用有限状态机的方法,在结构体最前端首先...三层电梯控制器的设计思路电梯控制器设计两个进程相互...我学习了 VHDL 语言的基本语法,熟悉了 MAX+plus ...
基于EDA的VHDL语言设计的交通灯.doc
基于EDA的VHDL语言设计的交通灯_计算机软件及应用_IT/计算机_专业资料。用有限状态机设计一个交通灯控制器,设计要求:A路和B路,每路都有红、黄、绿三种灯,持续时...
有限状态机设计_图文.ppt
二、有限状态机的分类: 用VHDL语言设计有限状态机有...的每一个状态在实际电路中是用一组触发器的二进制...有限状态机克服了纯硬件数字系统顺序方式控制不灵活 ...
基于FPGA的LCD12864液晶汉字显示设计 及VHDL语言的应用.ppt
是设计基于FPGA的LCD控制器,兼顾好程序的易用性,以方 便之后模块的移植和应用...? 1.3.2一般状态机的VHDL设计 ? 用VHDL设计有限状态机方法有多种,但最一般...
状态机设计交通灯.doc
控制功能要求,以可编程逻辑 器件(FPGA)为硬件基础,以有限状态机设计基础,通过对系统状态及其转移关系的定义, 运用多进程方式描述硬件模块的逻辑关系, VHDL 语言...
更多相关标签: