芯片设计全流程知识点总结

目录

1、低功耗工具

2、综合的步骤、工具

3、状态机

4、异步复位同步释放

5、同步复位与异步复位对比

 6、运算符优先级

 7、FIFO深度设计

8、UVM中phase的执行顺序

9、三极管

10、静态时序分析

11、跨时钟域信号处理

12、网表等基本知识

13、数字信号采样

14、解决亚稳态常用方法

15、流水线设计优缺点

16、验证

17、静态、动态时序分析的优缺点

18、同步时钟、异步时钟

19、解决建立时间和保持时间不满足的问题

20、同步电路时序典型题

 21、芯片的工作条件

22、可综合语句与不可综合语句

23、FPGA内部RAM的单、双、伪双端口之分

24、常见时序、组合逻辑

25、!和 ~

26、低功耗设计方法总结

27、经典CPU执行阶段

28、芯片设计三个核心指标PPA

29、信号的抖动和漂移

30、射极跟随器(共集电极放大电路)

31、翻转率计算

32、FPGA的加载方式


1、低功耗工具

功耗分析预测分析工具包括PowerArtist(Ansys)、Spyglass Power(Synopsys)、Prime Time PX(Synopsys)和Redhawk(Ansys)等。通过对实际项目中;不同工具的比较,建议如下表:

芯片设计全流程知识点总结_第1张图片

2、综合的步骤、工具

步骤:翻译(Translation):主要把描述RTL级的HDL语言,在约束下转换成(DC)RC内部的统一用门级描述的电路,以GTECH或者没有映射的ddc形式展现。

逻辑优化(Optimization):把统一用门级描述的电路进行优化,例如调整路径,简化门的数量。

门级映射(Mapping):工具使用fab厂的工艺库把电路映射出来,得到ddc文件,包括了映射的门电路信息和网表,还能生成延时信息文件.sdf(standard delay format)。

工具:Synopsys: Design Compiler(DC)、Cadence: RTL Compiler(RC)

3、状态机

(2条消息) 状态机,从细节出发(一段式、两段式、三段式,moore型、mealy型)_一段式状态机缺点_wangkai_2019的博客-CSDN博客

Verilog有限状态机比较 - 知乎

有限状态机(Finite-State Machine,FSM),简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。状态机不仅是一种电路的描述工具,而且也是一种思想方法,在电路设计的系统级和 RTL 级有着广泛的应用。

Verilog 中状态机主要用于同步时序逻辑的设计,能够在有限个状态之间按一定要求和规律切换时序电路的状态。状态的切换方向不但取决于各个输入值,还取决于当前所在状态。 状态机可分为 2 类:Moore 状态机和 Mealy 状态机。

Moore 型状态机

Moore 型状态机的输出只与当前状态有关,与当前输入无关。

输出会在一个完整的时钟周期内保持稳定,即使此时输入信号有变化,输出也不会变化。输入对输出的影响要到下一个时钟周期才能反映出来。这也是 Moore 型状态机的一个重要特点:输入与输出是隔离开来的。

芯片设计全流程知识点总结_第2张图片

 Mealy 型状态机

Mealy 型状态机的输出,不仅与当前状态有关,还取决于当前的输入信号

Mealy 型状态机的输出是在输入信号变化以后立刻发生变化,且输入变化可能出现在任何状态的时钟周期内。因此,同种逻辑下,Mealy 型状态机输出对输入的响应会比 Moore 型状态机早一个时钟周期。

芯片设计全流程知识点总结_第3张图片

状态机设计

一段式状态机:有的设计者习惯将整个状态机写到1 个always 模块里面,在该模块中即描述状态转移,又描述状态的输入和输出,这种写法一般被称为一段式FSM 描述方法。

二段式状态机:还有一种写法是将用2个always 模块,其中一个always 模块采用同步时序描述状态转移;另一个模块采用组合逻辑判断状态转移条件,描述状态转移规律,这种写法被称为两段式FSM 描述方法。

三段式状态机:这种写法使用3 个always 模块,一个always模块采用同步时序描述状态转移;第二个采用组合逻辑判断状态转移条件,描述状态转移规律;第三个always 模块使用同步时序电路描述每个状态的输出。

一般而言,推荐的 FSM 描述方法是后两种,即两段式和三段式FSM 描述方法。其原因为:FSM 和其他设计一样,最好使用同步时序方式设计,以提高设计的稳定性,消除毛刺。状态机实现后,一般来说,状态转移部分是同步时序电路,而状态的转移条件的判断是组合逻辑。两段式之所以比一段式编码合理,就在于两段式编码将同步时序和组合逻辑分别放到不同的always 程序块中实现。这样做的好处不仅仅是便于阅读、理解、维护,更重要的是利于综合器优化代码,利于用户添加合适的时序约束条件,利于布局布线器实现设计。而 一段式FSM 描述不利于时序约束、功能更改、调试等,而且不能很好的表示米勒FSM 的输出,容易写出Latches,导致逻辑功能错误。

  在一般两段式描述中,为了便于描述当前状态的输出,很多设计者习惯将当前状态的输出用组合逻辑实现。 但是这种组合逻辑仍然有产生毛刺的可能性,而且不利于约束,不利于综合器和布局布线器实现高性能的设计。因此如果设计运行额外的一个时钟节拍的插入 (latency),则要求尽量对状态机的输出用寄存器寄存一拍。但是很多实际情况不允许插入一个寄存节拍,此时则可以通过三段式描述方法进行解决。三段式与两段式相比,关键在于根据状态转移规律,在上一状态根据输入条件判断出当前状态的输出,从而在不插入额外时钟节拍的前提下,实现了寄存器输出

4、异步复位同步释放

很多时候,我们都希望系统一上电以及在仿真开始的时候所有寄存器都有一个已知的状态。复位有两种方式,即同步复位和异步复位。

同步复位:“同步”的意思是和工作时钟同步。也就是说当时钟的上升沿(下降沿)来到时检测到按键的复位操作才有效,否则无效。如下图所示为同步低复位波形。

芯片设计全流程知识点总结_第4张图片

异步复位:“异步”的意思是和工作时钟不同步。也就是说寄存器的复位不关心时钟的上升沿(下降沿)是否到来,只要有检测到按键被按下,就立刻执行复位操作。如下图所示为异步低复位波形。

芯片设计全流程知识点总结_第5张图片

为什么很多RTL代码中使用异步复位?因为这部分资源本来就有,不需要额外创造,而如果我们使用同步高复位,就会增加额外的逻辑,需要使用LUT资源,所以同步复位D触发器比异步复位D触发器多使用了一个LUT,可以试想一下如果我们使用的很多同步复位D触发器的时候就会占用很多不必要的LUT资源,从而造成资源的浪费。

异步复位同步释放有特殊情况,就是时钟刚好采集到复位释放的不稳定状态,因为复位很多时候是和时钟异步的关系,这样就有可能引发亚稳态的产生,如果不进行处理就会使得亚稳态的向下传播,从而对电路的功能造成影响。

芯片设计全流程知识点总结_第6张图片

时序检查中对于异步复位电路的时序分析分别叫做恢复时间检查(recovery time)和移除时间检查(removal time)。

(1)recovery time:恢复时间撤销复位时,恢复到解复位状态的电平必须在时钟有效沿来临之前的一段时间到来,才能保证时钟能有效恢复到解复位状态,此段时间为recovery time。类似于同步时钟的setup time,也就是上图中的①所示的时间段。

(2)removal time:移除时间复位时,在时钟有效沿来临之后复位信号还需要保持的时间为移除时间removal time。类似同步时钟hold time。也就是上图中的②所示的时间段。

所以我们要将异步复位信号同步到系统时钟下。关于同步我们就比较熟悉了,对于这种情况打拍就可以了,因为还涉及到亚稳态的处理,所以这里我们在系统时钟下对复位信号进行打两拍的处理,然后再把打两拍后的信号作为系统的复位。

芯片设计全流程知识点总结_第7张图片

芯片设计全流程知识点总结_第8张图片

5、同步复位与异步复位对比

同步复位优缺点

优点:

(1)在同步复位电路下,复位和数据信号都受到时钟信号的控制,所以同步复位一般可以确保电路是一个同步电路
(2)在ASIC设计中,同步电路一般可以综合为更小的同步触发器(因为触发器没有包含复位逻辑),但是在FPGA设计中并不如此,一般FPGA的时序元件为带异步复位的触发器(也有同步触发器,视厂家而定)。如果在FPGA设计中使用同步复位,其消耗的资源相对较多。
(3)由于触发器的跳转只在时钟的边沿,所以触发器可以在一定程度上过滤电路毛刺进而如果复位由电路内部的逻辑控制,在这种情况下可以在设计中使用同步复位:通过可以在一定程度上过滤电路毛刺的特性,过滤掉内部电路逻辑产生的毛刺,使设计更鲁棒。

缺点

(1)同步复位需要较长的保持复位状态时间(最小也要大于时钟周期),保证同步复位信号可以到达每一个寄存器并且要在有效时钟沿之前到达(在真正设计使用的时候还需要考虑时钟偏斜、组合逻辑延时、复位延时等,即:同步复位信号时长> 时钟周期 + 时钟偏斜 + 组合逻辑延时)。

(2)在低功耗设计中,同步复位一般不能用于门控时钟控制的电路。因为同步复位电路中,主要靠时钟驱动复位和数据。当复位发出时,有可能时序电路此时并没有时钟驱动,那么此时的复位就不能完成。

(3)在fpga设计中,同步复位会消耗更多的资源

(4)使用同步复位会使综合工具无法分辨复位信号和其他数据信号

异步复位优缺点

异步复位的优点

(1)异步复位的复位逻辑和数据逻辑没有任何关系,所以相比同步复位,能够使数据路径更好地收敛。(上上图对比)

(2)不用在时钟的控制下进行复位,所以对于刚才所提到的低功耗设计中,可以达到无时钟复位的效果[注意:寄存器复位后的正常状态恢复需要时钟参与]。

(3)使用异步复位优势在于只要生产方提供的库中有带异步复位的触发器,就能保证数据路径上是干净的。

异步复位的缺点:

(1)因为异步复位不受时钟的控制,所以当电路复位引脚有毛刺的时候,会引起电路的异常复位。

(2)在异步复位的时候,如果释放复位信号在时钟有效边沿周围。那么可能会引起时序单元的输出出现亚稳态,导致电路亚稳态传播

 6、运算符优先级

verilog:

芯片设计全流程知识点总结_第9张图片

芯片设计全流程知识点总结_第10张图片

 7、FIFO深度设计

FIFO设计中与深度depth相关的问题 - 知乎 (zhihu.com)

关于同步fifo和异步fifo深度设计和特殊情况 - 知乎

同步FIFO:

时钟为100M,每100个cycle可以写入80个数据,每10个cycle可以读出8个数据,fifo的深度至少为?

每100个cycle可以写入80个数据,考虑最坏的情况,背靠背模式(前100clk的后80clk写数据,下一个100clk的前80clk写数据),突发长度为160个clk写160个数据,在这160clk读侧只能读出(160/10)*8 = 128;所以没读走的160-128=32个数据为fifo的最小深度。

异步FIFO:

(1)当读写吞吐率一样:当写数据频率为100MHz,每100个写时钟写入60个数据;读数据频率为200MHz,每10个时钟读出3个数据,异步fifo的深度最小为?

  • 写入的带宽为(60/100)*100M=60MHz;读出的带宽为(3/10)*200M=60MHz;读写带宽相等,继续计算;
  • 考虑背靠背传输,120个数据,需要120*(1/100M)=1200ns;
  • 读出3每个数据的时间:(1/200M)*10 = 50ns
  • 1200ns可以读出的数据个数为:(1200/50)*3 = 72(个)
  • 所以在1200ns内还没有被读走的数据个数 = 120-72 = 48(个) 因此FIFO的最小深度为48

(2)当写的吞吐率大于读的吞吐率的时候,fifo不论深度为多少总会溢出;

比如写时钟100M,读时钟80M,写侧每100个周期写60个数据,FIFO读出侧4个周期读出1个数据。则写入速率为(60/100)*100 = 60M;(1/4)*80 = 20M;所以写入吞吐率大于读出吞吐率,所以总是会溢出,类比于一个水池出水口的流速比入水口的流速满,水池迟早会溢出。

8、UVM中phase的执行顺序

UVM中主要有两种phase,包括task phase和function phase。task phase需要消耗仿真时间,function phase不消耗仿真时间。function phase有8个,task phase有12个。

芯片设计全流程知识点总结_第11张图片

function phase中,各个phase是按照顺序执行的,同一时刻只有一个phase在运行,但是task phase中各个phase是并行运行的,其又称为动态运行的phase。

UVM环境中的phase执行,不消耗时间的phase中,只有build_phase是自上而下执行其他function phase都是自下而上执行的。function phase中各个phase中例化完以后的每个phase中的执行顺序与例化的顺序没有关系。function phase的8个phase按照顺序执行,但是每个phase中的例化成员执行时按照字典执行的。

UVM环境中的动态phase也是按照自下而上的顺序执行,但是task phase是需要消耗时间的,所以他并不是等到下面的phase执行完以后再去执行上面的phase,而是将这些run_phase同时通过fork...join_none的方式全部启动,所以可以描述为自下而上启动,同时运行。

芯片设计全流程知识点总结_第12张图片

UVM树中多个同一层次的多个component而言,一个component的某个phase执行完以后,需要等待环境中的所有component的该phase都执行完成,所有component同时进入下一个phase,其执行过程为:

芯片设计全流程知识点总结_第13张图片

9、三极管

 发射结正向偏置、集电结反向偏置,工作在放大状态。

发射结和集电结都正偏置,工作在饱和状态。

发射结和集电结都反向偏置,工作在截止状态。

作为开关时候,开关导通时,工作在饱和区,开关断开时工作在截止区

10、静态时序分析

(4条消息) STA(静态时序分析) 详解:如何计算最大时钟频率,以及判断电路是否出现时钟违例(timing violation)?_weixin_43701504的博客-CSDN博客

(4条消息) STA静态时序分析——学习笔记_Zokion的博客-CSDN博客

第五章 静态时序分析入门 - 知乎 (zhihu.com)

11、跨时钟域信号处理

单比特:两级寄存器串联同步

多比特

        MUX同步器(带数据有效标志信号的多比特数据做跨时钟域)

        握手同步(带en脉冲信号的多比特数据做跨时钟域)

        格雷码(连续变化的多比特信号)

        格雷码+异步双口RAM(无限制场景,尤其在有大量的数据且速度要求较高时候)

        异步FIFO

(4条消息) 跨时钟域信号如何处理(二、多bit信号)_luoai_2666的博客-CSDN博客

12、网表等基本知识

网表:
网表是逻辑电路设计转化为物理实现的工作产品,网表可以有各种抽象级,例如门级网表和晶体管级网表。门级网表通常用于数字电路,晶体管级网表通常用于模拟电路。
门级网表
门级网表中,描述的是门级电路的连接关系。通常后端厂商提供基本的门级基本单元库,RTL级设计转化为指定基本单元库(厂家库)中单元电路的连接,即为网表。门级网表的电路功能应该与RTL代码一致。
        1、DC/DFT/SDF
DC design compiler 是综合后的网表
DFT design for testability 插入逻辑测试的网表
SDF standard delay format 是加标准延时格式文件的网表
sdf 是工具输出,反标信息,与其他工具交流用的格式,通常不修改,基本上就是给vcs用。
sdc synopsys design constraints 设计约束文件,对电路的时序,面积,功耗进行约束。
网表以phy为最小单位来替换,phy与phy之间的信号都被打平,按bit位连接。
如果phy内部端口不用,被优化,则工具会在该输出端口加SYNOPSYS_UNCONNECTED_XXXX名字,表示端口悬空。
网表仿真debug时,由于信号打平,比较难trace,可以参照rtl代码来进行debug,效率更快。
        2、DC
综合就是将设计的HDL描速转化为门级网表的过程。Synopsys公司提供的综合工具DC把综合分为三个步骤进行:synthesis=translation+mapping+optimization。Translation是指把设计的HDL描述转化为 GTECH库元件组成的逻辑电路;GTECH库是Synopsys公司提供的通用的、独立于工艺的元件库。Mapping是指将GTECH库元件映射到某一特定的半导体工艺库上,此时的电路网表包含了相关的工艺参数。Optimization是根据设计者设定的时延、面积、线负载模型等综合约束条件对电路网表进一步优化的过程。从综合工具的使用流程来看,综合包括综合环境的设置,综合约束,综合优化,综合与后端流程等。
        3、DFT
可测试性技术(Design For Testability-DFT)就是试图增加电路中信号的可控制性和可观测性,以便及时经济地测试芯片是否存在物理缺陷,使用户拿到良好的芯片。其中包括Ad Hoc技术和结构化设计技术。目前,任何高集成度IC设计系统都采用结构化设计技术,其中主要扫描技术和内建自测两种技术。
        4、网表的不同后端阶段
网表按照不同后端阶段可以分为综合网表,DFT网表,PR网表等,由于网表仿真时可以引入实际元器件尺寸和寄生参数等带来的各种延时信息,所以对网表的仿真比对RTL的仿真更加接近真实芯片的行为。
DC网表
综合网表是前端设计完成后,通过添加时序和面积的约束,用综合工具将RTL级设计转化成的门级电路。综合网表虽然调用了厂家器件库,但是还未进行布局布线,只是初步的逻辑连接,还不用用于真正的物理实现。
DFT网表
DFT网表是在综合网表的基础上,为了检测生产制造缺陷,在综合网表中添加一些测试电路后的设计。具体包括扫描链scan,memory BIST(built in self test 内建自测试),logic BIST,ATPG(自动测试向量生成)等。
PR网表
PR网表这是在DFT网表基础上完成布局布线后的网表。是完成布局placement,时钟树综合CTS,布线routing后的网表。其功能和时序最为接近物理芯片。
        5、功能验证和网表验证
功能验证,一般指在IC设计过程中,通过仿真RTL级设计,来确认其是否符合设计需求的验证。
网表验证,是对网表进行测试验证的过程。网表验证主要有三种手段:仿真验证,静态时序分析以及形式验证。
        6、前仿真与后仿真
前仿真,一般指RTL级仿真验证。
后仿真,即网表验证中的仿真,也叫布局布线后的网表仿真验证。它利用动态仿真的形式来检查网表功能和时序的正确性。后仿真通常指布局布线后的门级网表的仿真,包括时序仿真和功能仿真。功能仿真不带延时信息,主要检查基本功能是否正确。时序仿真会反标上延时信息,检查时序特性。
        7、网表功能仿真和时序仿真
功能仿真,即不反标延时信息的网表仿真,主要验证网表的功能正确性,包括综合网表功能仿真,DFT网表功能仿真,以及PR网表功能仿真。
时序仿真,反标延时信息的网表仿真,主要用来验证网表的时序正确性。
        8、术语
ECO engineering change order 工程变更单
STA static timing analysis 静态时序分析
GLS gate level simulation 门级仿真
原文链接:https://blog.csdn.net/weixin_45270982/article/details/108111730

13、数字信号采样

采样频率是一个非常重要的参数,因为它直接影响数字信号的质量。采样频率越高,所能表示的信息越丰富,但是也会带来更大的数据量和更高的计算复杂度。根据采样定理,当采样频率大于信号中最高频率的2倍时,采样之后的数字信号完整地保留了原始信号中的信息,一般实际应用中保证采样频率为信号最高频率的5~10倍。

对数字信号做采样前添加滤波器,一般需要添加低通滤波器滤除高频,这时候再使用采样频率为Fs的采样时钟进行降采样,该滤波器的功能是抗混叠滤波,这个滤波器也叫抗混叠滤波器。

为什用低通滤波器进行降采样,达到抗混叠滤波效果?因为 ADC 采样、量化后的信号是离散的数字信号,【时域离散化对应频域周期化】,即在频域会出现多个频率分量,其中只有低频部分是我们实际需要的。

此时,若直接进行降采样,那么针对每个频率分量,将会再次进行一次周期化,D倍抽取序列的频谱为抽取前后原始序列之频谱经频移和D倍展宽后的D个频谱的叠加和,因此可能存在混叠

14、解决亚稳态常用方法

亚稳态(semi-stable state)是指触发器无法在某个规定时间段内达到一个可确认的状态。当一个触发器进入亚稳态引时,既无法预测该单元的输出电平,也无法预测何时输出才能稳定在某个正确的电平上。在这个稳定期间,触发器输出一些中间级电平,或者可能处于振荡状态,并且这种无用的输出电平可以沿信号通道上的各个触发器级联式传播下去。

        1. 降低系统时钟

        2 .用反应更快的FF(filp-flop,触发器)

        3. 引入同步机制,防止亚稳态传播(同步寄存器)

        4. 改善时钟质量,用边沿变化快速的时钟信号

15、流水线设计优缺点

所谓流水线设计实际上是把规模较大、层次较多的组合逻辑电路分为几个级,在每一级插入寄存器组并暂存中间数据。K级的流水线就是从组合逻辑的输入到输出恰好有K个寄存器组(分为K 级,每一级都有一个寄存器组),上一级的输出是下一级的输入而又无反馈的电路。 流水线设计在性能上的提高是以消耗较多的寄存器资源为代价的。 流水线处理是提高组合逻辑设计的处理速度和吞吐量的最常用手段。

优点:可以提高系统时钟频率,增加数据吞吐量。

缺点:导致系统延迟增加,功耗增大,以及面积增大

16、验证

(4条消息) IC设计- 浅谈各种验证 - 功能验证,形式验证,原型验证_形式验证和功能验证区别_AmoreMc的博客-CSDN博客

(4条消息) 数字IC验证方法的分类_静态验证的常见方法_嗨小小小黑的博客-CSDN博客

(4条消息) 数字IC验证:几大功能验证(Functional Verification)技术有哪些?_IC Beginner的博客-CSDN博客

17、静态、动态时序分析的优缺点

静态时序分析 STA

静态时序分析是采用穷尽分析方法来提取出整个电路存在的所有时序路径,计算信号在这些路径上的传播延时,检查信号的建立和保持时间是否满足时序要求,通过对最大路径延时和最小路径延时的分析,找出违背时序约束的错误。

优点:

1.它不需要输入向量就能穷尽所有的路径;

2.运行速度很快、占用内存较少,不仅可以对芯片设计进行全面的时序功能检查,而且还可利用时序分析的结果来优化设计。因此静态时序分析已经越来越多地被用到数字集成电路设计的验证中。

缺点

静态时序分析只能对同步电路进行分析,而不能对异步电路进行时序分析。

动态时序分析 DTA

动态时序模拟就是通常的仿真

优点

比较精确,而且同静态时序相比较,它适用于更多的设计类型 。

缺点

1.分析的速度比较慢

2.需要使用输入矢量,这使得它在分析的过程中有可能会遗漏一些关键路径,着规模增大,所需要的向量数量以指数增长,且这种方法难以保证足够的覆盖率。

18、同步时钟、异步时钟

同步时钟:当两个时钟间的相位是固定关系的,则可以称这两个时钟为同步时钟(synchronous clock)。一般同源,如由同一个MMCM or PLL产生的两个时钟可以称为同步时钟。因此可以将主时钟和与之对应的衍生时钟约束成同一个时钟组。

异步时钟:无法判定两个时钟间相位时,则可以称这两个时钟为异步时钟(asynchronous clocks)。两个来自不同晶振的时钟,一定是异步时钟。通常情况下设计中不同的主时钟肯定是异步时钟,因此可以将这两个主时钟及其衍生时钟约束成不同的时钟组。

(4条消息) 同步时钟、异步时钟----概念解析_一点一点的进步的博客-CSDN博客

19、解决建立时间和保持时间不满足的问题

建立时间不满足:

  • 可以通过改进工艺,采取具有更小的Tsetup值的芯片;
  • 采用延迟更低的触发器,降低Tck2q
  • 增大时钟周期Tcycle和时钟偏斜Tskew,但这会降低电路的性能;
  • 尽量减小两个触发器之间的组合逻辑电路的使用,从而降低Tck2q。

保持时间不满足:

  • 理论上,可以增加Tdp和Tck2q来解决,也就是增加触发器的D端到Q端的延时,以及两级触发器之间的组合逻辑电路部分。
  • 目前大部分芯片的Thold时间都可以做到0ns。所以当保持时间不满足时,通常采用的做法是在传输路径上插入buffer,在不影响逻辑功能前提下,只具有增加延迟的作用。
  • 芯片设计全流程知识点总结_第14张图片

尤其注意,保持时间Thold和时钟频率之间是没有关系,故降低时钟速度不能解决保持时间不满足的问题。

如果DFF的Hold时间不满足,通常可以通过增加数据路径延时来解决

如果DFF的Setup时间不满足,通常可以通过增加时钟路径延时来解决

(4条消息) 解决建立时间与保持时间不满足的问题_建立时间不满足_小小verifier的博客-CSDN博客

建立保持时间及违例解决方法 - 知乎 (zhihu.com)

20、同步电路时序典型题

芯片设计全流程知识点总结_第15张图片

 21、芯片的工作条件

芯片的工作条件主要指的是电压、温度、湿度。

对延时、芯片漏电影响因素——PVT指的是工艺、电压、温度。

温度对数字IC芯片阈值电压Vt是有影响的,温度升高引起Vt下降。阈值电压Vt下降使芯片速度加快,但通常温升导致迁移率下降更快,总的影响是温度升高速度变慢

芯片供电电压降低后,芯片会变慢,电压升高时,芯片会变快。

综上所述,工艺(Process)、电压(Voltage)、温度(Temperature)对IC器件功能和性能均有影响,即PVT的影响,芯片厂家一般会进行芯片级的PVT测试。

工艺器件中:AA:有源区;Contact:接触孔;Poly:栅极,接触电阻大;Via:通孔,其中Poly电阻值最大。

(4条消息) IC常用知识4-静态功耗和动态功耗_mu_guang_的博客-CSDN博客

动态功耗和静态功耗 - 知乎 (zhihu.com)

22、可综合语句与不可综合语句

不可综合语句:

(1)initial

只能在test bench中使用,不能综合。

(2)events

event在同步test bench时更有用,不能综合。

(3)real

不支持real数据类型的综合。

(4)time

不支持time数据类型的综合。

(5)force 和release

不支持force和release的综合。

(6)assign 和deassign

不支持对reg 数据类型的assign或deassign进行综合,支持对wire数据类型的assign或deassign进行综合。

(7) fork join
不可综合,可以使用非块语句达到同样的效果。

(8) primitives
支持门级原语的综合,不支持非门级原语的综合。

(9) table
不支持UDP 和table的综合。

(10) 敏感列表里同时带有posedge和negedge
如:always @(posedge clk or negedge clk) begin...end
这个always块不可综合。

(11) 同一个reg变量被多个always块驱动

(12) 延时
以#开头的延时不可综合成硬件电路延时,综合工具会忽略所有延时代码,但不会报错。
如:a=#10 b;
这里的#10是用于仿真时的延时,在综合的时候综合工具会忽略它。也就是说,在综合的时候上式等同于a=b;

(13) 与X、Z的比较
可能会有人喜欢在条件表达式中把数据和X(或Z)进行比较,殊不知这是不可综合的,综合工具同样会忽略。所以要确保信号只有两个状态:0或1。

generate语句可以被综合

模运算可综合,除法不可综合

Verilog中可综合与不可综合的语句 - 知乎 (zhihu.com)

(4条消息) verilog中的可综合和不可综合语句总结_verilog可综合与不可综合_小汪的IC自习室的博客-CSDN博客

23、FPGA内部RAM的单、双、伪双端口之分

单端口:

输入只有一组数据线和一组地址线,只有一个时钟,读写共用地址线。

输出只有一个端口。

所以单端口RAM的读写操作不能同时进行。

伪双端口:

输入有一组数据线,两组地址线,两个时钟。

两个输出端口共用一个输出端口。

所以一个端口只读,另一个端口只写,但写入和读取的时钟可以不同,且位宽比可以不是1:1。即允许写A的同时读B,且速率可以不同。

双端口:

输入有两组地址线和两组数据线,两个时钟。

输出有两个分别的数据线。

所以双口RAM两个端口都分别带有读写端口,可以在没有干扰的情况下进行读写,彼此互不干扰。

24、常见时序、组合逻辑

时序逻辑:计数器、触发器、寄存器、序列信号发生器、有限同步状态机

组合逻辑:编码器、译码器、数据选择器、加法器、表决电路、数据比较器、奇偶校验器

25、!和 ~

用于逻辑的真假判断,结果为单比特,0或1。~ 用于数据按位取反,结果是单个或多个比特

26、低功耗设计方法总结

功耗类型:动态功耗、静态功耗

低功耗技术:

1、静态低功耗技术

        (1)多阈值工艺(Multi-Vt Design)方法

        (2)电源门控(Power Gating)方法

        (3)体偏置(Body Bias)

2、动态低功耗技术

        (1)多电压域(Multi-Voltage Domain)

        (2)预计算

        (3)门控时钟(Clock Gating)

3、门级优化技术

        (1)毛刺的消除

        (2)逻辑级优化

        (3)物理级优化

        (4)控制输入向量

数字IC(SoC)低功耗设计方法总结_soc低功耗设计_wangkai_2019的博客-CSDN博客

27、经典CPU执行阶段

取指令:从主存中取指令到指令寄存器
指令译码:将指令按照指令结构,进行拆分解释,识别区分不同指令类别和各种获取操作数的方法
执行指令:实现指令的功能
访存取数:根据指令访问主存,读取操作数
结果写回:将运算结果写回到某存储器

【计算机系统】CPU指令执行流程与指令流水线原理-阿里云开发者社区 (aliyun.com)

28、芯片设计三个核心指标PPA

性能 功耗 面积
面积换功耗:门控时钟(动态),电源门控、多阈值电压、动态电压(静态)
面积换性能:大容量cache提高cpu的hit几率
功耗换性能:关键路径采用低阈值电压cmos,但静态功耗很大

29、信号的抖动和漂移

ITU-T G.701标准对抖动的定义为:“抖动是指数字信号在短期内重要的瞬时变化相对于理想位置发生的偏移”。. 还有一个跟抖动很类似的概念,即漂移。. 一般情况下,抖动是指发生得比较快的定时偏差,而漂移是指发生的比较慢得定时偏差。ITU把漂移和抖动之间的门限定义为10Hz,偏移频率大于10Hz的叫抖动,小于10Hz的叫做漂移

30、射极跟随器(共集电极放大电路)

射极跟随器也就是共集电极放大电路,其主要作用是将交流电流放大,以提高整个放大电路的带负载能力。实际电路中,一般用作输出级或隔离级

其特点为输入阻抗高,输出阻抗低,因而从信号源索取的电流小而且带负载能力强,所以常用于多级放大电路的输入级和输出级;也可用它连接两电路,减少电路间直接相连所带来的影响,起缓冲作用。

射极跟随器电路虽然没有电压放大作用,但仍有电流放大作用,因而有功率放大作用

射极跟随器电路的主要特点是,输入电阻高,传递信号源信号效率高;输出电阻低,带负载能力强;电压放大倍数小于1而接近于1,且输出电压与输入电压相位相同,具有跟随特性,因而在实用中,广泛用作输出级或中间隔离级。

31、翻转率计算

4bit二进制计数器,其翻转率(Toggle Rate),每时钟都翻转按照100%来算)大约是0.47。

0000(0.25) 0001(0.5) 0010(0.25) 0011(0.75) 0100(0.25) 0101(0.5) 0110(0.15) 0111(1) 1000
sum / 8

32、FPGA的加载方式

        (1)被动串行

        (2)主动串行

        (3)被动并行

        (4)边界扫描(JTAG)

(1条消息) FPGA在线加载模式简介_warmshepherd的博客-CSDN博客

33、功耗分析

数字IC设计——功耗分析_芯片静态功耗和动态功耗_KGback的博客-CSDN博客

34、计算机中加减乘除的实现

计算机中加减乘除的实现_计算机加减乘除_Moua的博客-CSDN博客

35、流水线设计

流水线(pipeline)设计详解+实例:为什么要用流水线?流水线的作用和优缺点?流水线深度越大越好吗?什么时候采用流水线?_流水线设计_weixin_43701504的博客-CSDN博客

36、CDC跨时钟域处理

CDC:跨时钟域处理_杰之行的博客-CSDN博客

37、亚稳态

亚稳态及跨时钟域处理_杰之行的博客-CSDN博客

数电/数字电子技术基础全面知识点及习题总结(看这一篇就够了!!!)_数电知识点整理_徐二苗的博客-CSDN博客

你可能感兴趣的:(笔面试知识点,fpga开发)