当前位置:   article > 正文

笔试总结(三)_recovery check

recovery check

1、 Recovery check 和 Removal check的概念? 怎么保证不出现问题 ?(有关异步信号/异步复位)

对于一个异步复位寄存器来说,异步复位信号需要和时钟满足recovery time和removal time 才能有效进行复位和复位释放操作,防止输出亚稳态。

Recovery time:恢复时间
撤销复位时,恢复到非复位状态的电平必须在时钟有效沿来临之前的一段时间到来,才能保证有效地恢复到非复位状态,此段时间为recovery time。类似于同步时钟的setup time。在这里插入图片描述
如图所示,rst_n为0表示复位,clk上升沿触发,rst_n从0到1的上升沿与时钟上升沿之间地时间差必须不小于recovery time才能保证寄存器恢复到正常状态。

Removal time:去除时间
复位时,在时钟有效沿来临之后复位信号还需要保持的时间为去除时间removal time。类似同步时钟hold time。在这里插入图片描述
如图所示,rst_n为0表示复位有效,clk为上升沿触发,rst_n保持为0经过clk上升沿后仍需要保持一段时间,才能保证寄存器有效复位,防止亚稳态。

2、画出 Y=A+BC 的 COMS 电路?
在这里插入图片描述
在这里插入图片描述

3、画出 4 分频电路?在这里插入图片描述
4、画出 assign out = (a[3:0] != 4’b0001)的门电路?
a[3:0] == 4’b0001 -> out = 1’b0 ;
a[3:0] != 4’b0001 -> out = 1’b1 ;在这里插入图片描述
5、什么是virtual clock?
物理上不存在的Clock,用于设置input delay和output delay

6、STA有哪些缺点?
结果比较悲观,需要定义timing requirements和timing exceptions,很难处理异步电路

7、什么是removal time ?
对于异步信号释放时,其在上一个时钟边沿之后最少需要稳定的时间。

8、什么是recovery time ?
对于异步信号释放时,其在下一个时钟边沿之前最少需要稳定的时间。

9、为什么我们需要STA?
STA提供更加快速,更加简单的方式来检查设计中所有路径中的时序。

10、什么是Clock gating ?
clock gating是降低同步设计中动态功耗的技术。通过增加额外的逻辑来修剪clock tree.在这里插入图片描述
11、什么是uncertainty?
由于jitter和skew导致的时钟相对于理想位置的偏差

12、 什么是clock latency ?
从时钟源(clock source)到触发器clock pin的延时

13、 什么是slack ?
required time和arrival time之间的差

14、 什么是required time ?
在clock path上时钟到达的时间

15、 什么是arrival time ?
在 data path上数据到达的时间在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

16、判断电路中会否存在竞争冒险的方法有哪些?(BCD)
A 观察法 B 实验法

C代数法 D 卡诺图法

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

C 时钟网络 D 寄存器

对FPGA稍有了解的朋友都知道FPGA内部有很多可供用户任意配置的资源,其中包括:可编程逻辑、可编程I/O、互连线、IP核等。我们以Intel(Altera)的EP4CE10F17C8芯片为例进行介绍。在这里插入图片描述
打开FPGA设计工程后,点击“Chip Planner”来查看这款FPGA芯片的版图模型在这里插入图片描述
打开后的版图模型如下所示,左边是未进行布局布线的图,因为资源未被使用所以都是浅色。右边是已经布局布线后的图,也就是已经将使用的资源映射到了版图模型上(只有全编译后才能看到映射效果),其中深色表示该资源已经被使用,而颜色越深的地方表示资源利用率越高。黑色区域为一些固定功能的资源或没有资源,用户不可对其进行任意配置。在这里插入图片描述
(1)逻辑阵列块(Logic Array Block,LAB):每个LAB由16个LE(Logic Element)组成,下图是两个已经映射资源后的LAB,资源利用率不同的LAB其颜色深浅也有所差异(左边使用的资源少,颜色就浅;右边使用的资源多,颜色就深)。在这里插入图片描述
放大后的LE如下图所示,每个LE主要由左边一个蓝色的查找表和右边一个红色的寄存器组成,所以B选项和D选项正确。整个芯片中共有10320个LE在这里插入图片描述
双击其中一个LE可以观察到其大致的内部结构(内部结构只有被使用才能够双击打开查看),我们可以看到主要的两个部分,一是左边的4输入查找表,另一个是可编程寄存器,还包括:数据选择器、进位链等。查找表和多路选择器完成组合逻辑功能,寄存器完成时序逻辑功能。(蓝色高亮的部分是已经使用的资源,未高亮灰色的部分是未被使用的资源)。在这里插入图片描述
这里的输入查找表类似于一个容量为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单元中的最小单元个数不固定,有的包含两个,也有的包含四个)。在这里插入图片描述
下图为可编程I/O最小单元内部结构图,包括双向I/O缓冲器、OE寄存器、对齐寄存器、同步寄存器、DDR输出寄存器、三态门、延时模块等组成。在这里插入图片描述
为了便于管理和适应多种电器标准,FPGA 的 IOE 被划分为若干个组(Bank),每个 Bank 的接口标准由其接口电压 VCCO 决定,一个 Bank 只能有一种 VCCO,但不同 Bank 的 VCCO 可以不同。只有相同电气标准和物理特性的端口才能连接在一起,VCCO 电压相同是接口标准的基本条件。下图为我们开发板使用的EP4CE10F17C8芯片“Pin Planner”中用于管脚绑定的视图,我们可以看到整个图中被划分为8种不同的颜色,每种颜色代表不同的Bank。在这里插入图片描述
(3)互连线资源(Interconnect):布线资源连通 FPGA 内部的所有单元,而连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。FPGA 芯片内部有着丰富的布线资源,根据工艺、长度、宽度和分布位置的不同而划分为 4 类不同的类别:第一类是全局布线资源,用于芯片内部全局时钟和全局复位/置位的布线;第二类是长线资源,用于完成芯片 Bank 间的高速信号和第二全局时钟信号的布线;第三类是短线资源,用于完成基本逻辑单元之间的逻辑互连和布线;第四类是分布式的布线资源,用于专有时钟、复位等控制信号线。下图中中蓝色高亮的连线为由LAB中的LE中的寄存器连接到IOE中的互连线。在这里插入图片描述
(4)嵌入式存储单元(Memory Bits,也被称为Block RAM或简称为BRAM):该部分资源主要用于生成RAM、ROM、FIFO以及移位寄存器等常用的存储模块,在存储较多数据或作跨时钟域处理时常用,BRAM 由一定数量固定大小的存储块构成的,使用 BRAM 资源不占用额外的逻辑资源,不过使用的时候消耗的 BRAM 资源只能是其块大小的整数倍,就算你只存了 1 bit 也要占用一个 BRAM。在这里插入图片描述
下图为一个M9K内部结构图。由输入输出寄存器和一个RAM块构成,该芯片共有423936bit存储单元,并以每9Kbit容量为一个块,共有46个,下图所示为一个M9K的RAM块。相对于LUT构成的分布式RAM(Distribute RAM,简称为DRAM),这种专门的存储单元并且速度快,容量更大,从而避免LUT资源的浪费,一般是 BRAM 资源不够用的情况下才使用分布式 RAM。在这里插入图片描述
(5)嵌入式乘法单元(Embedded multiPlier 9-bit elements,也简称为DSP块):该单元主要用于各种复杂的数学运算,乘法、除法以及常用的功能函数如:有限冲激响应滤波器(FIR),无限冲击响应滤波器(IIR),快速傅里叶变换(FFT),离散余弦变换(DCT)等时会消耗很多逻辑资源,而FPGA中的LUT和寄存器资源有限,这时候使用嵌入式乘法单元这部分资源就不会造成逻辑资源的浪费。该芯片共有46个DSP块,成列式分布在芯片的中间位置,下图为一对DSP块资源。在这里插入图片描述
下图为嵌入式乘法器单元DSP块的内部结构图。包含输入输出寄存器和一个乘数块。在这里插入图片描述
(6)锁相环(Phase Lock Loop,PLL):锁相环路是一种反馈控制电路,简称锁相环。锁相环的特点是利用外部输入的参考信号控制环路内部振荡信号的频率和相位。因锁相环可以实现输出信号频率对输入信号频率的自动跟踪,所以锁相环通常用于闭环跟踪电路。锁相环在工作的过程中,当输出信号的频率与输入信号的频率相等时,输出电压与输入电压保持固定的相位差值,即输出电压与输入电压的相位被锁住,这就是锁相环名称的由来。该芯片一共有两个锁相环,一个在右上角处附近,一个在左下角附近在这里插入图片描述
PLL的参考时钟输入都是由专用时钟管脚上的晶振进来的,用于时钟的倍频、分频,以及相位、占空比调制。PLL出来的时钟都会连接到全局时钟网络上,如下图所示就是通过全局时钟网络扇出到每个寄存器上的时钟线,全局时钟网络保证时钟的质量,减小时钟偏斜(Skew)和抖动(Jitter),所以C选项正确
在这里插入图片描述
18、以下关于Latch与Flip-Flop特性描述正确的是:(ACD)。(多选)

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

B Latch无时钟输入

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

D Latch输出可能产生毛刺

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

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

只有设计组合逻辑电路时才会产生Latch问题。但从电路本质上讲,组合逻辑电路的特点是输出信号只是当前时刻输入信号的函数,与其他时刻的输入状态无关,无存储电路,也没有反馈电路,显然Latch不符合这些要求,所以A选项正确

Latch在同步时序电路设计中的就会有很多缺点:

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

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

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

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

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

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

闽ICP备14008679号