集成电路实验 集成电路实验状态机设计实验报告.docxVIP

集成电路实验 集成电路实验状态机设计实验报告.docx

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE 10 集成电路实验 集成电路实验状态机设计实验报告 专业:电子信息工程 姓名:江燕婷 学号:2011301200025 状态机设计(实验五)实验报告 实验目的 1. 掌握状态机设计的基本方法 2.学习利用状态机的方法实现控制电路 二.实验原理 有限状态机(Finite State Machine FSM)是时序电路设计中经常采用的一种方式,尤其适合设计数字系统的控制模块,在一些需要控制高速器件的场合,用状态机进行设计是一种很好的解决问题的方案,具有速度快、结构简单、可靠性高等优点。有限状态机非常适合用FPGA器件实现,用Verilog HDL的case语句能很好地描述基于状态机的设计,再通过EDA工具软件的综合,一般可以生成性能极优的状态机电路,从而使其在执行时间、运行速度和占用资源等方面优于用CPU实现的方案。 有限状态机一般包括组合逻辑和寄存器逻辑两部分,寄存器逻辑用于存储状态,组合逻辑用于状态译码和产生输出信号。根据输出信号产生方法的不同,状态机可分为两类:米里型(Mealy)和摩尔型(Moore)。摩尔型状态机的输出只是当前状态的函数,如图1-1所示;米里型状态机的输出则是当前状态和当前输入的函数,如图1-2所示。米里型状态机的输出是在输入变化后立即变化的,不依赖时钟信号的同步,摩尔型状态机的输入发生变化时还需要等待时钟的到来,必须在状态发生变化时才会导致输出的变化,因此比米里型状态机要多等待一个时钟周期。 图1-1 摩尔型状态机 图1-2 米里型状态机 状态机在硬件描述语言实现上,可使用单过程、双过程或三过程等不同的结构实现。状态机的状态实现上,可采用符号编码或显式数字编码。编码方式有顺序编码(自然二进制编码),一位热码(one-hot encoding),格雷(gray code)码等。顺序编码,简单状态寄存器占用少;一位热码输出译码电路简单;在状态顺序变化时,格雷码每次只有一位变化,避免产生输出信号毛刺。 三. 实验设备与软件平台 微型计算机,GW48-CK,QuartusII v5.0。 四.实验内容 (一)练习一 采用状态机moore机,110 检测状态图如下:设s0 为初始状态,s1 为检测到一个‘1’的状态,s2 为检测到连续两个‘1’的状态,s3 为检测到连续的‘110’状态。 图1-3 110序列检测器的状态转换图 假设监测器的输入、输出信号规定如下: 输入信号: 复位reset,时钟clk,被测序列in; 输出信号: 指示信号flag,‘1’表示测到110 序列,‘0’表示测到非110 序列。当前状态state,‘00’、‘01’、‘10’、‘11’分别表示三种状态s0、s1、s2、s3。 用Verilog HDL实现的代码如图1-4所示。 图1-4 110序列检测器代码实现 该程序用两个always过程描述,一个过程用来描述现态和次态时序逻辑,另一个过程描述输出逻辑。将程序用综合器生成,可以直观地观察到生成的状态图和状态表。 图1-5 110序列检测器状态机视图 图1-6 110序列检测器状态表 下面设计测试模块。为了方便观察仿真结果,将当前状态satate设为输出信号,编写testbench代码如下, 图1-7 110序列检测器testbench代码 使用ModelSim软件得到仿真结果如图1-8所示, 图1-8 110序列仿真效果图 可以发现,ModelSim仿真结果与实验要求的状态转换情况相符,也与用Quartus II生成的State Machine Viewer状态相同。在每次时钟上升沿到来时连续输入110,将输出一个高电平。 (二)练习二 设计一台饮料自动售卖机,要求如下: 图1-9 所有饮料价格均为30美分,投币值大于30美分时可以找零,有5美分和10美分找零币值。设定售卖机的输入、输出信号规定如下: 输入信号:Q(投入25美分硬币)、D(投入10美分硬币)、N(投入5美分硬币); 输出信号:DC(分配一瓶饮料)、DD(找零10美分)、DN(找零5美分)。GOT_5c、GOT_10c、GOT_15c、GOT_20c、GOT_25c、GOT_30c、GOT_35c、GOT_40c、GOT_45c、RETURN_50c表示投入的各种可能币值,RETURN_20c、RETURN_15c、RETURN_10c、RETURN_5c表示可能需要找零的币值。因此该售卖机共有14个状态。用Verilog HDL实现的代码如下。 图1-10-1 图1-10-2 图1-10-3 在Quartus II生成的状态机视图和状态表分别如下图所示。 图1-11 售货机状态

您可能关注的文档

文档评论(0)

_______ + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档