[EDA] 2.2 简单PLD结构原理-潘松版

2.2 简单PLD结构原理

知识点:
2.1 PLD概述
名称概念:
PLD:Programmable Logic Device,可编程器件
PLD的分类:1、按集成度分,可分为简单PLD和复杂PLD;2、按器件结构分类,可分为 “乘积项结构器件”和“基于查找表结构的器件”;3、按编程工艺分,可分为熔丝(Fuse)型、反熔丝(Antifuse)型、EPROM型、EEPROM型、SRAM型、Flash型。(P28 图2-2)

2.2 简单PLD结构原理
名称概念:
逻辑元件符号、与或阵列的表示方法:P30。
PROM、PLA、PAL、GAL器件在结构上的区别:1、PROM与阵列固定,或阵列可编程,采用全译码的方式产生所有最小乘积项;2、PLA与阵列、或阵列都可编程,未采取全译码的方式,只产生需要的最小乘积项;3、PAL与阵列可编程,或阵列固定,采取反馈和互连的方式获得更多的乘积项;4、GAL结构与PAL相似,但I/O口方面比PAL有所改进,采用了输出逻辑宏单元(OLMC)。
OLMC的作用:可以通过编程对其进行配置,以实现引脚不同的功能。

操作技术:
用4*2PROM实现两个一位二进制数的加法逻辑:P31。

2.3 CPLD的结构原理
名称概念:
CPLD(以MAX3000A为例)主要由3个部分组成,分别是:1、LAB(Logic Array Block,逻辑阵列块);2、PIA(Programmable Interconnect Array,可编程连线阵列);3、I/O控制模块(I/O Control & Pins或I/O Control Block)。(P37 图2-27)
CPLD(以MAX3000A为例)的逻辑资源来源于LAB,LAB由LMC(Logic Macro Cell,逻辑宏单元)组成。

2.4 FPGA的结构原理
名称概念:
FPGA是基于查找表(LUT,Look Up Table)的原理。
FPGA(以Cyclone III为例)的组成部分主要有:1、LAB(Logic Array Block,逻辑阵列块);2、嵌入式存储器块;3、嵌入式硬件乘法器;4、I/O单元;5、嵌入式PLL模块;6、丰富的互连线和时钟网络。
FPGA(以Cyclone III为例)的逻辑资源来源于LAB,LAB由LE(Logic Element,逻辑单元)组成。
FPGA(以Cyclone III为例)中LE的组成部分主要有:1、查找表(LUT);2、进位链逻辑;3、寄存器链逻辑;4、可编程寄存器。(P40 图2-32)
寄存器打包的概念:在一个LE中,可以实现LUT和寄存器的输出的单独控制,也就是说, LUT驱动一个输出,寄存器驱动另一个输出。
寄存器打包的作用:在一个LE中的寄存器和LUT能够完成不相关的功能,提高LE的资源利用率。
FPGA(以Cyclone III为例)中LAB的互连线包括:行互连、列互连、直接通路互连、局部互连。(P42 图2-35)

2.5 硬件测试
名称概念:
JTAG边界扫描测试技术是一种硬件测试技术。

2.6 PLD产品概述
名称概念:各厂家推出的产品类型,了解即可。

2.7 CPLD/FPGA的编程与配置
名称概念:
把程序下载到CPLD、FPGA的这一过程,对于CPLD被称为:编程,对于FPGA被称为:配置。
ISP(In-System Programmability,在系统编程)是CPLD的一项技术与特性。
ICR(In-Circuit Reconfigurability,在线可重配置)是FPGA的一项技术与特性。
FPGA器件的配置:1、使用SRAM编程工艺的FPGA在掉电后,配置信息丢失,功能就失去了。因此,FPGA在上电时,要对其进行配置。2、主要有两类配置方式:主动配置方式和被动配置方式。3、主动配置由FPGA器件自己引导配置过程完成配置;被动方式由计算机或外部控制器控制配置过程。
FPGA(以Cyclone III为例)的配置模式主要有:AS(主动串行)、AP(主动并行)、PS(被动串行)、PP(被动并行)。
FPGA的配置方式主要有:专用配置器件配置、单片机配置、CPLD配置。

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

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

相关文章

lua实现继承(lua程序设计21.7 练习21.2题)

lua实现继承(lua程序设计21.7 练习21.2题) StackQueue Stack:new() function StackQueue:insertBottom(v)table.insert(self,1,v) endlocal stack2 StackQueue:new() for i 1, 10 dostack2:push(i) end stack2:insertBottom(11)while not stack2:ise…

【复杂系统迁移 .NET Core平台系列】之调度服务改造

源宝导读:微软跨平台技术框架—.NET Core已经日趋成熟,已经具备了支撑大型系统稳定运行的条件。本文将介绍明源云ERP平台从.NET Framework向.NET Core迁移过程中的实践经验。一、背景随着ERP的产品线越来越多,业务关联也日益复杂,…

C++实现AOE网中的关键路径算法及机动时间计算算法(邻接表存储)

代码如下: #include <iostream> #include <stack> using namespace std; const int N 100;typedef struct Node {int adj;int w;Node *next;}Node;typedef struct VNode {int in;int v;Node *first;VNode(){first nullptr;} }VNode;class AOE { private:VNode a…

使用对偶表示重新实现Stack(lua程序设计21.7练习21.3题)

使用对偶表示重新实现Stack&#xff08;lua程序设计21.7练习21.3题&#xff09; local data {} DualStack {} function DualStack:new(o)o o or {}self.__index selfsetmetatable(o,self)data[o] {}return o end function DualStack:push(v)table.insert(data[self],v) en…

.NET 开源项目 StreamJsonRpc 介绍[中篇]

阅读本文大概需要 11 分钟。上一篇介绍了一些预备知识&#xff0c;包括 JSON-RPC 介绍和实现了 JSON-RPC 的 StreamJsonRpc 介绍&#xff0c;讲到了 StreamJsonRpc 可以通过 .NET 的 Stream 类和 WebSocket 类实现 JSON-RPC 协议的通信。本篇就先选择其中的 Stream 类来讲解&am…

用空代理实现account(lua程序设计21.7练习21.4题)

用空代理实现account&#xff08;lua程序设计21.7练习21.4题&#xff09; function createAccount()local proxy {}local mt {balance 0}mt.withdraw function(v) mt.balance mt.balance - v endmt.deposit function(v) mt.balance mt.balance v endmt.getBalance fu…

Istio 中的多集群部署与管理

本文节选自ServiceMesher 社区出品的开源电子书《Istio Handbook——Istio 服务网格进阶实战》&#xff0c;作者钟华&#xff0c;来自腾讯云。Istio 在 1.1 后提供了两类多集群的连通的部署模式&#xff1a;1. 多控制面2. 单控制面&#xff0c;也称为 “共享控制面” 模式多控制…

lua URL解码

lua URL解码 local function unescape(s)s string.gsub(s,""," ")s string.gsub(s,"%%(%x%x)",function(h)return string.char(tonumber(h,16))end)return s endlocal cgi {} local function decode(s)for name,value in string.gmatch(s,&q…

认证授权方案之授权初识

1.前言回顾&#xff1a;认证授权方案之JwtBearer认证在上一篇中&#xff0c;我们通过JwtBearer的方式认证&#xff0c;了解在认证时&#xff0c;都是基于Claim的&#xff0c;因此我们可以通过用户令牌获取到用户的Claims&#xff0c;在授权过程中对这些Claims进行验证&#xff…

[数据结构]树、森林与二叉树之间的相互转换方法

树、二叉树与森林的相互转换 本文只给出树、森林与二叉树之间的转换方法&#xff0c;而详细的证明过程不在本文讨论范围之内。 树 → 二叉树 在所有兄弟结点之间加一连线。 对每个结点&#xff0c;除了保留与其长子的连线外&#xff0c;去掉该结点与其它孩子的连线。 二叉树 …

lua split实现(lua程序设计10.6练习10.1题)

lua split实现&#xff08;lua程序设计10.6练习10.1题&#xff09; local function split(s,sp)local t {}local last 1local irepeati string.find(s,sp,last,true)if i thenif i ~ last thent[#t1] string.sub(s,last,i-1)endlast i1elseif last < #s thent[#t1] s…

Blazor.Server以正确的方式集成Ids4

&#xff08;一个真正的以后端形式来集成认证中心的方案&#xff09;❤本文导读首先特别感谢张善友老师提供技术指导&#xff0c;源于上周我发了一篇文章《[Mvp.Blazor] 集成Ids4&#xff0c;实现统一授权认证》&#xff0c;我本来是想通过像vue框架那样&#xff0c;通过引oidc…

lua transliterate实现(lua程序设计10.6练习10.3题)

lua transliterate实现&#xff08;lua程序设计10.6练习10.3题&#xff09; local function transliterate(s,t)return (string.gsub(s,"%a",function(a)if t[a] false thenreturn ""elseif t[a] thenreturn t[a]endend)) endlocal s "hello world…

作为一个有理想的程序员,必读的书都有哪些?

很多程序员朋友问我&#xff1a;“哪本最具影响力的书&#xff0c;是每个程序员都应该读的&#xff1f;” 笔者从事软件开发15年&#xff0c;看过的计算机相关的书籍不下百本了&#xff0c;如果非要推荐的话&#xff0c;给大家精选以下10本&#xff0c;希望对大家有所帮助&…

认证授权方案之JwtBearer认证

1.前言回顾&#xff1a;认证方案之初步认识JWT在现代Web应用程序中&#xff0c;即分为前端与后端两大部分。当前前后端的趋势日益剧增&#xff0c;前端设备&#xff08;手机、平板、电脑、及其他设备&#xff09;层出不穷。因此&#xff0c;为了方便满足前端设备与后端进行通讯…

使用过滤器模式,让客户关怀中的代码更加干净整洁

一&#xff1a;实际场景介绍我们在给用户做订单催付通知的时候&#xff0c;会有这样的一种场景&#xff0c;用户在系统后台设置一组可以催付的规则&#xff0c;比如说订单金额大于xx元&#xff0c;非黑名单用户&#xff0c;来自哪个地区&#xff0c;已购买过某个商品&#xff0…

C++实现各种排序以及复杂度,稳定性分析

代码如下: #include<iostream> using namespace std;void Bubble_Sort(int *a, int n) {bool flag;int tmp 0;for (int i n - 1; i > 0; i--){flag false;for (int j 0; j < i; j){if (a[j] > a[j 1]){swap(a[j], a[j 1]);flag true;}}if (!flag) break…