NVIDIA公司ASIC Intern的筆試
昨天去參加nVIDIA公司ASIC Intern的筆試,hr沒有告訴我具體地點(diǎn),一開始走錯了地方,去了春曉路122弄34號4號樓,問了下才知道那里是nVIDIA的Physical Design部門,讓我去金科路2966號,結(jié)果又走了半個多小時(shí)才找到,幸好我去的早,要不肯定遲到了,哎,我受傷未愈的腳啊。。。
下午3點(diǎn)準(zhǔn)時(shí)開始,題量不大,一共6道,也不是很難,第一題是時(shí)序問題,第二題寫Verilog代碼實(shí)現(xiàn)同步復(fù)位和異步復(fù)位的觸發(fā)器,后面詳細(xì)說它,第三題畫狀態(tài)圖,第四題估算計(jì)算結(jié)果所需的最小位寬,第五題給條件求FIFO所需的最小長度,第六題是4個人過橋問題,所需最短的時(shí)間,很常見了,可我還是想了好一會。
現(xiàn)在還讓我很郁悶的事情是,居然第二題做錯了,越想越郁悶,這個錯誤將讓我錯失這次我很看重的機(jī)會,傷心死了。。。
我居然將同步復(fù)位的`Flip-flop寫成異步復(fù)位的Flip-flop,然后你可想而知,寫異步復(fù)位的Flip-flop時(shí)我就不知道怎么寫了,寫成
assign = (!Reset)? 0: data_input;
我當(dāng)時(shí)也很納悶,但我的確不知道應(yīng)該怎么寫,我的理解中同步電路是時(shí)鐘沿觸發(fā),異步電路是電平觸發(fā),而平時(shí)設(shè)計(jì)中都直接用異步復(fù)位的Flip-flop,還以為那就是同步復(fù)位的Flip-flop(當(dāng)然這些都是我今天查閱一本書后才知道自己錯在哪里的)。決定在這里完整的寫一下這兩個模塊,利己利人。
// 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
【NVIDIA公司ASIC Intern的筆試】相關(guān)文章:
公司招聘筆試經(jīng)驗(yàn)08-30
某公司部分筆試題12-05
IBM公司筆試IQ題11-25
鐵塔公司筆試試題07-05
上海某公司的ASP筆試題01-13
各大知名IT公司筆試題目01-15
某公司面試筆試經(jīng)驗(yàn)12-06