SOPC技术 数字逻辑电路 主讲:刘昌华 嵌入式技术研究所 2012.9
一、关于课程: 1. 课程名称:SOPC技术 SOPC Technology SOPC含义: SOPC是用可编程逻辑技术把整个系统放到一块硅 (SOC),即由单个芯片完成整个系统的主要逻辑功 能但它不是简单的SOC,它也是可编程系统,具有灵活 的设计方式,可裁减、可扩充、可升级,并具备软硬 件在系统可编程的功能。 模拟量 Analog Value:连续的物理量 三极管的开关特性:开—饱和/关—不导通
3.研究的内容 SOPC设计技术涵盖了嵌入式系统设计技术的全部内容, 除了以处理器和实时多任务操作系统(RTOS)为中心的 软件设计技术、以PCB和信号完整性分析为基础的高速电 路设计技术以外,SOPC还涉及目前以引起普遍关注的软硬 件协同设计技术。
二、关于教材: EDA技术与应用-基于QuartusII与VHDL 刘昌华,北京航空航天大学出版社,2012. 课程内容 第1讲EDA技术概述 第2讲可编程逻辑器件 第3讲Quartus II开发系统(1) 第4讲Quartus II开发系统(2) 第5讲VHDL设计基础 第6讲基于NiosⅡ的SOPC软硬设计 第7讲嵌入式系统设计举例
二、关于教材: EDA技术与应用-基于QuartusII与VHDL 刘昌华,北京航空航天大学出版社,2012. 课程实验 实验1 DE2-115开发板的使用 实验2 Quartus II设计正弦信号发生器 实验3简易数字钟的VHDL设计 实验4 基于SOPC的流水灯实验 实验5 基于SOPC的LCD显示实验 实验6基于SOPC的自定义PWM组件实验
三、参考资料 1.张志刚.FPGA与SOPC设计教程—DE2实践[M].西安电子科技大学出版社,2007.5 2. 王刚等编著,基于FPGA的SOPC嵌入式系统设计与典型实例,电子工业出版社,2009.1 3.Altera公司,DE2_115用户手册,2010.9
3.研究的内容 (1)基于FPGA嵌入IP硬核的应用。这种SOPC系统是指在FPGA中预先植入处理器。这使得FPGA灵活的硬件设计与处理器的强大软件功能有机地结合在一起,高效地实现SOPC系统。 (2)基于FPGA嵌入IP软核的应用。这种SOPC系统是指在FPGA中植入软核处理器,如:NIOSII核等。用户可以根据设计的要求,利用相应的EDA工具,对NIOSII及其外围设备进行构建,使该嵌入式系统在硬件结构、功能特点、资源占用等方面全面满足用户系统设计的要求。 (3)基于HardCopy技术的应用。这种SOPC系统是指将成功实现于FPGA器件上的SOPC系统通过特定的技术直接向ASIC转化。把大容量FPGA的灵活性和ASIC的市场优势结合起来,实现对于有较大批量要求并对成本敏感的电子产品,避开了直接设计ASIC的困难。
本章主要介绍EDA技术发展与主要内容,硬件描述语言HDL ,EDA技术的层次化设计方法与流程,EDA软件,IP核与互联网上的EDA资源。 学习目标 了解:EDA技术的主要内容,EDA工具各模块的的主要功能 理解:EDA技术的层次化设计方法与流程 应用:掌握EDA技术的设计流程
主要内容: 1.1 EDA技术及其发展 1.2 硬件描述语言 1.3 EDA技术的层次化设计方法与流程 1.4 EDA工具软件简介 1.2 硬件描述语言 1.3 EDA技术的层次化设计方法与流程 1.4 EDA工具软件简介 1.5 IP核 1.6 互联网上的EDA资源 本章小结 思考与练习
1.1 EDA技术及其发展 1.1.1 EDA技术的发展历程 EDA技术是以计算机为工作平台,以EDA软件工具为开发环境,以硬件描述语言为设计语言,以可编程器件为实验载体,以ASIC(Application-Specific Interated Circuit)、SoC(System On Chip)芯片为目标器件,以数字系统设计为应用方向的电子产品自动化设计过程。 随着现代半导体的精密加工技术发展到深亚微米(0.18~0.35um)阶段,基于大规模或超大规模集成电路技术的定制或半定制ASIC器件大量涌现并获得广泛的应用,使整个电子技术与产品的面貌发生了深刻的变化,极大地推动了社会信息化的发展进程。而支撑这一发展进程的主要基础之一,就是EDA技术。
1.1 EDA技术及其发展 EDA技术在硬件方面融合了大集成电路制造技术,IC版图设计技术、ASIC测试和封装技术、CPLD/FPGA技术等;在计算机辅助工程方面融合了计算机辅助设计CAD、计算机辅助制造CAM、计算机辅助测试CAT技术及多种计算机语言的设计概念;而在现代电子学方面则容纳了更多的内容,如数字电路设计理论、数字信号处理技术、系统建模和优化技术等。因此EDA技术为现代数字系统理论和设计的表达与应用提供了可能性,它已不是某一学科的分支,而是一门综合性学科,EDA技术打破了计算机软件与硬件间的壁垒,是计算机的软件技术与硬件实现、设计效率和产品性能合二为一,它代表了数字电子设计技术和应用技术的发展方向。 EDA技术伴随着计算机、集成电路、电子系统设计的发展,经历了三个发展阶段 。
1.1 EDA技术及其发展 1.CAD(Computer Aided Design)阶段 20世纪70年代发展起来的CAD阶段是EDA技术发展的早期阶段,这一阶段集成电路制作方面,MOS工艺得到广泛应用,可编程逻辑技术及其器件已经问世,计算机作为一种运算工具已在科研领域得到广泛应用,人们借助于计算机,在计算机上进行电路图的输入、存储及PCB版图设计的EDA软件工具,从而使人们摆脱了用手工进行电子设计时的大量繁难、重复、单调计算与绘图工作,并逐步取代人工进行电子系统的设计、分析与仿真。 2.电子设计CAE(Computer Aided Engineering)阶段 计算机辅助工程(CAE),是在CAD工具逐步完善的基础上发展起来的,在20世纪80年代开始应用。此时集成电路设计技术进入了CMOS(互补场效应管)时代,复杂可编程逻辑器件已进入商业应用,相应的辅助设计软件也已投入使用。 在这一阶段,人们已将各种电子线路设计工具如电路图输入、编译与连接、逻辑模拟、仿真分析、版图自动生成及各种单元库都集成在一个CAE系统中,以实现电子系统或芯片从原理图输入到版图设计输出的全程设计自动化。利用现代的CAE系统,设计人员在进行系统设计的时候,已可以把反映系统互连线路对系统性能
1.1 EDA技术及其发展 的影响因素,如板级电磁兼容、板级引线走向等影响物理设计的制约条件,一并考虑进去,使电子系统的设计与开发工作更贴近产品实际,更加自动化、更加方便和稳定可靠,大大提高了工作效率。 3.EDA((Electronics Design Automation)阶段 20世纪90年代后期,出现了以硬件描述语言、系统级仿真和综合技术为特征的EDA技术。随着硬件描述语言HDL的标准化得到进一步的确立,计算机辅助工程、辅助分析、辅助设计在电子技术领域获得更加广泛的应用,与此同时电子技术在通信、计算机及家电产品生产中的市场和技术需求,极大推动了全新的电子自动化技术的应用和发展。在这一阶段,电路设计者只需要完成对系统功能的描述,就可以由计算机软件进行系列处理,最后得到设计结果,并且修改设计如同修改软件一样方便,利用EDA工具可以极大地提高设计效率。 这时的EDA工具不仅具有电子系统设计的能力,而且能提供独立于工艺和厂家的系统级设计能力,具有高级抽象的设计构思手段。因此,可以说90年代EDA技术是电子电路设计的革命。
1.1 EDA技术及其发展 1.1.2 EDA技术的主要内容 EDA技术涉及面广,内容丰富,从教学和实用的角度看,主要有以下四个方面内容:首先是大规模可编程逻辑器件;其次是硬件描述语言;三是软件开发工具;四是实验开发系统。大规模可编程逻辑器件是利用EDA技术进行电子系统设计的载体;硬件描述语言是利用EDA技术进行电子系统设计的主要表达手段;软件开发工具是利用EDA技术进行电子系统设计的智能化、自动化设计工具;实验开发系统是利用EDA技术进行电子系统设计的下载工具及硬件验证工具。利用EDA技术进行数字系统设计,具有以下特点: ①全程自动化:用软件方式设计的系统到硬件系统的转换,是由开发软件自动完成的。 ②工具集成化:具有开放式的设计环境,这种环境也称为框架结构(Framework),它在EDA系统中负责协调设计过程和管理设计数据,实现数据与工具的双向流动。它的优点是可以将不同公司的软件工具集成到统一的计算机平台上,使之成为一个完整的EDA系统。
1.1 EDA技术及其发展 ③操作智能化:使设计人员不必学习许多深入的专业知识,也可免除许多推导运算即可获得优化的设计成果。 ④执行并行化:由于多种工具采用了统一的数据库,使得一个软件的执行结果马上可被另一个软件所使用,使得原来要串行的设计步骤变成了同时并行过程,也称为“同时工程(ConcurrentEngineering)”。 ⑤成果规范化:都采用硬件描述语言,它是EDA系统的一种设计输入 1.1.3 EDA技术的发展趋势 EDA技术在进入21世纪后,得到了更大的发展,突出表现在以下几个方面: ①使电子设计成果以自主知识产权的方式得以明确表达和确认成为可能。 ②使仿真和设计两方面支持标准硬件描述语言、功能强大的EDA软件不断推出。模式,可以支持从数字系统级到门级的多层次的硬件描述。
1.1 EDA技术及其发展 ③电子技术全方位纳入EDA领域,除了日益成熟的数字技术外,传统的电路系统设计建模理念发生了重大的变化:软件无线电技术的崛起,模拟电路系统硬件描述语言的表达和设计的标准化,系统可编程模拟器件的出现,数字信号处理和图像处理的全硬件实现方案的普遍接受,软、硬件技术的进一步融合等。 ④EDA使得电子领域各学科的界限更加模糊,更加互为包容:模拟与数字、软件与硬件、系统与器件、专用集成电路ASIC与FPGA、行为与结构等的界限更加模糊,更加互为包容。 ⑤更大规模的FPGA和CPLD(complex programmable logic device)器件的不断推出。 ⑥基于EDA工具的ASIC设计标准单元已涵盖大规模电子系统及IP核模块。 ⑦软件IP核在电子行业的产业领域、技术领域和设计应用领域得到进一步确认。 ⑧单片电子系统SoC(system on a circuit)高效、低成本设计技术的成熟。 总之,随着系统开发对EDA技术的目标器件的各种性能要求的 提高,
1.1 EDA技术及其发展 ASIC和FPGA将更大程度相互融合。这是因为虽然标准逻辑器件ASIC芯片尺寸小、功能强大、耗电省,但设计复杂,并且有批量生产要求;可编程逻辑器件开发费用低廉,能在现场进行编程,但却体积大、功能有限,而且功耗较大。因此,FPGA和ASIC正在走到一起,互相融合,取长补短.由于一些ASIC制造商提供具有可编程逻辑的标准单元,可编程器件制造商重新对标准逻辑单元发生兴趣,而有些公司采取两头并进的方法,从而使市场开始发生变化,在FPGA和ASIC之间正在诞生一种“杂交”产品,以满足成本和上市速度的要求。例如将可编程逻辑器件嵌入标准单元。 现今也在进行将ASIC嵌入可编程逻辑单元的工作。目前,许多PLD公司开始为ASIC提供FPGA内核,PLD厂商与ASIC制造商结盟,为SOC设计提供嵌入式FPGA模块,使未来的ASIC供应商有机会更快地进入市场,利用嵌入式内核获得更长的市场生命期。传统ASIC和FPGA之间的界限正变得模糊。系统级芯片不仅集成RAM 和微处理器,也集成FPGA.整个EDA和IC 设计工业都朝这个方向发展。
1.2 硬件描述语言 硬件描述语言HDL(Hardware Description Language)是硬件设计人员和电子设计自动化工具(EDA)之间的界面。其主要目的是用来编写设计文件建立电子系统行为级的仿真模型即利用计算机的巨大能力对用HDL建模的复杂数字逻辑进行仿真,然后再自动综合以生成符合要求且在电路结构上可以实现的数字逻辑网表(Netlist)。根据网表和某种工艺的器件自动生成具体电路,然后生成该工艺条件下这种具体电路的延时模型,仿真验证无误后用于制造ASIC芯片或写入FPGA器件中。 在EDA技术领域中把用HDL语言建立的数字模型称为软核(Soft Core),把用HDL建模和综合后生成的网表称为固核(Hard Core),对这些模块的重复利用缩短了开发时间提高了产品开发率提高了设计效率。 随着PC平台上的EDA工具的发展,PC平台上的HDL仿真综合性能已相当优越,这就为大规模普及这种新技术铺平了道路,随着电子系统向集成化大规模高速度的方向发展HDL语言将成为电子系统硬件设计人员必须掌握的语言。
1.2 硬件描述语言 1.2.1 硬件描述语言的起源 硬件描述语言种类很多,有的从PASCAL发展而来,也有一些从C语言发展而来。有些HDL成为IEEE标准,但大部分是本企业标准。在HDL形成发展之前,已有了许多程序设计语言,如汇编、C,PASCAL,FORTRAN,PROLOG等。这些语言运行在不同硬件平台、不同的操作环境中,它们适合于描述过程和算法,不适合作硬件描述。CAD的出现,使人们可以利用计算机进行建筑、服装等行业的辅助设计,而电子辅助设计也同步发展起来。在利用EDA工具进行电子设计时,逻辑图、分立电子元件作为整个越来越复杂的电子系统的设计己不适应。任何一种EDA工具,都需要一种硬件描述语言来作为EDA工具的工作语言。这些众多的EDA工具软件开发者,各自推出了自己的HDL语言。在我国比较有影响的硬件描述语言有:ABEL-HDL语言、Verilog HDL语言、AHDL语言和VHDL语言,表1给出了常见HDL语言的主要特点和常用EDA平台列表。
1.2 硬件描述语言 表1-1 常见HDL语言列表
1.2 硬件描述语言 Verilog HDL语言是在1983年由GDA(Gate Way DesignAutomation)公司开发的,1989年CDS(Cadence Design System)公司收购了GDA公司, Verilog HDL语言成为CDS公司的私有财产,1990年CDS公司公开了Verilog HDL语言,成立了OVI(Open Verilog Internation)组织来负责的Verilog HDL。IEEE于1995年制定了Verilog HDL的IEEE标准即Verilog HDL 1364-1995。Verilog HDL的增强版本于2001年批准为IEEE标准即Verilog HDL 1364-2001。Verilog HDL最初是想用来做数字电路仿真和验证的,后来添加了逻辑电路综合能力。 VHDL(Very high speed integrated Hardware Description Language)语言是超高速集成电路硬件描述语言,在20世纪80年代后期由美国国防部开发的,并于1987年12月由IEEE标准化(定为IEEE 1076-1987标准),之后IEEE又对87版本进行了修订,于1993年推出了较为完善的93版本(被定为ANSI/IEEE 1076-1993标准),使VHDL的功能更强大,使用更方便,2008年又推出了IEEE 1076-2008标准 。
1.2 硬件描述语言 1.2.2 HDL语言的特征 HDL语言既包含一些高层程序设计语言的结构形式同时也兼顾描述硬件线路连接的具体构件,通过使用结构级或行为级描述可以在不同的抽象层次描述设计语言,采用自顶向下的数字电路设计方法主要包括三个领域五个抽象层次如图1-1所示。 图1-1 HDL抽象层次描述表
1.2 硬件描述语言 HDL语言是并发的即具有在同一时刻执行多任务的能力。一般来讲,编程语言是非并行的,但在实际硬件中许多操作都是在同一时刻发生的,所以HDL语言具有并发的特征。HDL语言还有时序的概念,在硬件电路中从输入到输出总是有延迟存在的,为描述这些特征HDL语言需要建立时序的概念,因此使用HDL除了可以描述硬件电路的功能外还可以描述其时序要求,在EDA设计中用HDL语言做设计输入变得日益广泛,EDA工具可以用来将HDL代码转化为描述电路的实现。 目前最主要的硬件描述语言是VHDL和Verilog HDL,均为IEEEE的技术标准。两种语言的差别并不大,他们的描述能力也是类似的,掌握其中一种语言以后,可以通过短期的学习,较快的学会另一种语言。如果是ASIC设计人员,则应掌握Verilog,因为在IC设计领域,90%以上的公司都采用Verilog进行设计。对于CPLD/FPGA设计者而言,两种语音可以自由选择。目前,VHDL已经成为世界上各家EDA工具和集成电路厂商普遍认同和共同推广的标准化硬件描述语言。1995年我国国家技术监督局制定的《CAD通用技术规范》推荐VHDL作为我国电子设计自动化硬件描述语言的国家标准,本书将选择VHDL语言作为EDA设计的电路综合语言。
1.3 EDA技术的层次化设计方法与流程 EDA技术的出现使数字系统的分析与设计方法发生了根本的变化,采用的基本设计方法主要有三种:直接设计、自顶向下(Top-to-Down)设计、自底向上(Buttom-to-Up)设计。直接设计就是将设计看成一个整体,将其设计成为一个单电路模块,它适合小型简单的设计。而一些功能较复杂的大型数字系统设计适合自顶向下或自底向上的设计方法。自顶向下的设计方法就是从设计的总体要求入手,自顶向下地将设计划分为不同的功能子模块,每个模块完成特定的功能,这种设计方法首先确定顶层模块的设计,再进行子模块的详细设计,而在子模块的设计中可以调用库中已有的模块或设计过程中保留下来的实例。自底向上的设计方法与自顶向下的设计方法恰恰相反。 1.3.1 EDA技术的层次化设计方法 在EDA设计中往往采用层次化的设计方法,分模块、分层次地进行设计描述。描述系统总功能的设计为顶层设计,描述系统中较小单元的设计为底层设计。整个设计过程可理解为从硬件的顶层抽象描述
1.3 EDA技术的层次化设计方法与流程 向最底层结构描述的一系列转换过程,直到最后得到可实现的硬件单元描述为止。层次化设计方法比较自由,既可采用自顶向下(Top-Down)的设计也可采用自底向上(Down-top)设计,可在任何层次使用原理图输入和硬件描述语言HDL设计。 1.自底向上Bottom-up设计方法 Bottom-up设计方法的中心思想是首先根据对整个系统的测试与分析,由各个功能块连成一个完整的系统,由逻辑单元组成各个独立的功能模块,由基本门构成各个组合与时序逻辑单元。 Bottom-up设计方法的特点:从底层逻辑库中直接调用逻辑门单元;符合硬件工程师传统的设计习惯;在进行底层设计时缺乏对整个电子系统总体性能的把握;在整个系统完成后,要进行修改较为困难,设计周期较长;随着设计规模与系统复杂度的提高,这种方法的缺点更突出。
1.3 EDA技术的层次化设计方法与流程 例如,对于一般数字系统的设计,使用自底向上的设计方法,必须首先决定使用的器件类别,如74系列的器件、某种RAM和ROM、某类CPU以及某些专用功能芯片等,然后是构成多个功能模块,如数据采集、信号处理、数据交换和接口模块等等,直至最后利用它们完成整个系统的设计。 2.自顶向下Top-down设计方法 Top-down设计方法的中心思想是:系统层是一个包含输入输出的顶层模块,并用系统级、行为描述加以表达,同时完成整个系统的模拟和性能分析;整个系统进一步由各个功能模块组成,每个模块由更细化的行为描述加以表达;由EDA综合工具完成到工艺库的映射。 Top-down设计方法的特点:结合模拟手段,可以从开始就掌握实现目标系统的性能状况;随着设计层次向下进行,系统的性能参数将进一步得到细化与确认;可以根据需要及时调整相关的参数,从而保证了设计结果的正确性,缩短了设计周期;当规模越大时,这种方法的优越性越明显;须依赖EDA设计工具的支持及昂贵的基础投入;逻辑总合及以后的设计过程的实现,均需要精确的工艺库的支持。
1.3 EDA技术的层次化设计方法与流程 系统设计从顶向下大致可分为3个层次: ①系统层,用概念、数学和框图进行推理和论证,形成总体方案。 ②电路层,进行电路分析、设计、仿真和优化,把框图与实际的约束条件与可测性条件结合,实行测试和模拟(仿真)相结合的科学实验研究方法,产生直到门级的电路图。 ③物理层,真正实现电路的工具。同一的电路可以有多种不同的方法实现它。物理层包括PCB、IC、PLD或FPGA和混合电路集成以及微组装电路的设计等。 在电子设计领域,自顶向下的层次化设计方法,只有在EDA技术得到快速发展和成熟应用的今天才成为可能,自顶向下的层次化设计方法的有效应用必须基于功能强大的EDA工具,具备集系统描述、行为描述和结构描述功能为一体的硬件描述语言HDL,以及先进的ASIC制造工艺和CPLD/FPGA开发技术。当今,自顶向下的层次化设计方法已经是EDA技术的首选设计方法,是CPLD/FPGA开发的主要设计手段。
1.3 EDA技术的层次化设计方法与流程 1.3.2 EDA技术的设计流程 利用EDA技术进行数字系统的设计的大部分工作是在EDA软件平台上完成的,EDA设计流程包含设计准备、设计输入、设计处理、设计效验和器件编程,以及相应的功能仿真、时序仿真、器件测试。 1)设计准备 设计准备是指设计者按照“自顶向下”概念驱动式的设计方法,依据设计目标要求,确定系统所要完成的功能及复杂程度,器件资源的利用、成本等工作,如方案论证、系统设计和器件选择等。 2) 设计输入 设计输入是由设计者对器件所实现的数字系统的逻辑功能进行描述,主要有原理图输入、真值表输入、状态机输入、波形输入、硬件描述语言输入法等。对初学者推荐使用原理图输入法,硬件描述语言输入法。
1.3 EDA技术的层次化设计方法与流程 3)设计处理 该环节主要包括: (1)设计编译 3)设计处理 该环节主要包括: (1)设计编译 设计输入完成后,立即进行设计编译,EDA编译器首先从工程设计文件间的层次结构描述中提取信息,包含每个低层次文件中错误信息,如原理图中信号线有无漏接,信号有无多重来源,文本输入文件中的关键字错误或其他语法错误,并及时标出错误的位置,供设计者排除纠正,然后进行设计规则检查,检查设计有无超出器件资源或规定的限制,并将给出编译报告。 (2)逻辑综合优化 所谓综合(Synthesis)就是把抽象的实体结合成单个或统一的实体。设计文件编译过程中,逻辑综合就是把设计抽象层次中的一种表示转化为另一种表示的过程。实际上,编译设计文件过程中的每一步都可称为一个综合环节。设计过程通常从高层次的行为描述开始,以最低层次的结构描述结束,每一个综合步骤都是上一层次的转换,它们分别是:
1.3 EDA技术的层次化设计方法与流程 ① 从自然语言转换到HDL语言算法表示,即自然语言综合; ② 从算法表示转换到寄存器传输级(RTL),即从行为域到结构域的综合,即行为综合; ③ RTL级表示转换到逻辑门(包括触发器)的表示,即逻辑综合; ④ 从逻辑门表示转换到版图表示(ASIC设计),或转换到FPGA的配置网表文件,可称为版图综合或结构综合。有了版图信息就可以把芯片生产出来了。有了对应的配置文件,就可以使对应的FPGA变成具有专门功能的电路器件。 (3)适配和布局 适配器功能是将由综合器产生的网表文件,配置于指定的目标器件中,使之产生最终的下载文件,如JEDEC、JAM格式的文件。适配器所选定的目标器件必须属于原综合器指定的目标器件系列。 (4)生成编程文件 适配和布局完成后,可以利用适配所产生的仿真文件作精确的时序仿真,同时产生可用于编程使用的数据文件。对CPLD来说,是产生熔丝图文件,即JEDEC文件;对于FPGA来说,则生成流数据文件BG(Bit-stream Generation)。
1.3 EDA技术的层次化设计方法与流程 4)设计效验 设计效验过程是对所设计的电路进行检查,以验证所设计的电路是否满足指标要求。验证的方法有三种:模拟(又称仿真)、规则检查和形式验证。规则检查是分析电路设计结果中各种数据的关系是否符合设计规则。形式验证是利用理论证明的方法来验证设计结果的正确性。由于系统的设计过程是分若干层次进行的,对于每个层次都有设计验证过程对设计结果进行检查。模拟方法是目前最常用的设计验证法,它是指从电路的描述抽象出模型,然后将外部激励信号或数据施加与此模型,通过观测此模型的响应来判断该电路是否实现了预期的功能。 模型检验是数字系统EDA设计的重要工具,整个设计中近80%的时间是在做仿真,设计效验过程包括功能模拟(Compile)、时序模拟(Simulate)。功能模拟是在设计输入完成以后,选择具体器件进行编译以前进行的逻辑功能验证,时序模拟是在选择具体器件进行编译以后,进行时序关系仿真。
1.3 EDA技术的层次化设计方法与流程 5) 器件下载 把适配后生成的下载数据文件,通过编程电缆或编程器向CPLD或FPGA进行下载,以便进行硬件调试和验证。编程是指将实现数字系统已编译数据放到具体的可编程器件中,对CPLD来说,是将熔丝图文件,即JEDEC文件下载到CPLD器件中去;对于FPGA来说,是将生成流数据文件BG配置到FPGA中。 器件编程需要一定的条件,如编程电压,编程时序,编程算法等。普通CPLD和OPT FPGA需要专用的编程器完成器件的编程工作。基于SRAM的FPGA可由EPROM或其他存储器进行配置。再系统可编程器件(ispPLD)可用计算机通过一条编程电缆现场对器件编程,无需专用编程器。 通常,将对CPLD的下载称为编程(Program),对FPGA中的SRAM进行直接下载的方式称为配置(Configure),但对于OTP FPGA的下载和对FPGA的专用配置ROM的下载仍称为编程。
1.3 EDA技术的层次化设计方法与流程 6) 设计电路硬件调试--实验验证过程 实验验证是将已编程的器件与它的相关器件和接口相连,以验证可编程器件所实现的逻辑功能是否满足整个系统的要求。最后是将含有载入了设计的FPGA或CPLD的硬件系统进行统一测试,以便最终验证设计项目在目标系统上的实际工作情况,以排除错误,改进设计。实验验证可以在EDA硬件实验开发平台上进行,如本书所采用的AlteraDE2开发系统。
1.4 EDA工具软件简介 EDA工具软件在EDA技术应用中占据极其重要的地位,EDA的核心是利用计算机实现电路设计的自动化,因此基于计算机环境下的EDA工具软件的支持是必不可少的。 EDA工具软件品种繁多,目前在我国得到应用的有:PSPICE、OrCAD、PCAD、Protel、Viewlogic、Mentor、Graphics、Synopsys、Cadence、MicroSim、Edison、Tina等等。这些软件功能都很强,一般都能应用于几个方面,大部分软件都可以进行电路设计与仿真,PCB自动布局布线,可输出多种网表文件(Netlist),与其他厂商的软件共享数据等等。按它们的主要功能与应用领域,可分为电子电路设计工具、仿真工具、PCB设计软件、IC设计软件、PLD设计工具及其它EDA软件, IC设计和PLD设计代表当今电子技术的发展水平。其中Altera公司PLD设计软件QuartusII是本书所使用的EDA工具软件。 目前世界上具有代表性的PLD生产厂家有Altera、Xilinx和Lattice公司。一些小型化、简单的PLD设计工具主要由生产器件的厂家提供,而一些功能强大、大型化的PLD设计工具是由软件公司和生产器件的厂家合作开发。
1.4 EDA工具软件简介 1.4.1 MAX+plusⅡ A1tera的MAX+plusII开发系统是一种全集成化的可编程逻辑设计环境,能满足所有这些要求。MAX+plusII是CPLD/FPGA应用软件中比较典型的一种工具,其最高版本为10.2,它所提供的灵活性和高效性是无可比拟的,其丰富的图形界面,辅之以完整的、可即时访问的在线文档,使设计人员能够轻松愉快地掌握和使用MAX+plusII10.2软件。其特点如下: (1)与结构无关的开放性特点 (2)多平台 (3)全集成化 (4)模块组合式工具软件 (5)硬件描述语言(HDL) (6)开放的界面
1.4 EDA工具软件简介 1.4.2 Quartus® II Altera公司2009年推出的Quartus® II9.1是功能最强,兼容性最好的EDA工具软件,它完全取代Max+plusII10.2。软件提供完善的用户界面设计方式;支持Altera的IP核,包含LPM/MegaFunction宏功能模块库;包含SignalTapII、Chip Editor和RTL View等设计辅助工具,集成了SOPC和HardCopy® ASIC设计工具;通过DSP Builder工具与Matlab/Simulink相结合,可以方便实现各种DSP应用;支持第三方EDA开发工具。其快速重新编译新特性使Quartus II9.1软件能够进一步缩短设计编译时间,而且还支持Altera最新发布的 Cyclone®IV FPGA 。其Nios II软件开发工具开始支持Eclipse,OS支持Linux SUSE 10,提高了软件开发效率。具有开放性、与结构无关、多平台、完全集成化、丰富的设计库、模块化工具、支持各种HDL,有多种高级编程语言接口,易学易用等特点。
1.4 EDA工具软件简介 Quartus II设计软件最新版本为Quartus® II 软件11.1,在CPLD、FPGA和HardCopy® ASIC设计方面,业界性能和效能最好的软件。这一新版软件扩展了Altera 28-nm FPGA支持,包括对Arria® V和Cyclone® V FPGA的编译支持,还增强了对Stratix® V FPGA的支持。Quartus II 软件11.1版增加了支持Altera系统级调试工具——系统控制台。系统控制台提高了调试的抽象级,能够与Altera SignalTap™ II嵌入式逻辑分析器等底层调试工具协同工作,从而大幅度缩短验证时间。这种可配置的交互式系统控制台工具含在Quartus II 软件11.1版中,满足多种系统调试需求。通过系统控制台,设计人员可以分析并解释数据,监视系统在真实条件下的性能。基于TCL,设计人员使用系统控制台可以在高级编程环境中迅速构建验证脚本,或者定制图形用户界面,支持Qsys(Qsys是下一代SOPC Builder工具)系统复杂的仪表测试和验证解决方案。这一工具用于设计的仿真、实验测试和开发阶段,只需要很少的资源,减少硬件编译步骤,提高设计人员的效能。
1.4 EDA工具软件简介 1.4.3 其他仿真软件 1.ModelSim仿真软件 ModelSim仿真软件是Model公司开发的一种快速方便的HDL仿真器,支持VHDL和Verilog HDL的编辑、编译和仿真。ModelSim有一系列产品,它可以在Unix和Windows平台上工作,目前主要分为ModelSimSE 、ModelSi VHDL、ModelSimLNI、ModelSimPLUS、。Altera公司也有OEM版的ModelSim( ModelSim-Altera 6.5e)。 2.Xilinx公司的ISE开发设计软件 赛灵思公司(Xilinx, Inc)2007推出业界应用最广泛的集成软件环境(ISE™)设计套件的最新版本ISE 9.1i。新版本专门为满足业界当前面临的主要设计挑战而优化,这些挑战包括时序收敛、设计人员生产力和设计功耗。除了运行速度提高2.5倍以外,ISE 9.1i还新采用了SmartCompile 技术,因而可在确保设计中未变更部分实施结果的同时,将硬件实现的速度再提高多达6倍。同时,ISE 9.1i
1.4 EDA工具软件简介 还优化了其最新65nm Virtex™-5 平台独特的ExpressFabric™技术,可提供比竞争对手的解决方案平均高出30%的性能指标。对于功耗敏感的应用, ISE 9.1i还可将动态功耗平均降低10%。 3.Lattice Diamond Lattice Diamond包括来自Synopsys公司的适用于莱迪思(Lattice)的Synplify Pro,可用于所有FPGA系列,以及莱迪思综合引擎(LSE),可用于MachXO2和MachXO器件系列。Lattice Diamond Windows版还包括来自Aldec公司的Active-HDL莱迪思版,适用于混合语言仿真支持。 4.综合工具 在综合工具方面,有Synopsys的FPGA Express;Cadence的Synphty;Mentor的Leonardo这三家的FPGA综合软件垄断了市场。
1.5 IP核 现代人的生活已经离不开芯片,手机、电脑、电视、数码相机……这些使我们的生活能够正常运转而又变得丰富多彩的“日用品”都离不开芯片。将不同芯片的功能全部集成于SoC(系统级芯片)中,是目前EDA技术发展的一个重要方向,而SoC设计的关键技术就是IP核。 IP核(Intellectual Property core)就是知识产权模块,美国Dataquest咨询公司将半导体产业的IP定义为用于ASIC或CPLD/FPGA中预先设计好电路功能模块,是一段具有特定电路功能的硬件描述语言程序,该程序与集成电路工艺无关,可以移植到不同的半导体工艺中去生产集成电路芯片。 IP核可以在不同的硬件描述级实现,由此产生了三类IP内核:软核、固核和硬核。这种分类主要依据产品交付的方式,而这三种IP核实现方法也各具特色
1.5 IP核 1.IP软核 IP软核是用VHDL、Verilog等硬件描述语言描述的功能块,但是并不涉及用什么具体电路元件实现这些功能。软IP通常是以硬件描述语言HDL源文件的形势出现,应用开发过程与普通的HDL设计也十分相似,具有很大的灵活性,只是所需的开发软硬件环境比较昂贵。借助EDA综合工具可以与其他外部逻辑电路合成一体,根据不同的半导体工艺,设计成具有不同功能的器件,软IP的设计周期短,设计投入少。 软IP是以综合形式交付的,因而必须在目标工艺中实现,并由系统设计者验证。其优点是源代码灵活,可重定目标于多种制作工艺,在新功能级中重新配置。 2.IP硬核 IP硬核是提供设计阶段最终阶段产品:掩模。已经过完全的布局布线的网表形式提供,这种硬核既具有可预见性,同时还可以针对特定工艺或购买商进行功耗和尺寸上的优化。尽管硬核由于缺乏
1.5 IP核 灵活性而可移植性差,但由于无须提供寄存器转移级(RTL)文件,因而更易于实现IP保护。硬IP最大的优点是确保性能,如速度、功耗等。然而,硬IP难以转移到新工艺或集成到新结构中,是不可重配置的。 3.IP固核 固核则是软核和硬核的折中。大多数应用于FPGA的IP内核均为软核,软核有助于用户调节参数并增强可复用性。软核通常以加密形式提供,这样实际的 RTL对用户是不可见的,但布局和布线灵活。在这些加密的软核中,如果对内核进行了参数化,那么用户就可通过头文件或图形用户接口(GUI)方便地对参数进行操作。对于那些对时序要求严格的内核(如PCI接口内核),可预布线特定信号或分配特定的布线资源,以满足时序要求。这些内核可归类为固核,由于内核是预先设计的代码模块,因此这有可能影响包含该内核的整体设计。由于内核的建立(setup)、保持时间和握手信号都可能是固定的,因此其它电路的设计时都必须考虑与该内核进行正确地接口。如果内核具有固定布局或部分固定的布局,那么这还将影响其它电路的布局。
1.5 IP核 我国于2002年成立了“信息产业部集成电路IP核标准工作组”,负责制定我国IP核技术标准;后来又成立了“信息产业部软件与集成电路促进中心”和“上海硅知识产权交易中心”, 由哈工大承担的课题“集成电路IP核技术标准研究”是“十五”国家重大科技专项之一。该课题通过对国际上IP组织制定的标准进行深入研究,从国内产业需求出发,规划出了现阶段IP标准体系。该体系包括4大类标准:IP核交付使用文档规范/标准、IP核复用设计标准、IP核质量评估标准和IP核知识产权保护标准。这4大类标准可以解决目前IP设计企业的基本需求。
1.6 互联网上的EDA资源 http//:www.fpga.com.cn是笔者经常访问的一个关于EDA技术的专业FPGA设计中文网站。该网站涉及到CPLD/FPGA的各个方面,栏目有HDL语言、Modelsim、Altera论坛、Altera动态、Xilinx论坛、Xilinx动态、Lattice论坛、Lattice动态、参考书籍、设计交流、FPGA设计、IC设计、应用设计、资源供享、网友交流和EDA专业论坛等。其他相关常用的网址有: Altera公司的中文官方网站http//:www.altera.com.cn Xilinx公司的官方网站为http//:www.xilinx.com。 Lattice公司官方网站http://www.latticesemi.com.cn/ 友晶公司官方网站http://www.terasic.com.cn/cn 美国.康乃尔大EDA课程 http://people.ece.cornell.edu/land/courses/ece5760/ 哥伦比亚大学http://www1.cs.columbia.edu/~sedwards/classes/2009/4840/index.html
1.6 互联网上的EDA资源 电子系统设计网站http://www.ed-china.com/ OpenCore公司网站http//:www.mentor.com ,该网站属硬件开发类型的网址,提供免费的IP核下载及相关源代码,是硬件爱好者交流经验的好地方。 Accelera网址http//:www.accellera.org,是OVI(Open Verilog International)和VI( VHDL International)组织在2000年成立的官方网站,该网站主要提供有关硬件描述语言的最新信息、标准和设计方法。
本章小结 现代电子产品正在以前所未有的革新速度,向功能多样化、体积最小化,功耗最低化的方向迅速发展。它与传统电子产品在设计上的显著区别之一就是大量使用大规模可编程逻辑器件,以提高产品性能,缩小产品体积,降低产品价格;区别之一就是广泛使用计算机技术,以提高电子设计自动化程度,缩短开发周期,提高产品竞争力。EDA技术正是为适应现代电子产品设计要求,吸引多学科最新成果而形成的一门新技术。 EDA技术已有近40年的发展历程,经历了三个阶段即(1)20世纪70年代的计算机辅助设计(CAD)阶段,人们借助于计算机进行电路图的输入、存储及PCB版图设计(2)20世纪80年代为计算机辅助工程(CAE)阶段,CAE除了有纯粹的图形绘制功能外,又增加了电路功能设计和结构设计,并通过电气连接网络表将两者结合起来,实现了工程设计(3)20世纪90年代为电子电路设计自动化(EDA)阶段。
本章小结 EDA技术包括大规模可编程逻辑器件、硬件描述语言、软件开发工具、实验开发系统等方面内容。国际上流行硬件描述语言有Verilog HDL语言和VHDL语言。EDA技术的出现使数字系统的分析与设计方法发生了根本的变化,采用的基本设计方法主要有三种:直接设计、自顶向下(Top-to-Down)设计、自底向上(Buttom-to-Up)设计。在EDA设计中往往采用层次化的设计方法,分模块、分层次地进行设计描述。描述系统总功能的设计为顶层设计,描述系统中较小单元的设计为底层设计。在EDA设计中往往采用层次化的设计方法,分模块、分层次地进行设计描述。描述系统总功能的设计为顶层设计,描述系统中较小单元的设计为底层设计。利用EDA技术进行系统的设计的大部分工作是在EDA软件平台上完成的,EDA设计流程包含设计准备、设计输入,设计处理、设计效验和器件编程,以及相应的功能仿真、时序仿真、器件测试。 EDA设计工具介绍了Altera公司PLD设计软件MAX+plusI/QuartusII的特点、基本功能、支持器件、系统配置、可与其配合使用的EDA工具和互联网上的EDA资源。 掌握EDA的基本概念和设计方法是本章的重点。
思考与练习 1-1 简述EDA技术的发展历程? 1-2 EDA技术主要内容是什么? 1-3在EDA技术中“Top to Down”自顶向下的设计方法的意义何在,如何 理解“顶”的含义。 1-4 FPGA/CPLD在ASIC设计中有什么用处? 1-5 EDA的基本工具有哪些? 1-6什么是HDL?目前被IEEE采纳HDL有哪些? 1-7VHDL有那些特点? 1-8 Verilog HDL语言有那些特点? 1-9列表比较VHDL与Verilog HDL语言优缺点。 1-10 QuartusII11.2的特点,基本功能,支持的器件,系统配置,支持的操作系统,可与其配合使用的EDA工具?