assign和always的使用
| assign 用于描述組合邏輯 always@(敏感事件列表) 用于描述時(shí)序邏輯 敏感事件 上升沿 posedge,下降沿 negedge,或電平 敏感事件列表中可以包含多個(gè)敏感事件,但不可以同時(shí)包括電平敏感事件和邊沿敏感事件,也不可以同時(shí)包括同一個(gè)信號(hào)的上升沿和下降沿,這兩個(gè)事件可以合并為一個(gè)電平敏感事件。 在新的verilog2001中“,”和“or”都可以用來(lái)分割敏感事件了,可以用“*”代表所有輸入信號(hào),這可以防止遺漏。 合法的寫法: always@ * (或always @ (*)、always) always@ (posedge clk1,negedge clk2) always@ (a or b) `timescale 100ns/100ns //定義仿真基本周期為100ns always #1 clk=~clk //#1代表一個(gè)仿真周期即100ns ? 所有的assign 和 always 塊都是并行發(fā)生的! 并行塊、順序塊將要并行執(zhí)行的語(yǔ)句寫在 fork //語(yǔ)句并行執(zhí)行 join 將要順序執(zhí)行的語(yǔ)句寫在 begin //語(yǔ)句順序執(zhí)行 end 并行塊和順序塊都可以寫在 initial 或 always@ 之后,也就是說(shuō)寫在塊中的語(yǔ)句是時(shí)序邏輯的 對(duì)assign之后不能加塊,實(shí)現(xiàn)組合邏輯只能用逐句的使用assign 組合邏輯如果不考慮門的延時(shí)的話當(dāng)然可以理解為瞬時(shí)執(zhí)行的,因此沒(méi)有并行和順序之分,并行和順序是針對(duì)時(shí)序邏輯來(lái)說(shuō)的。值得注意的是所有的時(shí)序塊都是并行執(zhí)行的。initial塊只在信號(hào)進(jìn)入模塊后執(zhí)行1次而always塊是由敏感事件作為中斷來(lái)觸發(fā)執(zhí)行的。
|
轉(zhuǎn)載于:https://www.cnblogs.com/donlxn/archive/2011/12/14/2287026.html
總結(jié)
以上是生活随笔為你收集整理的assign和always的使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: [wiki]红黑树
- 下一篇: SGU 109 Magic of Dav