0
点赞
收藏
分享

微信扫一扫

数字IC面试一

阻塞与非阻塞

阻塞:赋值语句执行后,块才结束。b=a,b在赋值语句执行后是立即改变的

always @(posedge clk)
	begin
		b=a;
		c=b;
	end

阻塞赋值的always模块图
非阻塞:块结束后,赋值语句才执行。b<=a,b的值不是立即改变的

always @(posedge clk)
	begin
		b<=a;
		c<=b;
	end

非阻塞赋值的always模块
深入理解阻塞与非阻塞
阻塞:一个步骤完成赋值运算
阻塞赋值,赋值等式的右边的值在概念上一定要比左边的值先更新。
如果x1=x2;x2=x3
在两个块中,由一个时钟沿驱动,那么在x2处可能会引起竞争。
因为我们不确定是x2=x3先执行还是x1=x2先执行。如果x1=x2先执行,则x2的值未更新
非阻塞赋值(避免竞争冒险):分为两个步骤进行赋值:
1.赋值时刻开始时,计算赋值表达式右边的值
2.赋值时刻结束时,将右边的值赋值给左边
初始化,x1=0,x2=1,x3=2
x1<=x2
x2<=x3
赋值开始:x2=1, x3=2
赋值结束:x1=1, x2=2

建立时间与保持时间

建立时间:在时钟采样沿到达时,数据需要保持稳定的时间
保持时间:在时钟采样沿之后,数据需要保持稳定的时间
为什么会有建立时间和保持时间的要求?
以D触发器为例,在作为接收端时,由于工艺、寄生参数以及触发器结构等原因决定,被采样数据必须有一个稳定区间,保证数据可以正确的被触发器采样。通常把这个要求的稳定区间称为setup-hold window。把setup-hold window与时钟沿对应起来,将setup-hold window分为两个部分:建立时间(setup time)和保持时间(hold time)
建立时间:在时钟沿到达之前,数据保持稳定的时间(为了避免寄存器进入亚稳态,数据要在时钟沿到来之前准备好,但理论上,建立时间为0也符合条件)。建立时间影响系统的性能
保持时间:在时钟沿到达之后,数据保持稳定的时间(保持时间的由来:当时钟沿到来之时,寄存器不会立即反应,而是经过一定的等待时间(hold time)才开始采样,因此,在时钟沿之后的一段时间内(hold time)数据要保持不变)。保持时间决定系统能否正常工作
建立时间的计算公式:max
Tcmax<=clock -Ts-Tclkq+Tskew
Tcmax是寄存器之间组合逻辑的最大延时,Ts为后一级寄存器的建立时间,Tclkq为前一级寄存器的延迟时间,Tskew是时钟偏差。
从计算式可以看出,建立时间违规之后,

  1. 可以通过增大时钟周期(减少频率)来调节
  2. 可以使组合逻辑路径变短,组合逻辑优化和拆分(插入寄存器)
  3. 提高工作电压(电压越高,cell的延迟越小,组合逻辑的延时更短)
  4. 使用阈值更低的cell(阈值越低,cell的延迟越小,组合逻辑的延时更短)
    建立时间违列在最差环境下(低电压,高温度)出现的概率更高。

保持时间的计算公式:min
Tclkq(前一级寄存器的时延,时序路径的起点) + Tcmin>=Th + Tskew
Tcmin是寄存器之间组合逻辑的最小延时,Th是后一级(?)寄存器保持时间
从计算式可以看出,保持时间违规后,

  1. 增加组合逻辑延时(插入buffer)
  2. 重新设计触发器,修改时钟分布
    保持时间违列在最优环境下(高电压,低温度)出现的概率更高

题目:
建立保持时间解决方法一:
升高电压进行测试,如果发现芯片工作,建立时间违规。如果降低电压进行测试,如果发现芯片工作,保持时间违规
方法二:
升高温度进行测试,如果发现芯片工作,保持时间违规。如果降低温度进行测试,如果发现芯片工作,建立时间违规。

备注:电压越高,单元延迟越小;温度越高,单元延迟越大延迟时间

Verilog与软件开发语言的不同

软件开发语言:串行执行语句的集合
Verilog:并发执行(系统中所有部分是同时工作)

组合逻辑与时序逻辑

组合逻辑:组合逻辑的输出只与当前输入有关
时序逻辑:时序逻辑的输出不只与当前输入有关,还与系统的上一状态有关

为什么要有时序逻辑

时序逻辑具有很强的抗干扰能力和滤除毛刺的能力

工艺制程(x nm工艺)

源漏之间的有效沟道长度,也称为特征尺寸(栅极宽度)
优点:有效沟道长度越短,电子从源端到漏端所消耗的时间越短,因此,MOS管的开关速度越快(缩短器件的充放电时间)。且有效沟道长度变短,晶体管的面积变得更小。
缺点:静电功耗增加。沟道尺寸缩小后,PN结的厚度也随之减小,导致器件中的自由电子能更容易的穿越PN结的势垒,造成漏电流的增加。
解决方法:高K栅金属逻辑门:保持栅极电容不变的情况下,增加栅极的物理厚度

注:制程工艺按0.7倍(1/根号2)变化,如1um,0.8um,0.5um,0.35um,0.25um,0.18um,0.13um,90nm,65nm,45nm,32nm,22nm,16nm,10nm,7nm,5nm,3nm….

parameter与define

1.define在不同工具中编译的结果可能不相同。Xilinx中define的作用域是文件内部alter家的define作用域是全局(整个工程)。因为为了防止出现“污染”,在文件的结尾处应该使用undef结束define的作用域
2.parameter在不同工具的编译结果相同,均为文件内部。且具有重载效果,因此推荐使用

复位

复位(电路中只要增加复位就会增加时序收敛的难度,因为复位扇出大)
同步复位:复位信号只有在时钟有效沿到来时才能影响或者复位触发器的状态。复位相对于时钟信号而言不独立
优点:
1.保证电路一定是同步的,有利于时序分析;
2.同步复位只要在时钟沿到来时才有效,所以可以滤除高于时钟频率的毛刺
缺点:复位信号的有效时长必须大于时钟周期,才能真正被系统识别并完成复位任务。

异步复位:复位信号和时钟信号相对独立,复位信号的触发可以在任何时刻。异步复位相对于时钟信号而言是异步时序,因此,综合时需要设置false_path约束
缺点:异步复位相对于时钟而言,是异步时序,最大的问题:如果复位信号状态变化没有满足一定的时序要求,会导致亚稳态。
优点:异步复位信号有效时长只需满足recovery time与removal time的要求即可。不需要持续大于一个时钟周期的长度

同步电路与异步电路

同步逻辑:时钟之间有固定的因果关系
异步逻辑:各个时钟之间没有固定的因果关系
同步电路:各个电路时钟同源
异步电路:各个电路时钟不同源

低功耗设计

前端:
1.门控时钟
2.减少数据翻转
3.数据通路不复位
后端:
1.先进工艺:随着晶体管尺寸的缩小,leakage功耗在所占比例增大;同时,晶体管尺寸越小,漏电功耗越小,因此,工艺的提升对于低功耗的意义很大
2.降低芯片工作电压:动态功耗与电压的平方成正比,因此,降低芯片工作电压,能够有效降低功耗,但是电压越低,cell的延迟增大,因此为了满足功耗和时序的要求,一般设计中采用多电压设计。在关键路径上使用高电压,满足时序的要求;在非关键路径使用低电压,满足低功耗的要求
3.多阈值设计:阈值越高,cell的延迟越大,但是芯片的静态功耗越低。因此为了满足时序和功耗的要求,一般在关键路径采用阈值低的cell,以满足时序的要求;在非关键路径采用阈值高的cell,以满足功耗的要求

什么是高阻态

高阻态为电路的一种输出状态,既不是高电平也不是低电平,高阻态如果传入下一级电路的话,不会对电路造成任何影响,可以理解为断路,不被任何东西所驱动,也不驱动任何东西

时钟设计

时钟偏斜skew:由于线路延时,导致时钟到达各个寄存器的时间不一致称为时钟偏移。时钟偏移与时钟频率无关,与线路延时以及所驱动寄存器的负载电容有关
时钟抖动jitter:实际时钟中,不随时间累积,时而超前,时而滞后的现象称为时钟抖动。时钟抖动也与时钟频率无关

举报

相关推荐

0 条评论