(1)在描述組合邏輯的always塊中用阻塞賦值,則綜合成組合邏輯的電路結構;(2)在描述時序邏輯的always塊中用非阻塞賦值,則綜合成時序邏輯的電路結構。
原因:這是因為要使綜合前模擬和綜合後模擬一致的緣故。
、阻塞賦值運算子用等號(即 = )表示。“阻塞”是指在程序語句(initial和always)中,當前的賦值語句阻斷了其後的語句,也就是說後面的語句必須等到當前的賦值語句執行完畢才能執行。而且阻塞賦值可以看成是一步完成的,即:計算等號右邊的值並同時賦給左邊變數。例如:
當執行“x=next_x;”時,x會立即的到next_x的值。而下一句“y=x;”必須等到“x=next_x;”執行完畢才能被執行。由於這兩條語句都沒有延遲(相當於導線),導致他們的等價語句為“y=next_x;”。
賦值是實時的,計算完右面的馬上賦值給左邊的,然後再執行下一句,操作時序列的,且在一個alway內完成。
2、非阻塞賦值運算子用小於等於號 (即
①計算等號右邊的表示式的值,(我的理解是:在進入程序後,所有的非阻塞語句的右端表示式同時計算,賦值動作只發生在順序執行到當前非阻塞語句那一刻)。
②在本條賦值語句結束時,將等號右邊的值賦給等號左邊的變數。
例如:
當執行“x
簡單理解就是,阻塞賦值是按需執行,非阻塞賦值是並行執行。
(1)在描述組合邏輯的always塊中用阻塞賦值,則綜合成組合邏輯的電路結構;(2)在描述時序邏輯的always塊中用非阻塞賦值,則綜合成時序邏輯的電路結構。
原因:這是因為要使綜合前模擬和綜合後模擬一致的緣故。
、阻塞賦值運算子用等號(即 = )表示。“阻塞”是指在程序語句(initial和always)中,當前的賦值語句阻斷了其後的語句,也就是說後面的語句必須等到當前的賦值語句執行完畢才能執行。而且阻塞賦值可以看成是一步完成的,即:計算等號右邊的值並同時賦給左邊變數。例如:
當執行“x=next_x;”時,x會立即的到next_x的值。而下一句“y=x;”必須等到“x=next_x;”執行完畢才能被執行。由於這兩條語句都沒有延遲(相當於導線),導致他們的等價語句為“y=next_x;”。
賦值是實時的,計算完右面的馬上賦值給左邊的,然後再執行下一句,操作時序列的,且在一個alway內完成。
2、非阻塞賦值運算子用小於等於號 (即
①計算等號右邊的表示式的值,(我的理解是:在進入程序後,所有的非阻塞語句的右端表示式同時計算,賦值動作只發生在順序執行到當前非阻塞語句那一刻)。
②在本條賦值語句結束時,將等號右邊的值賦給等號左邊的變數。
例如:
當執行“x
簡單理解就是,阻塞賦值是按需執行,非阻塞賦值是並行執行。