41:用與非門等設計全加法器?

《數位電子技術基礎》192頁。

數字IC設計職位經典筆試面試100題(41~50)

透過摩根定律化成用與非門實現。

42:A,B,C,D,E進行投票,多數服從少數,輸出是F(也就是如果A,B,C,D,E中1的個數比0 多,那麼F輸出為1,否則F為0),用與非門實現,輸入數目沒有限制?(與非-與非形式)

先畫出卡諾圖來化簡,化成與或形式,再兩次取反便可。

43:畫出一種CMOS的D鎖存器的電路圖和版圖?

數字IC設計職位經典筆試面試100題(41~50)

數字IC設計職位經典筆試面試100題(41~50)

也可以將右圖中的與非門和反相器用CMOS電路畫出來。

44:function 和 task有什麼區別?

function

可以呼叫其他function ,但是不能呼叫其他 task

消耗0模擬時間

不得包含任何延遲和時序控制語句。

必須至少有一個輸入引數。

函式始終返回單個值。他們不能有output或inout引數

task

可以呼叫其他function 和 task

消耗非0模擬時間

可以包含任何延遲和時序控制語句。

可以有零個或多個型別為input,output或inout引數。

output或inout引數。 任務不返回值,但可以透過output或inout引數傳遞多個值

45:latch與register的區別,為什麼現在多用register.行為級描述中latch如何產生的?

latch是電平觸發,register是邊沿觸發,register在同一時鐘邊沿觸發下動作,符合同步電路的設計思想,而latch則屬於非同步電路設計,往往會導致時序分析困難,不適當的應用latch則會大量浪費晶片資源。

46:用D觸發器做個二分頻的電路?畫出邏輯電路?

module div2(clk,rst,clk_out);

input clk,rst;

output reg clk_out;

always@(posedge clk)

begin

if(!rst)

clk_out <=0;

else

clk_out <=~ clk_out;

end

endmodule

現實工程設計中一般不採用這樣的方式來設計,二分頻一般透過DCM來實現。透過DCM得到的分頻訊號沒有相位差。

數字IC設計職位經典筆試面試100題(41~50)

或者是從Q端引出加一個反相器。

47:什麼是狀態圖?

狀態圖是以幾何圖形的方式來描述時序邏輯電路的狀態轉移規律以及輸出與輸入的關係。

48:用你熟悉的設計方式設計一個可預置初值的7進位制迴圈計數器,15進位制的呢?

module counter7(clk,rst,load,data,cout);

input clk,rst,load;

input [2:0] data;

output reg [2:0] cout;

always@(posedge clk)

begin

if(!rst)

cout<=3’d0;

else if(load)

cout<=data;

else if(cout>=3’d6)

cout<=3’d0;

else

cout<=cout+3’d1;

end

endmodule

49:功耗的來源是什麼?

+動態功耗,邏輯轉換導致邏輯閘負載電容充電/放電。

+短路電流,在邏輯轉換期間短路(一段時間)時發生。

+洩露功耗,由洩漏電流引起的

50:用Verilog或VHDL寫一段程式碼,實現消除一個glitch(毛刺)?

將傳輸過來的訊號經過兩級觸發器就可以消除毛刺。(這是我自己採用的方式:這種方式消除毛刺是需要滿足一定條件的,並不能保證一定可以消除)

module(clk,data,q_out)

input clk,data;

output reg q_out;

reg q1;

always@(posedgeclk)

begin

q1<=data;

q_out<=q1;

end

endmodule

最後打個廣告,推薦一下路桑的驗證培訓課程,非常適合應屆畢業生以及材料等專業畢業,但想做IC驗證的同學。

現在報名早鳥班(開班之前,開班時間2021/2/18)即可享受500元優惠,此外開啟下面連結,掃描二維碼聯絡 “路科驗證MOMO”小姐姐,然後報出暗號“

溫戈

”就能獲得額外的

200優惠券

!可以和早鳥班的500優惠疊加!即將開課,不要錯過~