基于数字ASIC设计流程的DDS设计与实现

时间:2022-09-07 04:24:56

基于数字ASIC设计流程的DDS设计与实现

摘 要:作为第三代频率合成技术,直接数字频率合成器具有显著的优点并得到广泛的应用。在此结合数字ASIC设计流程,利用流水线技术和函数对称性性质,设计并实现一个优化的DDS电路。从系统结构划分到自动布局布线,逐步介绍各个设计阶段的目的、使用软件及设计要点。经过分析,最终得到的DDS电路能够运行在150 MHz系统时钟下,并且具有较小的面积,满足设计要求。

关键词:DDS;ASIC;Verilog;流水线

中图分类号:TN742.1文献标识码:A

文章编号:1004-373X(2010)06-012-04

Design and Implementation of DDS Based on Digital ASIC Design Flow

CHEN Jiming,LI Kaihang

(Xiamen University,Xiamen,361005,China)

Abstract:As the third generation frequency synthesizer,Direct Digital Synthesizer(DDS) has been widely used due to its many significant advantages.An optimized DDS based on digital ASIC design flow is designed and implemented by using the pipeline technology and the symmetry character of a few functions.The design steps from the structure divide to the auto placement and route are given out in detail,and each involves in the design purpose,software in use and design points.Theoretical results show that the proposed DDS has advantages of small size and can run at 150 MHz clock frequency,which meets requirement of the design.

Keywords:DDS;ASIC;Verilog;pipeline

随着现代通信、工业控制以及航空航天应用的发展,对于频率合成技术提出了越来越高的要求。直接数字频率合成技术是最新的第三代频率合成技术,具有频率分辨率高、频率切换速度快、频率切换相位连续和全数字化实现等优点。从20世纪70年代产生起,DDS就获得了巨大的发展及广泛的应用[1]。

DDS的主要电路都是数字电路,可以使用数字ASIC的设计方法来设计与实现[2]。数字ASIC设计流程主要包括结构规划、RTL代码编写及仿真、逻辑综合、形式验证、时序分析、自动布局布线、DRC、LVS等步骤。在此通过实施以上数字ASIC设计步骤,设计实现了一个能够运行在150 MHz的频率,并具有较小的版图面积的DDS。

1 DDS原理及结构规划

DDS的基本原理是根据时域采样定理,利用量化相位与波形幅度之间的对应关系产生信号波形。本文根据基本的DDS结构,同时考虑时序和资源消耗等方面因素,设计的DDS结构框图如图1所示。

这里主要对DAC之前的数字部分进行设计,实现输出sin函数波形的功能。该设计包括相位累加器、相位偏移控制器、地址控制器、相幅转换器和幅度控制器┪甯霾糠帧

图1 DDS设计结构框图

其中相位偏移控制器是一个加法器,将相位累加器的结果与输入的相位偏移量相加,从而在输出可以得到所需起始相位的波形。地址控制器与幅度控制器利用sin函数的对称性,将相幅转换器储存的幅度值范围减小到0~π/2,从而将相幅转换器的容量降低到1/4。相幅转换器是一个以相位为地址,波形幅度为输出的ROM,利用相位与幅度之间的对应关系实现从相位到幅度的转换。这里设计的DDS采用32位的频率控制字,并截取相位偏移控制器结果的高10位作为查找地址。其中只有低8位作为ROM的地址,高2位分别为地址控制器和幅度控制器的控制输入。相幅转换器输出8位量化幅度,最后经过幅度控制器处理输出9位的无符号量化幅度,以方便DAC处理[3]。

DDS的工作过程为:在系统时钟fc的作用下,相位累加对频率控制字K进行累加,并将结果反馈回输入。截取高10位与外部输入的10位相位偏移量相加得到地址,地址控制器根据地址的次高位将递增的地址转换成递增(0~π/2)或递减(π/2~π)的地址。接着相幅转换器根据地址的低八位将相位转换成0~π范围的幅度值,幅度控制器根据地址的最高位将输出的幅度值分别转换为0~π和0~2π的幅度值,实现一个完整的sin周期。再通过DAC可得到阶梯型的幅度波形,最后经过低通滤波器处理就可得到平滑的sin波形。

每当相位累加器溢出,则累加器重新开始累加,进入下一个周期,因而累加器的溢出频率就是输出信号的频率。输出频率fo与输入频率fc之间的关系为:

fo=(K/232)fc(1)

由式(1)可知,在系统时钟不变的情况下,输出频率fo与频率控制字K成正比,改变K就可以改变输出频率的大小。当K=1时,输出频率为fc/232,即输出频率的分辨率[4]。

2 DDS前端设计

2.1 设计优化及RTL代码编写

当设计的结构规划完成后,就进入前端设计阶段。首先使用Verilog硬件描述语言对DDS进行编码。在编码过程中,根据具体情况对各个模块的划分进行调整。可以使用Design Compiler综合后得到的顶层模块示意图来说明各个模块之间的连接关系。如图2所示。

图2 DDS顶层模块示意图

如图2所示,该设计的DDS包括PhaCladder 32,PhaseMod和WaveLookup三个模块。其中,PhaCladder 32是32位的相位累加器;PhaseMod是10位的相位偏移控制器。由于地址控制器和幅度控制器的电路比较小,而且这两部分电路直接对ROM进行控制,所以把这三部分电路集中在一个模块WaveLookup中。该模块还包括一个名为ROM的底层模块,是相幅转换器的实例化。ROM模块具有8位地址线,储存有256个数据,分别是sin函数在0~π/2范围的采样数据[5]。

RTL代码的质量对最终设计的性能起着决定性的作用,在代码编写过程中就要考虑时序及资源消耗的影响。在该设计中,32位加法器是设计的关键路径,决定着设计的最大频率,需要使用流水线技术来加快加法完成的速度。将32位加法器分成4组8位加法器,在每组加法器之间加入寄存器构成4级流水线。每组8位加法器都使用超前进位算法来进一步减小延时,同时为了避免由于超前进位链过长而影响速度,将8位加法器分解成2个4位超前进位加法器的级联。经过以上优化以后,加法器的速度提高了2倍左右。但是需要注意的是,设计速度的提高是以增加寄存器数目为代价的。并不是流水线级数越高越好,而是要在速度与资源消耗之间进行折衷考虑[6]。

在ASIC流程中,ROM主要有两种实现方法:使用Verilog语言编写与使用Memory Compiler创建。┝街址椒ǜ饔杏湃钡:第一种方法比较直观,而且不依赖于具体的工艺文件,适用范围广,但是存在着输入数据繁琐等缺点。第二种方法是现在工程上普遍采用的方法,创建ROM文件操作简单,可以产生多种格式的ROM文件,并且贴近具体的工艺厂家,可以作为IP在后端中使用,避免后端过程中的一系列问题。但是该方法需要有特定代工厂的Memory Compiler软件,使用范围窄。由于条件限制,在前端设计过程中,两种方法都进行了实现和比较,后端只对前一种方法进行实现。

2.2 功能仿真

功能仿真的作用是验证Verilog语言描述的电路功能是否正确,并对错误的结果进行调试。本文使用的功能仿真软件是Mentor公司的Modelsim,它是工业上最通用的仿真器之一。

功能仿真需要额外增加一个测试顶层模块,给功能模块提供各种激励,从而产生输出波形。在这一阶段通过对DDS电路提供适当的激励,验证设计的电路能完成输出sin波形的功能,并且符合式(1)。如图3所示,当K不变时,DDS电路输出了预期的sin波形;当K递增变化时,输出的sin波形的频率也随之变大,满足设计的要求。

图3 K变化的输出波形图

该设计在一般的DDS功能上还增加了相位偏移的功能,能够产生任何初始相位的输出波形,以满足不同应用的要求。图4为相位偏移为π/2时的输出波形,实现了cos函数的输出。

2.3 逻辑综合与时序分析

逻辑综合是数字ASIC设计流程的重要步骤之一,是在特定的约束下,将RTL级HDL代码转换为符合要求的优化门级网表的过程。本文使用Synopsys公司的Design Compiler(DC)进行逻辑综合,它是现阶段工业上使用最广泛的综合工具。在逻辑综合过程中,时序约束的设定及综合策略的选择是最关键的部分。

在功能仿真阶段,没有考虑电路元器件的延时情况,任何时钟频率都可以达到。实际上,任何电路元件都有延时,系统只能达到有限的时钟频率。同时时钟网络也不是理想的,在逻辑综合过程 必须设定适当的时序约束,使设计的电路符合实际情况[7]。

图4 相位偏移为π/2的输出波形

设计时钟频率的预定目标是150 MHz,定义时钟周期为6.66 ns。对于时钟网络,最重要的三个属性是时钟传播延时、时钟偏斜和时钟转换时间,其中后两个是时钟影响电路时序的最主要因素。在综合过程中总是将时钟网络定义成理想路径,传播延时为零,设计人员就用时钟传播延时来模拟时钟信号到各个寄存器时钟输入端的时间。时钟偏斜是指时钟信号到达各个寄存器的时间差,时钟转换时间是指时钟信号在高低电平之间翻转的时间。同步电路的功能实现是以时钟为基准的,如果这两个属性的定义与实际情况偏差太大,可能造成数据不能在正确的时间到达寄存器,导致错误的结果。在设计的过程中,要根据具体的设计情况以及经验,仔细地设定这些参数。并且要多次反复修改、执行才能得到合理的结果。

除了对时钟网络的约束,在综合过程中也要对电路的输入/输出端口进行约束,给电路可重用留下足够的余量。一般情况下,要根据设计外部的具体情况估计数值。如果不知道外部电路的情况,可以将延时大小设为时钟周期的60%。经过分析,这样设置可以留下20%的余量,是一个比较合理的结果。

使用DC综合,大致上有三种综合策略:自顶向下策略、时间预算策略和设计预算策略。前一种策略操作简单,适用于比较小的设计;后两种策略自下向上综合,适用于大规模的电路,但是操作过程十分复杂。该设计的DDS电路规模较小,并且各个模块之间时钟关系简单。整体综合时运行时间短,同时时钟约束作用在顶层模块可以得到更佳的综合结果。因此该设计选用自顶向下的综合策略 [8]。

综合时目标工艺库采用0.18 μm工艺库,线载模型选择_wl10,工艺条件设置为slow,综合得到的顶层模块示意图如图1所示。分别使用HDL编码和Memory Compiler创建ROM,由于ROM电路并不在关键路径上,所以两种情况下建立时间和保持时间的余量大致相同。建立时间余量为0.03 ns,保持时间余量为0.48 ns。但是在面积上,前一种方法需要186 596 μm2,而后一种方法只需要96 518 μm2,两者相差将近2倍。由此可见,使用Memory Compiler产生ROM文件是┮恢指合理的选择。

2.4 形式验证

所谓形式验证是指通过比较两个设计的结构和功能在逻辑上是否等价来验证设计。它是使用数学的方法来代替动态仿真,与动态仿真相比较具有更快的验证速度及更大的测试覆盖率。Formality是Syonpsys公司的形式验证工具,具有与DC等工具一样的命令语法和操作界面,能够方便地完成形式验证的任务。经过验证DDS设计的RTL代码与优化的门级网表具有相同的逻辑功能。

3 DDS后端设计

3.1 自动布局布线

随着集成电路规模的不断增大,标准单元设计方法已经成为了数字电路物理实现最主要的设计方法。相对于全定制设计方法,标准单元设计方法将设计人员从繁杂的晶体管设计中解放出来,能够大大地缩短设计周期。Synopsys公司的Astro是一款使用范围较广泛的自动布局布线(APR)工具,这里采用它来完成这一阶段的任务。APR主要包括设计设置、布图规划、标准单元放置、时钟树综合和布线五个阶段。

布图规划是APR过程中最重要的步骤,好的布图规划不但能够加快布线的速度,还使最终的设计满足时序、电源以及布线阻塞等方面的要求。布图规划包括PAD摆放、电源网络配置和IP放置三方面的内容。由于该设计只是一个大项目的子设计,同时设计里面也不包括IP等子模块,所以设计的重点是电源网络的配置。

图5为设计布图规划后的版图,图中主要的结构包括周围的电源环和内部的电源带线。配置电源网络的目的是给内核提供足够的电流和电压,合理的电源线宽和电源带线位置都是必需的。影响电源线宽的因素有IR压降和电迁移,具体处理时主要是根据电路的功耗进行初步计算,再进行多次调整。在该设计中,根据DC中计算的功耗将电源环的宽度设成5 μm,两个电源带线分别设成2.5 μm。图5中横向的细线是给标准单元供电的电源线。设计中并不存在消耗大量能量的子模块,两条电源带线平均分布是一个比较合理的分布[9]。

在逻辑综合阶段,对电源网络没有进行任何优化,所有的优化工作都是在APR的时钟树综合阶段完成。时钟树综合通过在时钟网络添加缓冲、延时等单元,平衡时钟信号到达时间,提高时钟网络驱动能力。在时钟树综合阶段,主要是通过设置合理的偏斜、延时、最大扇出、最大负载和转换时间等参数,引导工具生成树状的时钟网络[10]。

图6为APR阶段最终的版图,core的面积为29 970 μm2,面积的利用率为82.56%。从图6中还可以观察到core的左上部标准单元分布比较密集,其中分布的是ROM模块的电路单元。由此可见,采用Memory Compiler创建ROM模块,不但可以减小设计面积,还可以减少布线阻塞的可能。

图5 布图规划示意图

图6 最终版图

在得到最终版图后,还需要执行DRC和LVS,验证版图满足相应的物理规则。Astro自带有DRC和LVS验证引擎,同时它还可以调用Hercules的DRC内核进行高级DRC检察。这里采用Astro自带的验证引擎进行高级DRC和LVS验证,反复执行直到验证通过。

3.2 静态时序分析和形式验证

完成APR后,需要从Astro中提取实际的电路物理寄生信息或延时信息,反标注到静态时序分析软件进行分析,验证实际电路满足时序约束的要求。完成这个任务需要用到PrimeTime(PT)软件。

从Astro软件中可以直接得到spef格式的时钟及其他关键连线的寄生信息,并且Astro可以调用StarRCXT的内核得到更准确的数值,对于一般的设计提取精度已经足够了。使用生成的spdf文件反标回PT进行静态时序分析,建立时间有0.67 ns的余量,保持时间有0.5 ns的余量。该结果表明设计在150 MHz的时钟运行是安全的。

在APR过程中,各种优化操作及时钟树综合改变了电路,同样要进行形式验证保证逻辑功能的正确性。这次的形式验证在综合优化网表与Astro导出的网表之间进行。经过验证,两者在逻辑上是一致的。

4 结 语

本文基于数字ASIC设计流程设计并实现了一个DDS电路。分析执行了结构规划、RTL代码编写及仿真、逻辑综合、形式验证、时序分析、自动布局布线、DRC、LVS八个步骤,完成了数字ASIC设计的主要步骤。在0.18 μm工艺条件下,实现的DDS电路具有150 MHz的时钟频率和29 970 μm2的面积,取得了较理想的结果。

参考文献

[1]白居宪.直接数字频率合成[M].西安:西安交通大学出版社,2007.

[2]邹雪城,邹志革,刘政林,等.VLSI 设计方法与项目实施[M].北京:科学出版社,2007.

[3]蓝天,张金林.直接数字频率合成器DDS的优化设计[J].电子技术应用,2007(1):42-44.

[4]Song Hu.A Low-power Quadrature Digital Modulator in 0.18 μm CMOS[D].Canada:University of Saskat-chewan,2007.

[5]王金明.Verilog HDL 程序设计教程[M].北京:人民邮电出版社,2004.

[6]Keshab K Parhi.VLSI数字信号处理系统设计与实现[M].陈弘毅,白国强,吴行军,等译.北京:机械工业出版社,2004.

[7]陈亮,张涛.基于ASIC的直接数字频率合成器前端设计与实现[J].微电子学,2009,39(1):11-15.

[8]Himanshu Bhatnagar.Advanced ASIC Chip Synthesis[M].New York:Kluwer Academic Publishers,2002.

[9]李磊.深亚微米高性能数字ASIC芯片的后端设计[D].成都:电子科技大学,2007.

[10]黄荣志,陈晓冬,龙灿.基于Astro工具的ASIC时序分析[J].电子设计应用,2006(8):117-119.

上一篇:基于软总线多传感器组合导航试验平台研究 下一篇:基于STC12C5410AD的电动车无刷电机控制器检测