首页 > 范文大全 > 正文

EDA技术在高性能DSP电路中的研究及应用

开篇:润墨网以专业的文秘视角,为您筛选了一篇EDA技术在高性能DSP电路中的研究及应用范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要: 从eda技术入手,对高性能dsp电路设计进行了研究。给出了基于EDA技术的全定制时序电路实现功能模型自动提取的流程,研究了时序电路功能模型自动提取的算法,设计实现了一个功能模型自动提取工具AutoExtra。仿真实验表明了AutoExtra的有效性,同时满足了基于EDA技术的高性能模块级DSP电路的设计要求。

关键词: EDA; DSP; 全定制电路; 自动提取; AutoExtra

中图分类号: TN702.2?34 文献标识码: A 文章编号: 1004?373X(2016)01?0129?04

0 引 言

EDA(Electronics Design Automation,电子设计自动化)技术是集成电路设计方法中非常重要的组成部分,其影响并决定了所有高性能集成电路的相关设计方法。当前,依托具有自动布局、自动布线等功能的工具实现了ASIC的设计。在集成电路设计中EDA技术主要有两方面的作用分别为:第一,使得集成电路的功能设计和功能验证过程变快,主要指电路的格局安排、线路布置及形式审查;第二,完成专业人士很难实现的工作,比如说捕获DSP电路中的寄生参数、进行时序级电路的功能逻辑分析和电路降噪处理等。整合现有的人力和物力资源,并实现电路设计的大规模和高复杂度是当今高性能DSP技术的主要需求,该需求的前提是要在有限的时间内,解决途径之一就是借助EDA技术。

高性能DSP主要指那些具有强大的运算能力、高存储性、外设丰富、加工工艺先进、结构体系新的电路。当前高性能DSP的主流结构是VLIW体系结构,该结构最早由TI公司于1996年推出,其指令发射窗口的宽度[1]一般为3~8。提高主流DSP性能的方法主要有两个:一是靠电路技术的发展进步;二是靠现有电路设计方法的改进。EDA技术是改进电路设计方法中非常重要的因素,在降低设计成本的同时,可以提高设计质量和设计效率[2]。

EDA全定制电路功能模型提取技术是对电路设计进行改进的一种方法[3]。目前为止,国内外已经展开了众多研究。对电路进行结构模式匹配、数字符号分析和体系结构定义是模型提取的三种重要方式。其中,模式匹配需要预先进行各种电路模式的定义,主要有:锁存器定义、多米诺电路定义以及互补CMOS门的定义,以图形匹配的方式进行DSP电路的识别。电路模式的预先定义是该方法的主要缺点,对于新开发的或研发的电路,需要不断进行电路模式的增加或进行相关指导;由于晶体管级电路的匹配非常难,导致模式匹配的复杂性[4]。针对上述问题,Bryant发明了一种高效的算法,该算法能快速实现针对每个子模块对应的布尔模型的建立,也能够方便地采用数学方法获取子模块的逻辑功能电路,采用这种方式为MOS电路的符号分析技术奠定了坚实的数学基础[5?6]。著名的IBM公司采用基于EDA开发的Verity和GateMaker工具分别进行电路的功能验证和测试报告生成[7]。在高性能全定制DSP中最早进行模型提取技术应用的是Verity。该方法的缺点是对时序逻辑不支持,只能对基于路径的静态CMOS门、信号传输门和简单的动态电路进行策略提取。Yang等在FROSTY的研究中结合了结构分析和模式匹配两种方法,对复杂的时序逻辑的识别采用模式匹配的方法。

1 时序电路功能模型提取流程

时序电路的功能模型提取流程,如图1所示。

(1) 首先进行SPICE格式网表的输入;其次,对电路进行网表读取并进行展平。依据晶体管沟道的连通性特征,将整个电路进行CCC划分。CCC代表了一个最大的集合,该集合表示了相应电路内部通过沟道相连的晶体管的最大数量。图2为电路中晶体管进行CCC划分的展示,从该图可以明显看出,三个晶体管被划分到两个CCC中。若CCC内部无任何传输通道,则该CCC就称之为一个CMOS门;若CCC中包含传输通道,则传输门和相应的逻辑驱动电路就包含其中。

(2) CCC排序的实现。CCC划分完毕之后,按照电路中信息的流向,从输入到输出实现CCC的排序。在CCC的排序算法中,若有几个CCC是相邻的,并且他们能够构成一个闭环,则该闭环上的所有晶体管将被1个大的CCC所包含,这些CCC将合并为一个以便于进行环路分析。高性能DSP中,时序电路和动态电路的分析离不开时钟的分析。电路中,时钟数的提取是在CCC的划分和排序之后。遍历算法是其所采用的提取算法,遍历的方式是:以时钟数的输入节点为出发节点,进行整个时钟数的遍历。通过CCC的划分和排序,还可以对门控时钟实现复杂的处理,并进行脉冲电路的产生[8]。

在进行EDA全定制电路的时序分析中,要求最终的电路模型能够保持原有的电路模型,并且其在每个晶体管电路中的作用要确切。通过功能模型的提取,最终输出的是一个RTL级的Verilog文件。

2 时序电路功能模型提取算法

针对伪静态锁存器和主从D触发器两种结构的时序电路进行了时序电路功能模型提取算法的研究与设计。伪静态锁存器是由相应的驱动电路和对应的环路组成。两个伪静态锁存器组成一个主从D触发器。上述的伪静态锁存器和主从D触发器再加上由他们扩展得到的其他电路类型,是当前EDA设计中研究最广泛的时序器件。时序器件中,电路结构分析和模型建立是进行伪静态锁存器提取算法的两个组成部分。锁存器的分析算法设计如下:

Step1:寻找一个由节点[N1,N2,…,Nm]和门[G1,G2,…,Gm]构成的闭环。在该闭环上进行多路选择器[Gi]的搜索。找到之后,以该[Gi]的分支作为闭环的新驱动,该分支不在原闭环上;若找不到这样的分支,则需要寻找相应的三态门或传输门作为闭环的新驱动,要求三态门或传输门在环外。

Step2:审查闭环及其相应的驱动电路并判断能否构成相应的锁存器。

Step3:对于第[i]个节点[Ni]被看作是输出节点的两个条件是:被作为驱动信号的输出;不在闭环上的门驱动。

Step4:[Gi]被称为闭环上的互补CMOS门。[Ii,k]是其不在闭环上的输入值。如果输入[Ii,k=0,]则[Gi]的输出肯定是1,那么[Ii,k]被称作复位信号并且[Ci,k=0];若[Ii,k=1],则[Gi]的输出肯定是0,则[Ii,k]被称作复位信号并且[Ci,k=1]。

Step5:判断每一个位于环上的传输门和三态门其控制信号是不是时钟,若是时钟信息,则传输门的导通和三态门驱动的导通是相互排斥的。

Step6:锁存器模型的建立。通过触发器结构分析,为每个输出节点[Ni]建立锁存器模型。

通过上述算法步骤可知:首先要找到一个闭环;然后分析该闭环及其驱动,并判断其是否能够组成锁存器,若能,则将输出节点和复位信号全部列出。一个闭环构成锁存器的前提有两个:一是该环路是正反馈的,即沿着一定的方向遍历完所有的节点后,极性保持不变;二是闭环的驱动不是传输门就是三态门。以上算法中,传输门和三态门的导通必须有时钟进行控制。上述算法规定的CMOS门的类型需要从NAND和NOR中选择。算法中不同的输入节点有不同的复位信号,近似值[Ci,x]的得出是通过对算法进行结构分析获得的。带扫描功能的锁存器目前的算法并不支持,而且现在闭环上的传输门或三态门有且只有一个,导致只能对该算法做进一步改进。

功能模型可以通过以上算法进行确立。每一个锁存器可能有多个输出节点,每一个输出节点都可以建立对应的模型。RTL级的Verilog描述被认为是锁存器模型的输出。在锁存器模型中一般包括以下内容:敏感信号表、异步和同步复位语句、赋值逻辑信息。其中,复位信号、时钟信号、数字信号包含在敏感信号表中。输出节点的位置决定了复位信号的不同,而且要对每一个复位信息的类型进行分析。具体分析过程为:首先,在模型建立之前,判断对应输出节点[Ni]的复位信号[Ij,k]是同步还是异步的,并区分其高低有效性。根据如下步骤进行输出节点[Ni]的复位信号[Ij,k]的类型分析:

(l) 首先判定同步、异步复位信号。若节点[Nj]与[Ni]间传输门或者三态门,且被时钟控制,那么复位信号[Ij,k]是同步的;否则,是异步的。

(2) 节点距离[distance(Nj,Ni)]的定义。CMOS门和三态门总数的奇偶性与节点[Nj]和[Ni]间是否互补有关,多互补,则为奇数,并且[distance(Nj,Ni)=1;]否则,[distance(Nj,Ni)=0]。复位信号[Ij,k]有效时,输出节点的值是[distance(Nj,Ni)XNOR Cj,k]。

上述分析中,两个锁存器是分开的。他们是否构成主从D触发器的前提是他们前后相连,在相连情况下,还需要进一步确认。主要看两个锁存器的导通时间是否重叠。分析认为,构成主从D触发器的要求是:两个锁存器的时钟周期相同,有效脉冲不重叠。假设重叠,那么其重叠时间应该小于用户设定的阈值。

3 设计实现

采用C++编程语言,在GNU/Linux下设计与开发了晶体管级电路功能模型提取工具AutoExtra。2013年7月完成该工具的主要设计工作,经过测试又修正了存在的Bug。目前,该系统运行较平稳。设计的锁存器电路图如图3所示。

输入网表的词法和语法分析器采用的是Flex和Bison设计的[9],其输入网表的格式兼容Hspiee。各种逻辑操作是通过采用BDD函数包Buddy实现的[10]。CCC维护局部BDD索引表的目的是为了避免BDD节点的过度膨胀。全局BDD索引表的使用前提是在索引表的回溯操作下,并且在时序电路功能模型提取算法中要将功能逻辑表示为最小项的和。通过调用espresso进行最小项和的化简。为了提高程序运行的高效性,对于经常使用的数据结构的分配和回收是通过设计存储管理器实现的。

AutoExtra不仅支持上文所提到的两种电路类型,而且还支持N?C2MOS。在N?C2MOS中,LSDL逻辑可以看做由动态门和N?C2MOS锁存器组成。本文设计并实现的AutoExtra还具有时钟数的自动提取和分析功能。

4 仿真实验

采用上文设计与实现的AutoExtra工具进行高性能FHGY?DSP数据通路中的6个EDA全定制模块的模型提取。参数设置及对应的实验结果如表1所示。采用Linux操作系统,处理器为Intel 1.7 GHz双核处理器,2 GB DDR3内存,160 GB硬盘。

表1中对电路进行仿真实验,将数据通路设计中的所有电路类型包含在其中。其中,16位的乘法器和寄存器文件中拥有很多的触发器和寄存器,并且复杂的管线电路应用于16位乘法器的积压缩阵列中。输出网表的模拟是通过verilog模拟器实现的,对输出网表的准确性进行了验证,并进行了仿真实验对比,对比结果表明了时序电路功能模型提取算法的正确性。

时序电路功能模型的提取涵盖了CCC划分、CCC合并及模型输出的所有工作,本文的算法也主要集中于该点。功能模型的提取时间主要取决于各个电路中晶体管的总数及分类。从表1可知,提取时间的递增顺序为:静态加法器、动态加法器、移位器、乘法器、寄存器。由于寄存器电路拥有的晶体管数目最多,且80%~90%的晶体管均位于多路选择开关、锁存器以及触发器中,因此,其提取时间最长。通过表1的实验结果可知,对于含有6.0万个晶体管的寄存器文件,其针对功能模型提取算法的耗时接近4 min,是其他4种电路所花费时间的数倍乃至几十倍,其他电路所花费的时间均在半分钟以内。假设再改进网表读取与展平方法,所有电路的运行时间还会降低不少。

5 结 论

本文给出了EDA全定制电路功能模型自动提取的流程和相关提取算法,并通过该算法设计与实现了AutoExtra功能模型提取工具。仿真实验结果表明了EDA工具AutoExtra的高效性,能满足模块级全定制设计高性能DSP电路的功能验证要求。研究中还发现电路的提取时间与网表的读取与展平的实现方法有关,若改进相关方法,模型提取的时间将更快,设计的DSP电路的性能将更高。

参考文献

[1] EYRE J, BRIER J. The evolution of DSP processors [J]. IEEE Signal Processing Magazine, 2000, 17(2): 43?51.

[2] 郑争兵,魏瑞,陈正涛.一种基于FPGA的高速数据通道的实验方法[J].实验室研究与探索,2012,31(12):78?81.

[3] 徐渊,周清海,张智,等.基于FPGA的实时CMOS视频图像预处理系统[J].深圳大学学报(理工版),2013,30(4):416?422.

[4] YANG L, SHI C J R. FROSTY: a fast hierarchy extractor for industrial CMOS circuits [C]// Proceedings of 2003 IEEE International Conference on Computer Aided Design. San Jose: IEEE, 2003: 741?747.

[5] BRYANT R E. Boolean analysis of MOS circuits [J]. IEEE Transactions on Computer Aided Design of Integrated Circuits and Systems, 1987, 6(4): 634?649.

[6] BRYANT R E. Extraction of gate level models from transistor circuits by four?valued symbolic analysis [M]// Anon. The best of ICCAD. Berlin: Springer, 1991: 350?353.

[7] KUEHLMANN A, SRINIVASAN A, LAPOTIN D P. Verity?a formal verification program for custom CMOS circuits [J]. IBM Journal of Research and Development, 1995, 39(1/2): 149?165.

[8] 张能,李振涛,陈书明.电路模拟与静态时序分析相结合的时钟树分析技术[J].电子学报,2008(8):1571?1576.

[9] DONNELLY C, STALLMAN R. Bison: the YACC?compatible parser generator [J]. Free Software Founda, 1990, 5: 179?182.

[10] LIND?NIELSEN J. BuDDy: a binary decision diagram package [EB/OL]. [2002?10?11]. http: //.