打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
IC攻城狮求职宝典 01 2018年IC设计企业 笔试题 01 英伟达(Nvidia)
笔试真题:
1、  什么是建立时间、保持时间,如果setup timeviolation或者holdtime violation 应该怎么做?(10分)
答案:
建立时间:是指在触发器的时钟信号采样边沿到来之前,数据保持稳定不变的时间。
保持时间:是指在触发器的时钟信号采样边沿到来之后,数据保持稳定不变的时间。
图一 D触发器的建立时间和保持时间的定义
Timing path 时序路径分析方法:
分析时序路径时常见的变量:
Tclk     = 时钟周期,是可变的,比如1KHz ~ 5.0GHz
Tcq      = 触发器的时钟端C到输出端Q的延时,是器件属性,是固定不变的
Tcomb  = 两个触发器之间组合电路的延时,是可变的,可以通过设计进行优化逻辑
Tsetup  = 建立时间是触发器的固有属性,是定值
Thold   = 保持时间是触发器的固有属性,是定值
Tskew   = 相邻两个触发器之间的时钟的偏移,是可变的
图二 setup和hold timing path的分析
Setup time violation:
建立时间在静态时序分析时必须满足以下条件:
Tclk > Tcq+ Tcomb + Tsetup - Tskew
如果setuptime violation, 则上述公式不成立。
Setup time violation solution:调整上述公式中的变量:Tclk, Tcomb,Tskew
l 增大Tclk
n 就是降低数字系统的工作频率 (很多产品分等级,是根据频率来分的;品质好的芯片,频率高,价格贵;品质差的芯片,降频,贱卖)
l 减少Tcomb:
n 从数字电路逻辑功能设计的角度看
u 在组合电路之间插入寄存器,增加流水线(pipeline);
u 在不改变逻辑功能的前提下,对组合逻辑电路进行优化;
u 减少扇出或者负载;
n 从数字物理版图实现的角度看
u 更换速度更快的标准单元(HVT– High Voltage Threshold, SVT – Standard Voltage Threshold, LVT- Low VoltageThreshold)
u 更换驱动能力更强的标准单元(X2, X4)
u 跟换阻值更低的金属层以减少标准单元电路的负载和金属线网的延迟
l 增加Tskew
n 在时钟路径上,插入buffer,增加时钟路径的延迟,但是不能影响hold timing。
Hold time violation:
保持时间在静态时序分析时必须满足以下条件:
Thold < Tcq + Tcomb - Tskew
如果hold timeviolation, 则上述公式不成立。
Hold time violation solution:
l 增大Tcomb
n 在组合电路的数据传输路径上,插入延迟单元(buffer),增加组合逻辑延迟;但是当组合逻辑延时增加时,setup time可能会出现违例。这时候就需要做平衡(balance)。由此可以看出setup和holdtime是相互制约的。
l 减小Tskew
n 时钟树调整,做好clocktree balance,hold就容易收敛。因为hold time与时钟周期没有关系。
总结:setup和hold是相互制约的。修复hold之后,setup的裕量就会变小或者变成负值。因此时钟频率越高,setup和hold相互制约越严重,甚至会出现修复setup之后,hold就会违例,或者修复hold之后,setup就会违例的现象。
思考题1:为什么触发器会存在setup和hold time的要求?
提示:研究触发器的结构。数字电路基本结构。
思考题2:当setup和hold time violation发生时,会导致什么后果?
提示:亚稳态
思考题3: 什么是亚稳态?如何在异步电路设计中解决亚稳态的问题?
提示:跨时钟域时,一个信号如何处理,多根信号如何处理,大量数据传输如何处理等常见的异步电路设计方法
更详细内容可参加视频课程:http://www.eecourse.com/course/103
2、
答案:
题目分析:这道题目主要考察的是带有异步置位的触发器和逻辑与的布尔逻辑,然后通过绘制时序波形图的方式显示布尔逻辑。
思考题:如果把异步置位的触发器,替换成异步复位的触发器后,时序图应该是怎样的?
3、
答案:
题目分析:这道题目,主要考察数字电路中的低功耗设计中的clock gating。
思考题:savepower的时候,需要关注那些power消耗:动态功耗、静态功耗等,降低功耗的常见方法有哪些?
4、
答案:FIFO中,重点是读写的条件以及对FIFO的空满状态的判断。针对异步FIFO,还需要使用格雷码。
module gray( b_in,g_out);
input   [4:0] b_in;
output  [4:0] g_out;
wire    [4:0] g_out;
assign     g_out[4]=b_in[4];
assign     g_out[3]=b_in[3];
assign     g_out[2]=b_in[3]^b_in[2];
assign     g_out[1]=b_in[2]^b_in[1];
assign     g_out[0]=b_in[1]^b_in[0];
endmodule
module fifo( rclk,wclk,rst,wr_en,rd_en,data_in,data_out,empty,full ,halffull);
input   rclk,wclk,rst,wr_en,rd_en;
input   [7:0] data_in;
output      empty,full, halffull;
output  [7:0] data_out;
reg         halffull;
reg     [7:0] mem[15:0]; //16x8 RAM
reg     [7:0] data_out;
wire    [3:0] w_addr,r_addr; //aceess addr
wire    [4:0] w_addr_b,r_addr_b;  //gray addr
reg     [4:0] w_addr_a,r_addr_a;  //binary addr
reg     [4:0] w_addr_r,r_addr_w;  //sample addr
gray g1( .b_in(w_addr_a),.g_out(w_addr_b));
gray g2( .b_in(r_addr_a),.g_out(r_addr_b));
assign w_addr = w_addr_b[3:0];
assign r_addr = r_addr_b[3:0];
always@( posedge rclk or negedge rst) begin
if(!rst) begin
r_addr_a<=5'b0;
r_addr_w<=5'b0;
end
else begin
r_addr_w <= w_addr_b; //sample write_addr
if( rd_en==1 && empty==0)begin
data_out <= mem[r_addr];
r_addr_a <= r_addr_a+1;
end
end
end
always@( posedge wclk or negedge rst) begin
if(!rst) begin
w_addr_a <= 5'b0;
w_addr_r <= 5'b0;
end
else begin
w_addr_r <= r_addr_b; //sample read_addr
if( wr_en==1 && full==0) begin
mem[w_addr] <= data_in;
w_addr_a <= w_addr_a + 1;
end
end
end
assign empty = (r_addr_b == r_addr_w) ? 1 : 0;
assign full = (w_addr_b[4] != w_addr_r[4] && w_addr_b[3:0] == w_addr_r[3:0]) ? 1 : 0;
endmodule
思考题:在异步FIFO设计中,为什么使用格雷码?
十进制数
二进制数
格雷码
十进制数
二进制数
格雷码
0
0000
0000
8
1000
1100
1
0001
0001
9
1001
1101
2
0010
0011
10
1010
1111
3
0011
0010
11
1011
1110
4
0100
0110
12
1100
1010
5
0101
0111
13
1101
1011
6
0110
0101
14
1110
1001
7
0111
0100
15
1111
1000
5、
答案:
题目分析: 卡诺图化简,布尔逻辑优化
卡诺图:设:A=eco_en,B=eco_mask, C=en, D=new_en
BC
A
00
01
11
10
0
0
1
1
0
1
0
1
0
1
化简卡诺图
D=B一C+A一C+ABC一=(A一+B一)C+ABC一=+
电路图
思考题1:为什么使用的两输入的与非门进行优化?
思考题2:异或门使用2输入与非门的电路符号图是怎样的?
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
静态时序分析的理解(建立时间、保持时间)
setup and hold up time[from others]
Setup和Hold(Max/Min)分析
有关建立时间和保持时间
面试又被BS?数字后端面试要注意这些坑!
建立时间和保持时间(1)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服