fpga系列 HDL 00 : 可编程逻辑器件原理

一次性可编程器件(融保险丝实现)

  • 一次性可编程器件(One-Time Programmable Device,简称 OTP)是一种在制造后仅能编程一次的存储设备。OTP器件在编程后数据不可更改。这些器件在很多应用场景中具有独特的优势和用途。

示例

  • MMI 16R6
    在这里插入图片描述

  • 可编程元件(显示为保险丝,下图中的波浪线)将真实输入和补码输入连接到与门。这些与门(也称为乘积项,下图中的面包片)通过“或”(下图中最右侧的圆形三角形)运算在一起,形成乘积和逻辑阵列。
    在这里插入图片描述

类型

  1. PROM (Programmable Read-Only Memory)
    • 熔丝型 PROM:通过熔断内部熔丝来编程。这种方法可以通过高电压来破坏选定熔丝,从而改变存储的数据。
    • 反熔丝型 PROM:使用反熔丝技术,通过特定方法在特定位置创建导电路径。

特性

  1. 不可擦除:OTP器件一旦编程,数据即固定,无法通过任何手段擦除或重新编程。
  2. 高可靠性:由于数据不可更改,OTP器件在安全性和数据保持方面具有很高的可靠性,适用于需要永久保存数据的场合。
  3. 低成本:相比于可擦写的存储器,OTP器件在制造和材料成本上通常较低,适用于大批量生产和一次性应用。

多次擦写的可编程逻辑设备(EPROM)

示例

在这里插入图片描述

+----------------------------------+
|          UVEPROM Chip            |
|                                  |
|  +----------------------------+  |
|  |       Silicon Die          |  |
|  |                            |  |
|  |   +--------------------+   |  |
|  |   | 浮栅 MOSFET        |   |  |
|  |   |  Transistors       |   |  |
|  |   +--------------------+   |  |
|  |                            |  |
|  +----------------------------+  |
|                                  |
|  Transparent Quartz Window       |
+----------------------------------+

原理

  • 编程:
    使用专用编程器将数据写入UVEPROM。在编程过程中,高电压(通常为12.5V至21V)被施加到存储单元以改变浮栅电荷状态,从而存储数据。场效应晶体管的开关状态由晶体管控制栅极上的电压控制。当电压施加到栅极时,晶体管内会形成一条传导路径,从而打开开关。在浮置栅极上存储电荷与向栅极施加电压具有相同的效果,从而允许存储数据。
  • 擦除(紫外线,UV,ultraviolet):
    UVEPROM芯片通常具有一个透明的石英窗,通过这个窗口,可以将芯片暴露在紫外光下。紫外光会提供足够的能量,使浮栅上的电荷逸出,从而将存储单元恢复到未编程状态(通常是逻辑高电平)。通常需要几分钟到二十分钟的紫外光照射才能完成擦除过程。

多次擦写的可编程逻辑设备(EEPROM)

示例

  • electrically erasable programmable read-only memory

原理

  • 编程:编程时,通过施加高电压(通常在12V左右)在控制栅和源极之间,使电子通过隧道效应被注入到浮栅上,从而改变浮栅的电荷状态,这会影响晶体管的阈值电压,从而表示存储的数据位。

  • 擦除:擦除时,通过施加反向高电压,使浮栅上的电荷逸出,恢复到未编程状态。

CPLD(Complex Programmable Logic Device)

示例

在这里插入图片描述

CPLD 的架构

在这里插入图片描述

可编程逻辑块(PLB)

  • 存储配置数据的EEPROM,用于设置逻辑块和互连的功能。

在这里插入图片描述

  • 类PAL块(也称为功能块)通常由16个宏单元组成。每个宏单元由一个与或配置、一个异或门、一个触发器、一个多路复用器和一个三态缓冲器组成。
    在这里插入图片描述

LUT

  • LUT(Lookup Table,查找表)是数字逻辑设计中常用的一种元件,用于实现逻辑功能。它是一种存储了输入输出关系的数据结构,在电路中充当逻辑函数的实现。LUT的工作原理类似于一张查找表,它接收一组输入信号,并根据这组输入信号查找对应的输出信号。在数字逻辑中,这组输入信号可以是逻辑门的输入,而查找表存储了每一种输入组合对应的输出。例如,对于一个二输入的AND门,有四种可能的输入组合:00、01、10、11。每种输入组合对应一个输出,因此可以用一个包含四个条目的查找表来实现AND门的功能。
    在这里插入图片描述
    在这里插入图片描述
  • 在商业FPGA芯片中,LUT通常有4个或5个输入,分别需要16个和32个存储单元。

FPGA

  • PAL通常有额外的电路,包括与或门。FPGA也是如此,除了一个LUT之外,它通常在每个逻辑块中有额外的电路。图b显示了一个触发器是如何被包含在FPGA逻辑块中的,触发器被用来在其时钟输入的控制下存储其D输入的值。

在这里插入图片描述

  • 通过FPGA实现 x 1 x 2 + x 2 ˉ x 3 x_1x_2+\bar{x_2}x_3 x1x2+x2ˉx3

在这里插入图片描述

对比CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)和FPGA(Field-Programmable Gate Array,现场可编程门阵列):

特性CPLDFPGA
架构由多个宏单元(Macrocell)组成,通过可编程互连网络连接由多个可编程逻辑块(PLB)组成,通过复杂的互连矩阵连接
配置存储EEPROM 或 Flash,断电后保留配置目前,大多数FPGA芯片是基于 SRAM 的结构的,SRAM,断电后配置丢失,需要外部存储加载
配置时间配置时间较短配置时间较长
逻辑容量适合中小规模逻辑设计,逻辑容量较低适合大规模、高复杂度逻辑设计,逻辑容量高
功耗通常较低,适合低功耗应用相对较高,特别是在实现复杂设计时
时序特性时序特性稳定确定灵活,但时序特性可能受复杂互连影响
开发工具简单,适合快速原型设计复杂,提供高级特性和调试环境
编程接口相对简单复杂,支持高级功能和多种配置方式
典型应用控制电路、简单状态机、I/O 扩展、接口转换高性能计算、数字信号处理、实时数据处理、高速通信接口
资源较少的逻辑单元和寄存器丰富的逻辑单元、DSP 块、RAM 块
并行处理限制较多高度并行处理能力
灵活性架构固定,灵活性较低架构灵活,可重配置

CG

  • https://en.wikipedia.org/wiki/Programmable_Array_Logic
  • https://ja.wikipedia.org/wiki/EPROM
  • https://en.wikipedia.org/wiki/EEPROM
  • https://www.slideshare.net/anandhd1/programmable-logic-devices-236575565
  • https://electronicsforyou.in/cpld/
  • https://people.engr.tamu.edu/xizhang/ECEN248/slides_Chapter3_6.pdf
  • 可编程只读存储器 PROM 最初是 1956 年作为与洲际弹道导弹相关的军事计划的一部分开发的。这项发明归功于当时在美国博世武器公司工作的 Wen Tsing Chow。商业设备于 1960 年代末问世。
  • 1989 年,英特尔在其可训练的人工神经网络 (ETANN) 芯片中采用了 FGMOS 作为模拟非易失性存储器元件,[3] 展示了将 FGMOS 设备用于数字存储器以外的应用的潜力。

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

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

相关文章

【LeetCode算法】第83题:删除排序链表中的重复元素

目录 一、题目描述 二、初次解答 三、官方解法 四、总结 一、题目描述 二、初次解答 1. 思路:双指针法,只需遍历一遍。使用low指向前面的元素,high用于查找low后面与low不同内容的节点。将具有不同内容的节点链接在low后面,实…

【c++】菱形虚拟继承的虚函数表如何继承

请看如下代码 #include <iostream>// 基类 class Base { public:virtual void foo() { std::cout << "Base::foo()" << std::endl; }virtual void bar() { std::cout << "Base::bar()" << std::endl; } };// 虚拟继承的中间…

西门子S7-1200加入MRP 环网用法

MRP&#xff08;介质冗余&#xff09;功能概述 SIMATIC 设备采用标准的冗余机制为 MRP&#xff08;介质冗余协议&#xff09;&#xff0c;符合 IEC62439-2 标准&#xff0c;典型重新组态时间为 200ms&#xff0c;每个环网最多支持 50个设备。​博途TIA/WINCC社区VX群 ​博途T…

Linux 批量网络远程PXE

一、搭建PXE远程安装服务器 1、yum -y install tftp-server xinetd #安装tftp服务 2、修改vim /etc/xinetd.d/tftpTFTP服务的配置文件 systemctl start tftp systemctl start xinetd 3、yum -y install dhcp #---安装服务 cp /usr/share/doc/dhc…

利用Python队列生产者消费者模式构建高效爬虫

目录 一、引言 二、生产者消费者模式概述 三、Python中的队列实现 四、生产者消费者模式在爬虫中的应用 五、实例分析 生产者类&#xff08;Producer&#xff09; 消费者类&#xff08;Consumer&#xff09; 主程序 六、总结 一、引言 随着互联网的发展&#xff0c;信…

Bug:Linux用户拥有r权限但无法打开文件【Linux权限体系】

Bug&#xff1a;Linux用户拥有r权限但无法打开文件【Linux权限体系】 0 问题描述&解决 问题描述&#xff1a; 通过go编写了一个程序&#xff0c;产生的/var/log/xx日志文件发现普通用户无权限打开 - 查看文件权限发现该文件所有者、所有者组、其他用户均有r权限 - 查看该日…

5个好用的AI写论文网站推荐

目录 1.AIQuora论文写作 2.passyyds 答辩PPT 3.AIPassgo论文降AIGC 4.文状元 5.passyyds论文写作 毕业论文是每个毕业生的痛&#xff0c;不管你是本科还是硕士要想顺利毕业你就不得不面对论文。然而&#xff0c;面对论文写作时常常感到无从下手&#xff1a;有时缺乏灵感&a…

【JavaEE进阶】——要想代码不写死,必须得有spring配置(properties和yml配置文件)

目录 本章目标&#xff1a; &#x1f6a9;配置文件 &#x1f6a9;SpringBoot配置文件 &#x1f388;配置⽂件的格式 &#x1f388; properties 配置⽂件说明 &#x1f4dd;properties语法格式 &#x1f4dd;读取配置文件 &#x1f4dd;properties 缺点分析 &#x1f3…

修改uniapp内置组件checkbox的样式

默认情况下 <view style"margin-bottom: 20rpx;"><label style"display: flex;align-items: center;width: fit-content;" click"handleCheck(cxm4s)"><checkbox /><text>车信盟出险4S维保</text></label>…

3d火灾救援模拟仿真培训软件复用性强

消防VR安全逃生体验系统是深圳VR公司华锐视点引入了前沿的VR虚拟现实、web3d开发和多媒体交互技术&#xff0c;为用户打造了一个逼真的火灾现场应急逃生模拟演练环境。 相比传统的消防逃生模拟演练&#xff0c;消防VR安全逃生体验系统包含知识讲解和模拟实训演练&#xff0c;体…

【百度智能体】5分钟打造一款为你写情书的智能体

目录 前言一、智能体特点二、应用场景三、打造一款写情书智能体1、名称2、简介3、填写人物设定&#xff1a;4、开场白5、引导示例6、预览 最后 前言 智能体作为人工智能领域的一个重要概念&#xff0c;是指能够自主感知环境、做出决策并执行行动的系统。它具备自主性、交互性、…

单元测试(了解)

单元测试定义 针对最小功能单元&#xff08;方法&#xff09;&#xff0c;编写测试代码对其进行正确性测试 之前如何进行单元测试&#xff1f;有什么问题&#xff1f; main中编写测试代码&#xff0c;调用方法测试 问题&#xff1a; 无法自动化测试 每个方法的测试可能不是…

EPSON爱普生RTC RA8900CE/RA8000CE+松下Panasonic电池组合

RTC是一种实时时钟&#xff0c;用于记录和跟踪时间&#xff0c;具有独立供电和时钟功能。在某些应用场景中&#xff0c;为了保证RTC在断电或者其他异常情况下依然能够正常工作&#xff0c;需要备份电池方案来提供稳定的供电。本文将介绍EPSON爱普生RTC RA8900CE/RA8000CE松下Pa…

【吊打面试官系列】Java高并发篇 - AQS 支持几种同步方式 ?

大家好&#xff0c;我是锋哥。今天分享关于 【AQS 支持几种同步方式 &#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; AQS 支持几种同步方式 &#xff1f; 1、独占式 2、共享式 这样方便使用者实现不同类型的同步组件&#xff0c;独占式如 ReentrantLock&…

VUE3.0学习-模版语法

安装Node.js的过程相对直接&#xff0c;以下是详细的步骤指导&#xff0c;适用于大多数操作系统&#xff1a; ### 1. 访问Node.js官方网站 首先&#xff0c;打开浏览器&#xff0c;访问 [Node.js 官方网站](https://nodejs.org/)。 ### 2. 选择合适的版本下载 在Node.js官网上…

OpenHarmony 实战开发——ArkUI中的线程和看门狗机制

一、前言 本文主要分析ArkUI中涉及的线程和看门狗机制。 二、ArkUI中的线程 应用Ability首次创建界面的流程大致如下&#xff1a; 说明&#xff1a; • AceContainer是一个容器类&#xff0c;由前端、任务执行器、资源管理器、渲染管线、视图等聚合而成&#xff0c;提供了生…

C++ 头文件优化

C 是一种灵活的语言&#xff0c;所以需要一种积极的方法来分析和减少编译时依赖。一种常见的达到这个目的的方法是&#xff0c;将依赖从头文件里转移到源代码文件里。实现这个目的的方法叫做提前声明。 简而言之&#xff0c;这些声明告诉编译器某个函数接受和返回哪些参数&…

Python操作MySQL实战

文章导读 本文用于巩固Pymysql操作MySQL与MySQL操作的知识点&#xff0c;实现一个简易的音乐播放器&#xff0c;拟实现的功能包括&#xff1a;用户登录&#xff0c;窗口显示&#xff0c;加载本地音乐&#xff0c;加入和删除播放列表&#xff0c;播放音乐。 点击此处获取参考源…

《异常检测——从经典算法到深度学习》28 UNRAVEL ANOMALIES:基于周期与趋势分解的时间序列异常检测端到端方法

《异常检测——从经典算法到深度学习》 0 概论1 基于隔离森林的异常检测算法 2 基于LOF的异常检测算法3 基于One-Class SVM的异常检测算法4 基于高斯概率密度异常检测算法5 Opprentice——异常检测经典算法最终篇6 基于重构概率的 VAE 异常检测7 基于条件VAE异常检测8 Donut: …

设计模式13——桥接模式

写文章的初心主要是用来帮助自己快速的回忆这个模式该怎么用&#xff0c;主要是下面的UML图可以起到大作用&#xff0c;在你学习过一遍以后可能会遗忘&#xff0c;忘记了不要紧&#xff0c;只要看一眼UML图就能想起来了。同时也请大家多多指教。 桥接模式&#xff08;Bridge&a…