状态机的VHDL设计 | 您所在的位置:网站首页 › vhdl中对变量和信号的理解 › 状态机的VHDL设计 |
状态机的基本三要素:状态,输入条件,输出 状态机的分类: 根据状态数:无限状态机(Infinite State Machine,ISM);有限状态机(Finite State Machine,FSM)逻辑状态的设计一般是有限状态机。 根据信号输出方式:Moore型:同步输出状态机,输出仅和当前状态有关,输入的变化需要等待时钟信号的到来;Mealy型属于异步输出状态机,其输出是当前状态和所有输入信号的函数,他的输出是在输入之后立即发生的。 状态机的VHDL设计: 一般有三个模块: 不过感觉以上的分类方法很牵强,个人觉得下面介绍的方法更好(以一个信号发生器为例子说明): 1).说明部分 说明部分中使用 TYPE 语句定义新的数据类型,此数据类型为枚举型, 其元素通常都用 状态机的状态名来定义。 状态变量定义为信号, 便于信息传递, 并将状态变量的数据类型定 义为含有既定状态元素的新定义的数据类型。说明部分一般放在结构体的 ARCHITECTURE 和 BEGIN 之间。 architecture one of generator is type states is(zero,one,two,three,four,five,six,seven); signal present_state,next_state:states; signal temp:std_logic; signal clk_count:std_logic_vector(23 downto 0); begin2).主控时序进程 是指负责状态机运转和在时钟驱动正负现状态机转换的进程。状态机随外部时钟信号以同步方式工作,当时钟的有效跳变到来时,时序进程将代表次态的信号next_state中的内容送入现态信号 current_state中,而next_state中的内容完全由其他进程根据实际情况而定,此进程中往往也包括一些清零或置位的控制信号。 -----Lower section of FSM----- process(clkdiv) begin if(rising_edge(clkdiv))then present_state |
CopyRight 2018-2019 实验室设备网 版权所有 |