微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > FPGA和CPLD > VHDL设计MOORE型有限状态机时速度问题的探讨

VHDL设计MOORE型有限状态机时速度问题的探讨

时间:09-25 来源:互联网 点击:

      2.3 输出直接从状态位得到

      为了能够把时钟-输出时延限制在TCO内,也可以将状态位本身作为输出信号。对于状态位不是很多的状态机而言,这种方法也许较前两种更为优越。某种情况下,可能会出现两种不同状态有相同的状态位,此时只需增加一位状态位加以区别即可。如此程序中,idle、decision、read、write四种状态可分别编码为000,001,100,010。采用这种方法所对应的程序如下:

      signalpresent_state:std_logic_vector(2downto0);
      state:process(clk,ready,read_write);
      begin
      if(clk'eventandclk='1')then
      case present_stateis
      when "000"=>ifready='1' then present_state<="001";
      else present_state<="000";
      endif;
      when "001"=>if(read_write='1') then
      present_state<="100";
      else present_state<="001";
      endif;
      when "100"=>if(ready='1')then
      present_state<="000";
      elsepresent_state<="100";
      endif;
      when "010"=>if(ready='1') then present_state<="000";
      else present_state<="010";
      endif;
      when others=>present_state<="---";
      endcase;
      endif;
      endprocess;
      oe<=present_state(2);
      wr<=present_state(1);

      对此程序综合出的电路如图6所示。从图中可知,输出信号未通过额外的逻辑对现态进行译码,而是直接来自状态寄存器,因而输出信号上没有毛刺,并且它所用的宏单元少于通过并行输出寄存器输出的方式。



      3 结论

      从以上分析可知,普通MOORE型状态机时延最长,速度最慢,可应用于对速度要求不高的场合。同时,由于它的输出信号中有毛刺,更加限制了它的应用范围。后两种方案在相同的条件下,具有相同的时延,即速度是相同的,但第二 种方案所占用面积要比第三种大得多,且对时钟频率有一定限制。如果可能的话,选择“输出直接从状态位得到”类型状态机是一个理想的方案,因为其速度最快,面积最小,设计这种状态机时,必须在VHDL源码中对状态的编码加以明确的规定,使状态和输出信号的取值一致。所以只有在状态机的规模较小时,才能很好地实现这种类型的设计。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top