Verilog HDL 使用筆記2--賦值語句的使用

什麼是過程賦值語句:
位於過程塊中的賦值語句稱之爲過程賦值語句,過程語句只能對寄存器類的量進行賦值。
左端必須是寄存器類的變量(reg,integer,real,time)對於多位寬的寄存器變量(矢量),還可以只對其中的某一位或某幾位進行賦值。對於存儲器類,則只能通過選定的地址單位,對某個字進行賦值。還可以將前述各類變量用連接符拼接起來,構成一個整體作爲過程賦值的左端。
過程賦值語句的右端可以是由各種運算符和操作數構成的任何有效表達式。
對各種形式寄存器變量進行過程賦值的例子:

reg_a=8'b10110110;//對一個8位寄存器賦值
reg_a[3]=1'b0;//對寄存器某一位賦值
reg[7:4]=4'b1101;//對寄存器的其中幾位賦值
mem_a[address]=8'h5d;//對由address地址指定的存儲器單元賦值
{carry,sum}=reg_a+reg_b;//通過連接算符構成一個整體賦值

什麼是連續賦值語句
與上述過程賦值不同,主要體現有一下幾點:
1、賦值對象的不同:連續賦值語句用於對連線變量的賦值;過程賦值語句完成對寄存器類變量的賦值。
2、賦值過程實現方式不同:連線變量一旦被連續賦值語句賦值後,賦值語句右端表達式的信號有任何變化,都隨時反映到左端的連線變量中;過程賦值語句只有在語句被執行到時,賦值過程才進行一次,且賦值過程的具體執行時刻還收到定時控制及延時模式等多方面因素的影響。
3、語句出現位置不同:連續賦值語句不能出現在任何一個過程塊中;過程賦值語句只能出現在過程塊中。
4、語句結構不同:連續賦值語句以關鍵詞assign爲先導,語句中的賦值算符只有阻塞型一種;過程賦值語句不需要相應的先導關鍵詞,語句中的賦值算符分阻塞型和非阻塞型。
5、衝突處理方式的不同:一天連線可被多條連續賦值語句同時驅動,最後的結果依據連線類型的不同有相應的衝突處理方式;寄存器變量在同一時刻只允許一條過程賦值語句對其進行賦值。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章