FPGA知识积累【3】

article/2025/9/16 23:49:07

目录

  • 1.查找表(LUT)原理与结构
  • 2.FPGA基本结构
  • 3.FPGA的RAM、ROM、CAM
  • 4.硬件语言的层次
  • 5.寄生效应
  • 6.线与逻辑
  • 7.竞争冒险
  • 8.消除竞争冒险的方法

1.查找表(LUT)原理与结构

①查找表简称LUT,本质上就是一个RAM。目前FPGA中多数使用的是4输入的LUT,所以可以看成一个有4位地址线的RAM。

②当描述了一个逻辑电路以后,FPGA 开发软件会自动计算逻辑电路的所有可能结果,并把真值表(即结果)事先写入 RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。

2.FPGA基本结构

目前主流 FPGA 都采用了基于 SRAM 工艺的查找表结构,其组成部分主要有:

①可编程输入/输出单元(IOB)

简称 I/O 单元,是芯片与外界电路的接口部分,完成不同电气特性下对输入/输出信号的驱动与匹配要求。FPGA 内的 I/O 按组分类(即每个bank),每组都能够独立 地支持不同的I/O 标准。通过软件的灵活配置,可适配不同的电气标准与 I/O 物理特性,可以调整驱动电流的大小,可以改变上、下拉电阻。

②基本可编程逻辑单元(CLB)

FPGA 的基本可编程逻辑单元是由查找表和寄存器组成的,查找表完成纯组合逻辑功能。FPGA 内部寄存器可配置成触发器或锁存器。Altera 基本可编程单元 LE 配置为 1 寄存器加一个查找表。

③嵌入式块 RAM

目前大多数FPGA都有内嵌的块RAM。嵌入式块RAM可以配置为单端口RAM、双端口RAM、伪双端口RAM、CAM、FIFO等存储结构。

④丰富的布线资源

布线资源连通FPGA内部所有单元,连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。由于在设计过程中,往往由布局布线器自动根据输入的逻辑网表的拓扑结构和约束条件选择可用的布线资源连通所用的底层单元模块,所以常常忽略布线资源。

⑤底层嵌入功能单元

底层嵌入功能单元是指通用程度较高的嵌入式功能模块。如锁相环(Phase Locked Loop,PLL)、DLL(Delay Locked Loop)、DSP(Digital Signal Processing)和CPU等。

⑥内嵌专用硬核

与“底层嵌入单元”是有区别的,这里指的硬核主要是那些通用性相对较弱的功能模块,不是所有FPGA器件都包含硬核。

补充:

IP软核通常是经过RTL级设计优化和功能验证的硬件语言代码,但其中不含有任何具体的物理信息。可以综合出正确的门电路级设计网表,并可以进行后续的结构设计,具有很大的灵活性,软IP内核也称为虚拟组件。

IP固核的设计程度则是介于软核和硬核之间,除了完成软核所有的设计外,还完成了门级电路综合和时序仿真等设计环节。

IP硬核是基于半导体工艺的物理设计,已有固定的拓扑布局和具体工艺,并已经过工艺验证,具有可保证的性能。其提供的是电路物理结构掩模版图和全套工艺文件,是可以拿来直接用的全套技术。

3.FPGA的RAM、ROM、CAM

①RAM:分为SRAM和DRAM,具体看存储器的6.2小节

②ROM:只读存储器,具体看存储器的6.3小节

③CAM:内容地址存储器;CAM在其内部的每个存储单元中都有一个比较逻辑,写入CAM中的数据会和内部的每一个数据进行比较,并返回与端口数据相同的所有数据的地址,因而在路由的地址交换器中有广泛的应用。

FPGA 中可以综合实现为 RAM、ROM、CAM 的三种资源分别是块RAM(Block RAM)、触发器(FF)、查找表(LUT),当然值得注意的是,在生成 RAM 等存储单元时,应该首选 block ram 资源;第一,使用 Block RAM 等资源可以节约更多的 FF 和 LUT 等底层可编程单元,是最大程度发挥器件效能,节约成本的一种体现;第二,Block RAM 是一种可以配置的硬件结构,其可靠性和速度与用 LUT 和 寄存器构建的存储器更有优势。

4.硬件语言的层次

系统级
算法级
行为级(RTL)
门级
开关级

5.寄生效应

寄生效应就是在PCB电路中大肆破坏、原因不明的小故障——渗入高速电路中的寄生电容和寄生电感。在直流或者低频的情况下,寄生效应是不怎么体现的。在交流或者高频条件下,这种寄生效应也是很难克服的,只能通过优化线路,尽量使用管脚较短的贴片原器件来减少影响,做不到完全消除。

6.线与逻辑

线与逻辑:两个信号相与。线与要用到OC门或者OD门来实现。想不到这么简单的逻辑需要复杂的门电路吧!

①在CMOS门电路中,实现线与功能的是漏极开路输出门电路,也就是OD门。OD门在使用时,必须将输出经上拉电阻到电源,不能独立存在,只是用来改善电路的。
在这里插入图片描述
②在TTL门电路中,实现线与功能的是集电极开路输出门电路,也就是OC门。工作时同样要外接上拉电阻。
具体可以看此链接的第8小节
在这里插入图片描述

7.竞争冒险

竞争: 两个输入信号同时向相反逻辑电平跳变。通俗的说,就是两个输入,一个从1变0,同时另一个从0变1。

竞争-冒险:由于竞争在电路输出端可能产生尖峰脉冲的现象。

注意:有竞争不一定产生尖峰脉冲,只有在存在不同步的跳变时,某输入先跳变而另一输入还未跳变时产生尖峰脉冲。(输入信号进入电路时有先后,不同步)
在这里插入图片描述

判断准则:只要输出端的逻辑函数在一定条件下能简化成Y=A+A’或Y=A·A’则可判定存在竞争-冒险现象。

8.消除竞争冒险的方法

①滤波电容:因为尖峰脉冲很窄,用很小的电容就能削弱尖峰到Vth一下,但由于电容会增加电压波形的上升时间和下降时间,会破坏原有波形。

②引入选通脉冲:利用选通脉冲,在电路达到稳定后,P的高电平期间的输出信号不会出现尖峰。(就是再加一个区别信号来防止尖峰出现)

在这里插入图片描述

③修改逻辑设计:防止Y=A+A’或Y=A·A’的出现(并不是万能的,办法有限,但效果很好)

参考:
【1】 FPGA笔试面试(五)
【2】https://www.cnblogs.com/lifan3a/articles/4229952.html


http://chatgpt.dhexx.cn/article/790hZDra.shtml

相关文章

数据结构导论【六】之 查找表

感谢内容提供者:金牛区吴迪软件开发工作室 接上一篇:数据结构导论【五】之 图 文章目录 一、基本概念二、静态查找表的实现1.顺序表上的查找 -- 顺序查找a.过程b.算法c.算法分析 2.有序表上的查找 -- 二分查找a.二分查找思想b.二分查找过程c.二分查找算法…

查找表(Lookup table)

查找表(look-up-table)这个名字很好听,缩写 LUT,听起来很高端,其实是一种很简单高效的索引操作,今天简单介绍一下。 是啥 wiki定义: a lookup table is an array that replaces runtime computa…

从底层结构开始学习FPGA(2)----LUT查找表

文章目录 系列目录与传送门 一、概述 二、实现原理 系列目录与传送门 《从底层结构开始学习FPGA》目录与传送门 一、概述 记得刚接触FPGA的时候,总能看见类似这样的一句话----FPGA是基于查找表LUT的可编程逻辑器件。FPGA常常被人比作“数字积木”,就是因…

码,主码,主属性,非主属性,平凡函数依赖,完全依赖等词解释

码:代表数目的符号 主码 我们在建立数据库的时候,需要为每张表指定一个主码,主码也叫主键。 所谓主码就是在实体集中区分不同实体的候选码。 一个实体集中只能有一个主码,但可以有多个候选码。 必须注意两点: 1.主…

SpringBoot项目打jar后执行jar包提示:xx没有主属性清单 解决

SpringBoot项目打jar包后执行jar包提示:xx没有主属性清单 解决 今天在练习SpringBoot项目打jar包部署的时间遇见了一个问题:jar中没有主属性清单,对此也是比较疑惑,在百度之后找到了解决方式 主属性清单是jar包中MANIFEST.MF文件中…

【图示化】SQL Server概念:超键(码)、候选键(候选码)、主键(主码)、主属性与非主属性、外键

关系模型概念 字段属性名,每一行就是一条记录一个元组,每个单元格就是一个分量, 主键,外键 主码主键主关键字 超键(码),候选键 码超键 超键 (唯一的,可多余) …

候选码、主码、全码、外码、主属性、主键、主关键字、非主属性

一、讲解 首先说明 键字码字,所以 主键主码主关键字,候选键候选码候选关键字… 所谓关系键,指的是一个表中的一个(或一组)属性,用来标识该表的每一行或与另一个表产生联系。 话不多说,上图&a…

软考系列之候选码,主码,主属性,非主属性详讲

候选码,主码,主属性,非主属性详讲 文章目录 目录 文章目录 前言 一、候选码,主码,属性,非主属性的定义 二、具体题目 三、补充 前言 软考刷题,遇到这系列的题目,对我来讲&#xff0…

数据库中主键、主码、主属性、关键字、候选关键字、码的区别

码是数据库系统中的基本概念,所谓码就是能唯一标识实体的属性,它是整个实体集的性质,而不是单个实体的性质。它包括超码、候选码和主码。 (1)超码是一个或多个属性的集合,这些属性可以让我们在一个实体集中…

函数依赖 主码 主属性 非主属性 候选键 超键 详解

最近做项目要搞数据库看到范式那一节头脑发晕,概念都忘了,于是从网上搜罗并整理一下; 函数依赖部分参考:https://blog.csdn.net/jsj13263690918/article/details/79796275 主码:主关键字(主键,…

c语言memset详解

目录 1 函数声明1.1功能1.2 例子 2 常见错误2.1 搞反了 ch 和 n 的位置.2.2 过度使用memset2.3 3 特殊例子 1 函数声明 void *memset(void *s, char ch, unsigned n);1.1功能 将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值。块的大小由第三个参数指定,作…

【Java基础知识 9】序列化与反序列化

🍅 Java学习路线:搬砖工逆袭Java架构师 🍅 简介:Java领域优质创作者🏆、CSDN哪吒公众号作者✌ 、Java架构师奋斗者💪 🍅 扫描主页左侧二维码,加入群聊,一起学习、一起进步 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 面试官:兄弟,说说你对transient的理解和感悟 …

详解序列化与反序列化

一、什么是序列化与反序列化 序列化时将对象状态转换为可保持或传输的形式的过程。序列化的补集是反序列化,反序列化是将流转换为对象。两个过程一起保证能够存储和传输数据。 .NET具有以下三种序列化技术: 1.二进制序列化 保持类型保真,这…

为什么要序列化?序列化你知道哪些?

凡事都要问为什么,在讲解序列化概念和原理前,我们先来了解一下为什么需要序列化。 为什么要序列化? 如果光看定义我想你很难一下子理解序列化的意义,那么我们可以从另一个角度来感受一下什么是序列化。 都玩过游戏么&#xff1…

说说什么是序列化,如何实现序列化

分析&回答 序列化机制 序列化机制(包括序列化和反序列化)的本质是用流将对象读到内存和写入外存。序列化机制的意义就是将对象脱离程序运行独立存在。通过网路或跨平台传输对象,传递的参数与返回值都实现序列化机制。实现序列化需要实现…

java序列化详解

一、序列化与反序列化 序列化:指堆内存中的java对象数据,通过某种方式把对存储到磁盘文件中,或者传递给其他网络节点(网络传输)。这个过程称为序列化,通常是指将数据结构或对象转化成二进制的过程。 即将对…

序列化和反序列化的底层实现原理是什么?

序列化和反序列化作为Java里一个较为基础的知识点,大家心里也有那么几句要说的,但我相信很多小伙伴掌握的也就是那么几句而已,如果再深究问一下Java如何实现序列化和反序列化的,就可能不知所措了!遥记当年也被问了这一…

序列化和反序列化

我以前确实对序列化,乃至现在也是不是很熟悉,有时候查找资料,但依旧懵懵懂懂,不过还好遇到一个博主,确定写的挺好的,链接会放再底部 废话不多说,先看官网定义: 序列化 (Serializat…

我把序列化玩成了这样,吊锤了一波面试官

我们都知道,新建一个对象的时候实现 Serializeable 接口,但为什么要这么做?什么时候这样子做?这样子做会不会出现幺蛾子?阿粉一个三连差点把自己都问懵逼了…… 那接下来,大家就和阿粉一起简单了解一下这个…

什么是序列化? 如何实现(反)序列化 序列化的应用

1. 什么是序列化与反序列化,什么情况需要序列化1.1 序列化序列化是什么序列化的目的什么情况需要序列化 1.2 反序列化反序列化是什么反序列化的目的 2. Java中的序列化与反序列化2.1 如何实现序列化Java序列化的规定序列化的API实现(反)序列化的示例对象在硬盘上的存…