Q54.
Verilog 語言中,下列敘述何者正確?
數位電子 · 甲級 · 數位系統設計 · Q54
難易度分析
2 / 5
此題要求確認Verilog中區塊執行特性、賦值語法屬性及預設類型,皆為基礎概念,無需進一步推理或計算,故評為較易難度。
正確答案:④所有的輸入及輸出均預設為wire 的型別
④ 所有的輸入及輸出均預設為wire 的型別:Verilog 中所有 input 與 output 埠在未明確宣告型別時,預設皆為 wire 型別。若需儲存狀態則必須明確宣告為 reg 型別(如在 always 區塊中被賦值的訊號)。
錯誤選項解析
- ① always 區塊只能執行一次:always 區塊會根據敏感度列表(sensitivity list)的訊號變化重複觸發執行,而非僅執行一次。例如 `always @(posedge clk)` 會在每個時脈上升緣持續執行。
- ② initail 區塊如同無窮迴圈:initial 區塊僅在模擬時間 t=0 時執行一次即結束,常用於初始值設定或測試平台(testbench)的訊號產生,並非無窮迴圈。
- ③ assign out=in1 & in2 屬於行為式(behavioral)的敘述:`assign` 屬於資料流(dataflow)建模中的連續賦值(continuous assignment)語法,而非行為式(behavioral)建模。行為式建模需使用 `always` 或 `initial` 區塊。
Learning Tip
"此題常考 Verilog 三種建模方式的區分:資料流(assign)、行為式(always/initial)與結構式(gate instantiation)。易混淆點為 `initial` 僅執行一次而 `always` 持續循環;另外需注意 wire 為預設型別,但在 `always` 區塊左側被賦值的訊號必須宣告為 reg,即使合成後仍是組合邏輯亦然。"
學員答題分佈
①always 區塊只能執行一次0%
②initail 區塊如同無窮迴圈0%
③assign out=in1 & in2 屬於行為式(behavioral)的敘述0%
④所有的輸入及輸出均預設為wire 的型別0%
此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!