赞
踩
为了能够在做题目的过程中学习到需要的知识,对每道题知识参考或者知识详情都做了详细的说明。方便后续复习。欢迎对文中的解答批评指正。
时间 | 修改内容 |
---|---|
2023.01.27 | 修改 14 题中保持关系的错误 |
startpoint: din_reg (rising edge-triggered flip-flop clocked by CLK),
Endpoint: dout_reg (rising edge-triggered flip-flop clocked by CLK).
Path troup: CLK.
Path Type: max
Point Incr Path
clock CLK (rise edge) 0.00 0.00.
clock network delay(idea1) 0.00 0.00
din_reg/CK (DFFX1) 0.00 0.00
din_reg/Q (DFFX1) 24.86 24.86
U3/X(BUFX1) 7.46 32.31
dout_reg/D (OFFX1) 0.00 32.31
data arrival time 32.31
clock CLK (rise edge) 50.00 50.00
clock network delay (ideal) 0.00 50.00
clock uncertainty -5.00 45.00
dout_reg/CK (DFFX1) 0.00 45.00
library setup time 7.90 37.10
data required time 37.10
data required time 37.10
data arrival time -32.31
slack (MET) 4.78
根据时序报告看时钟周期。
clock CLK (rise edge) 50.00 50.00
方法可以声明为静态。
图片是网上找的。
虚短:虚短是指在分析运算放大器处于线性状态时,可把两输入端视为等电位,这一特性称为虚假短路,简称虛短。显然不能将两输入端真正短路。运放放大倍数很大,而输出电压有限,因此运放差模输入电压差小于1mV,输入端近似等电位,相当于“短路”。开环电压放大倍数越大,输入端电位越接近。
虚断:运放差模输入电阻很大(大于1MΩ),因此流入运放输入端的电路往往小于1uA,远小于输入端外电路的电流。故通常把运放的两输入端视为开路。
同相端接地0V,反相端与同相端虚短,也是0V。
又因为虚断,所以
v
i
−
0
V
10
k
Ω
=
0
V
−
v
o
20
k
Ω
\frac{v_i-0V}{10k\Omega} = \frac{0V-v_o}{20k\Omega}
10kΩvi−0V=20kΩ0V−vo
算得 v o = − 16 V v_o=-16V vo=−16V
由于UOm=±12V,所以是-12V。
建立关系: T1 + Tco + Tcomb + Tsu < T2 + T
保持关系: T1 + Tco + Tcomb > T2 +Thold
则:
Tcomb < T - (T1-T2) - Tco - Tsu
Tcomb > -(T1-T2) -Tco + Thold
选项好像不对?还是说这里的 the output delay of the D flip-flop: Tco 有其他含义?
create_clock [get_ports MST_CLK_PORT] -name MST_CLK -period 1000 -waveform {0 500}
create_generated_clock [get_ports GEN_CLK_PORT] -name GEN_CLK -source [get_ports MST_CLK_PORT] –master_clock MST_CLK -edges {1 3 5}
MST_CLK 的周期是 1000ps。
-edge:作为一个对应源时钟边沿的整数列表,表明从哪个沿产生生成时钟的边沿。时钟沿的个数为奇数个,至少3个。由1开始计数,表示第一个上升沿。
-edges {1 3 5} 则表示主时钟的第 1,3,5个边沿对应生成时钟的边沿。也就是二分频。
参考:《UVM实战》
A: UVM中通过objection机制来控制验证平台的关闭。在每个phase中,UVM会检查是否有objection被提起(raise_objection),如果有,那么等待这个objection被撤销(drop_objection)后停止仿真;如果没有,则马上结束当前phase。
B: 冗余度阈值。UVM通过冗余度级别的设置提高了仿真日志的可读性。在打印信息之前,UVM会比较要显示信息的冗余度级别与默认的冗余度阈值,如果小于等于阈值,就会显示,否则不会显示。默认的冗余度阈值是UVM_MEDIUM,所有低于等于UVM_MEDIUM( 如UVM_LOW)的信息都会被打印出来。
typedef enum
{
UVM_NONE = 0,
UVM_LOW = 100,
UVM_MEDIUM = 200,
UVM_HIGH = 300,
UVM_FULL = 400,
UVM_DEBUG = 500
} uvm_verbosity;
C:
D: 给 abc 对象赋空指针。$cast()
用测试平台覆盖的设计内的语句、块、路径等的百分比就是该测试平台的代码覆盖率。
大多数HDL仿真器支持的代码覆盖率参数包括:
功能覆盖率是和设计意图紧密相连的,有时也被称为“规范覆盖率”,而代码覆盖率则是衡量设计的实现情况。设想某个代码块在设计中被漏掉的情况。代码覆盖率不能发现。
A: 说的是代码bug,不是系统bug。
Synopsys综合工具DC处理流程 :synthesis=translation+mapping+optimization
时钟转换:时钟电平转换。
时钟偏斜:是一个信号时钟沿着同一个时钟网络到达源寄存器和目标寄存器的时间差。
时钟网络延迟:由于时钟布线带来的延迟。
时钟抖动:某一点给定点上时钟周期发生短暂的变化,即相邻两个时钟周期之间存在的时间差值。
网上找的图,不一定对,这个图的的意思是metal pitch是两块金属中间位置的间隔,这里就是线宽加上中间间隔。
低阈值标准逻辑单元速度快、漏电流大。
高阈值标准逻辑单元速度慢、漏电流小。
CMOS 电路功耗类型:
P = 1 2 ⋅ C ⋅ V D D 2 ⋅ f ⋅ N S W ⏟ 翻转功耗 + Q S C ⋅ V D D ⋅ f ⋅ N S W ⏟ 短路功耗 ⏞ 动态功耗 + I l e a k ⋅ V D D ⏟ 漏电流功耗 ⏞ 静态功耗 P=\overbrace{\underbrace{ \frac{1}{2}·C·V^2_{DD}·f·N_{SW}}_{翻转功耗} + \underbrace{Q_{SC}·V_{DD}·f·N_{SW}}_{短路功耗}}^{动态功耗} + \overbrace{\underbrace{I_{leak}·V_{DD}}_{漏电流功耗}}^{静态功耗} P=翻转功耗 21⋅C⋅VDD2⋅f⋅NSW+短路功耗 QSC⋅VDD⋅f⋅NSW 动态功耗+漏电流功耗 Ileak⋅VDD 静态功耗
A: 随着工艺的上升,晶体管阈值降低,漏电流变大,静态功耗变大。而90nm及更高的工艺,静态功耗大于动态功耗。
B:减小
N
S
W
N_{SW}
NSW
C: 增大
V
D
D
V_{DD}
VDD
D: 降低
f
f
f
保持关系:
t
l
a
u
n
c
h
+
t
c
l
k
2
q
+
t
l
o
g
i
c
>
t
c
a
p
t
u
r
e
+
t
h
o
l
d
t_{launch} + t_{clk2q} + t_{logic} > t_{capture} + t_{hold}
tlaunch+tclk2q+tlogic>tcapture+thold
数据路径延迟过小,时钟路径延迟过大。
ECO stage:Engineering Change Order 工程改动要求
分类:
A: 如果是 Logic ECO,可以在数据路径插入延迟单元,增大
t
l
o
g
i
c
t_{logic}
tlogic
B:调整单元大小?不知道什么意思
C: Physical ECO, 增大 t_{capture}
D: 反了
生活中静电放电 ESD (Electrostatic discharge) 的例子:
A: 用滚筒烘干机烘干衣服后能感受到的静电
B:摩擦地毯,然后触摸金属门把手
C: 使用防静电手套接触金属棒
D: 触摸扶梯扶手时的点击
见第13题的公式
D: 温度应该主要影响漏电流从而影响静态功耗。
A: 不清楚VTM的含义
B:
C: 存储单元主要是晶体管吧?这方面不太懂。
D:SNM 静态噪声容限,Static Noise Margin。噪声容限应该是越大越好吧。
无
PC协议是什么?指计算机网络协议?
滤掉50Hz就行。
无图
无
A.
int main(){
int num = 100;
char *p = NULL;
char str[] = "hello";
num = strcpy(p,str);
printf ("%s\n", str);
return 0;
}
B.
int main(){
char *p = NULL;
char str[] = "hello";
sprintf(p, str);
printf("%s\n", p);
return 0;
}
C.
int main() {
int num = 100;
char *p=(char*)malloc(20);
char str[]="hello";
num = strcmp(p,str);
printf("%s\n", p);
free(p);
return 0;
}
D.
int main( ){
char *p=(char*)malloc(20);
char str[]="hello";
sprintf(p,str);
printf("%s\n", p);
free(p);
return 0;
}
A:
strcpy:char *strcpy(char *dst, const char *src);
这里将str复制给p,不过最终输出str。
B:
sprintf: int sprintf( char *buffer, const char *format [, argument,…] );
将字符格式化输出到另一个字符串。
这里指针没有指向已开辟的空间。
C:
strcmp() 函数用于对两个字符串进行比较(区分大小写)。
int strcmp(const char* stri1,const char* str2);
D:
见B
单稳态触发电路 (Monostable Multivibrator, 又称 One-shot) 的工作特性具有以下特点。
TTL: 晶体管-晶体管逻辑(Transistor-Transistor-Logic )电路。
CMOS:互补型金属氧化物半导体(Complementary Metal-Oxide-Semiconductor)电路。
ECL:发射极耦合逻辑(emitter coupled logic)电路。
A: CMOS 电路不使用的输入端不能悬空,会造成逻辑混乱。因为CMOS电路输入阻抗非常高,很容易收到干扰,必须将不用的输入端接地。TTL电路不使用的输入端悬空为高电平。
B: TTL与CMOS电平、驱动能力不匹配,需要接口转换电路。
C: TTL 门电路中,三极管工作千饱和、截止状态。三极管导通时工作在饱和状态,管内的存储电荷限制了电路的工作速度,尽管采取了一系列改进措施,但都不是提高工作速度的根本办法。ECL门电路就是为了满足更高的速度要求而发展起来的一种高速逻辑电路。它采用了高速电流开关型电路,内部三极管工作在放大区或截止区,这就从根本上克服了因饱和而产生的存储电荷对速度的影响。
D: 由于 ECL 门电路的射极耦合电阻较集电极电阻大得多,因而输入阻抗高;输出电路是工作在放大状态的射极跟随器,其输出阻抗很低,因而 ECL 门电路带负载能力强。
不会做,网上找的答案。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。