当前位置:荟萃屋 > 面试 > 面试笔试 > NVIDIA公司ASIC Intern的笔试
手机版

NVIDIA公司ASIC Intern的笔试

来源:荟萃屋 阅读:3.06W 次

昨天去参加nVIDIA公司ASIC Intern的笔试,hr没有告诉我具体地点,一开始走错了地方,去了春晓路122弄34号4号楼,问了下才知道那里是nVIDIA的Physical Design部门,让我去金科路2966号,结果又走了半个多小时才找到,幸好我去的早,要不肯定迟到了,哎,我受伤未愈的脚啊。。。

NVIDIA公司ASIC Intern的笔试

下午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

本文链接:https://www.huicuiwu.com/msfl/bishi/5kkv1.html

Copyright © 2024. 荟萃屋 All right reserved. 浙ICP备20165268号-2

文字美图素材,版权属于原作者。部分文章内容由网友提供推送时因种种原因未能与原作者联系上,若涉及版权问题,敬请原作者联系我们,立即处理。