VHDL电路优化设计及方法
摘要:随着集成电路技术和EDA技术的不断发展,VHDL已经成为IEEE标准化的硬件描述语言。分析VHDL语言设计的优点并对设计中的简化电路结构、优化电路设计等问题进行了研究,从设计思想、语句运用以及描述方法等多方面对电路进行优化设计。通过电路优化设计,可以使用规模更小的可编程逻辑芯片,从而降低系统成本。
1 前言
VHDL(Very High Speed Integrated Circuit Hardware Description Language)是随着可编程逻辑器件(PLD)的发展而发展起来的一种硬件描述语言。它是一种面向设计、多层次、多领域且得到一致认同的标准硬件描述语言,是集行为描述、RTL方式描述、门级描述功能为一体的语言。利用VHDL语言进行PLD设计开发,虽然在使用软件方面可以找到最佳的组合,但在设计思路和语言使用方面对系统的综合质量也有重要的影响。
VHDL的设计是行为级的设计,它必然存在电路设计师的设计思路与电路结构相脱节的问题。电路设计师主要是根据VHDL的语法规则对系统目标的逻辑行为进行描述,然后通过综合工具进行电路结构的综合、编译、优化;通过仿真工具进行逻辑功能仿真。而在实际过程中,由于每个电路工程师对语言规则、电路行为的理解不同,直接导致其编程风格的不同,甚至复杂程度相差甚远。同样的系统功能,如果描述的方式不一样,其综合出来的电路结构就可能大相径庭。即使最后综合出来的电路都能实现相同的逻辑功能,其电路的复杂程度和实验特性都会有很大的差别。因此,本文对设计中的简化电路结构、优化电路设计等问题进行了研究,提出通过资源共享、逻辑优化、采用集成度高的电路语言、避免使用带有寄存器的语句和提高硬件综合效率等方法对VHDL电路进行优化设计,从而降低系统成本。
2 VHDL电路优化设计的方法
设计优化是可编成逻辑设计的精华所在,如何节省所占用的面积、如何提高设计的性能是可编成逻辑设计的核心,这两点往往也成为一个设计甚至项目成败的关键因素。下面主要论述VHDL电路优化设计的方法。
2.1 资源共享
资源共享的主要思想是,通过数据缓冲或多路选择的方法来共享数据通道中占用资源较多的模块(如乘法器、多位加法器等算术模块)。通过共享有时可以较好的提高资源利用率,达到优化的目的。比较下面两个程序:
例程1 :process (A0 , A1 , B , sel )
begin
if(sel=0) then result<=AO*B;
else result< =Al*B;
end if;
end processs;
例程2 :process (AO , A1 , B , sel )
begin
if(sel二0) then temp<= AO;
else temp<=Al;
end if;
result< =temp*B;
end processs;
例程1的设计可用图1描述,例程2的设计可用图2描述。通过对比可以看出,例程2节省了一个代价高昂的乘法器,整个设计占用面积比例程3减少了近一半。

2.2 逻辑优化
逻辑电路的输入项太多以致占用过多的面积也是使电路复杂化的一个原因。下面举一个具体例子加以说明:
简单说明:三输人表决电路是指当三个输入项中至少有两个收入项为1,输出为0。本例中A,B,C为三个输人端,T为输出端。
例程3:library ieee
use ieee std 1164 al
entity biaojue is
port(A,B,C: in bit);
T: out bit);
end biaojue;
architecture biaojuel of biaojue is
begin
process (a,b,c)
begin
variable templ,tempt , tempi : bit
templ=A and C ;
temp2=B and C;
temp3=A and B and (not c);
T=temp1 or temp2 or temp3;
end process
end biaojue;
例程4:library ieee
use ieee std 1164 all
entity biaojue is
port( A,B,C: in bit);
T: out bit);
end biaojue;
architecture biaojue2 of biaojue is
begin
process (a, b , c )
begin
variable templ,temp2, temp3 : bit
templ=A and( B or C );
tempt=C and(AorB);
T=templ or temp2;
end process
end biaojue2;
我们比较一下这两个图及其VH DL描述,图4是三级的逻辑门,每个输入信号只与一个逻辑门相连。图3是二级逻辑门,每个输人信号不至于一个逻辑门相连,由于级数多,延时必然增加,因此图4的速度比图3慢一些。但是经过可以分析得到,由于图3的输人项比图4多,所占用的面积也必然比图4大。实质上,图4是通过从图3中提取公因数而得来的,(这也可以从VHDL描述中看出来)这就是把附加项的中间项加到结构描述中去的一种过程,它的结果必然是输人到输出的逻辑数增加,通过牺牲速度,换来电路占用面积减少。

通过逻辑优化以减少资源利用也是常用的面积优化方法(如常数乘法器的应用,并行逻辑串行化处理等),但其代价往往是牺牲速度。在延时要求不高的情况下,采用这种方法可以达到降低电路复杂度、实现面积优化的目的。为了对设计的资源进行优化,在综合的时候,尽量不要对设计中的时钟过约束。通常来说,更高的性能意味着更多的资源。所以对时钟过约束的结果往往是资源的大量利用,有时还会造成局部设计性能下降,影响全片的最高时钟频率。
2.3 采用集成度高的电路语言
硬件描述语言的一个重要特征是其和硬件电路的紧密联系性,当我们对同一逻辑电路采用不同集成方式的时候,该电路对应的VHDL语言也可采用不同的描述方式。下面举一个具体例子加以说明:
例:二选一电路(如图5)

本文为授权转载文章,任何人未经原授权方同意,不得复制、转载、摘编等任何方式进行使用,e-works不承担由此而产生的任何法律责任! 如有异议请及时告之,以便进行及时处理。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。
- 上一篇文章:EDA技术在微机接口技术实验教学中的应用
- 下一篇文章:EDA工具最好理念:端到端流程优化
