电子文章 | 电子资料下载 | 家电维修 | 维修资料下载 | 加入收藏 | 全站地图
您现在所在位置:电子爱好者电子文章FPGAVHDL设计中电路简化问题的探讨

VHDL设计中电路简化问题的探讨

11-20 16:12:47 | http://www.5idzw.com | FPGA | 人气:557
标签:fpga是什么,fpga教程,fpga培训,http://www.5idzw.com VHDL设计中电路简化问题的探讨,http://www.5idzw.com
   elsif(count=″011000000000000000″)then

      ctemp<=″00001000″;

   elsif(count=″100000000000000000″)then

      ctemp<=″00010000″;

   elsif(count=″101000000000000000″)then

      ctemp<=″00100000″;

   elsif(count=″110000000000000000″)then

      ctemp<=″01000000″;

   elsif(count=″111000000000000000″)then

      ctemp<=″10000000″;

   end if;

end if;

end peocess;

    对于第一种的程序可以综合出的电路如图1所示。

    该电路用一个15位的加法器和寄存器组成一个15位的记数器。在记数器记完一周回到“000000000000000”时,通过后面的15输入的与非门和一位的触发器就可以实现同步的进行215次分频,同步输出32Hz的时钟CCLK。CCLK再驱动一8位的移位寄存器,便可实现每32秒输出一信号。

    而用第二种的程序设计综合出的电路如图2所示。

    图2所示的电路用一个18位的加法器和寄存器组成一个18位的记数器。后接了8个18输入的逻辑门和8输入的或门。输入的1kHz时钟经过记数器被分频,其中有八个相隔32Hz的记数状态,逻辑门就负责把这八状态译码成所需的八组信号。译码后的数据通过选择器输出到8位的触发器,以实现同步输出。还有个锁存器,是用来保持输出信号不变,在八个状态中的从一个状态变到下一个之前,保持前一个的数值。选择器当逻辑门输出新的数据时让其输出数据通过,在新数据到来之前输出锁存器的数据。

    以上两种方法都能实现相同的逻辑功能,但图2所示的方法由于运用了较少位数的记数器,所用的逻辑门也较简单,而且还少用了多路选择器和锁存器资源,所以综合出来的电路较简单,以XILINX

  Spartan S05 -3 芯片为例。第一种方法占用芯片CLB的12%,其中FMAPS为9%,最高工作速度为82Hz。而第二种方法占用了15%的CLB,FMAPS占用15%,最高工作速度只有69.9MHz。在这一个简单的设计之中就能省20%的电路,提高12.1MHz的工作速度,由此可见科学的划分设计对降低电路复杂程度的重要意义。

    3 逻辑设计对电路结构的影响

    还有一个使电路复杂化的原因是逻辑电路的输入项太多以致需占用过多的面积。我们从图3和图4两个相同功能的逻辑电路和他们对应的VHDL描述来分析。

    比较两图可知,图3是二级逻辑门,每个输入信号与不只一个逻辑门相连,图4是三级的逻辑门,每个输入信号只与一逻辑门相连。由于级数少,延时也较少,因此图3的速度要比图4快。然而,由于图3的输入项要比图4大的多(10:5),因此,占用的面积必然也比图3大。图4是图3通过提取公因数(例中是B和C)得来的,这是把附加的中间项加到结构描述中去的一种过程,它使输入到输出中的逻辑级数增加,牺牲速度换来电路占用面积的减少。对于对延时要求不高的情况下采用这种方法分解逻辑电路以达到减少电路复杂度的目的。

    通过以上简单、初步的探讨,我们可以知道,用VHDL进行集成电路的设计,牵涉到对VHDL语言的使用方法和对设计的理解程度。本文讨论了以下几个简化和优化电路设计的3个值得注意的方面:

(1)在用VHDL进行设计中要注意避免不必要的寄存器描述。

(2)在编写程序前要先对整个设计进行较深入的了解科学的划分设计,多设想几种方案再进行比较用多个较少位数的单元取代较多位数的单元。

(3)在延时要求不高的情况下,可提取逻辑电路公因子把它分解成含有中间变量的多级电路。

上一页  [1] [2] 

,VHDL设计中电路简化问题的探讨