当前位置:   article > 正文

fpga显示256颜色_求职攻略| 典型FPGA器件常用资源(新手必读)

关于latch与flip-flop特性描述正确的是

求职攻略是为求职者准备的知识库,目的不仅在于解题,而是通过题目解析,以覆盖更多的知识点。

本期求职笔试题目来源大疆硬件逻辑岗,共3道多选题,涉及知识点包含:数字电路中竞争-冒险相关的问题、FPGA内部资源的了解、Latch(锁存器)与Flip-Flop(触发器)的特性。

23、判断电路中是否存在竞争冒险的方法有哪些?(   )(多选题)

A 观察法      B 实验法

C代数法    D 卡诺图法

解析:本题目主要考察了数字电路中竞争-冒险相关的问题

我们在秋招“笔试经”第五弹:华为硬件逻辑岗和硬件通用岗中讲解过产生竞争-冒险现象的原因,以及消除的方法,并展示了如何用代数法判断存在竞争-冒险现象,所以C选项正确。这种方法虽然简单,但局限性太大,因为多数情况下输入变量都有两个以上同时改变状态的可能性。如果输入变量的数目又很多,就更难于从逻辑函数式上简单地找出所有产生竞争-冒险现象的情况了。

将计算机辅助分析的手段用于分析数字电路以后,为我们从原理上检查复杂数字电路的竞争-冒险现象提供了有效的手段。通过在计算机上运行数字电路的模拟程序,能够迅速查出电路是否会存在竞争-冒险现象。目前已有这类成熟的程序可供选用。

另一种方法是用实验来检查电路的输出端是否有因为竞争-冒险现象而产生的尖峰脉冲。这时加到输入端的信号波形应该包含输入变量的所有可能发生的状态变化。

即使是用计算机辅助分析手段检查过的电路,往往也还需要经过实验的方法检验,方能最后确定电路是否存在竞争-冒险现象。因为在用计算机软件模拟数字电路时,只能采用标准化的典型参数,有时还要做一些近似,所以得到的模拟结果有时和实际电路的工作状态会有出入。因此可以认为,只有实验检查的结果才是最终的结论,所以B选项正确。

如果某逻辑函数满足Y = AB + A’C,可以用代数法分析出当B = C = 1 时,Y = A + A’,会产生竞争-冒险现象。用卡诺图表示如下图所示,可以看出与逻辑函数相对应的卡诺图中存在相切的圈,而且相切圈所在的方格没有同时被一个圈包含,相切部分的公共值是B = C = 1,此时即使产生竞争-冒险现象的条件。这样我们就用卡诺图直观的把是否会产生竞争-冒险现象判断出来了。具体来说,利用卡诺图进行竞争-冒险现象判断的方法是:如果组合逻辑函数所对应的卡诺图中存在相切的圈,而且相切的方格又没有同时被另一个圈包含,则当变量组合在相切的方格之间变化时,存在竞争-冒险现象,所以D选项正确。

f7d8f97475d9d288500dd5aba1f20986.png

A选项仅通过观察法是无法直接判断出是否存在竞争-冒险现象的,所以A选项错误。

24、以下哪些是典型FPGA器件内部的常用资源:(   )。(多选题)

A DRAM         B LUT

C 时钟网络       D 寄存器

解析:本题目主要考察了对FPGA内部资源的了解

对FPGA稍有了解的朋友都知道FPGA内部有很多可供用户任意配置的资源,其中包括:可编程逻辑、可编程I/O、互连线、IP核等。我们以Intel(Altera)的EP4CE10F17C8芯片为例进行介绍。

09d4f46e4e23783e03c205aa05da1e96.png

打开FPGA设计工程后,点击“Chip Planner”来查看这款FPGA芯片的版图模型。

71c2c9d905f3d8ac04a70b3b62970a0a.png

打开后的版图模型如下所示,左边是未进行布局布线的图,因为资源未被使用所以都是浅色。右边是已经布局布线后的图,也就是已经将使用的资源映射到了版图模型上(只有全编译后才能看到映射效果),其中深色表示该资源已经被使用,而颜色越深的地方表示资源利用率越高。黑色区域为一些固定功能的资源或没有资源,用户不可对其进行任意配置。

1b27ffe0c6c3b687bba17dab6340b651.png

(1)逻辑阵列块(Logic Array Block,LAB):每个LAB由16个LE(Logic Element)组成,下图是两个已经映射资源后的LAB,资源利用率不同的LAB其颜色深浅也有所差异(左边使用的资源少,颜色就浅;右边使用的资源多,颜色就深)。

3c5c6bd37cfd83dfbc102508599cc100.png

放大后的LE如下图所示,每个LE主要由左边一个蓝色的查找表和右边一个红色的寄存器组成,所以B选项和D选项正确。整个芯片中共有10320个LE。

e1027da6835bc78469aca5d068886e16.png

双击其中一个LE可以观察到其大致的内部结构(内部结构只有被使用才能够双击打开查看),我们可以看到主要的两个部分,一是左边的4输入查找表,另一个是可编程寄存器,还包括:数据选择器、进位链等。查找表和多路选择器完成组合逻辑功能,寄存器完成时序逻辑功能。(蓝色高亮的部分是已经使用的资源,未高亮灰色的部分是未被使用的资源)。

baec20c0b5c1d695e2f9e8fddd67bd48.png

这里的输入查找表类似于一个容量为16 bits 的 ROM(2^4 = 16)(工艺上是珍贵的 SRAM 资源,所以A选项错误),4表示地址输入位宽为4 bits,存储的内容作为输入对应的输出结果的逻辑运算,并在 FPGA 配置时载入。

上图红色①标注处为查找表:目前主流 FPGA 都采用了基于 SRAM 工艺的查找表结构。查找表本质上就是一个 RAM。当用户通过原理图或 HDL 语言描述了一个逻辑电路以后,FPGA 开发软件会自动计算逻辑电路的所有可能结果,列成一个真值表的形式,并把真值表(即输入对应的输出逻辑)事先写入RAM,这样每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。目前FPGA中多使用4输入的查找表,所以每一个查找表可以看成一个有4位地址线的RAM。

上图红色②标注处为寄存器:可以配置成多种工作方式,比如触发器或锁存器,同步复位或异步复位、复位高有效或低有效。

上图红色③标注处为进位链:超前进位加法器,方便加法器的实现,加快复杂加法的运算。

上图红色④标注处为数据选择器:数据选择器一般在 FPGA 配置后固定下来。

(2)用户可编程I/O(User I/Os,也被简称为IOE):可编程I/O资源分布在整个芯片的四周。该芯片共有256个管脚,除去一些固定功能的管脚,可供用户任意配置的管脚资源只有180个,下图是其中一个可编程I/O单元,里面又包含三个最小单元(每个可编程I/O单元中的最小单元个数不固定,有的包含两个,也有的包含四个)。

1eb0e76c0006162366addb598a4b6c39.png

下图为可编程I/O最小单元内部结构图,包括双向I/O缓冲器、OE寄存器、对齐寄存器、同步寄存器、DDR输出寄存器、三态门、延时模块等组成。

66ea40de3df7d24ccf3af07bdf236be4.png

为了便于管理和适应多种电器标准,FPGA 的 IOE 被划分为若干个组(Bank),每个 Bank 的接口标准由其接口电压 VCCO 决定,一个 Bank 只能有一种 VCCO,但不同 Bank 的 VCCO 可以不同。只有相同电气标准和物理特性的端口才能连接在一起,VCCO 电压相同是接口标准的基本条件。下图为我们开发板使用的EP4CE10F17C8芯片“Pin Planner”中用于管脚绑定的视图,我们可以看到整个图中被划分为8种不同的颜色,每种颜色代表不同的Bank。

bc830ed277e51643f4f0690f4c7f24ab.png

(3)互连线资源(Interconnect):布线资源连通 FPGA 内部的所有单元,而连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。FPGA 芯片内部有着丰富的布线资源,根据工艺、长度、宽度和分布位置的不同而划分为 4 类不同的类别:第一类是全局布线资源,用于芯片内部全局时钟和全局复位/置位的布线;第二类是长线资源,用于完成芯片 Bank 间的高速信号和第二全局时钟信号的布线;第三类是短线资源,用于完成基本逻辑单元之间的逻辑互连和布线;第四类是分布式的布线资源,用于专有时钟、复位等控制信号线。下图中中蓝色高亮的连线为由LAB中的LE中的寄存器连接到IOE中的互连线。

34da58e5980317e964575ef0d17f47ff.png

(4)嵌入式存储单元(Memory Bits,也被称为Block RAM或简称为BRAM):该部分资源主要用于生成RAM、ROM、FIFO以及移位寄存器等常用的存储模块,在存储较多数据或作跨时钟域处理时常用,BRAM 由一定数量固定大小的存储块构成的,使用 BRAM 资源不占用额外的逻辑资源,不过使用的时候消耗的 BRAM 资源只能是其块大小的整数倍,就算你只存了 1 bit 也要占用一个 BRAM。

6539d76236be61b38ea6ee9c781ee5ea.png

下图为一个M9K内部结构图。由输入输出寄存器和一个RAM块构成,该芯片共有423936bit存储单元,并以每9Kbit容量为一个块,共有46个,下图所示为一个M9K的RAM块。相对于LUT构成的分布式RAM(Distribute RAM,简称为DRAM),这种专门的存储单元并且速度快,容量更大,从而避免LUT资源的浪费,一般是 BRAM 资源不够用的情况下才使用分布式 RAM。

6fb37b3e8895119fa40ab07b8dac3407.png

(5)嵌入式乘法单元(Embedded multiPlier 9-bit elements,也简称为DSP块):该单元主要用于各种复杂的数学运算,乘法、除法以及常用的功能函数如:有限冲激响应滤波器(FIR),无限冲击响应滤波器(IIR),快速傅里叶变换(FFT),离散余弦变换(DCT)等时会消耗很多逻辑资源,而FPGA中的LUT和寄存器资源有限,这时候使用嵌入式乘法单元这部分资源就不会造成逻辑资源的浪费。该芯片共有46个DSP块,成列式分布在芯片的中间位置,下图为一对DSP块资源。

fd4f80ac3631548d16b0b31db90a18b8.png

下图为嵌入式乘法器单元DSP块的内部结构图。包含输入输出寄存器和一个乘数块。

cd4173982a6998b368fab0c7e2ed09c1.png

(6)锁相环(Phase Lock Loop,PLL):锁相环路是一种反馈控制电路,简称锁相环。锁相环的特点是利用外部输入的参考信号控制环路内部振荡信号的频率和相位。因锁相环可以实现输出信号频率对输入信号频率的自动跟踪,所以锁相环通常用于闭环跟踪电路。锁相环在工作的过程中,当输出信号的频率与输入信号的频率相等时,输出电压与输入电压保持固定的相位差值,即输出电压与输入电压的相位被锁住,这就是锁相环名称的由来。该芯片一共有两个锁相环,一个在右上角处附近,一个在左下角附近。

36e6601bab57937ad72ff8974977bf99.png

PLL的参考时钟输入都是由专用时钟管脚上的晶振进来的,用于时钟的倍频、分频,以及相位、占空比调制。PLL出来的时钟都会连接到全局时钟网络上,如下图所示就是通过全局时钟网络扇出到每个寄存器上的时钟线,全局时钟网络保证时钟的质量,减小时钟偏斜(Skew)和抖动(Jitter),所以C选项正确。

d2a2050b0d4bf3b47cc84f03d6b956e4.png

下图为锁相环内部的结构图,每个锁相环可以分出五个同源时钟信号,图中只用输出两路PLL。

5676554d75e6f7b9d76105fdb6843f79.png

不同厂家不同系列的FPGA芯片其内部资源会稍有差异,但都会包含以上这些主要的内部资源。

25、以下关于Latch与Flip-Flop特性描述正确的是:(   )。(多选)

A Latch与Flip-Flop都属于时序逻辑

B Latch无时钟输入

C Filp-Flop只会在时钟触发沿采样当前输入产生输出

D Latch输出可能产生毛刺

解析:本题目主要考察了Latch(锁存器)与Flip-Flop(触发器)的特性

首先来分别介绍下Latch(锁存器)和Flip-Flop(触发器)。

Latch(锁存器):电平敏感的存储单元,数据存储的动作取决于输入时钟或者使能信号的电平值,仅当锁存器处于使能状态时,输出才会随数据输入发生变化,常用于异步电路系统中。因为Latch可以有时钟输入,但是用的是时钟的电平值而不是时钟的沿,所以B选项不正确。

Flip-Flop(触发器):边沿敏感的存储单元,数据存储的动作由时钟信号的上升沿或下降沿进行同步,常用于同步电路系统中,所以C选项正确。

A选项Flip-Flop是时序逻辑我们没有任何疑问,而Latch是时序逻辑可能大家就有疑问了,很多人会认为Latch属于组合逻辑电路,因为在写Verilog代码的时候也只有设计组合逻辑电路时才会产生Latch问题。但从电路本质上讲,组合逻辑电路的特点是输出信号只是当前时刻输入信号的函数,与其他时刻的输入状态无关,无存储电路,也没有反馈电路,显然Latch不符合这些要求,所以A选项正确。

现在我们所使用的EDA工具往往都是基于同步时序而设计的,Latch就显得格格不入了,Latch在同步时序电路设计中的就会有很多缺点:

1)Latch受所有的输入信号控制,只要输入信号变化,Latch就变化。也正因为如此,Latch很容易出现毛刺,所以D选项正确;

2)Latch不能异步复位,上电后处于不定态;

3)还会让静态时序分析变得十分复杂;

4)在FPGA的资源中,大部分器件没有锁存器这个东西,所以需要用使用寄存器来组成锁存器所以会占用更多逻辑资源;

5)在ASIC设计中,锁存器也会带来额外的延时和DFT,并不利于提高系统的工作频率,所以要避免产生。

所以我们在FPGA的设计中要尽量避免在产生Latch,在组合逻辑设计中下面几种情况会产生Latch,我们应尽量避免:

1)组合逻辑中if语句没有else;

2)组合逻辑中case的条件不能够完全列举时且不写default;

3)组合逻辑中输出变量赋值给自己。

下期预告

3道选择题,同样来自大疆笔试题(FPGA逻辑岗)。

26、以下哪些活动是属于DFT的内容(  )(多选) A MBIST         B AC SCAN C DC SCAN    D Boundry SCAN   27、随着IC电路设计工艺的进步,漏电功耗占比越来越大,不考虑温漂的影响,以下哪些技术能够用于降低漏电功耗?(   )(多选) A power gating(电源门控) B DVFS(动态电压频率调整)                         C DFS(动态频率调整) D clock gating(时钟门控)   28、下面电路亚稳态描述不正确的是:(   )。(多选) A 可以正常工作的数字电路芯片中一定不存在亚稳态 B 亚稳态不存在于实际电路中,只是仿真的一种现象 C 亚稳态不能被消除,只能减小发生概率 D 增加同步拍数可以降低亚稳态发生的概率 END 68a35dd7c51d7fd0cf14f131225ede7f.png

目前,我们正在通过大疆硬件岗和FPGA逻辑岗的题目,为大家带来笔试题的解析,以及知识的补充。如果有想要解析的题目,可以发给达尔闻安排。同时,欢迎加入达尔闻求职技术交流群,进群方式:添加妮姐微信(459888529),并备注求职,即可邀请进群

达尔闻求职系列:

磁珠的用法、PCB布线3W规则

单比特信号跨时钟域问题详解

如何搞定状态机问题 电容击穿表现为短路? MOS管导通损耗和什么有关?

毛刺滤除的代码应该如何写

资深工程师总结减小串扰的7种方法

二进制数11.101对应的十进制数是多少

FGPA时序分析看这篇就够了 逻辑电路24种表达式

芯片工艺28nm的28是指什么

FPGA设计中的时序收敛准则 华为硬件逻辑岗(FPGA) 紫光展锐数字IC岗(编程题) 从无人机爱好者到获得DJI大疆Offer offer拿到手软,最后选华为!

IO的时序约束该如何设置

e2baf993d722c1d784daf76d761e9a4a.png

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/440988
推荐阅读
相关标签
  

闽ICP备14008679号