硬體描述語言與驗證
在Verilog中寫「always @(*)」的意義,下列何者正確?
- A表示每當時脈上升就執行的正反器
- B只在模擬開始時執行一次
- C表示每當區塊中所讀取的任一訊號改變就執行的組合電路
查看答案與解析
正確答案:C. 表示每當區塊中所讀取的任一訊號改變就執行的組合電路
always後面@( )中的內容稱為敏感度清單,用來指定當哪些訊號改變時要執行該區塊。寫成「*」,就等於自動列出了區塊中所讀取的所有訊號,能正確表示組合電路。以手動列出容易有遺漏,因此組合電路使用「@(*)」或SystemVerilog的always_comb較為安全。
- A. 指定時脈邊緣的是posedge等。
- B. 只執行一次的是initial。
- C. 正確。等同於自動列出所讀取的全部訊號。