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

news2024/9/27 17:37:33

EDA 技术概述

  • 一、EDA技术及其发展
  • 二、Top-down 设计与 IP 核复用
    • 2.1 Top-down 设计
    • 2.2 Bottom-up 设计
    • 2.3 IP 复用技术与 SoC
  • 三、数字设计的流程
    • 3.1 设计输入
    • 3.2 综合
    • 3.3 布局布线
    • 3.4 仿真
    • 3.5 编程配置

我们已经进入数字化和信息化的时代,其特点是各种数字产品的广泛应用。现代数字产品在性能提高、复杂度增大的同时,更新换代的步伐也越来越快,实现这种进步的因素在于芯片制造技术和设计技术的进步。
芯片制造技术以细微加工技术为代表,目前已进展到深亚微米阶段,可以在几平方厘米的芯片上集成数千万个晶体管。摩尔曾经对半导体集成技术的发展做出预言: 大约每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》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/688538.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

UM2082F08三通道低频无线唤醒ASK接收芯片

UM2082F08 是基于单周期 8051 内核的超低功耗 8 位、 具有三通道低频无线唤醒 ASK 接收功能的 SOC 芯片。芯片可检测 30KHz~300KHz 范围的 LF(低频)载波频率数据并触发唤醒信号,同时可以调节接收灵敏度,确保在各种应用环境下实现可…

Python(request)爬虫有多强大

Python 的 requests 库是一个非常强大的网络爬虫工具,可以帮助开发人员快速,高效地从各种网站获取信息并处理数据。以下是 requests 库的一些强大功能: 1. 简单易用:requests 库的 API 设计合理,易于学习和使用。使用 …

“咸粽与甜粽”之争再启,五芳斋一季度亏损6393万

又是一年端午粽叶飘香,“咸粽与甜粽”之争再启。 4月29日,浙江五芳斋实业股份有限公司(下称“五芳斋”,603237.SH)公布了2022年报及2023年一季报。 财报公布后的首个交易日(5月4日),其股价下跌…

数据库监控与调优【二】—— 测试数据准备与数据操作工具

测试数据准备与数据操作工具 导入测试数据 使用MySQL官方测试数据库——employee-data 地址&#xff1a;https://dev.mysql.com/doc/index-other.html 下载项目&#xff0c;将项目传到服务器的/opt目录下 导入employees.sql语句 mysql -uroot -pImooc123456 < employe…

软考高级系统架构设计师(九) 作文模板-企业应用集成

目录 作文模板 例子-企业应用集成 摘要 项目相关背景及主要功能 你的岗位及主要职责 论文主体内容的总概 项目最终的实施效果或你的总结和感悟等 正文 项目背景介绍 相关问题回应 主体内容 论文结论 例子-类似方向- 作文模板 例子-企业应用集成 2021系统架构设计…

【App渗透】用BurpSuite抓包安卓手机app内容(详细)

文章目录 前言一、电脑端的配置二、BurpSuite的配置三、手机端的配置四、抓包总结 前言 很多情况下&#xff0c;在电脑的手机模拟器上面做app测试会存在大大小小的bug或者各种坑&#xff0c;而且有些模拟器很不方便&#xff0c;非常不好用。网上的教程虽然多&#xff0c;但是大…

【大数据之Hive】十六、Hive-HQL函数之窗口函数(开窗函数)

1 概述 先定义了窗口的大小&#xff08;按行来算&#xff09;&#xff0c;然后对窗口内的行的数据进行计算&#xff0c;再将计算结果返回给改行。   窗口函数包括窗口和函数两部分&#xff0c;窗口用于定义计算范围&#xff0c;函数用于定义计算逻辑&#xff0c;窗口函数只会…

React通过useContext特性实现组件数据传递

我们来说一个属性 useContext 这个确实用的挺少的 不过 还是简单做一下 打开我们的react项目 在src下创建一个文件夹 components 因为他是两个 甚至多个组件之间使用的 然后在components下创建两个组件 分别叫 dom.jsx dom1.jsx 命名命的比较不规范 不过本身只是做个案例 懒得做…

0-1背包

问题概述&#xff1a; 0-1背包是在n件物品取出若干件放在空间为V的背包里&#xff0c;每件物品的体积为v[ i ]&#xff0c;与之相对应的价值为w[ i ],要求在不超过背包空间的情况下&#xff0c;得到的物品的价值总和最大&#xff0c;问这个最大值是多少&#xff1f; 问题分析…

pod 知识点 下

上一篇分享了 pod 的基本知识点&#xff0c;有 K8S 环境的小伙伴还是可以用起来的&#xff0c;还对比较简单&#xff0c;知道了 pod 的 yaml 文件结构&#xff0c;标识&#xff0c;基本的创建 pod 和删除 pod 的用法等等&#xff0c;我们继续 pod 的基本分类 前面我们说到了 p…

什么是Natural Language Generation(NLG)?

文章目录 1.NLG的定义2.NLP的步骤3.NLG生成文本方式有哪些&#xff1f;3.1.简单的数据合并3.2.模板化的NLG3.3.高级NLG 4.NLG的应用有哪些&#xff1f; 1.NLG的定义 自然语言生成&#xff08;Natural Language Generation, NLG&#xff09;是NLP&#xff08;自然语言处理&…

Sikulix自动化工具的使用

1.Sikuli-x简介 Sikuli是识别和控制GUI组件进行UI自动化测试的技术&#xff0c;它是有MIT的研究人员开发进行设计的。Sikuli在墨西哥维乔印第安人(Huichol Indians)的语言里是上帝之眼的意思&#xff0c;Sikuli的工作模式与人眼一样&#xff0c;直接识别图像。 Sikuli-x是Sik…

1、Redis入门与安装配置

是什么&#xff1f; Remote Dictionary Server(远程字典服务) 是完全开源的&#xff0c;使用ANSIC语言编写遵守BSD协议&#xff0c;是一个高性能的Key-Value数据库。提供了丰富的数据结构&#xff0c;例如String、Hash、List、Set、SortedSet等等。数据是存在内存中的&#xf…

python爬虫-逆向实例小记-2

注意&#xff01;&#xff01;&#xff01;&#xff01;某数据网站逆向实例仅作为学习案例&#xff0c;禁止其他个人以及团体做谋利用途&#xff01;&#xff01;&#xff01;&#xff01; 案例分析 第一步&#xff1a;分析请求和响应内容。该网站任何一请求和内容都不可直接…

网站SEO优化的注意事项

SEO作为一种网络营销方式&#xff0c;高投入产出比是其优势所在。通过SEO优化为站点带来大量的主动搜索自然流量&#xff0c;对于企业主来说&#xff0c;是非常必要的。搜索引擎算法在不断发展&#xff0c;SEO技术也在不断发展。那么&#xff0c;如何能做好SEO呢&#xff1f;小…

投出去的简历无人问津,原因竟然在这……

近期收到了不少朋友的反馈说&#xff0c;失业半个月无人问津&#xff0c;放在前些年第二天开始面试有人找&#xff0c;或者是第二天入职了……&#xff0c;为啥明明不招人要挂着招人的岗位&#xff1f; 随着移动互联网的发展&#xff0c;Android市场的需求也在不断变化和升级。…

【springboot】—— 后端Springboot项目开发

后端Springboot项目开发 步骤1 先创建数据库&#xff0c;并在下面创建一个user表&#xff0c;插入数据&#xff0c;sql如下&#xff1a; CREATE TABLE user (id int(11) NOT NULL AUTO_INCREMENT COMMENT ID,email varchar(255) NOT NULL COMMENT 邮箱,password varchar(255)…

Turf.js:用于地理空间分析的 JavaScript 库

https://turfjs.org/ 处理和分析地理空间数据在许多应用程序和平台中发挥着至关重要的作用。如地图绘制、路径规划、基于位置的服务和地理空间分析。Turf.js 是一个专门为执行地理空间操作而开发的开源 JavaScript 库。在本文中&#xff0c;我将详细探讨 Turf.js &#xff0c;…

Linux系统下列出库文件中的符号指令(nm)

文章目录 1 nm指令2 符号类型的含义3 简单示例 1 nm指令 nm是names的缩写&#xff0c; nm命令主要是用来列出某些文件中的符号&#xff08;说白了就是一些函数和全局变量等&#xff09;。 nm命令的输出包含三个部分&#xff1a; 1 符号值。默认显示十六进制&#xff0c;也可以…

SNMP 计算机网络管理 实验3(二)SNMP协议工作原理验证与分析

⬜⬜⬜ &#x1f430;&#x1f7e7;&#x1f7e8;&#x1f7e9;&#x1f7e6;&#x1f7ea;(*^▽^*)欢迎光临 &#x1f7e7;&#x1f7e8;&#x1f7e9;&#x1f7e6;&#x1f7ea;&#x1f430;⬜⬜⬜ ✏️write in front✏️ &#x1f4dd;个人主页&#xff1a;陈丹宇jmu &am…