为了能够在做题目的过程中学习到需要的知识,对每道题知识参考或者知识详情都做了详细的说明。方便后续复习。欢迎对文中的解答批评指正。
单选题(共26题,每题2分,共52分)
语法结构相似 和 源于 区别还是挺大的。
8bit * 2^13 depth / 8(bit/Byte) = 8192Byte = 8KB

A:2.5G/2.75G
C: 4G
D: 无线局域网技术
A:mkdir: make directory
B:rm:remove
C: mv: move
D: del: 好像没这个命令
repeat: 循环语句。按固定次数执行一条语句。如果表达式的计算结果为未知或高阻抗,则应将其视为零,并且不应执行任何语句。
8’b10011100 * 0.01V = 1.56V
always 块还是可以包含并行块 fork…join 的,虽然不可综合。
A: 脉冲同步器,也是有一定适用条件的,输入脉冲最小间隔为两个同步器时钟周期,如果输入脉冲间隔过近导致同步器不能检测到每个脉冲。相对D来说还是更通用一些。
B:FIFO,异步FIFO处理是较为通用的。
C: 握手协议。
D:打两拍采样的方式只适用于慢到快。
未显示定义的信号默认为 单bit wire。
D锁存器中逻辑门(与非门或者非门)的个数?

保持关系:
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
参考《Static timing analysis for nanometer designs_ a practical approach》2.10 Operating Conditions
对于电压,升压电流大 时延小,降压电流小 时延大。
setup问题是时序关键路径总时延过大,而hold问题则是总时延过小。
A、B: 从上述保持关系可知,与时钟频率无关
C、D: 对hold有帮助,环境对于专用时钟网络影响不大,而需要逻辑时延增大,所以需要降压。
工程变更(Engineering Change Order):
在芯片设计中,ECO是在经过自动化工具处理后直接将逻辑变更插入到网表(netlist)的过程。ECO通常在制作芯片掩膜之前完成,以避免和节省完全ASIC逻辑综合、技术映射、布局、布线、布局提取和时序验证的时间。EDA工具通常提供促成此种类型ECO的增量操作模式。
ASIC设计中最常见的ECO是门级网表ECO(gate-level netlist ECO)。在此流程中,工程师手动编辑门级网表,而不是重新运行逻辑综合。
行为级作为RTL的更高层次抽象,主要描述的是算法层面的内容。
STA很少在RTL级别上完成,因为在这一层级上,更重要的是验证设计的功能,而不是时序。此外,并非所有的时间信息都可用,因为块的描述是在行为层面上。一旦RTL级的设计被综合到门级,就可以使用STA验证设计的时序。STA也可以在执行逻辑优化之前运行-目标是确定最差或关键的时序路径。在逻辑优化之后,可以重新运行STA,以查看是否仍有需要优化的故障路径,或者确定关键路径。

此处的 & 作为 缩减运算符,一元缩减运算符对单个操作数进行按位运算,产生单位结果。
fork
begin #1; end
begin #2; end
join_none
$display($time);
上述代码中需要等待多长时间?
time unit = 1ns
Fork…join 控制选项:
| 选项 | 描述 |
|---|---|
| join | 父进程会一直阻塞,直到这个fork派生的所有进程完成为止。 |
| join_any | 父进程会一直阻塞下去,直到这个fork派生的任何一个进程完成为止。 |
| join_none | 父进程继续与fork派生的所有进程并发执行。在父线程执行阻塞语句之前,派生的进程不会开始执行。 |
所以父进程下的 $display 与 fork中的派生进程 begin…end 并发执行。等待2ns后,第二个begin…end进程执行完成。
注意 $display 输出的是0;
Verilog行为模型包含过程语句,用于控制模拟和操作前面描述的数据类型的变量。这些语句包含在过程中。每个过程都有一个与其相关联的活动流。
forever 作为一个语句,必须在过程块中。
反相器 CMOS制造(Fabrication)与布局(Layout)
衬底必须被绑定到一个低电位,以避免p型衬底和n+ nMOS源或漏之间的p-n结的正向偏置。
同样地,n阱必须与一个高电位相连接。通过添加大量掺杂的衬底和阱 contact 或 tap ,将GND和VDD分别连接到衬底和n阱。
PMOS的衬底是n阱。
除了普通的转换外,有一种简便的方法就是先移位后转换。
0.8125 * 2^4 = 13 = 4’b1101
5个数,向上取整为8 ,需要拓展 3bit
无
组合逻辑电路:任何时刻产生的稳定输出信号都仅取决于该时刻电路的输入信号。
时序逻辑电路:任何时刻的输出稳态值,不仅与该时刻的输入信号有关,而且与该时刻以前的输入信号也有关,即时序逻辑电路有记忆功能。
判断的时候看有没有时序器件就行。
以Vivado synthesis支持的Verilog结构来学习 Verilog语句可综合性 7 Verilog 保留的关键词
Auto place and route 自动布局布线,是数字后端版图实现的主要流程。
EDA设计工具进行布局布线和物理验证,最终产生供制造用的图形数据系统(Graphic Data System ,GDSII)
DEF(design exchange format),叫设计交换格式,它描述的是实际的设计,对库单元及它们的位置和连接关系进⾏了列表,使⽤DEF来在不同的设计系统间传
递设计,同时⼜可以保持设计的内容不变。DEF与只传递⼏何信息的GDSII不⼀样。它还给出了器件的物理位置关系和时序限制等信息。
SPEF(standard parasitic exchange format),叫标准寄⽣交换格式,属于IEEE国际标准⽂件格式。是从⽹表中提取出来的表⽰RC值信息,是在提取⼯具与时序验证⼯具之间传递RC信息的⽂件格式。
从选项看,校验位的宽度为3bit。
生成多项式是G(X)对应除数4’b1011,原始报文 模2除 生成多项式,得到的余数就是校验码。

得到计算校验结果为3’b011
所以编码后为 7’b1010 011
AXI4和AXI4 Lite都包含五个不同的通道:
多选题(共15题,共48分)
A: 分段传输,split transcation 是指slave不能立即完成传输,slave先通知arbiter停止此次传输,直到其决定能完成此次传输时再通知arbiter可以恢复传输。
B: 突发传输,burst transfer 是指master连续发送几个传输,数目的个数由控制信号决定。
C: 非3态实现
D: 无序的数据传输。
《IHI0033C_amba_ahb_protocol_spec》 Glossary 描述了AMBA AHB文档中使用的一些技术术语:AMBA AHB支持高时钟频率,单时钟边缘操作,突发传输和非三态实现。它可以支持广泛的数据总线配置。
A:暂时存在疑问
B: AXI和AHB都支持突发传输,AHB协议需要一次突发传输的所有地址,AXI只需要一次突发的首地址。APB不支持突发传输
C: 暂时存在疑问
D: AXI 支持 Out-of-order transaction。不是通过事务顺序传输,而是通过ID传输。
无
组合逻辑电路:任何时刻产生的稳定输出信号都仅取决于该时刻电路的输入信号。
时序逻辑电路:任何时刻的输出稳态值,不仅与该时刻的输入信号有关,而且与该时刻以前的输入信号也有关,即时序逻辑电路有记忆功能。
同步时序电路:驱动各个时序单元(例如寄存器、RAM甚至锁存器等)进行寄存动作的时钟信号处于同一时钟域。
异步时序电路:如果时序逻辑电路存在至少一个这样的组合逻辑功能块——它的输入、输出端口不全来自同一时钟域,那么该电路为异步时序逻辑电路。
时钟域取决于时钟源点。
同一个PLL产生的相位和倍数可控的不同时钟是同步时钟。
不同PLL即使产生同频时钟也是异步时钟。因为相位关系无法控制。
简单理解就是完成单向的数据传输时只有一根数据线路。
AXI,数据总线,可以是8、16、32、64、128、256、512或1024位宽。
安全数字输入输出 SDIO(Secure Digital Input and Output),SDIO是可以有多跟数据线的,一般是4bit,比如我们的SD卡。
通用异步收发器 UART(Universal Asynchronous Receiver/Transmitter)
集成电路总线 IIC(Inter-Integrated Circuit)
流水线,并行化是典型的面积换速度。
资源共享和串行化设计是速度换面积。
Verilog-2005
编程语言接口 Programming language interface (PLI)
直接编程接口 Direct programming interface (DPI):这是SystemVerilog-2005引入的。
验证程序接口 Verification Procedural Interface (VPI)
编程语言接口(PLI)是一种过程接口,允许外语函数访问SystemVerilog仿真的内部数据结构。SystemVerilog验证程序接口(VPI)是PLI的一部分。VPI提供了一个C语言函数库和一种将外语函数与SystemVerilog用户定义的系统任务和系统函数名称关联的机制。
UPF的全称是统一功耗格式(Unified Power Format),其主要是由Synopsys推出的专门用于描述电路电源功耗意图的一种语言标准,它是Tcl语言的扩展,并且现在被三大EDA厂商支持。
UPF描述了芯片电源管理的供电网络、isolation cell、level shifter的插入,电源开关的各个方面,它指定如何设计电源网络的一些行为。
不太会,网上找的。
无
深扒“亚稳态”的底裤,从MOS管到CMOS门电路,再到亚稳态分析
MTBF用以下公式和参数计算:
M
T
B
F
=
e
t
M
E
T
/
C
2
C
1
f
C
L
K
f
D
A
T
A
MTBF=\frac{e^{t_{MET}/C_2}}{C_1f_{CLK}f_{DATA}}
MTBF=C1fCLKfDATAetMET/C2
C1和C2常数取决于器件过程和操作条件。
f
C
L
K
f_{CLK}
fCLK和
f
D
A
T
A
f_{DATA}
fDATA参数取决于设计规范:
f
C
L
K
f_{CLK}
fCLK是接收异步信号的时钟域的时钟频率,
f
D
A
T
A
f_{DATA}
fDATA是异步输入数据信号的切换频率。更快的时钟频率和更快的切换数据会减少(或恶化)MTBF。
t
M
E
T
t_{MET}
tMET参数是可获得的亚稳稳定时间,或超出寄存器的
t
C
O
t_{CO}
tCO可用的时间裕量,用于将潜在的亚稳信号解析为一个已知值。同步链的
t
M
E
T
t_{MET}
tMET是链中每个寄存器的输出时序松弛的总和。
总体设计的MTBF可以通过设计中各同步器链的MTBF来确定。同步器的故障率为1/MTBF,整个设计的故障率是通过添加每个同步器链的故障率来计算的,如下所示:
故
障
率
d
e
s
i
g
n
=
1
M
T
B
F
d
e
s
i
g
n
=
∑
i
=
1
寄
存
器
数
1
M
T
B
F
i
故障率_{design}=\frac{1}{MTBF_{design}}=\sum_{i=1}^{寄存器数}\frac{1}{MTBF_i}
故障率design=MTBFdesign1=i=1∑寄存器数MTBFi1
A:
让建立关系更严格,增加亚稳态发生的概率。
B:
松弛建立关系,减小亚稳态发生的概率。
C:
增加数据翻转率增加,在一定概率下,就增加了亚稳态次数。
D:
松弛时序关系
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:
V
D
D
V_{DD}
VDD减小,动态功耗减小。
B: 增加负载电容,增加动态功耗。
C: 面积减小,单周期内翻转晶体管数目减小,动态功耗减小。
用测试平台覆盖的设计内的语句、块、路径等的百分比就是该测试平台的代码覆盖率。
大多数HDL仿真器支持的代码覆盖率参数包括:
功能覆盖率是和设计意图紧密相连的,有时也被称为“规范覆盖率”,而代码覆盖率则是衡量设计的实现情况。设想某个代码块在设计中被漏掉的情况。代码覆盖率不能发现。
我们知道建立关系:
t
l
a
u
n
c
h
+
t
c
l
k
2
q
+
t
l
o
g
i
c
+
t
s
e
t
u
p
<
t
c
a
p
t
u
r
e
+
t
c
y
c
l
e
t_{launch} + t_{clk2q} + t_{logic} + t_{setup}< t_{capture} + t_{cycle}
tlaunch+tclk2q+tlogic+tsetup<tcapture+tcycle
保持关系:
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
hold 违例因为 数据通路延时 过大,或者说 时钟通路延时过小。
hold 违例因为 数据通路延时 过小,或者说 时钟通路延时过大。
功能覆盖率是和设计意图紧密相连的,有时也被称为“规范覆盖率”,而代码覆盖率则是衡量设计的实现情况。设想某个代码块在设计中被漏掉的情况。代码覆盖率不能发现。
SystemVerilog-2005 17. Assertions
有两种断言:并发的(concurrent )和即时的(immediate)
在低功耗多电压技术包括MSV, DVFS, AVFS和电源门控Power Gating技术中,为了正确的实现多电压或者某个电压域关断,需要特殊的单元,主要包括:
这部分不太会,网上找的。
流水线使用存储器件将时钟周期内关键路径(最大组合延迟的路径)分割开。这减少了关键路径上各阶段延迟并使电路能以更高频率工作。流水线电路增加了各时钟阶段的计算能力,但是由于使用了存储器单元也增加了负载。
流水线可以增加吞吐率,但是在使用流水线时会引入额外的开销,如时钟偏移和寄存器延迟。这些开销限制了所能达到的加速值。
非流水线处理ABC 3个任务:
|---A---|
|---B---|
|---C---|
流水线处理ABC 3个任务:
|---A---|
|---B---|
|---C---|
A:对
B: 单个任务的latency实际只会因为增加寄存器而增加。
C: 通过流水线分割关键路径而提高系统的时钟频率。
D:对