




免费预览已结束,剩余8页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电子通信07级EDA课程实验报告1 有限状态机有限状态机(Finite State Machine)是一种具有内部记忆的抽象机器模型,是时序电路的一种,通过有限状态机课实现高效率高可靠逻辑控制。根据输出与输入关系、系统状态的关系,有限状态机又可以分为Moore型有限状态机和Mealy型有限状态机。Moore型状态机的输出信号只于当前的状态有关;Mealy型状态机是输出信号不仅与当前的状态有关,还与输入信号有关。Mealy机的示意图如图二所示:图二Mealy机的示意图Moore机的示意图如图三所示:图三 Moore机的示意图Moore型有限状态机和Mealy型有限状态机的区别: 在Moore机中,输出的时钟活动沿到达后的几个门电路的延迟时间之后即到达,并且在该时钟周期的剩余时间内保持不变,即使输入在该时钟周期内发生变化,输出值也保持不变。然而,因为输出与当前的输入无关,当前输出产生的任何效果将延迟到下一个时钟周期。Moore机的优点是将输出与输入分隔开。 在Mealy机中,因为输出是输入的函数,如果输入改变,则输出可以在下一个时钟周期的中间发生改变。这使得Mealy机比Moore机,对输入变化的响应要早一个时钟周期,一旦输入信号或状态发生变化,输出信号随着输入信号变化。 实现同样功能,Moore机要比Mealy机需要更多的状态。通过分析本次实验,利用Mealy机更加容易理解,并且使用Moore会使用更多的状态,所以本次实验使用Mealy型有限状态机。2 Soda Machine机的设计2.1 Soda Machine机的状态转换图Soda Machine机的状态转换图如图四所示。图四Soda Machine机的状态转换图图中共有10个状态,为ST0ST9。在状态转换图中00代表无输入,11代表输入Q(25c),10代表输入D(10c), 01代表输入N(5c)。在输出中000代表无输出,001代表输出DN(5C),010代表输出的DD(10C),100代表输出DC(1 can)。ST0是初始态。当没有硬币投入时,状态机始终保持STO状态不变。当投入5分(即01)时,状态机跳转到ST1状态,无输出(即000);当投入10分时(即10),跳转到S2状态,无输出(即000);当投入25分时(即11)跳转到S5状态,无输出(即000)。ST1是有投入5分后的状态。当没有硬币投入时,状态机始终保持ST1状态不变, 无输出(即000);当投入5分(即01)时,状态机跳转到ST2状态,无输出(即000);当投入10分(即10)时,跳转到ST3状态, 无输出(即000);当投入25分(即11)时,跳转到ST0状态,输出一瓶饮料(即100)。ST2是投入10分后的状态。当没有硬币投入时,状态机始终保持ST2状态不变, 无输出(即000);当投入5分(即01)时,状态机跳转到ST3状态,无输出(即000);当投入10分(即10)时,跳转到ST4状态, 无输出(即000);当投入25分(即11)时,跳转到ST6状态,输出一瓶饮料(即100),在下一个时钟到来ST6再跳转到ST0,输出5分(即001)。这样可保证每个时钟只输出一个(饮料或10分或5分)。ST3是投入15分后的状态。当没有硬币投入时,状态机始终保持ST3状态不变, 无输出(即000);当投入5分(即01)时,状态机跳转到ST4状态,无输出(即000);当投入10分(即10)时,跳转到ST5状态, 无输出(即000);当投入25分(即11)时,跳转到ST7状态,输出一瓶饮料(即100),在下一个时钟到来ST7再跳转到ST0,输出10分(即010)。输出正确,同样可保证每个时钟只输出一个(饮料或10分或5分)。ST4是投入20分后的状态。当没有硬币投入时,状态机始终保持ST4状态不变, 无输出(即000);当投入5分(即01)时,状态机跳转到ST5状态,无输出(即000);当投入10分(即10)时,跳转到ST0状态, 输出一瓶饮料(即100);当投入25分(即11)时,跳转到ST8状态,输出一瓶饮料(即100),在下一个时钟到来ST8再跳转到ST6,输出10分(即010),在下一个时钟到来ST6再跳转到ST0,输出10分(即001)。输出正确,同样可保证每个时钟只输出一个(饮料或10分或5分)。ST5是投入25分后的状态。当没有硬币投入时,状态机始终保持ST3状态不变, 无输出(即000);当投入5分(即01)时,状态机跳转到ST0状态,输出一瓶饮料(即100);当投入10分(即10)时,跳转到ST6状态, 输出一瓶饮料(即100),在下一个时钟到来ST6再跳转到ST0,输出5分(即001);当投入25分(即11)时,跳转到ST9状态,输出一瓶饮料(即100),在下一个时钟到来ST9再跳转到ST7,输出10分(即010),在下一个时钟到来ST7再跳转到ST0,输出10分(即010)。输出正确,同样可保证每个时钟只输出一个(饮料或10分或5分)。2.2 Soda Machine机的状态分配与编码2.2.1状态编码方式在状态机的设计中,对状态编码有多种,常用编码的方式有:有限状态机中常用的编码主要有二进制编码、格雷码和One-Hot编码。表1 二进制编码、格雷码和One-Hot编码的比较比较二进制编码格雷码编码一位热码编码触发器数量少少多时序条件一般好最好非法状态少少多译码电路复杂复杂简单下面是对这三种编码方式的仿真。2.2.2 一位热码编码方式由一位热码编码形成的RTL如图五所示。图五 一位热码编码形成的RTL2.2.2 二进制编码方式二进制编码代码为:SIGNAL CURRENT_STATE,NEXT_STATE:STD_LOGIC_VECTOR(3 DOWNTO 0 );CONSTANT ST0:STD_LOGIC_VECTOR(3 DOWNTO 0 ):=0000;CONSTANT ST1:STD_LOGIC_VECTOR(3 DOWNTO 0 ):=0001;CONSTANT ST2:STD_LOGIC_VECTOR(3 DOWNTO 0 ):=0010;CONSTANT ST3:STD_LOGIC_VECTOR(3 DOWNTO 0 ):=0011;CONSTANT ST4:STD_LOGIC_VECTOR(3 DOWNTO 0 ):=0100;CONSTANT ST5:STD_LOGIC_VECTOR(3 DOWNTO 0 ):=0101;CONSTANT ST6:STD_LOGIC_VECTOR(3 DOWNTO 0 ):=0110;CONSTANT ST7:STD_LOGIC_VECTOR(3 DOWNTO 0 ):=0111;CONSTANT ST8:STD_LOGIC_VECTOR(3 DOWNTO 0 ):=1000; CONSTANT ST9:STD_LOGIC_VECTOR(3 DOWNTO 0 ):=1001;由二进制码形成的RTL如图六所示。图六 二进制码形成的RTL2.2.3 格雷码编码方式格雷码编码代码为:SIGNAL CURRENT_STATE,NEXT_STATE:STD_LOGIC_VECTOR(3 DOWNTO 0 );CONSTANT ST0:STD_LOGIC_VECTOR(3 DOWNTO 0 ):=0000;CONSTANT ST1:STD_LOGIC_VECTOR(3 DOWNTO 0 ):=0001;CONSTANT ST2:STD_LOGIC_VECTOR(3 DOWNTO 0 ):=0011;CONSTANT ST3:STD_LOGIC_VECTOR(3 DOWNTO 0 ):=0010;CONSTANT ST4:STD_LOGIC_VECTOR(3 DOWNTO 0 ):=0110;CONSTANT ST5:STD_LOGIC_VECTOR(3 DOWNTO 0 ):=0111;CONSTANT ST6:STD_LOGIC_VECTOR(3 DOWNTO 0 ):=0101;CONSTANT ST7:STD_LOGIC_VECTOR(3 DOWNTO 0 ):=0100;CONSTANT ST8:STD_LOGIC_VECTOR(3 DOWNTO 0 ):=1100; CONSTANT ST9:STD_LOGIC_VECTOR(3 DOWNTO 0 ):=1101;由格雷码形成的RTL如图七所示:图七格雷码形成的RTL从以上3个图可知:采用一位热码编码,虽然这种方法的用的的触发器不是最少,但是可以使次态逻辑变得简单,由于一般的可编程器件,触发器的比率高于组合逻辑,所以采用一位热码编码的系统占用的资源反而少于采用最少触发器的系统。因此采用一位热码编码的编码方式。2.2.4 对输入信号编码两位二进制数对输入信号进行编码的RTL如图八所示,及00代表无输入,01代表输入为5分,10代表输入10分,11代表输入25分。图八 两位二进制数对输入信号进行编码的RTL三位二进制数对输入信号进行编码的RTL如图所示,及000代表无输入,001代表输入为5分,010代表输入10分,100代表输入25分。图九 三位二进制数对输入信号进行编码的RTL从上面的两个RTL图中可以看出,用两位二进制数对输入信号进行编码电路简单,并且完全避免的输入的非法状态,所以使用两位二进制数对输入信号进行编码。2.3 Soda Machine机状态最少化状态最少化采用的方法一般是手动法,只有当两个状态在相同的输入条件下,有相同的次态和输出,那么这两个状态就可以合并,状态最少化是基于观察完成的。2.3.1 Soda Machine机状态转换及输出表根据图写出状态转换及输出表,见表2。表2 Soda Machine机的状态转换及输出表现态相应转移条件下的次态输出状态名称25美分10美分5美分0美分饮料10美分5美分ST0ST5ST2ST1ST0000ST1ST0ST3ST2ST1000ST2ST6ST4ST3ST2000ST3ST7ST5ST4ST3000ST4ST8ST0ST5ST4000ST5ST11ST10ST0ST5000ST6没有输入,次态为ST0001ST7没有输入,次态为ST0010ST8没有输入,次态为ST9010ST9没有输入,次态为ST0010ST10没有输入,次态为ST0001ST11没有输入,次态为ST12010ST12没有输入,次态为ST0010注:ST2跳转到ST6的过程中,输出一瓶饮料;ST3跳转到ST7的过程中,输出一瓶饮料;ST4跳转到ST8的过程中,输出一瓶饮料;ST5跳转到ST6的过程中,输出一瓶饮料;ST5跳转到ST9的过程中,输出一瓶饮料。2.3.2 Soda Machine机的状态合并根据上面的状态转换表及输出表,基于观察,发现st6、st10的次态转移和输出完全相同,st7、st9、st12的次态转移和输出完全相同,因此可以将这几个状态进行合并,见表3。表3 合并状态st6和st10为st6,合并状态st7,st9、st12为st7现态相应转移条件下的次态输出状态名称25美分10美分5美分0美分饮料10美分5美分ST0ST5ST2ST1ST0000ST1ST0ST3ST2ST1000ST2ST6ST4ST3ST2000ST3ST7ST5ST4ST3000ST4ST8ST0ST5ST4000ST5ST9ST6ST0ST5000ST6没有输入,次态为ST0001ST7没有输入,次态为ST00102.4 Soda Machine机的VHDL语言2.4.1 实体设计ENTITY Soda IS PORT (CLK ,RESET:IN STD_LOGIC;-时钟、复位信号 STATE_INPUTS:IN STD_LOGIC_VECTOR (0 TO 1);-输入信号 COMB_OUTPUTS:OUT STD_LOGIC_VECTOR (0 TO 2);-输出信号END Soda;2.4.2 结构体设计(部分代码)TYPE STATES IS (ST0,ST1,ST2,ST3,ST4,ST5,ST6,ST7,ST8,ST9);-定义数据类型SIGNAL CURRENT_STATE,NEXT_STATE:STATES;-将现态和次态定义为新的数据类型REG:PROCESS(CLK,RESET) BEGIN IF RESET=1THEN CURRENT_STATE=ST0; ELSIF CLKEVENT AND CLK=1 THEN CURRENT_STATE IF STATE_INPUTS=00 THEN NEXT_STATE=ST0;COMB_OUTPUTS2:=000; ELSIF STATE_INPUTS=01 THEN NEXT_STATE=ST1;COMB_OUTPUTS2:=000; ELSIF STATE_INPUTS=10 THEN NEXT_STATE=ST2;COMB_OUTPUTS2:=000; ELSE NEXT_STATE=ST5;COMB_OUTPUTS2:=000; END IF;2.5 Soda Machine机的RTL描述Soda Machine的RTL描述如图十所示。图十Soda Machine的RTL描述2.6 Soda Machine在Quartus II中形成的状态转图Soda Machine在Quartus II中形成的状态转图如图十一所示。 图十一 Soda Machine在Quartus II中形成的状态转图2.7 Soda Machine的时序仿真Soda Machine的时序仿真图如图十二所示:图十二 Soda Machine的时序仿真图时序逻辑说
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 16.1生命的诞生说课稿-2024-2025学年苏教版生物八年级上册
- 2024-2025学年高中语文 第五课 第4节 说“一”不“二”-避免歧义说课稿2 新人教版选修《语言文字应用》
- 2025年中考数学试题分类汇编:一次函数(12大考点43题) (第1期)原卷版
- 2025年初中生物学教师招聘考试测试题及答案
- 2025年中考地理试题分类汇编:居民与文化、发展与合作(第1期)原卷版
- 江苏省江阴市成化高级中学高中地理 5.2 产业转移 以东亚为例说课稿1 新人教版必修3
- 沟通的艺术-好好说话(说课稿)2025-2026学年初三下学期教育主题班会
- 劳动项目三 发绿豆芽教学设计-2025-2026学年小学劳动六年级下册人教版《劳动教育》
- 2025年美发师技师职业技能考试题库(含答案)
- 叉车科目一模拟考试题及答案
- 2025年机关事务管理局招聘考试大纲
- 主城区积水易涝点排水防涝管网更新改造工程可行性分析报告(参考模板)
- 早期现代舞课件
- 碳固持效应研究-洞察及研究
- 口腔医保政策解读
- JJG 693-2011可燃气体检测报警器
- 部编版语文八年级下册第一单元口语交际 应对 练习(含答案解析)
- 部编版八年级上册语文《消息二则》课件(定稿)
- 新员工三级安全教育培训试题(有答案)
- 预测分析:技术、模型与应用 - SAP Predictive Analytics
- 2014中国神经外科颅底内镜临床应用技术专家共识
评论
0/150
提交评论