用STATECAD快速设计有限状态机_第1页
用STATECAD快速设计有限状态机_第2页
用STATECAD快速设计有限状态机_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、    用STATECAD快速设计有限状态机    用STATECAD快速设计有限状态机    类别:单片机/DSP      作者email: zlyadvocate    数字系统通常划分为信息处理单元和控制单元。信息单元主要进行信息的传输和运算, 而控制单元的主要任务是控制信息处理单元的微操作的顺序。控制单元的实现方式有: 有限状态机、控制寄存器和微代码控制器等。有限状态

2、机在时间尺度上对其控制信号进行离散化控制, 利用状态转移使控制信号在有限状态机的状态节拍控制下变化, 以实现对被控对象的控制。有限状态机设计的关键是如何把一个实际的时序逻辑关系抽象成一个时序逻辑函数,传统的电路图输入法通过直接设计寄存器组来实现各个状态之间的转换, 而用硬件描述语言来描述有限状态机, 往往是通过充分发挥硬件描述语言的抽象建模能力,通过对系统在系统级或寄存器传输级进行描述来建立有限状态机。eda 工具的快速发展,使通过cad快速设计有限状态机自动化成为可能。传统上在系统级和寄存器传输级完成vhdl 的描述主要分以下几步:(1) 分析控制器设计指标, 建立系统算法模型图;(2) 分

3、析被控对象的时序状态, 确定控制器有限状态机的各个状态及输入.输出条件;(3) 应用vhdl 语言完成描述。使用xilinx的ise6.1软件包能加速有限状态机设计,大大简化状态机的设计过程,实现状态机设计的自动化。下面分析二个简单的状态机设计实例来介绍使用ise6.1软件包中statecad来介绍快速设计有限状态机的方法。使用statecad进行状态机设计的流程如下:(1) 分析控制器设计指标, 建立系统算法模型图;(2) 分析被控对象的时序状态, 确定控制器有限状态机的各个状态及输入.输出条件;(3) 在statecad中输入有限状态机状态图,自动产生vhdl模型描述,使用stateben

4、ch进行状态转移分析,分析无误后使用导出vhdl模型块到ise中进行仿真后综合,实现到cpld或fpga的映射。设计人员的主要工作在第一步。第二步,第三步基本上可以通过statecad完成有限状态机的自动生成和分析,还可以利用分析结果来对被控对象的逻辑进行分析,改进,完善系统控制逻辑。下面以一个vcr控制机状态机设计过程来介绍如何使用statecad设计状态机。vcr控制机描述:外部输入:1powerswitch-电源开关2stop-停按钮3play播放按钮4record录影按钮输出状态:1 有电显示:电源指示灯亮,播放指示灯灭,录影指示灯灭;2 按播放按钮,进入播放状态,播放指示灯亮,电源指

5、示灯亮,录影指示灯灭;按停按钮,退出播放状态回到有电状态,播放指示灯灭,电源指示灯亮,录影指示灯灭;3 按录影按钮,进入录影状态,录影指示灯亮;按停按钮,退出录影状态回到有电状态;电源指示灯亮,播放指示灯灭,录影指示灯灭;4 电源开关断开,电源指示灯灭,播放指示灯灭,录影指示灯灭;打开statecad,输入如下的状态图:进行逻辑优化(工具自动进行逻辑优化)后,使用statebench进行状态转移分析。以下是自动状态转移模拟波形。也可以进行行为状态模拟:如以下动作的模拟波形,按电源开关上电,按播放按钮,按播放按钮,按停按钮,按录影按钮,按停按钮,电源开关断电。综合以上的模拟波形结果,可以看到状态

6、机安装指定的状态转移图工作。导出vhdl模型块到ise中进行仿真后综合后可以适配到xc9536-5-pc44芯片,适配结果如下:宏模块使用 pterms used 寄存器使用情况 引脚使用情况 iob使用情况9/36 (25%) 37/180 (21%) 9/36 (25%) 13/34 (39%) 11/72 (16%)进行引脚锁定后就可以进行编程。 代码如下:- d:xilinxtutorialvcrstate.vhd- vhdl code created by xilinx"s statecad 6.1ilibrary ieee;use ieee.std_logic_1164.

7、all;entity vcrstate is port (clk,playswitch,powerswitch,recordswitch,reset,stopswitch: in std_logic ; playled,powerled,recordled : target="_blank" process (clk, reset, ) then sreg <= and clk"event then sreg <= target="_blank" case sreg is when ) then   &

8、#160;        else            end if; when play =>    if ( powerswitch="1" and stopswitch="0" ) then         

9、0;  end if;    if ( powerswitch="0" ) then            end if;    if ( stopswitch="1" and powerswitch="1" ) then        &

10、#160;   end if; when poweron =>    if ( powerswitch="0" ) then            elsif ( recordswitch="1" ) then         ;    els

11、if ( playswitch="1" ) then         ;    else         ;    end if; when recording =>    if ( powerswitch="1" and stopswitch="0" ) then         ;    end if;    if ( powerswitch="0" ) then         ;    end if;    if ( stopswitch="1" and

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论