❶ 模擬中有多個timescale時VCS到底是怎麼處理的
第一個warning出現是因為你在testbench里頭沒有指明timescale,也就是說你的#50是表示50ns,還是50ps,或者是50us?修改方法:在testbench里第一行,modlue testbenchcounter之前,加上一行 `timescale 1ns/1ns,前一個表示你在tb里頭寫的數字的...
❷ 怎樣在Modelsim軟體中產生一個.vcd文件
摘要 很多時候,需要把VCS模擬的波形導入到Modelsim中進行觀察,這個時候無法直接查看,因為Modelsim只支持.wlf波形文件,所以需要做格式轉換。
❸ DC綜合後的VCS後模擬命令怎麼寫,需要添加哪些庫
library(rpart);
## rpart.control對樹進行一些設置
## xval是10折交叉驗證
## minsplit是最小分支節點數,這里指大於等於20,那麼該節點會繼續分劃下去,否則停止
## minbucket:葉子節點最小樣本數
## maxdepth:樹的深度
## cp全稱為complexity parameter,指某個點的復雜度,對每一步拆分,模型的擬合優度必須提高的程度
ct <- rpart.control(xval=10, minsplit=20, cp=0.1)
## kyphosis是rpart這個包自帶的數據集
## na.action:缺失數據的處理辦法,默認為刪除因變數缺失的觀測而保留自變數缺失的觀測。
## method:樹的末端數據類型選擇相應的變數分割方法:
## 連續性method=「anova」,離散型method=「class」,計數型method=「poisson」,生存分析型method=「exp」
## parms用來設置三個參數:先驗概率、損失矩陣、分類純度的度量方法(gini和information)
## cost我覺得是損失矩陣,在剪枝的時候,葉子節點的加權誤差與父節點的誤差進行比較,考慮損失矩陣的時候,從將「減少-誤差」調整為「減少-損失」
fit <- rpart(Kyphosis~Age + Number + Start,
data=kyphosis, method="class",control=ct,
parms = list(prior = c(0.65,0.35), split = "information"));
## 第一種
par(mfrow=c(1,3));
plot(fit);
text(fit,use.n=T,all=T,cex=0.9);
## 第二種,這種會更漂亮一些
library(rpart.plot);
rpart.plot(fit, branch=1, branch.type=2, type=1, extra=102,
shadow.col="gray", box.col="green",
border.col="blue", split.col="red",
split.cex=1.2, main="Kyphosis決策樹");
## rpart包提供了復雜度損失修剪的修剪方法,printcp會告訴分裂到每一層,cp是多少,平均相對誤差是多少
## 交叉驗證的估計誤差(「xerror」列),以及標准誤差(「xstd」列),平均相對誤差=xerror±xstd
printcp(fit);
## 通過上面的分析來確定cp的值
## 我們可以用下面的辦法選擇具有最小xerror的cp的辦法:
## prune(fit, cp= fit$cptable[which.min(fit$cptable[,"xerror"]),"CP"])
fit2 <- prune(fit, cp=0.01);
rpart.plot(fit2, branch=1, branch.type=2, type=1, extra=102,
shadow.col="gray", box.col="green",
border.col="blue", split.col="red",
split.cex=1.2, main="Kyphosis決策樹");
❹ 如何用VCS找到模擬中的無限循環 infinite loop
infinite loop
無限循環
infinite loop
[英][?infinit lu:p][美][??nf?n?t lup]
n.無限循環;
例句:
1.
Often they result from algorithms interacting with each other and forming an infiniteloop.
它們經常是由程序的相互作用並形成一個無限循環所導致。
❺ vcs生成覆蓋率時,條件編譯的頂層會被當做不同的項目,合並覆蓋率時會出錯,怎麼解決
要生成覆蓋率報告,要在編譯和模擬的時候,加入一個選項。 -cm line | fsm | tgl | cond , 指定生成針對什麼條件的覆蓋率報告。如下的makefile,就生成上述四個的覆蓋率報告。注意,編譯和模擬,都要加上-cm這個選項。執行 make vcs , make sim後,會生成simv.vdb文件夾,該文件夾下包含了覆蓋率的內容,但是我們需要將內容生成報告,這樣,才方便我們查看。生成報告,使用的是 urg命令,該命令也是屬於vcs工具裡面的-dir: 指定 .vdb文件夾的位置report: 指定生成報告的格式,報告格式有兩種,一種網頁格式,一種text格式。這里,both代表生成兩種。執行 make urg後,就會生成both文件夾。 這文件夾下的文件,就是覆蓋率報告了。打開dashboard.html。可以看到整體的一些信息。但是我們關心的是設計的,而不是testbench的。點擊hierarchy,得到層次。點擊u1,也就是設計的頂層。可以看到關於該頂層的信息。因為在頂層,都是調用各個子模塊(這里是調用 band_generaterx_tx, uart_txd模塊),所以沒有line的覆蓋率統計,但是有TOGGLE的覆蓋率統計,也就是信號的翻轉。從上面可以看出,對於rst_n信號,沒有從1->0的翻轉,而這個信號是testbench中傳遞的,因此看出,在testbench設計,對於rst_n信號產生,有bug。點擊左下角的uart_txd_1,查看該模塊的信息。 對於該設計,因為有具體的實現,所以可以看到有line的覆蓋率,toggle的覆蓋率,FSM的覆蓋率。對於line覆蓋率,從報告看出,總共有42行,覆蓋到了41行。通過查看代碼,可以知道是哪一行沒有被執行到。對於toggle覆蓋率。從報告看出,只有rst_n有問題,而這問題是testbench的的bug造成的。對於FSM的檢查。從報告看出,每個狀態都有被覆蓋到。但是從有些狀態跳轉到另外的狀態,沒有被覆蓋到。因此造成FSM的覆蓋率不高。通過查看覆蓋率報告,可以查找到設計的缺陷,從而進行修正。
❻ 用VCS模擬Verilog時,在調用系統函數的地方都出現錯誤怎麼支持調用系統函數的模擬
使用到系統函數時,在vcs編譯的時候一定要添加-I或者-RI.
其中-R自動運行並且生成vcd+文件
---------------------------------------------------------------
注意區別的兩個方面:
1. –R –I 不同於-RI
-R –I是編譯成VirSim的可執行文件而且馬上運行模擬, -RI是編譯成VirSim的可執行文件並且調用VirSim.
2. –R –PP 不同於-RPP
-R –PP是編譯成VirSim的可執行文件並且在運行的時候加快輸出VCD+文件
-RPP是在存在VCD+的條件下調用VirSim進行post processing的調試.
門級模擬需要反標SDF文件,可以在testbench中添加$sdf_annotate系統函數.並且在編譯的時候注意要使用standcell的模擬庫.
❼ 如何使用vcs模擬生成FSDB波形文件
需要制定verdi目錄下對應vcs的工具吧
-P /tools/novas/verdi-200810/share/PLI/vcs2006.06/linux/novas.tab /tools/novas/verdi-200810/share/PLI/vcs2006.06/LINUX/pli.a
❽ 新思公司VCS模擬,測試verilog代碼覆蓋率問題1:%vcs -cm line source.v 2:%simv 3:dve -cov
這就是VCS的意思嘍,VCS(Verilog Compiler and Simulator),自然先要編譯成一個simv文件,才能simulation了。
不知道您是什麼系統下的vcs,如果是linux,那就執行您說的simv嘍。./simv -gui