文档详情

可编程ASIC-状态机设计.ppt

发布:2025-04-02约3.72千字共10页下载文档
文本预览下载声明

*可编程ASIC设计状态机设计学时分配:2*进度1.绪论。2.设计流程。3.模块化硬件与进程模型。4.信号传输模型。5.核心语法与基础电路设计。6.状态机设计。7.可靠设计与高速设计。8.可编程逻辑器件。9.数字信号处理的fpga实现。10.数字系统的RTL设计。回忆计数器设计*设计一电路,包含基4计数器,和译码输出模块。计数器的输出(Present_value)从0到3循环;当计数值为2时,译码输出(DataOut)为“1”,否则输出“0”。Regs+1ClkPresent_valueQ(n)Next_valueQ(n+1)译码DataOutZ(n)Regs+1ClkPresent_valueQ(n)Next_valueQ(n+1)译码DataOutZ(n)00/001/010/111/0Din=1*Regs+/-1ClkPresent_valueQ(n)Next_valueQ(n+1)译码DataOutZ(n)00/001/010/111/0扩展一个输入端din,当din=1时计数器递增计数;当din=0时计数器递减计数。dinDin=1Din=1Din=1Din=0Din=0Din=0Din=0Din=1*Regs+/-1ClkPresent_valueQ(n)Next_valueQ(n+1)译码DataOutZ(n)再将计数器修改成一个状态转换器,状态为S0,S1,S2,S3。每个状态的取值根据具体情况而定。比如S0=00,S1=11,S3=01,S4=10。dinDin=1Din=1Din=100/001/010/111/0Din=0Din=0Din=0Din=0Din=1*Regs译码ClkPresent_valueQ(n)Next_valueQ(n+1)译码DataOutZ(n)再将计数器修改成一个状态转换器,状态为S0,S1,S2,S3。每个状态的取值根据具体情况而定。比如S0=00,S1=11,S3=01,S4=10。dinDin=1Din=1Din=1S0/0S1/0S2/1S3/0Din=0Din=0Din=0Din=0Din=1*Regs译码ClkPresent_stateQ(n)Next_stateQ(n+1)译码DataOutZ(n)dinDin=1Din=1Din=1S0/0S1/0S2/1S3/0Din=0Din=0Din=0Din=0现在我们得到了一个比较通用的时序电路,这种电路统称为状态机(StateMachine)。状态机分类*Regs译码ClkPresent_stateQ(n)Next_stateQ(n+1)译码DataOutZ(n)dinMoore机:输出仅是状态的译码状态机分类*Regs译码ClkPresent_stateQ(n)Next_stateQ(n+1)译码DataOutZ(n)dinMoore机:输出仅是状态的函数Mealy机:输出是状态和输入的函数状态机的表示方法1*方法一:状态转换表输入当前状态下一状态输出0000001010000000…………状态机的表示方法2*方法二:算法流程图方法与软件程序的流程图类似状态转换表和算法流程图都不适合复杂系统的设计状态机的表示方法3方法三:状态转换图这是最流行的表示方法状态1状态4状态2状态3入/出入入入/出/出/出Moore条件控制转移直接控制转移状态机的表示方法3方法三:状态转换图这是最流行的表示方法状态1状态4状态2状态3入/出入入入/出/出/出/出Mealy条件控制转移直接控制转移例子:设计一个二进制序列检测器,当检测到10110序列时,就输出1(一个时钟周期的脉冲)。其他情况下输出0。规定检测到一次之后,检测器复位到最初始的状态,重新从头检测。如下所示:01输出:0000000100000103输入:0110110110110002状态机的应用设计状态转换图设计(Moore)10110S0/0S1/

显示全部
相似文档