NVIDIA笔试
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
NVIDIA的笔试和面试
NVIDIA的笔试和面试是我参加过的感觉最严格的。
NVIDIA上海研发中心,PHYSICAL DESIGN ENGINEER这个职位
笔试:
笔试分两部分第一部分为技术测试,第二部分为英语
第一部分约10题(凭记忆写吧),时间30分钟(根本来不及做)
1.简单c代码,写输出结果
延时问题,比如1000um为50ps, 2000um延迟是多少,10个1000um串连是多少,中间
加上BUFFER又是多少?
导线的延时与长度成平方关系。
3.RC树延迟问题,给出R,C的值和驱动电平,求RC电路的延时,两级RC电路的延时(集总RC模型?会算的。
注意ln(9)=2.2,ln(2)=0.69)
Elmore延时公式的理解:把所有的电容影响加起来。
电容相对应的电阻为共同路径的电阻。
图中的i点的时间常数为多少?延时为多少?
从源出发,一个电容一个电容地看过去。
C1的影响:C1的节点为1,与节点i的共同路径是R1,故其影响为C1*R1
C2的影响:C2的节点为2,与节点i的共同路径是R1,故其影响为C2*R1
C3的影响:C3的节点为3,与节点i的共同路径是R1+R3,故其影响为C3(R1+R3) C4的影响:C4的节点为4,与节点i的共同路径是R1+R3,故其影响为C4(R1+R3) Ci的影响:Ci的节点为i,其路径电阻为R1+R3+Ri,故其影响为Ci(R1+R3+Ri) 综上,i点的时间常数为:
4.画CMOS反向器结构图标出个部分区域如N+,N-,Metal,Channel, Nwell,substrate, poly-silicon etc.
5.画与非门电路和layout,棍图
6.两个D触发器和一级buffer组成同步电路给个若干时序数据比如 buffer延时,tsetup ,thold,组合逻辑延时,时钟SKEW。
算总延时,以及和时钟频率的关系,需要满足的条件 (setup,hold) 注意建立时间用max算,保持时间用min算。
不要混合使用。
7,两个管子串联,vdd接上管g,d和下管g ,下管s接地,上管s和下管d
相连作输出vout,求vout
8.3个反相器串联,给出最前面一个和最后面一个反相器P管和N管的宽长比,问中间的反向器P管和N管的宽长比,使得整个电路延迟最小
反相器链的两种题型:
N,
1.级数固定,求扇出比,则扇出比为f=√C L
C1
N。
2.扇出比固定,求级数。
则级数为
3.6=√C L
C1
事实上,第2种情况的常见问法是:扇出比未知,级数也未知。
扇出比我们需要知道最优比是3.6.这也就相当于扇出比已知了。
9.两个电容并联,给出C值,一个电容给另外一个放电,问最终电容上的电压。
第二部分,20分钟
英文作文(200字),你认为从项目中学习知识重要还是从书本学习重要?
面试:
面试分为两轮,第一轮1小时,全英文;第二轮45分钟,中英文掺杂。
第一轮一上来先是随便聊聊,聊了学校,专业,项目,兴趣爱好。
然后问我在项目中遇到的最大的困难是什么,是怎么解决的?
再然后问了我两个智力题。
接着打开一张板图,问了我有关floorplan和partitioning,timing closure,low-power
design之类的问题,
然后又问了我一个智力题,
最后问我有什么问题要问他。
第二轮一上来也是随便聊天,聊了学校,导师,实习情况等
然后进入正题,问了我有关wire-load model,manhattan routing,STA分析,PT的用法之
类的问题。
接着问了两个初中平面几何的证明题,
然后换成英语,问了我的兴趣爱好,以及对NVIDIA的感觉。
最后问我有什么问题要问他。
1、3个D锁存器组成的反馈回路,给了时钟,画出输出波形。
2、3.3V,5V,12V三个输入,都有输入则输出12V,否则。
用晶体管搭。
3、连题都没看明白,据AC说是结型场效应管求Vt
4、给输入电压波形,画RC输出波形
5、C,数组的2分搜索,判定输出值
6、什么是Graphiy Card
7、什么是ChipSet
7. MOS and Assembly Language 编写A+B=Y
1、名词释义:EMI、PCB、crosstalk、overshoot、DDR SDRAM;
2、数制转换:DC(HEX)=__(DEC)=__(BIN);
3、给个BJT的图要求标出e、b、c还有判断pnp/npn;
4、RCL串联谐振的频率f=__和Q=__;
9、给逻辑图写表达式并化简,国际符号,我看那个图就是AB、CD、EF各接一个与门,再三个与门出来接一个或门出来是G,我就写
G=AB+CD+EF,化简????
11、用组合逻辑门设计一个二进的平方电路,输入S2S1,出来是
F3F2F1F0,写出真值表,表达式和画逻辑图;
1.算二进制加减法
2.设计一个全加器,用a)multiplexer 8input,2bit(研究到最后我也没想起来这个东东到底是虾么东西)b)用decoder(译码器)
3.用与非门画个电路图
4.两个D触发器连在一起,求一个时序电路的功能。
我画出状态机后就写上去了,这块有的地方印象有点模糊了,所以画完状态机,觉得写的功能可能有问题,但是已经没时间改了
5.一个D触发器,也是要写功能,功能么就是按照clock信号来给输入信号采样。
这个我觉得比较简单,但是不知道是不是越简单陷阱就越多?还是里面也许潜藏着竞争冒险?我是看了半天也没看出来。
5,数据发送端:100clock中工作80clock,休息20clock, 但这80是random分布的。
(1b
it/1clock).
数据接收端:每10clock中前8clock 工作,后2clock休息。
问:作为中间的一个缓冲器,其容量应该为多大?
6 一个格子图,大概如下:
b w b w b
w b w b w
b w b w b
w b w b w
b w b w b
(1)有多少个正方形?
(2)有多少个方形(包括长方形,正方形)?
(3)给你一个点,你如何判断它是黑色还是白色?写c代码。
以左下角为原点。
注:b表示黑色,w表示白色。
(上面所有小方格都是正方形:)。
5、四个人晚上过桥,分别要1,2,5,10分钟,只有一个手电,桥只能同时过两个人,最少需要多久才能过桥?
笔试的题目,刚开始就是几个英文的oq,什么你的个性一类,为何选择这个职位等等,唉,俺比较懒,写的不多,后来证明这是错误的,也是俺被bs的原因。
后面有几个技术的题,asic的设计流程,cpu的结构图(又考这个,当时就无语),还有一个cmos反相器,都不难,但我边上那个金融的小孩,一看就接着交卷走了。
答完也没啥感觉,nvidia特别着急,下午就发面试通知,第二天就面试,估计是想省翠微饭店的房钱。
唉,俺那个去凑热闹的哥们接到面试通知了,估计是我的oq写的太少,被默拒了。
早上笔试不顺,上来就给我了我一份硬件的试卷,才发现我申请错职位了,于是申请换了一份试卷还是硬件的,只好硬着头皮做下去,实在对硬件头大,就和旁边和我一样倒霉的北理mm聊天了,半个小时过后,交卷想回去了,
还好一名NVIDIA考官帮我又换了一份c语言题重新作,可惜时间不够,有三四道大题没做,肯定没戏了。
听说牛人在下午就收到面试通知了,看来被鄙视了。
IBM的笔试也答的不怎么好,估计也over了。
记了一些题(都是大题,编程题):
1 用链表实现队列,
2 实现最快算法n*15
3 判断一个数是否是2的n次方
4 分配内存void* mem(int32_t size, int32_t assignment)
5 两个binary search tree 合并算法
6 坐标系转换矩阵
7 计算cpu和存储时间等
下午3点准时开始,题量不大,一共6道,也不是很难,第一题是时序问题,第二题写Verilog代码实现同步复位和异步复位的触发器,后面详细说它,第三题画状态图,第四题估算计算结果所需的最小位宽,第五题给条件求FIFO 所需的最小长度,第六题是4个人过桥问题,所需最短的时间,很常见了,可我还是想了好一会。
现在还让我很郁闷的事情是,居然第二题做错了,越想越郁闷,这个错误将让我错失这次我很看重的机会,伤心死了。
我居然将同步复位的Flip-flop写成异步复位的Flip-flop,然后你可想而知,写异步复位的Flip-flop时我就不知道怎么写了,写成
assign = (!Reset) ? 0 : data_input;
我当时也很纳闷,但我的确不知道应该怎么写,我的理解中同步电路是时钟沿触发,异步电路是电平触发,而平时设计中都直接用异步复位的
Flip-flop,还以为那就是同步复位的Flip-flop(当然这些都是我今天查阅一本书后才知道自己错在哪里的)。
决定在这里完整的写一下这两个模块,利己利人。
// synchronous reset flip-flop
module syn_flipflop(clk, Reset, data_input, data_output);
input clk, Reset, data_input;
output reg data_output;
always @(posedge clk)
begin
if(!Reset)
data_output <= 0;
else
data_output <= data_input;
end
endmodule
//asynchronous reset flip-flop
module asyn_flipflop(clk, Reset, data_input, data_output);
input clk, Reset, data_input;
output reg data_output;
always @(posedge clk or negedge Reset)
begin
if(!Reset)
data_output <= 0;
else
data_output <= data_input; end
endmodule
1。
计算n! 后面有多少个02。
反转单链表
3。
求输出
class Base {
public:
virtual void Foo(int i)
{
cout << i;
}
void Bar(Base& b)
{
b.Foo(1);
Foo(2);
}
};
class Derived: public Base {
public:
void Foo(int j)
{
Base::Foo(j+1);
}
};
int main()
{
Base b;
Derived d;
b.Bar(d);
d.Bar(b);
}
4. 考了些C++概念
(a)pure virtual function
(b)struct和class区别
(c)static含义
(d)overload和override区别
5. f(x)=a0+a1*x+a2*x^2+...+aN*x^N最少需要多少次加法和多少次乘法
6。
关于cache的。
不懂
7。
求空间点到直线距离。