第7次 有限状态机设计.ppt

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7次 有限状态机设计

《EDA技术与PLD设计》 第7章 有限状态机的设计 通信工程学院 尹廷辉讲师 二??五年三月二十一日 用状态机描述计数器 试用VHDL语言描述一模5加法计数器。 使用另一个进程用于输出信号 process(q) begin case q is when 100=z=1; when others=z=0; end case; end process; 将两个进程合并在一起,行吗? process(clk) begin if clkevent and clk=1 then case q is when 000=q=001;z=0; when 001=q=010;z=0; when 010=q=011;z=0; when 011=q=100;z=0; when 100=q=000;z=1; when others=q=000;z=0; end case; end if; 两种描述方法比较 用状态机描述序列检测器 状态编码 枚举类型 VHDL自带的数据类型: BIT STD_LOGIC INTEGER 用户自定义的数据类型: 枚举类型(Enumerated Data Type) 枚举类型举例 101序列检测器的四个状态S0~S3定义如下: type state_type is (s0,s1,s2,s3); 然后可以定义需要使用的信号,如: signal state: state_type; 状态机的其它设计举例 8路彩灯控制器,设计要求 (1)先从左到右逐个点亮; (2)然后全部灯灭一下; (3)最后重新执行(1)(2)。 思考题 试给8路彩灯控制器增加如下显示花样: (1)从左到右逐个亮,从右到左逐个灭; (2)从两边往中间逐个亮,从中间往两头逐个灭; (3)亮与灭重复3次; (4)重复(1)(2)(3)。 状态机的其它设计举例 交通灯控制器,设计要求: 红灯45秒,黄灯5秒,绿灯40秒 A和B路,每路都有红、黄、绿灯 A路和B路灯的状态是: (1)A红,B绿(持续时间40秒) (2)A红,B黄(持续时间5秒) (3)A绿,B红(持续时间40秒) (4)A黄,B红(持续时间5秒) library ieee; use ieee.std_logic_1164.all; entity traffic is port(clk:in std_logic; z:out std_logic_vector(5 downto 0));--ra,ya,ga;gb,yb,rb end traffic; architecture one of traffic is type state_type is (s0,s1,s2,s3,s4,s5,s6,s7,s8,s9, s10,s11,s12,s13,s14,s15,s16,s17,s18,s19, s20,s21,s22,s23,s24,s25,s26,s27,s28,s29, s30,s31,s32,s33,s34,s35,s36,s37,s38,s39, s40,s41,s42,s43,s44,s45,s46,s47,s48,s49, s50,s51,s52,s53,s54,s55,s56,s57,s58,s59, s60,s61,s62,s63,s64,s65,s66,s67,s68,s69, s70,s71,s72,s73,s74,s75,s76,s77,s78,s79, s80,s81,s82,s83,s84,s85,s86,s87,s88,s89); signal state:state_type; begin process(clk) begin 思考题 试为交通灯控制器增加显示输出。 课堂讨论 如何用状态机实现除法? * 001 000 100 011 010 library ieee; use ieee.std_logic_1164.all; entity cnt5 is port(clk:in std_logic; q:buffer std_logic_vector(2 downto 0)); end cnt5; architecture one of cnt5 is begin process(clk) begin if clkevent and clk=1 then case q is

文档评论(0)

ligennv1314 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档