中国科学技术大学 *实验教学研讨会 - 113 -
EDA系统设计的实验教学构想
电子工程与信息科学系 梁晓雯 裴小平 李玉虎
摘 要:本文简述了EDA的概念以及采用EDA技术进行系统设计的流程,介绍了开展EDA实验教学的一些实践和构想。
关键词:EDA;系统设计;实验;构想
一、引言
当今的电子技术发展日新月异,尤其是超大规模集成电路设计技术的发展,使得庞大复杂的系统设计已经能够实现。有关专家指出,超大规模集成电路的设计复杂度每6年增长10倍。随着产品集成度的提高,将有越来越多的产品将整个系统,如微处理器、存储单元、控制逻辑等集成在一块芯片上。绝大多数商家的产品都需要进行体积相对较小的、低功耗的用户定制集成电路(ASIC电路:Application Specific Integrated Circuit)设计,以便利用知识产权来生产高附加值的产品。
传统的系统设计方法是将系统硬件设计和系统软件设计截然分开,分别设计,各自设计完成以后,再合并连调。这种方法称为自下至上(Bottom-Up)的设计方法。但是,随着计算机技术和超大规模集成电路技术的发展,这种方法已经不能满足快速可靠地设计大规模复杂系统的需要了。目前,世界流行的系统设计思想称为自顶向下(Top-down)设计方法,就是从系统总体要求出发,从上层至下层逐步地将设计内容细化,然后完成系统硬件的整体设计。这种设计方法就涉及到电子设计自动化(EDA)。EDA技术的发展,对我们电子技术专业的高等教育提出了新的课题。
二、EDA的概念
EDA设计是一个比较广阔的概念,从系统级的设计到专用芯片(ASIC芯片)的制作,从可编程器件(PLD器件,主要包括CPLD/FPGA器件)到数字信号处理器(DSP)以及印刷电路板的布局布线(PCB)等都可以纳入到EDA的范畴中来。本文中,我们把EDA设计集中到ASIC设计和可编程器件设计上来,因为这两部
-114 - 梁晓雯等·EDA系统设计的实验教学构想
分在EDA概念中占有相当大的比重。
图1示出了ASIC和可编程器件的设计流程,从图中可以看出,两者在前端设计流程是相同的,只是到后端实现的方式不同。这种设计流程也就是自顶向下的设计流程。从输出门级网表文件以上都可以称为前端设计,这些设计与集成电路生产商无关,而输出门级网表文件以下,称之为后端设计,这些设计与集成电路生产商有关。系统的前端设计主要分成三个层次。
系统总体要求 行为级描述 RTL级描述 逻辑综合优化 行为级仿真 RTL级仿真 门级网表 门级仿真 输出门级网表 FPGA/CPLD实现 ASIC实现 图1 自顶向下设计系统的过程
第一层次是行为级描述。所谓行为级描述,就是对整个系统的数学模型的描述。它的目的是要在系统设计的初始阶段,通过对系统行为描述的仿真来发现设计中存在的问题。在行为级描述阶段,并不真正考虑其实际的操作和算法用什么方法来实现,考虑更多的是系统的结构及其工作过程是否能达到系统设计指标的要求。
行为级程序编写完成以后,还要进行仿真。仿真通过后,表明系统的设计模型是正确的。
第二层次是RTL(Register Transfer Level)方式描述,又称为寄存器传输描述(或称数据流描述)。用行为级描述的系统结构程序比较抽象,很难直接映射到具体逻辑元件结构的硬件实现。要想得到硬件的具体实现,必须将行为级
中国科学技术大学 *实验教学研讨会 - 115 -
的描述改写为RTL方式的描述。也就是说,系统采用RTL方式描述,才能导出系统逻辑表达式,才能进行逻辑综合。这里逻辑综合是针对某一特定的逻辑综合工具而言的。这一层之所以称为RTL级,是因为它暗指用户所描述的寄存器里的数据以用户说明的方式在“传输”。
在完成RTL级的编程以后,再用仿真工具对RTL级描述程序进行仿真。如果通过这一步仿真,那么就可以利用逻辑综合工具进行综合了。
第三层次是逻辑综合,它是利用逻辑综合工具将RTL级描述程序转换成用基本逻辑元件表示的文件(门级网络表),具体过程示于图2。在图2中,逻辑综合的过程被划分为转换、优化和映射。转换就是将RTL 语言程序翻译成一般性的网表文件,这种一般性的网表文件与最后的物理实现技术无关。一般性的网表文件再经过优化和映射,产生目标网表文件,目标网表文件就与物理实现技术密切相关了。如果需要的话,还可以将逻辑综合的结果以逻辑原理图的方式输出。此后,对逻辑综合结果在门级电路上再进行仿真,并检查定时关系。如果测试通过,那么系统的硬件设计就基本结束。
always @(posedge clock) if(set) data_out = 1’b1; else if(reset) data_out = 1’b0; else if(enable) data_out = data_in; data_in clock set enable reset data_out data_in enable set reset data_out clock 转换 优化与映射 一般性网表文件 (与实现技术无关) 目标网表文件 (与实现技术有关) RTL级HDL描述 图2 逻辑综合过程
如果以上三个层次的某个层次上发现问题,应返回上一层,寻找并修改相应的错误,然后再向下进行。
由逻辑综合工具产生门级网表文件后,在最终完成硬件设计时,还有两种选择。第一种是由自动布线器将网表转换成相应的ASIC芯片的制造工艺,做出ASIC芯片。第二种是将网表转换成可编程器件(FPGA/CPLD)的编程码点,利用可编程器件完成硬件设计。
可编程器件一般是由半导体厂家生产好的,用户可以根据自己的需要到市场
-116 - 梁晓雯等·EDA系统设计的实验教学构想
上购买。使用时,用户用软件编程,通过各种转换,最后生成数据流文件,下载到FPGA/CPLD硬件系统中,完成设计。在这个过程中,用户并不设计芯片,而只是选择和使用可编程器件。设计过程中所使用的软件可以由可编程器件厂商提供的针对本公司器件的软件,也可以使用通用的EDA前端设计软件。如果软件由可编程器件厂商提供,那么设计的花费主要在硬件上,软件一般比较简单、便宜,所设计的系统一般规模不大。有些可编程器件厂商免费提供设计软件。
ASIC设计隶属于用户定制的集成电路,用户可以在半导体生产厂家的协助下设计自己的芯片并完成芯片制作。这种设计技术是在超大规模集成电路发展的基础上产生和发展的,能够适应将整个系统集成在一块芯片上的系统芯片(SOC)的需要。它的优点是便于实现大容量高复杂度的数字系统,提高系统性能,并利于保护知识产权。在此需要说明的是,有关ASIC的范畴目前存在多种说法,有的是将PLD器件归入ASIC,有的是将PLD器件和ASIC分开,ASIC特指用户定制电路。我们这里的ASIC特指用户定制电路。
在ASIC设计中,逻辑门级网表文件在进行布局布线之前要进行电路的模拟和验证,称为前仿真。前仿真完成后,进行布局布线设计,布局布线后也要进行模拟和验证,称为后仿真。经过后仿真验证,产生GDSⅡ文件,就可以掩膜制造ASIC芯片了。
纵观EDA的设计过程,在设计最终下载到PLD器件或产生GDSⅡ文件之前,设计都是要由软件来进行的,因此EDA设计工具就是必不可少的了。EDA工具的使用,使设计者可以从系统级开始进行高层综合设计,极大地缩短了系统的设计周期,提高了设计能力和效率。可以说EDA是应付越来越复杂的系统设计的有力工具。
三、EDA实验的构想
EDA技术大大改变了系统的设计方法。因为EDA技术在系统设计方面有着突出的优势,因此成为目前超大规模集成电路设计的重要手段。掌握EDA设计思想和设计技术已逐步成为现代电子技术人员的必备技能。那么作为培养人才的高等学校就必须适应技术的发展,开展相关的理论和实验教学研究。
我们的EDA实验教学设想主要内容分两部分:PLD器件设计和ASIC设计。这两个部分并不是完全孤立的,从上面的流程可以看出,两者在前端的设计是相
中国科学技术大学 *实验教学研讨会 - 117 -
同的,因此在考虑EDA软件时,可以将PLD和ASIC兼顾起来。
(一)PLD器件设计实验
由于PLD器件在国内普及较早,价格便宜,因此这一部分的实验我们已为本系本科生开设了好几年。目前我们主要采用的是ALTERA公司的FPGA产品。具体的实验分三个步骤来完成:
(1)学生熟悉实验中使用的软、硬件系统并学习硬件描述语言(HDL语言)的编程。
(2)给定设计题目和要求,学生自行设计、仿真、综合并下载到硬件系统中,完成设计。这部分的设计规模较小,在1万门以内。
(3)提出专业性比较强的一些设计课题(例如语音编码、扩频通信等)供学生选择设计,也可几人组成小组进行设计,设计规模在5万门以内。
(二)开设ASIC实验构想
目前ASIC设计对软硬件环境要求都相当高,UNIX环境下的ASIC设计工具软件比较多,也比较稳定,Windows下的设计软件相对较少。业界Cadence、Synopsys、Mentor等公司的ASIC设计软件在设计中用得较多。在价格方面,总的情况是前端设计软件就已经很昂贵了,而后端设计软件的价格还远远高于前端设计软件。例如一个仿真器的价格可能为34万美元,而一个ASIC布局布线器的价格可能高达几十万到一百万美元。另外,后端设计不光牵涉软件问题,还要牵涉具体的制造工艺,例如0.18微米的工艺就有很多种,选用哪一种需要和相应的半导体制造厂商联系,由对方提供相应的库,才能进行设计,否则,设计也不能最终完成。设计完成后,由提供库的半导体厂家制造ASIC芯片。
由于ASIC软件价格昂贵,对于一般的高校来说,目前要进行大规模的实验教学是不太现实的。我们认为可以先为部分研究生开设实验,待时机成熟时,再将规模扩大到本科生。针对目前EDA设计软件非常昂贵的现状,我们通过调研,认为可采用一些措施缓解经费上的压力,这些措施包括:
(1)与EDA软件供应商协商,争取其以优惠的价格支持高校教学。 (2)寻找可利用的已公开的设计软件。
(3)主要让学生掌握系统设计流程和设计思想,因此软件的功能可以简化,
-118 - 梁晓雯等·EDA系统设计的实验教学构想
去掉一些锦上添花的部分。
(4)采取分阶段、分步骤实现的方法,持续性发展,先购买一部分软件,开设一部分实验,然后逐步完善至整个设计过程。
在解决了部分软件之后,首先可以为研究生开设EDA实验,具体可以分三个步骤:
(1)学生学习所使用的软件环境及HDL语言的编程。由于EDA软件功能较复杂,专业性较强,因此在进行实际设计前,必须要对软件了解透彻。
(2)学生学习自顶向下的设计方法,用一些简单的设计题目进行练习,过程包括HDL语言设计、仿真、综合、布局布线等。在无法完成ASIC芯片的情况下,可用FPGA来验证结果。
(3)自行设计复杂系统,例如CPU、DSP或调制解调器等。一般采取小组攻关的形式,待条件成熟后,可以制作ASIC芯片。
四、总结
超大规模集成电路技术的发展,使得EDA设计成为目前系统设计的最强有力的工具。面对这种形势,如何使实验教学跟上技术的发展是我们面临的新的课题。目前,在这个领域中,我们已经开设了有关PLD器件的实验,并对ASIC实验有了一些初步的构想。对于这种技术难度比较高的实验课程,困难肯定是存在的,但是它符合电子系统设计的发展方向,能够大大提高学生的系统设计能力,因此还是有必要去尝试开发,探索一条可行之路。在这方面,我们已经开设了部分实验,还有一些实验正在筹划之中,我们希望该课程的开设能将我们的EDA教学水平提高一大步。
参 考 文 献
[1] 侯伯亨等. VHDL硬件描述语言与数字逻辑电路设计. 西安电子科技大学出版社,1999. [2] 宋万杰等. CPLD技术及其应用. 西安电子科技大学出版社,2000. [3] 黄正谨. 在系统编程技术及其应用. 东南大学出版社,1999. [4] 中国通讯. SYNOPSYS公司,1997.2,1999.2
因篇幅问题不能全部显示,请点此查看更多更全内容