EDA技术简介

目录

可编程逻辑器件    CPLD/FPGA

基于查找表结构的FPGA

硬件描述语言

EDA软件

EDA技术的 应用领域

电子系统的设计方法


EDA (Electronic Design Automation,电子设计自动化) 以可编程逻辑器件 (Programmable Logic Device,简称PLD)为实现载体、以硬件描述语言 (Hardware Description Language,简称HDL)为主要设计手段、以EDA软件为设计平台、以ASIC (Application Specific Integrated Circuits,专用集成电路)或者SoC (System on- Chip,片上系统)为目标器件,面向电子系统设计和集成电路设计的一门新技术。

◆ 不用动手-用软件方式设计硬件电路,从软件设计到硬件实现的转换是由EDA软件自动完成的;

◆ 设计灵活-应用HDL描述数字电路和系统。

◆ 设计与测试一体化-在设计过程中可以很方便进行仿真分析和在线测试,以验证设计的正确性; ◆ 有丰富的设计资源-IP:乘法器/除法器、ROM/RAM、DSP、锁相环等;

◆ SOPC-使得系统体积更小、功耗更低、可靠性更高。

Intel SoC FPGA: 集成双核ARM/四核ARM RISC-V:基于精简指令集(RISC)原则的 开源指令集架构(ISA)ex: NIOS V

可编程逻辑器件    CPLD/FPGA

   EDA以可编程逻辑器件(Programmable Logic Device)为实现载体、以硬件描述语言(HDL)为主要设计手段、以EDA软件为设计平台、以ASIC或者 SoC为目标器件,面向电子系统设计和集成电路设计的一门新技术。

   可编程逻辑器件经历了从 PROM、EPROM、E2PROM 到 FPLA、PAL、GAL、EPLD 以及目前广泛应用的 CPLD 和 FPGA 的发展历程,在结构、工艺、功耗、规模和速度等方面都得到了重大的发展。

第一阶段从20世纪70年代初到70年代中期,主要有PROM、EPROM和E2PROM三类。这些器件结构简单、规模小,主要作为存储器件(Memory)使用,只能够实现一些简单的组合逻辑电路。

第二阶段从20世纪70年代中期到80年代中期,出现了PAL和GAL器件。这类器件内部由“与-或阵列”组成,同时又集成了少量的触发器,能够实现较为复杂的功能电路,并正式命名为PLD。

第三阶段从20世纪80年代中期到90年代末期,Altera公司和Xilinx 公司分别推出了CPLD (Complex PLD,复杂可编程逻辑器件)和 FPGA (Field Programmable Gate Array,现场可编程门阵列)。其中FPGA具有结构灵活、集成度高等优点,成为产品原型设计的首选。

第四阶段从20世纪90年代末至今,随着半导体制造工艺达到了纳米级,可编程逻辑器件的密度越来越大,出现百万门至上千万门的 FPGA。

目前,许多FPGA产品系列内嵌了硬件乘法器、硬核处理器和Gbits差分串行接口等,超越了ASIC的规模和性能,同时也超越了传统意义上FPGA的概念,不仅能够支持软硬件协同设计,而且还能够实现高速与灵活性的完美结合,使可编程逻辑器件的应用范围扩展到系统级,出现了SOPC (System On Programmable-Chip,在系统可编程)技术。

乘积项结构的PLD一般采用熔丝、E2PROM 或者Flash等ROM工艺制造的,加电后就能工作,断电后信息也不会丢失。另外,由于乘积项结构的PLD采用结构规整的与-或阵列结构,从输入到输出的传输延迟时间是可预期的,因此不易产生竞争-冒险,常用于接口电路设计中。

基于查找表结构的FPGA

 FPGA的内部不再是由“与阵列”和“或阵列”构成,其基本逻辑单元称为查找表 (Look-Up-Table,简称 LUT),用户通过配置查找表对其逻辑功能进行定义。

  基于查找表实现逻辑电路的原理是:    任意 n 变量逻辑函数共有 2n个取值组合,如果将 n 变量逻辑函数的函数值预先存放在一个 2n ×1 位的RAM中,然后根据输入变量的取值组合查找RAM中相应存储单元中的函数值,就可以实现任意 n 变量逻辑函数。用户通过配置 FPGA 查找表中RAM的数据,就可以用相同的电路结构实现不同的逻辑函数。

变量LUT的基本公式为       Y=D0m0+D1m1+D2m2+D3m3+..... +D14m14+D15m15 其中m0,...,m15为4变量逻辑函数的全部最小项。

要实现三变量逻辑函数       Y1=AB'+A'B+BC'+B'C 时,由于Y1可表示为       Y1=m1+m2+m3+m4+m5+m6 因此将16×1位的RAM中的数据配置成“0111_1110_0000_0000”即可。

若要实现四变量逻辑函数      Y2=A'B'C'D+A'BD'+ACD+AB' 时,由于Y2可表示为     Y2=m1+m4+m6+m8+m9+m10+m11+m15 因此,将16×1位的存储器中的数据配置成“0100_1010_1111_0001”即可。

FPGA内部包含以下三种基本资源:

(1) 可编程逻辑阵列块(LB);

(2)可编程输入/输出块(IOB/IOE);

(3)可编程内部互连网络。

    由于LUT占用芯片的面积很小,因此 FPGA 具有很高的集成度,目前单芯片FPGA 的规模从几十万门到上千万门。    同时,基于 LUT 结构的 FPGA 比基于“与-或阵列”结构的 CPLD 具有更高的资源利用率,所以特别适合于实现大规模和超大规模数字系统。

   FPGA 作为 ASIC 领域中的一种半定制电路出现的,既克服了 ASIC 的不足,又克服了 “与-或阵列”结构 PLD 资源利用率低的缺点。    FPGA 将 ASIC 集成度高和可编程逻辑器件使用灵活、重构方便的优点结合在一起,特别适合于产品原型设计或者小批量产品研发。

    但是,由于 FPGA 基于查找表、采用“滚雪球”的方式实现逻辑函数,因此对于多输入-多输出的逻辑电路,从输入到输出的传输延迟时间是不可预期的,所以基于 FPGA 实现 的数字系统时容易产生竞争-冒险现象,设计时尽量采用同步时序电路以避免竞争-冒险。

Intel可编程逻辑器件, Intel公司还提供了EPCS系列串行Flash 存储器,用于固化FPGA的配置信息, 因此,习惯上称为EPCS配置器件。

   MAX系列是业界突破性的、基于查找表结构的低成本CPLD。    MAX 系列CPLD用于替代由 FPGA、ASSP和标准逻辑器件所实现的多种应用,适合于接口桥接、电平转换、I/O 扩展和模拟 I/O 管理等应用场合。

硬件描述语言

   EDA以可编程逻辑器件 (PLD)为实现载体、以硬件描述语言(Hardware Description Language)为主要设计手段、以EDA软件为设计平台、以ASIC 或者SoC为目标器件,面向电子系统设计和集成电路设计的一门新技术。

常用的硬件描述语言:

1. Verilog HDL;                          

2. VHDL;                        

3. SystemVerilog;                        

4. SystemC。

   硬件描述语言 (Hardware Description Language,简称为HDL) 是用形式化方法来描述数字电路行为或者结构的计算机语言。

Verilog HDL 和 VHDL共同的特点:

(1)能够形式化抽象地描述电路的行为和结构;

(2)支持层次化描述;

(3)借用高级语言来描述电路的行为;

(4)具有电路仿真与验证机制以测试设计的正确性;

(5)支持电路描述由高层次到低层次的综合转换;

(6)硬件描述和实现工艺无关;

(7)便于文档管理;

(8)易于理解和重用。

Verilog HDL语法相对自由,而VHDL基于ADA语言开发,语法严谨

module MUX4to1(d0,d1,d2,d3,a,y);
  input wire d0,d1,d2,d3;
  input wire [1:0] a;
  output reg y;
  
  always @(d0,d1,d2,d3,a)
    case (a)
       2'b00: y = d0;
       2'b01: y = d1;
       2'b10: y = d2;
       2:b11: y = d3;
     default: y = d0;
   endcase
endmodule

Verilog HDL是易学易用,具有广泛的设计群体

Verilog HDL在系统级描述方面比VHDL 略差一些,而在门级、开关级电路描述方面强得多。但是,随着 SystemVerilog 产生和发展,Verilog HDL 在系统级描述方面的能力大大增强。

   SystemVerilog 在Verilog HDL的基础上,进一步扩展了Verilog HDL语言的功能,提高了Verilog的抽象建模的能力。 SystemVerilog的另一个显著特点是能够和芯片验证方法学结合在一起, 作为实现方法学的一种语言工具,大大增强模块复用性、提高芯片开发效率,缩短开发周期。

EDA软件

集成开发环境(IDE): Quartus II/Prime 

  集成开发环境(Integrated Development Environment,简称IDE)是可编程逻辑器件厂商,如Intel、Xilinx、Lattice和Actel等,针对自己公司的器件提供的集成开发环境,支持从设计输入,编译、综合与适配,以及编程与配置等开发流程的全部工作。

   Intel公司的集成开发环境有原 Altera 公司早期的MAX+plus II和目前广泛使用的 Quartus II/Prime。  

   Xilinx 公司的集成开发环境有广泛使用的 ISE 和支持“All Programmable”概念的新版软件Vivado。

仿真软件:Modelsim

   仿真软件用于对 HDL 设计进行仿真测试,以检查逻辑设计的正确性,包括布局布线前 的功能仿真和布局布线后的、包含了门延时和布线延时等信息的时序仿真。目前广泛应用的仿真软件有Mentor公司的 Modelsim 和 Aldec 公司的 Active-HDL 等。

  Intel公司的 Quartus II 10.0及以上/Prime 集成开发环境中,均调用Modelsim等仿真软件进行仿真分析。   

Mentor Technology公司还专门为Intel和Xilinx等公司提供了OEM (Original Equipment Manufacturer)版ModelSim,包含相应公司产品的库文件。因此,应用OEM版ModelSim时不需要编译库文件了,但OEM版Modelsim的性能低于SE/DE/PE版软件。

综合软件:synplify pro

   综合工具用于将 HDL 或者其它方式描述的设计电路转换成能够在可编程逻辑器件或者 ASIC 中实现的网表文件,是由软件设计转换成硬件实现的关键环节。

   目前,业界流行的 FPGA 综合工具有 Synplicity 公司(已经被 Synopsys 公司收购)的 Synplify Pro 以及 Altera 公司的 Quartus II/Prime和 Xilinx公司的 XST,ASIC 综合工具有Synopsys公司的 Design Compiler II 和Candence 公司的RTL Compiler。

EDA技术的 应用领域

(1) 通信行业 (移动通信+网络通信):主要用于信号处理和高速接口电路设计, 完成高速数据的收发和交换。这些应用通常需要采用具有高速收发接口的FPGA。

 (2) 数字信号处理领域:FPGA支持并行计算,具有高速并行数据处理能力。随着 FPGA 密度和性能的不断提高,已经在很多领域替代了传统的多DSP解决方案。

 (3) 高速数据采集:对于低速的A/D转换器,可以采用标准的SPI或者I2C接口进行通信和数据交换。但是,对于高速A/D转换芯片,就需要应用FPGA 做为数据采集接口,以满足高速性的需要。

 (4) 在逻辑接口中的应用: 采用FPGA 实现,将接口逻辑设计在FPGA内部,因而能够大大简化系统外围电路设计。

电子系统的设计方法

(1) 自底向上 (Bottom-Up) 的设计方法

   设计者从现有的元件库中选择适合的元器件来设 计功能模块,然后由功能模块组成子系统,再由子系统构成更高一级的子系统,逐级向上直到实现整个系统。

(2) 自顶向下 (Top-Down) 的设计方法 

从系统顶层开始,把系统分解为功能模块,然后把 每个功能模块再分解为下一层次的模块,用一系列分层次的模块来表示复杂的数字系统,逐 层描述设计思想并进行仿真验证,直到可以用元件库中的元器件实现为止。

   在复杂数字系统设计过程中,通常是将以上两种设计方法相结合,兼有以上两种方法的优点。在高层系统中用自顶而下的设计方法实现,而使用自底而上的方法从库元件或以往设计库中调用已有的单元电路来设计功能模块。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【The Art of Unit Testing 3_自学笔记06】3.4 + 3.5 单元测试核心技能之:函数式注入与模块化注入的解决方案简介

文章目录 3.4 函数式依赖注入技术 Functional injection techniques3.5 模块化依赖注入技术 Modular injection techniques 写在前面 上一篇的最后部分对第三章后续内容做了一个概括性的梳理,并给出了断开依赖项的最简单的实现方案,函数参数值注入法。本…

如何打开别人的 vsqt 代码?QString 中有中文的时候,如何转换中文?

如何打开别人的 vsqt 代码? 我们下载了 一段源码。并且知道这个源码的关于 音视频的,那么八成会用到ffmpeg 假设我们源码下载后,位置在D:\downloadcode\112_yuv_rgb_player 第一步就是删除.vs 和debug,因为这是别人的vs 项目的…

AI 驱动的 SIEM 对增强安全性的 9 大好处

作者:来自 Elastic Joe DeFever 与传统的 SIEM 解决方案相比,人工智能驱动的安全信息和事件管理 (security information and event management - ) 解决方案使从业人员能够更高效、更有效地工作,而传统的 SIEM 解决方案依赖于手动流程来配置数…

基于Python的影院电影购票系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…

深度学习经典模型之ZFNet

1 ZFNet 1.1 模型介绍 ​ ZFNet是由 M a t t h e w Matthew Matthew D . Z e i l e r D. Zeiler D.Zeiler和 R o b Rob Rob F e r g u s Fergus Fergus在AlexNet基础上提出的大型卷积网络,在2013年ILSVRC图像分类竞赛中以11.19%的错误率获得冠军(实际…

ES8388 —— 带耳机放大器的低功耗立体声音频编解码器(4)

接前一篇文章:ES8388 —— 带耳机放大器的低功耗立体声音频编解码器(3) 二、详细描述 5. 微控制器配置接口 该设备支持标准SPI和2线(I2C)微控制器配置接口。外部微控制器可以通过写入内部配置寄存器来完全配置设备。…

Python实例:爱心代码

前言 在编程的奇妙世界里,代码不仅仅是冰冷的指令集合,它还可以成为表达情感、传递温暖的独特方式。今天,我们将一同探索用 Python 语言绘制爱心的神奇之旅。 爱心,这个象征着爱与温暖的符号,一直以来都在人类的情感世界中占据着特殊的地位。而通过 Python 的强大功能,…

部署stable-diffusion3.5 大模型,文生图

UI 使用推荐的ComfyUI,GitHub 地址,huggingface 需要注册登录,需要下载的文件下面有说明 Dockerfile 文件如下: FROM nvidia/cuda:12.4.0-base-ubuntu22.04 RUN apt-get update && apt-get install python3 pip git --n…

glibc 内存分配与释放机制详解

作者:来自 vivo 互联网存储团队- Wang Yuzhi 本文以一次线上故障为基础介绍了使用 glibc 进行内存管理可能碰到问题,进而对库中内存分配与释放机制进行分析,最后提供了相应问题的解决方案。 一、引言 内存对象的分配与释放一直是后端开发人…

SpringBoot框架在城镇住房保障中的应用

3系统分析 3.1可行性分析 通过对本城镇保障性住房管理系统实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本城镇保障性住房管理系统采用SSM框架,JA…

Openlayers高级交互(20/20):超级数据聚合,页面不再混乱

本示例在vue+openlayers中使用cluster生成聚合数据的效果。在OpenLayers中实现点聚合(clustering)是一个常见的需求,特别是在处理大量地理数据点时。聚合可以提高地图的性能并减少视觉上的混乱。 一、示例效果图 专栏名称内容介绍Openlayers基础实战 (72篇)专栏提供73篇文…

内网渗透-信息收集篇

通过webshell或其他方式拿下一台机器,并且存在内网环境,这个时候就在准备进行内网渗透,而在内网渗透之前需要对本地机器进行信息收集,才能够更好的进行内网渗透。 目录 Windows本地基础信息收集 权限查看 判断域存在 查看防火…

诗林工作室(编号:mb0005)分享:HTML模版Paxton,一款自适应响应式图集、博客设计开发模板

这是来自国外一款HTML网页模板,适合Web开发人员做前端站点设计参考使用。全站模版倾向于图集、博客等多行业的平台模版开发。此模版适合各大CMS的主题模版开发参考,如常见的Wordpress主题开发、Z-Blog模板开发、Typecho模板开发、DiscuzX模板开发、Jooml…

SSLHandshakeException错误解决方案

1、错误提示 调用Http工具报如下异常信息: cn.hutool.core.io.IORuntimeException: SSLHandshakeException: Received fatal alert: handshake_failure2、查询问题 一开始我以为是代码bug,网络bug甚至是配置环境未生效,找了一大圈&#xf…

VBA07-方法

一、方法的定义 方法指对象所能执行的动作,它是一个动词。 二、方法的表达方式 三、关于工作簿的方法操作 3-1、新增一个工作簿 示例1: 此时,新增的工作簿的名字是系统默认的。 示例2: 【注意】: 当你尝试将工作簿…

MyBatis3-获取参数值的方式、查询功能及特殊SQL执行

目录 准备工作 获取参数值的方式(重点) 查询功能 查询一个实体类对象 查询一个list集合 查询单个数据 查询一条数据为map集合 查询多条数据为map集合 特殊SQL执行 模糊查询 批量删除 动态设置表名 添加功能获取自增的主键 准备工作 模块My…

构建基于 DCGM-Exporter, Node exporter,PROMETHEUS 和 GRAFANA 构建算力监控系统

目录 引言工具作用概述DCGM-ExporterNode exporterPROMETHEUSGRAFANA小结 部署单容器DCGM-ExporterNode exporterPROMETHEUSGRAFANANode exporterDCGM-Exporter 多容器Node exporterDCGM-ExporterDocker Compose 参考 引言 本文的是适用对象,是希望通过完全基于Doc…

基因组学与个性化健康:精准医疗的未来方向

基因组学(Genomics)是指对基因组,即一个生物体的全部基因和遗传信息进行分析和研究的科学,旨在探索基因在生物体中的功能、相互作用及其对健康和疾病的影响。个性化健康(Personalized Health)则是基于个体的…

阅读个位数?1分钟学会用AI做爆款,轻松涨粉不是梦

从去年开始,AI造就的视觉艺术就在各个平台上疯狂蔓延,人类用AI一年生成的内容,比过往几千年加起来都多。 网络上铺天盖地都是搞AI,但大部分人真的是在搞AI吗?并不尽然,大部分人只是想用AI搞钱。 更多实操…

发现 API 的 5 种方法

在处理目标时,最值得测试的部分是其 API。API 是动态的,它们比应用程序的其他部分更新得更频繁,并且负责许多后端繁重的工作。在现代应用程序中,我们通常会看到 REST API,但也会看到其他形式,例如 GraphQL …