英伟达笔试题目ASIC
目前,在集成电路界ASIC被认为是一种为专门目的而设计的集成电路。是指应特定用户要求和特定电子系统的需要而设计、制造的集成电路。下面就由学习啦小编为大家介绍一下英伟达笔试题目-ASIC的文章,欢迎阅读。
英伟达笔试题目-ASIC篇1
1. 一段RTL代码,最终的电路面积不一样,请分析所有的可能。
2. If(a==1’b1)
$display(“breakpoint1”);
Else
$display(“breakpoint2”);
If(b===1’bz)
$display(“breakpoint3”);
Else
$display(“breakpoint4”);
如果a.b的输入都为X,请分析结果是什么。
3. 分析主从端的req/ack信号的timing,给出了R_DATA.ADDR.W_DATA.CTRL.REQ.ACK信号,请画出时序图并分析。
英伟达笔试题目-ASIC篇2
4. 给出一个电路图,分析有几个pipe stages,分别的功能是什么。分析从发送数据到接受数据需要几级pipeline.修改电路减少pipeline但是pipe stages不变。
5. 给出5个人的薪水,其中有三个人的是一样的,请用perl/tcl/c排列出薪水值由大到小,薪水一样的按照姓名的ACSII大小值排列。
英伟达笔试题目-ASIC篇3
6. 将下列的C Code转换为RTL code.
mem[256] = {
0 6 5 5 4 4 4 4 3 3 3 3 3 3 3 3
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
} intarith_c::bin(int bit, intprob) {
int left = 1 + (((high-1)*prob)>>8);
if (bit) {
low +=left;
high -=left;
} else {
high =left;
}
int shift = norm[high];
high <<=shift; count += shift;
return count;
}
RTL code
Module arith(); input clk;
input reset;//negative async reset
input bit;
input [7:0] prob;
input [31:0] count;
Output [31:0] count_new; //this one is the 'return count' in C code reg [31:0] low;//reset to 0;
reg [7:0] high; //reset to 255;
//fill your RTL here;
//…