==always敘述== 1. 驅動某值至reg( 等號的左式必為reg,右式可為net 或 reg ) 2. 行為層次的描述方式,可用於敘述組合邏輯和序向邏輯 3. 事件與事件之間需用”or”或”逗號 , ”分開 4. 當”事件”有變化時( 0→1、1→0 ),則會執行”敘述” 5. 事件中可以使用正緣觸發posedge(0→1)和負緣觸發negedge(1→0) 6. 若寫成always @(* ) 或 always @* 代表always內任一變化即執行敘述 ![](https://hackmd.io/_uploads/SkreaGtjn.png) ==case、casex與casez敘述== 1. expr可為定值或變數,可放連結運算子 2. 不允許expr中有x或z 3. 允許casez中的item值除了”0” “1”外,還可以使用z 4. 允許casex中的item值除了”0” “1” “z”外,還可以使用x ![](https://hackmd.io/_uploads/BkPW6MKo2.png) 應用 ![](https://hackmd.io/_uploads/rkg6TfFih.png) ==Blocking/Non-Blocking敘述== 1. Blocking ( = ),具有順序性,敘述會與先後有關係 ( 順序處理 ) 2. Non-Blocking ( <= ),具有同時性,敘述與先後沒有關係 ( 平行處理 ) ![](https://hackmd.io/_uploads/B1wrTzFon.png) 應用 ![](https://hackmd.io/_uploads/H1dy0zFin.png) (資料來源:[網路](https://hom-wang.gitbooks.io/verilog-hdl/content/Chapter_05.html))