背景
自集成电路从60年代出现以来,随着它在速度、规模和价格上取得了令人瞩目的飞跃,电子系统也得到了快速发展。进入90年代,电子信息类产品的开发明显地出现了两个特点:一是开发产品的复杂程度加深;二是开发产品的上市时限紧迫。所谓开发产品的复杂程度深是指设计者往往要将更多的功能、更高的性能和更丰富的技术含量集成于所开发的电子系统之中。目前的趋势是系统集成(system on a chip或chip in system。所谓产品开发的时限性,是指在产品的寿命期间应让产品早日上市。从市场的角度开发应市的新产品应该做到使产品无延误地投放市场。如图示出了市场学中的一种市场窗口,从图中可以看出,减少延误、缩短系统开发周期以及尽早推出产品上市是十分重要的。1
由于电子系统复杂且具有上市的时限性,因此手工设计无法完成。只有采用EDA(电子设计自动化)设计方式,从手工设计过渡到自动设计,将大量繁重、重复性的工作交给计算机去完成。因而,提高EDA方法的自动化程度,缩短整体EDA设计周期,具有十分重要的意义。
瓶颈问题典型的电子系统的制造周期中包含以下几个步骤:系统规划、功能设计、逻辑设计、电路设计、设计验证、生产制作、测试调试。归纳起来可划为三个主要阶段:设计阶段、生产制作阶段与测试阶段。
进行电路设计时,首先要选择使用的电子器件。由于系统的复杂性加深,分立器件已经不能满足对设计的精度和质量的要求,应采用集成电路进行设计。电子系统中所使用的集成电路,一般来说有三种芯片可供选择:全定制电路芯片、半定制电路芯片、通用电路芯片。全定制电路芯片完全由设计者自己开发设计,集成度高,可以针对所设计的电子系统进行优化,使性能达到最优,但是其芯片设计、制作的成本都比较高,并且设计开发的周期较长,所以全定制电路芯片一般只用于大规模生产中,在电子系统的设计开发过程中不使用全定制电路芯片。对于半定制电路芯片,设计者不需从头设计,只需将所需功能用开发系统“写”入半定制电路芯片,如EPLD,CPLD,FPGA等。因而在性能上虽然不能达到最优,但是设计制作的成本较低,开发周期短,比较适合于在电子系统的设计开发中使用。而通用电路芯片,特别是SROM , EPROM , EPROM等,由于价格便宜,使用方便,也广泛地应用于电子系统的设计、生产过程中。
因此,在电子系统的设计开发过程中,主要考虑使用半定制电路芯片和通用电路芯片。在电子系统规模较大的情况下,如果在开发设计过程中全部使用或者主要依赖于通用电路芯片,则设计出的PC B板会规模非常大,并且整个系统的集成度很差,同时性能下降,可靠性降低。如果对电子产品的设计开发采用半定制电路芯片,由设计者自行规定器件的逻辑功能,可将大量的电路功能集成到一个单芯片中,从而提高了系统的集成度和可靠性。然而半定制电路芯片的制作成本比通用电路芯片的成本高得多,例如,同样是使用上百万门的存储器电路,将此部分电路集成到半定制电路芯片中,比直接使用ROM或RAM通用电路芯片的花费高几十倍。所以,要同时考虑性能、集成度和开发成本这些相互矛盾的因素,并最终取得相对最优的结果。可见电子系统的设计开发应该采取半定制电路芯片与通用电路芯片配合使用的方法。
开发过程综上所述,电子系统设计开发的一般过程是:
系统规划,功能设计。
逻辑设计,并进行逻辑模拟。
电路设计。根据系统的规模、复杂度选择所使用的元器件。在设计开发的过程中,要缩短设计周期,降低开发成本,主要选择半定制电路和通用的元器件。根据电路的逻辑功能,同时考虑系统集成度和设计成本,确定将哪些电路功能集成到半定制电路芯片中,哪些电路功能可直接采用通用元器件芯片。
设计半定制电路芯片。
设计印刷电路板。将自己设计的半定制电路芯片与通用电路芯片组合成完整的电路,设计印刷电路板。
制作印刷电路板,完成整个系统的制作。
测试调试,并最终形成设计开发的新产品,推向市场。
在现在的技术条件下,EDA设计方式已经比较成熟,从逻辑分析模拟到半定制电路设计、印刷电路板设计,都有专门的软件来完成。随着PLD,FPGA技术、以及PCB板自动布局、布线技术的发展,半定制电路设计、PCB板设计已实现了较高程度的自动化,可以简单、迅速地完成设计任务。然而将自己设计的半定制电路芯片与通用电路芯片组合成完整电路输入到PCB板的设计软件中去设计PCB板,这一步基本上是手工操作,做起来相当繁琐。
例如,使用软件ALTERA进行半定制电路芯片的设计,使用软件PROTEL进行印刷电路板的设计。虽然其最新版本(Protel98,99)中包含了ALTERA的元件库,但由于半定制电路芯片都是自己设计的,管腿功能和名称不可能统一,所以即使PRO-TEL中有ALTERA的元件库,仍然不实用。通常的做法是先在PROTEL的元件库中建立或编辑修改芯片的原型,然后使用。而且由于自己设计的半定制电路芯片互不相同,所以对每一个芯片都需要在库中建立修改它的原型;另一方面,半定制电路芯片的管腿很多(一般都有几十个甚至上百个管腿),并且在很多情况下库中所建芯片原型只使用少数几次。建库完成后,还需进行Schematic式设计绘制电路原理图。因而这种通常的做法费时费力,效率非常低,已成为制约提高电子产品开发速度的一个瓶颈,具有非常大的改进余地。
接口软件Port解决这一瓶颈问题,就要将手工作业部分变为自动。解决方案就是在半定制电路设计与印刷电路板设计之间用软件自动接口,使设计好的半定制电路芯片能够直接用于PCB板的设计,从而省去繁琐的建库操作,实现从半定制电路设计到印刷电路板设计的自动化。
以ALTERA(半定制电路设计软件)和PROTELCPCB(板设计软件)为例,编写ALTERA与PROTEL之间的接口软件Port,来完成自动输入。
使用PROTEL进行PC B设计的步骤是:首先使用Protel Schematic进行电气原理设计,即用电气图形符号编辑器(Schematic Library Editor)制作、编辑和管理元器件的图形符号库,用电气原理图编辑器(Schemat-is Sheet Editor)制作、编辑和检查符合电气设计方案的原理图;然后利用编辑好的原理图生成电气连接网络表,以此与PCB设计及其他EDA工具(SPICE ,EEsof , Xilinx , OrCAD等)有机地连接。由此可见,Protel Schematic依靠电气连接网络表进行数据传输,因此可以考虑跳过Protel Schematic Sheet Editor绘制电气原理图部分,直接产生用于其他EDA工具的电气连接网络表。接口软件Port能直接生成整个电子系统的元器件连接网络表,作为Protel PCB设计的输入文件,而跳过了Protel Schematic绘制原理图的部分。由于现在接口软件Port主要为PC B设计服务,所以编写Port时只考虑了生成用于PC B设计的电气连接网络表,但是仍保留了与其他EDA工具(如SPICE , EEsof等)传递数据的接口。
接口软件Port以C++作为编程语言,采用VisualC++ 6.0作为编程的工作平台,是标准的Windows多文档应用程序,可以同时编辑多个电气连接网络表。能够非常方便地处理半定制电路芯片和通用电路芯片,并且对连接网络表提供了很强大的修改、整理以及统计的功能。下面详细介绍接口软件Port的使用。
首先,对于自己设计的半定制电路芯片,直接利用ALTERA的设计结果。通过对话框调用ALTERA的输出文件,将自己设计的半定制电路芯片加入到网络连接表中,省去了对半定制电路芯片建库的工作。另外,如果需要更改半定制电路芯片的管腿名,可通过复选框的设定来打开对话框,进行管腿名的修改。
其次,同样可以将通用电路芯片加入到网络连接表中。对于通用电路芯片,通过库的形式进行处理,调用库编辑对话框将库中的元器件加入网络表。库编辑对话框上半部分是对库进行处理,列表框显示内存中的元件库,按钮Add和Remove的功能分别是将库加入内存和从内存中剔除库,按钮NewLib是建立新的库。下半部分是对库中的元器件进行处理,列表框显示选中元件库中所包含的元器件,右侧的一排按钮对选中的元件进行操作,其功能如下:
按钮Add to Net:打开添加通用电路芯片对话框,通过输入网络名称,即将选中的元件加入到网络连接表。
按钮Append a New和Append a Copy:打开库元件编辑对话框,通过填写对话框中的各项内容,实现向所选库中增加期望的新元件。
按钮Modify Comp:打开库元件编辑对话框,修改选中的元件。
按钮Remove Comp:从库中永久性地删除所选中的元件。
可简单快捷地将电路设计中所用到的半定制电路芯片与通用电路芯片构造成完整的电气连接网络表,供Propel PCB设计自动布局、布线使用。如此可非常容易地完成Propel PCB设计的输入工作,实现从半定制电路设计到PCB设计的自动化。
此外,为使用方便,接口软件Port还提供对网络连接表进行检查、修改、整理的功能。可以对网络连接表中多余的元器件进行删除;对输入错误的元器件进行修改;对选择错误的元器件进行替换。如果要查询元器件的连接关系,打开对话框,可方便地显示出元器件的管腿连接,而且通过单击按钮Input A File可以调用Microsoft Office 97中的MicrosoftExcel,将元件的连接关系自动生成Excel文件,为制作设计报告提供方便。
EDSA简介随着计算机及其相关技术的发展,一门崭新的技术正在世界范围内兴起,这就是CAD ( ComputerAided Design)技术。CAD技术是电子信息技术发展的杰出成果,它的发展与应用正引发着一场工业设计和制造领域的革命。EDA ( Electronic DesignAutomation,电子设计自动化)技术,就是采用CAD技术进行电子系统和专用集成电路设计的技术。
EDA技术可面向三个不同的层次,即系统级、电路级和物理实现级。进人20世纪90年代以来,EDA技术逐渐以高级语言描述、系统仿真(systemsimulation)和综合优化(synthesis)为特征。此时的EDA技术经常被称为ESDA ( Electronics SystemDesign Automation)。
EDA 涉及各种各样的软件算法和应用,它们都是设计复杂的下一代半导体和电子产品所需要的工具。 超大规模集成电路设计变得更加复杂,这对 EDA 构成了巨大挑战。应用程序的性能无法有效提升,因为伴随着扩展而出现的功耗增长与工艺性等问题阻碍了微处理器的性能提升。 数字系统的验证一般通过把逻辑模拟任务分配到多个大型计算中心来完成,每次耗时长达数周之久。 然而,模拟的性能通常滞后,从而导致验证不完整,漏掉了一些功能上的Bug。 因此,半导体行业始终在寻求更快的模拟解决方案便不足为奇了。
高性能计算 (HPC) 领域中近来的趋势是不断发掘群核 GPU 极具竞争力的优势,方法是通过将这种 GPU 用作大规模并行的 CPU 协处理器,从而在计算量繁重的诸多 EDA 模拟上实现速度提升,这些模拟包括Verilog 模拟、信号完整性与电磁学、计算光刻以及 SPICE 电路模拟等等。
传统的电子系统设计基本上采用自底向上( bottom-up)的设计方法,利用SPICE完成模拟验证。这种方法要求设计者具有丰富的设计经验。大部分电子系统的设计工作需要设计专家人工完成,同时任何一次设计方案的修改,都意味着一次详细设计过程的重复,再加上模拟验证速度较慢,因此无论在设计时间还是在设计精度上都不十分令人满意。因此,采用人工的自底向上设计方法,已很难满足当今电子系统的设计要求;而现在EDA所采用的自顶向下(top-down)的设计方法则有效地实现了设计周期、系统性能和系统成本之间的最佳权衡。
一般认为衡量一个电子设计自动化系统的优劣主要有以下三个方面的标准。
①一般性:用该自动化设计系统成功实现的电路和性能要求范围;
②精确性:使用该自动化设计系统能达到的设计精度;
③有效性:把电路设计编译成设计系统的输入格式所用的时间和综合优化所用的CPU时间。
当今流行的电子系统设计环境还存在一些弊端:层次单一;库单元十分有限,而且结构固定,不易修改和扩充;自动化程度低,需要大量的人工设计;核心的算法在设计时间和设计精度上都不能达到理想的要求。针对这些弊端,我们借鉴以前已有设计环境的长处,提出了一个新颖的电子系统设计环境即ASEDA 。
设计方法(1) 前端设计(系统建模RTL 级描述)后端设计(FPGAASIC)系统建模。
(2)IP复用。
(3) 前端设计。
(4) 系统描述:建立系统的数学模型。
(5) 功能描述:描述系统的行为或各子模块之间的数据流图。
(6)逻辑设计:将系统功能结构化,通常以文本、原理图、逻辑图、布尔表达式来表示设计结果。
(7) 仿真:包括功能仿真和时序仿真,主要验证系统功能的正确性及时序特性。
设计技巧密码锁输入电路KEYB 0ARD.VHD中对各种分频信号/信号序列的设计有独到之处。该设计中,利用一个自由计数器来产生各种需要的频率,也就是先建立一个N位计数器,N的大小根据电路的需求来决定。N的值越大,电路可以除频的次数就越多,这样就可以获得更大的频率变化,以便提供多种不同频率的时钟信号。若输入时钟为CLK,N位计数器的输出为Q[N-1,0],则Q(0)为CLK的2分频脉冲信号,Q(1)为CLK的4分频脉冲信号,Q(2)为CLK的6分频脉冲信号,……Q(N-1)为CLK的2N分频脉冲信号;Q(5 DOWNT04)取得的是一个脉冲波形序列,其值是依00、01、10、11、00、01周期性变化的,其变化频率为CLK的25分频,也就是32分频。我们利用以上规律即可得到各种我们所需要频率的信号或信号序列。
键盘输入去抖电路的设计程序DEBOUNCING.VHD在实际系统的开发中有较好的参考价值。
密码锁控制电路CTRL,VHD中对于数据的更新及移位方法比较好。程序中使用语句“ACC