第三章状态机设计辨析.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* §3.10 状态机的VHDL设计 第 三 章 ①VHDL综合器易于优化 为什么要使用状态机FSM ②容易构成性能良好的同步时序逻辑模块 ③状态机的模式简单、程序层次分明、易排错 ④利用同步时序和全局时钟线上可实现高速FSM ⑤运行模式类似于CPU,易于进行顺序控制 ⑥高可靠性,非法状态易控制(优势) ⑦应用广泛。如PS/2,RS232等 3.1 状态机的VHDL设计 涉及语法复习 TYPE语句用法如下: TYPE 数据类型名 IS 数据类型定义 OF 基本数据类型; 或 TYPE 数据类型名 IS 数据类型定义 ; 以下列出了两种不同的定义方式: TYPE st1 IS ARRAY ( 0 TO 15 ) OF STD_LOGIC ; TYPE week IS(sun,mon,tue,wed,thu,fri,sat) ; 用户自定义的数据类型 类型定义语句TYPE TYPE m_state IS ( st0,st1,st2,st3,st4,st5 ) ; SIGNAL present_state,next_state : m_state ; 布尔数据类型的定义语句是: TYPE BOOLEAN IS (FALSE,TRUE) ; TYPE my_logic IS ( 1 ,Z ,U ,0 ) ; SIGNAL s1 : my_logic ; s1 = Z ; 一般有限状态机的结构 comb_outputs state_inputs reset clk FSM: s_machine COM next_state current_state PROCESS REG PROCESS 表 AD574逻辑控制真值表(X表示任意) CE CS RC K12/8 A0 工 作 状 态 0 X X X X 禁止 X 1 X X X 禁止 1 0 0 X 0 启动12位转换 1 0 0 X 1 启动8位转换 1 0 1 1 X 12位并行输出有效 1 0 1 0 0 高8位并行输出有效 1 0 1 0 1 低4位加上尾随4个0有效 AD574工作时序 图 AD574工作时序 PROCESS REG 时序进程 PROCESS COM 组合进程 PROCESS LATCH 锁存器 current_state next_state LOCK 状态机FSM FPGA/CPLD CLK CS A0 RC K12/8 STATUS D[11..0] AD574 Q[11..0] 模拟信号输入 采样数据输出 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY AD574 IS PORT(D :IN STD_LOGIC_VECTOR(11 DOWNTO 0); CLK ,STATUS : IN STD_LOGIC; CS,A0,RC,K12X8 : OUT STD_LOGIC; Q : OUT STD_LOGIC_VECTOR(11 DOWNTO 0)); END AD574; ARCHITECTURE behav OF AD574 IS TYPE states IS (st0, st1, st2, st3,st4); SIGNAL current_state, next_state: states ; SIGNAL REGL :STD_LOGIC_VECTOR(11 DOWNTO 0); SIGNAL LOCK : STD_LOGIC; BEGIN COM: PROCESS(current_state,STATUS) BEGIN CASE current_state IS WHEN st0 = CS=1; A0=0; RC=0; LOCK=0; next_state = st1; WHEN st1= CS=0; A0=0; RC=0; LOCK=0; next_state = st2; WHEN st2= CS=0; A0=0; RC=0; LOCK=0; IF (STATUS=1) THEN next_state = st2; ELS

文档评论(0)

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

我是自由职业者,从事文档的创作工作。

1亿VIP精品文档

相关文档