Verilog中可綜合與不可綜合的語句
(2)所有綜合工具都不支援的結構:time,defparam,$finish,fork,join,initial,delays,UDP,wait。
(3)
建立可綜合模型的原則
要保證Verilog HDL賦值語句的可綜合性,在建模時應注意以下要點:
(1)不使用initial。
(2)不使用#10。
(3)不使用迴圈次數不確定的迴圈語句,如forever、while等。
(4)不使用使用者自定義原語(UDP元件)。
(5)儘量使用同步方式設計電路。
(6)除非是關鍵路徑的設計,一般不採用呼叫門級元件來描述設計的方法,建議採用行為語句來完成設計。
(7)用always過程塊描述組合邏輯,應在敏感訊號列表中列出所有的輸入訊號。
(8)所有的內部暫存器都應該能夠被複位,在使用FPGA實現設計時,應儘量使用器件的全域性復位端作為系統總的復位。
(9)對時序邏輯描述和建模,應儘量使用非阻塞賦值方式。對組合邏輯描述和建模,既可以用阻塞賦值,也可以用非阻塞賦值。但在同一個過程塊中,最好不要同時用阻塞賦值和非阻塞賦值。
(10)不能在一個以上的always過程塊中對同一個變數賦值。而對同一個賦值物件不能既使用阻塞式賦值,又使用非阻塞式賦值。
(11)如果不打算把變數推導成鎖存器,那麼必須在if語句或case語句的所有條件分支中都對變數明確地賦值。
(12)避免混合使用上升沿和下降沿觸發的觸發器。
(13)同一個變數的賦值不能受多個時鐘控制,也不能受兩種不同的時鐘條件(或者不同的時鐘沿)控制。
(14)避免在case語句的分支項中使用x值或z值。
不可綜合verilog語句2009-04-14 19:33
1、initial 只能在test bench中使用,不能綜合。(我用ISE9.1綜合時,有的簡單的initial也可以綜合,不知道為什麼)2、events event在同步test bench時更有用,不能綜合。3、real不支援real資料型別的綜合。
4、time
不支援time資料型別的綜合。
5、force 和release
不支援force和release的綜合。
6、assign 和deassign
不支援對reg 資料型別的assign或deassign進行綜合,支援對wire資料型別的assign或deassign進行綜合。
7、fork join
不可綜合,可以使用非塊語句達到同樣的效果。
8、primitives
支援門級原語的綜合,不支援非門級原語的綜合。
9、table
不支援UDP 和table的綜合。
10、敏感列表裡同時帶有posedge和negedge
如:always @(posedge clk or negedge clk) begin...end
這個always塊不可綜合。
11、同一個reg變數被多個always塊驅動
12、延時
以#開頭的延時不可綜合成硬體電路延時,綜合工具會忽略所有延時程式碼,但不會報錯。
如:a=#10 b;
這裡的#10是用於模擬時的延時,在綜合的時候綜合工具會忽略它。也就是說,在綜合的時候上式等同於a=b;
13、與X、Z的比較
可能會有人喜歡在條件表示式中把資料和X(或Z)進行比較,殊不知這是不可綜合的,綜合工具同樣會忽略。所以要確保訊號只有兩個狀態:0或1。
如:
1 module synthesis_compare_xz (a,b);
2 output a;
3 input b;
4 reg a;
5
6 always @ (b)
7 begin
8 if ((b == 1'bz) || (b == 1'bx)) begin
9 a = 1;
10 end else begin
11 a = 0;
12 end
13 end
14
15 endmodule
相關推薦
Verilog中可綜合與不可綜合的語句
(1)所有綜合工具都支援的結構:always,assign,begin,end,case,wire,tri,aupply0,supply1,reg,integer,default,for,function,and,nand,or,nor,xor,xnor,buf,not,bufif0,bufif1,not
關於verilog中綜合的過程,可綜合與不可綜合的理解
前言: 1):數位電路設計過程: 一:行為級:分析電路功能、效能以及其他相容性問題,只驗證設計功能,不考慮設計的任何時序資訊; 二:RTL級:暫存器級,只能使用可綜合語句結構進
verilog 可綜合與不可綜合語句
(1)所有綜合工具都支援的結構:always,assign,begin,end,case,wire,tri,aupply0,supply1,reg,integer,default,for,function,and,nand,or,nor,xor,xnor,buf,not,bufif0,bufif1,noti
關於Verilog中的幾種賦值語句
變量數據類型 ril 存儲 函數的調用 能夠 兩種 sig 註意 調用 http://www.cnblogs.com/nanoty/archive/2012/10/21/2733017.html 1. 連續賦值語句(Continuous Assignments)
可列舉與不可列舉
先把總結寫在這裡: JavaScript物件的屬性可分為可列舉和不可列舉,它是由屬性的enumeration值決定的,true為可列舉,false為不可列舉 js中原型屬性一般是不可列舉的,而自己定義的屬性一般是可列舉的 可以通過propertylsEnumerable()方法
EditText可編輯與不可編輯。
--------------------------第一種-------------------------------------------- 在Xml設定 1,android:editable="false",如果該方法ok了就沒必要看下面的了。。。O(∩_∩)
塊元素,行內元素以及可替換與不可替換元素
顯示 表現級區分: 塊元素 有以下這些: <address><caption><dd><div><ol><ul><p><th><thead><tr>&
EditText可編輯與不可編輯
個人建議不要在xml里加android:enabled或android:focusable,那樣弄太麻煩了,這樣寫後半天我沒搞定 之後查了一下 在初始化介面的時候設定EditText.setEnabled(false);這樣edittext不可編輯。 然後當你需要的時候設定
css中可繼承和不可繼承的屬性
一、無繼承性的屬性 1、display:規定元素應該生成的框的型別 2、文字屬性: vertical-align:垂直文字對齊 text-decoration:規定新增到文字的裝飾 text-shadow:文字陰影效果 white-space:空白符
verilog 不可綜合語句 總結 彙總
(1)所有綜合工具都支援的結構:always,assign,begin,end,case,wire,tri,aupply0,supply1,reg,integer,default,for,function,and,nand,or,nor,xor,xnor,buf,not,
JavaScript中的可枚舉屬性與不可枚舉屬性
lse struct 例子 UNC type java 包含 ima function https://www.cnblogs.com/kongxy/p/4618173.html 在JavaScript中,對象的屬性分為可枚舉和不可枚舉之分,它們是由屬性的enum
關於verilog中if與case語句不完整產生鎖存器的問題
一、是什麼 鎖存器是一種在非同步時序電路系統中,對輸入訊號電平敏感的單元,用來儲存資訊。一個鎖存器可以儲存1bit的資訊,通常,鎖存器會多個一起出現,如4位鎖存器,8位鎖存器。 鎖存器在資料未鎖存時,輸出端的訊號隨輸入訊號變化,就像訊號通
VHDL的不可綜合語句有什麼用?
VHDL有很多不可綜合語句,以前總是想不通,既然不能綜合,要他們 幹啥? 比如說wait,wait on....等等, 後面終於想通了,你可以用來寫testbench啊,哈哈哈哈, 用來寫激勵檔案用,並不是用來用邏輯功能的,哈哈哈, 這些教科書真是的,沒有一本書提過這
android 中imageview 與diallog綜合應用猜牌遊戲
package training.android.com; import android.app.Activity;import android.app.AlertDialog;import android.app.Dialog;import android.content.
css中可繼承屬性與不可繼承屬性
不可繼承的:display、margin、border、padding、background、height、min-height、max-height、width、min-width、max-width、overflow、position、left、right、top、bottom、z-index、floa
JS中的可列舉屬性與不可列舉屬性
一、怎麼判斷屬性是否可列舉js中基本包裝型別的原型屬性是不可列舉的,如Object, Array, Number等,如果你寫出這樣的程式碼遍歷其中的屬性:var num = new Number(); for(var pro in num) { console.log
線性可分 與線性不可分
net 分類算法 數據轉換 higher 依然 技術分享 無需 mon 學習分類 http://blog.csdn.net/u013300875/article/details/44081067 很多機器學習分類算法,比如支持向量機(svm),假設數據是要線性可分。 如果數
可重入函數與不可重入函數
如果 interrupt 信號量 發生 標準io 一個 i/o 可重入 規則 參考:http://blog.csdn.net/wenhui_/article/details/6889013 重入:重新進入 區別:多個任務能否同時調用一個函數,例如操作系統在進程調度過程中,或
php與MySQL與ajax與echart綜合
error: new ror cat val utf too pri div http://www.yinghualuowu.com/php/echart.html 創建table sex 有name num <?php in
VRRP與VLAN綜合實驗
huawei vrrp;vlan 實驗要求:1. 使VLAN10中的PC1和VLAN20中的PC2能夠ping通主機PC3,且vlan10和valn20中的主機能夠互通。2. PC1和PC2的網關都使用虛擬網關(見拓撲圖),並且當交換機S3的GE0/0/3口出現故障時,PC1也能和PC2,