当前位置:   article > 正文

Quartus 实例应用(1)——EDA技术概述_eda aplus

eda aplus


我们已经进入数字化和信息化的时代,其特点是各种数字产品的广泛应用。现代数字产品在性能提高、复杂度增大的同时,更新换代的步伐也越来越快,实现这种进步的因素在于芯片制造技术和设计技术的进步。
芯片制造技术以细微加工技术为代表,目前已进展到深亚微米阶段,可以在几平方厘米的芯片上集成数千万个晶体管。摩尔曾经对半导体集成技术的发展做出预言: 大约每18个月芯片的集成度提高1倍,功耗下降1倍。他的预言被人们称作 摩尔定律。几十年来。集成电路的发展与这个预言非常吻合, 数字器件经历了从 SSI,MSI,LSI 到 VLSI,直到现在的SoC(System on Chip,芯片系统),我们已经能够把一个完整的电子系统集成在一个芯片上。还有一种器件的出现极大改变了设计制作电子系统的方式与方法,这就是 可编程逻辑器件(Programmable Logic Device,PLD)。PLD器件是20世纪70年代后期发展起来的一种器件,它经历了可编程逻辑阵列(Programmable Logic Array,PLA)、通用阵列逻辑(Generic Array Logic,GAL)等简单形式到 现场可编程门阵列(Field Programmable Gate Array,FPGA)和复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)的高级形式的发展,它的广泛应用不仅简化了电路设计,降低了研制成本,提高了系统可靠性,而且给数字系统的整个设计和实现过程带来了革命性的变化。
电子系统的设计理念和设计方法也发生了深刻的变化,从 电子CAD(Computer Aided Design)电子CAE(Computer Aided Engineering)电子设计自动化(Electronic Design Automation,EDA),设计的自动化程度越来越高,设计的复杂性也越来越强。

一、EDA技术及其发展

EDA(电子设计自动化)技术没有一个精确的定义,我们可以这样来认识,所谓的EDA技术就是以计算机为工作平台,以EDA软件工具为开发环境,以PLD器件或者ASIC专用集成电路为目标器件设计实现电路系统的一种技术。

  1. CAD阶段
    电子CAD阶段是EDA技术的早期阶段。在这个阶段,一方面,计算机的功能还比较有限,个人计算机还没有普及;另一方面,电子设计软件的功能也较弱。人们主要是借助计算机对所设计电路的性能进行一些模拟和预测;另外,就是完成PCB的布局布线,简单版图的绘制等工作。
  2. CAE阶段
    在这个阶段,各种单点设计工具、各种设计单元库逐渐完备,并且开始将许多单点工具集成在一起使用,大大提高了工作效率。
  3. EDA阶段
    在今天,EDA技术已经成为电子设计的普遍工具。从一个角度看,EDA技术课粗略分为系统级、寄存器传输级(RTL)、门级和版图级几个层次的辅助设计过程;从另一个角度看,EDA技术包括电子电路设计的各个领域,即从低频电路到高频电路、从线性电路到非线性电路、从模拟电路到数字电路、从PCB设计到FPGA开发等,EDA技术的功能和范畴如下图:
    EDA技术的功能和范畴
    进入21世纪后,EDA技术得到更快发展,突出表现在以下5个方面:
    1)电子技术各个领域全方位融入EDA技术,除日益成熟的数字技术外,可编程模拟器件的设计技术也有了很大进步。
    2)IP(Intellectual Property)核在电子设计领域得到广泛应用,基于IP核的SoC(System on Chip,芯片系统)设计技术趋向成熟,电子设计成果的可重用性进一步提高。
    3)嵌入式微处理器软核的出现,更大规模的FPGA/CPLD器件不断推出,使得SoPC(System on Programmable Chip,可编程芯片系统)步入实用化阶段,在一片FPGA芯片中实现一个完备的系统成为可能。
    4)用FPGA(Field Programmable Gate Array,现场可编程门阵列)器件实现完全硬件的DSP(数字信号处理)处理成为可能,用纯数字逻辑进行DSP模块的设计,使得高速DSP实现成为现实,并有力推进了软件无线电技术的实用化。基于FPGA的DSP技术为高速数字信号处理算法提供实现途径。
    5)在设计和仿真两方面支持标准硬件描述语言的EDA软件不断推出,系统级、行为验证几硬件描述语言的出现(如System C)使得复杂电子系统的设计和验证更加高效。

EDA技术和EDA工具还呈现以下共同特点。

  1. 采用硬件描述语言(HDL)进行设计
    采用硬件描述语言(Hardware Description Language,HDL)进行电路与系统的描述是当前EDA设计技术的另一个特征。目前最常用的硬件描述语言是Verilog HDLVHDL,他们都已成为IEEE标准。
  2. 逻辑综合与优化
    目前的EDA工具最高只能接受行为级(Behavior Level)寄存器传输级(Register Transport Level,RTL)描述的HDL文件进行逻辑综合,并进行逻辑优化。
  3. 开放性和标准化
  4. 更完备的库

二、Top-down 设计与 IP 核复用

在基于EDA技术的设计中,通常由两种设计思路:一种是自顶向下的设计思路,另一种是自底向上的设计思路。

2.1 Top-down 设计

Top-down 设计,即自顶向下的设计。这种设计方法首先从系统设计入手,在顶层进行功能方框图的划分和结构设计。在功能级进行仿真、纠错,并用硬件描述语言对高层次的系统行为进行描述,然后用综合工具将设计转化为具体门电路网表这里看出综合就是软件的编译,只不过这里编译出了真实的电路),其对应的物理实现可以是PLD器件或专用集成电路(ASIC)。由于设计的主要仿真和调试过程是在高层次上完成的,这一方面有利于早期发现结构设计上的错误,避免设计工作的浪费,同时减少了逻辑功能仿真的工作量,提高了设计的一次成功率。
在 Top-down 的设计中,将设计分成几个不同的层次:系统级、功能级、门级和开关级等,按照自上而下的顺序,在不同的层次上,对系统进行设计与仿真。(上面说的高层次,在这里是RTL)

2.2 Bottom-up 设计

Bottom-up 设计,即自底向上的设计,这是一种传统的设计思路,这种设计方式,一般是设计者选择标准集成电路,或者将各种基本单元,如各种门电路以及加法器、计数器等模块做成基本单元库,调用这些基本单元,逐级向上组合,直到设计出满足自己需要的系统为止。这样的设计方法就如同一砖一瓦建造金字塔,不仅效率低、成本高,而且容易出错。

Top-down 的设计由于更符合人们逻辑思维的习惯,也容易使设计者对复杂的系统进行合理的划分与不断的优化,因此是目前设计思想的主流。而 Bottom-up 的设计往往使设计者关注了细节,而对整个系统缺乏规划,当设计出问题时,如果需要修改,就会比较麻烦,甚至前功尽弃,不得不从头再来。因此,在数字系统的设计中,主要采用 Top-down 的设计思路,而以 Bottom-up 设计为辅。

2.3 IP 复用技术与 SoC

当电子系统的设计越来越向高层发展时,基于 IP 复用(IP Reuse)的设计越来越显示出优越性。IP(Intellectual Property),其原来的含义是指知识产权、著作权等,在IC设计领域可将其理解为实现某种功能的设计,IP 核(IP 模块)则是指完成某种功能的设计模块。
IP 核分为硬核、固核和软核三种类型。

  • 软核指的是在寄存器级或门级对电路功能用 HDL 进行描述,表现为 VHDL 或 Verilog HDL 代码。软核与生产工艺无关,不涉及物理实现。
  • 硬核指的是以版图形式实现的设计模块,它基于一定的设计工艺,通常用GDS II 格式表示,不同的客户可以根据自己的需要选用特定生产工艺下的硬核。
  • 固核是完成了综合的功能块,通常以网表的形式提交客户使用。

基于IP复用的开发给设计者带来了诸多好处,如节省时间、缩短开发周期等。

系统芯片(SoC),或者成为芯片系统、片上系统,是指把一个完整的系统集成在一个芯片上;或者说是用一个芯片实现一个功能完整的系统。

三、数字设计的流程

数字系统的实现主要可选择两类器件,一类是可编程逻辑器件(PLD),另一类是专用集成电路(ASIC),这两类器件各有自己优点。

  • PLD(主要是 FPGA 和 CPLD )是一种半定制的器件,器件内已做好各种逻辑资源,用户只需对器件内资源编程连接就可以实现所需要的功能,而且可以反复修改、反复编程,直到满足设计要求。
  • 专用集成电路(Application Specific Integrated Circuit,ASIC)指用全定制方法来实现设计的方式,它在最底层,即物理版图级实现设计,因此也成为掩膜(Mask)ASIC。

基于 FPGA/CPLD 器件的数字系统设计流程,包括设计输入、综合、布局布线、仿真和编程下载等步骤。

3.1 设计输入

设计输入(Design Entry)是将设计者所设计的电路以开发软件要求的某种形式表达出来,并输入到相应软件中的过程。设计输入有多种表达方式,最常用的是原理图方式HDL文本方式两种。

  1. 原理图输入
    原理图是图形化的表达方式,使用元件符号和连线来描述设计。
  2. HDL 文本输入
    硬件描述语言是一种用文本形式来描述和设计电路的语言。设计者可以利用 HDL 语言来描述自己的设计,然后利用 EDA 工具进行综合和仿真,最后变为某种目标文件,再用 ASIC 或者 FPGA 具体实现。

PLD器件的设计往往采用层次化的设计方法,分模块、分层次地进行设计描述。描述器件总功能的模块放置在最上层,称为顶层设计;描述器件最基本功能的模块放置在最下层,称为底层设计。一般做法是:在顶层设计中,使用图形法表达连接关系和芯片内部逻辑到引脚的接口;在底层设计中,用硬件描述语言描述各个模块的逻辑功能。

3.2 综合

综合是一个很重要的步骤,综合是指将较高级抽象层次的设计描述自动转化为较低层次描述的过程。综合有以下几种形式。

  • 将算法表示、行为描述转换到寄存器传输级(RTL),即从行为描述到结构描述。
  • 将 RTL 级描述转换到逻辑门级(包括触发器),称为逻辑综合。
  • 将逻辑门表示转换到版图表示,或转换到 PLD 器件的配置网表表示;根据版图信息能够进行 ASIC 生产,有了配置网表可完成基于 PLD 器件的系统实现。

综合器就是能自动实现上述转换的软件工具。或者说,综合器是能够将原理图或 HDL 语言表达、描述的电路编译成由与或阵列、RAM、触发器、寄存器等逻辑单元组成的电路结构网表的工具。

硬件综合器和软件编译器有着本质区别,软件编译器将C或者汇编语言编译为0,1代码流,而硬件综合器则是将用硬件描述语言编写的程序代码转化为具体的电路网表结构。

3.3 布局布线

布局布线,或称为适配,可以理解为将综合生成的电路逻辑网表映射到具体的目标器件中实现,并产生最终可下载文件的过程。
布局布线完后产生如下一些重要文件。

  • 芯片资源耗用情况报告。
  • 面向其他 EDA 工具的输出文件,如 EDIF 文件等。
  • 产生延时网表结构,以便于进行精确时序仿真,因为已经提取出延时网表,所以仿真结果能比较精确的预测未来芯片的实际性能。
  • 器件编程文件:如用于 CPLD 编程的 JEDEC,POF 等格式的文件;用于 FPGA 配置的 SOF ,JAM,BIT 等格式的文件。

3.4 仿真

仿真也称为模拟,是对所设计电路的功能的验证。仿真包括功能仿真和时序仿真。

  • 不考虑信号时延等因素的仿真,称为功能仿真,又叫做前方真。
  • 时序仿真又叫做后仿真,它是在选择具体器件并完成布局布线后进行的包含延时的仿真。

3.5 编程配置

把适配后生成的编程文件装入 PLD 器件中的过程称为下载。通常将对基于 EEPROM 工艺的非易失结构 CPLD 器件的下载称为编程,而将基于 SRAM 工艺结构的 FPGA 器件的下载称为配置。


• 由 青梅煮久 写于 2023 年 6 月 26 日

• 参考:
《数字系统设计与Verilog HDL》

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/663686
推荐阅读
相关标签
  

闽ICP备14008679号