您好,登錄后才能下訂單哦!
小編給大家分享一下verilog的技巧有哪些,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
相同點:
都能表示一種類型類型。
不同點:
wire
連線型數據,線網類型;
表示元件間的物理連線,不能保存數據;
線網是被驅動的,可以用連續賦值語句或把元件的輸出連接到線網等方式進行驅動;
給線網提供驅動的賦值元件就是“驅動源”,線網的值由驅動源來決定;
如果線網沒有連接到驅動源,線網的缺省值為“Z”。
reg:
寄存器型數據類型,通常用于對存儲單元進行描述;
這種變量可以保持它們自身的數值,直到該變量被指定了新的值為止 ;在過程被賦值的變量必須定義為reg型;
只能存放無符號數;
有符號數寄存器變量:integer 。
2,$stop:
表示停止命令,常用格式為,位于initial語句中:
#時間(N) $stop;
表示在(N)個時間單位后,停止仿真。
3,參數聲明parameter:
在程序中需要多次使用同一個數字時,可以考慮采用參數來提高代碼的簡潔度,降低代碼的設計量。
參數一經聲明,就視其為一個常量,在整個過程中值不在改變。
其定義方式如下:
<變量名>=<變量定義>;
例如:
parameter SET_TIME_1S=27'b50_000_000;
//把常量50000000用標識符SET_TIME_1S來代替。
用同一個 parameter 同時定義多個參數時,各個參數之間用“ , ”來隔開。
使用參數可以提高代碼的可讀性,也便于修改。
4,仿真時的端口定義
與模塊輸入端口相連的信號端口是產生仿真信號的端口,需定義為reg類型;
與模塊輸出端口相連的信號端口是被輸出信號所驅動的端口,需要定義為wire類型;
5,阻塞與非阻塞賦值語句
1,非阻塞賦值語句
用操作符“<=”來標識“非阻塞賦值語句”;
在begin-end串行語句中,一條非阻塞賦值語句的執行不會阻塞下一條語句額執行,也就是說,在本條非阻塞型過程賦值語句對應的賦值操作執行完之前,下一條語句也可以開始執行。
仿真過程在遇到非阻塞型過程賦值語句后,首先計算其右端賦值表達式的值,然后等到仿真時間結束時將該計算結果賦值變量。也就是說,這種情況下的賦值操作是在同一時刻上的其他普通操作結束后才得以執行。
2,阻塞賦值語句
用操作符“=”來標識“阻塞賦值語句”;
在begin-end串行語句中的各條阻塞型過程賦值語句將它們在順序快中的排列次序依次得以執行。
阻塞型賦值過程賦值語句的執行過程:首先計算右端賦值表達式的值,然后立即將計算結果賦值給“=”左端的被賦值變量。
以上是“verilog的技巧有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。