當前位置:首頁 » 激光切割 » 如何切割fsdb波形

如何切割fsdb波形

發布時間: 2021-02-08 23:07:24

❶ 如何把fsdb中的某個波形的數值列印出來

打開波形後切回verdi主窗口,將代碼切換到有狀態機的那個模塊,然後按下顯示電路的那個按鈕,之後切回波形去看一下,狀態機的數字都變成字母了~

❷ 請教fsdb波形產生命令的問題

關於PLI, 在此不再贅述: 首先, 我們建立一個工作目錄$ mkdir work$ cd work然後新開一個teminal窗口, 找到Debussy的安裝目錄. 進入/share/PLI/, 在該目錄下有很多版本的目錄, 選擇一個屬於你的NC版本的目錄, 比如nc51, 然後選擇你的操作系統, 如LINUX,(換而言之, 現在處於/share/PLI/nc51/LINUX) 之後你會發現: nc_loadpli1/ nc_shared/ pli.a veriuser.c 把這些目錄及文件拷貝到 work目錄下. 免編譯如果你不需要添加其他的系統函數, 那麼直接可以用nc_loadpli1 下debpli.so 文件. 使用方法:$ ncverilog access wrc loadpli1= ./nc_loadpli1/debpli.so : debpli_boot rtl.files 當然在testbench文件中要寫上你所希望調用的debussy 提供的函數, 基本的如: $fsdbDumpfile(wave.fsdb); $fsdbDumpvars(6, tb);需編譯如果你已經對veriuser.c進行了修改, 那麼首先把veriuser.c 編譯為veriuser.o文件. cc -KPIC -c veriuser.c -I${CDS_INST_DIR}/tools/verilog/include之後連接ld -G veriuser.o pli.a -o debussypli.so使用方法:$ ncverilog access wrc loadpli1= ./debussypli.so : debussy_bootstrap rtl.files當然在testbench文件中要寫上你所希望調用的debussy 提供的函數, 基本的如:

❸ 在用nWave波形打開fsdb波形文件的時候,如何在同一窗口連續顯示多個波形

做蛋糕最好的學校在哪啊?

❹ 如何Dump波形文件並顯示波形

如何Dump波形文件並顯示波形
關於PLI, 在此不再贅述:
首先, 我們建立一個工作目錄$ mkdir work$ cd work然後新開一個teminal窗口, 找到Debussy的安裝目錄. 進入/share/PLI/, 在該目錄下有很多版本的目錄,
選擇一個屬於你的NC版本的目錄, 比如nc51, 然後選擇你的操作系統, 如LINUX,(換而言之, 現在處於/share/PLI/nc51/LINUX) 之後你會發現:
nc_loadpli1/ nc_shared/ pli.a veriuser.c
把這些目錄及文件拷貝到 work目錄下.
免編譯如果你不需要添加其他的系統函數, 那麼直接可以用nc_loadpli1 下debpli.so 文件.
使用方法:$ ncverilog access wrc loadpli1= ./nc_loadpli1/debpli.so : debpli_boot rtl.files
當然在testbench文件中要寫上你所希望調用的debussy 提供的函數, 基本的如:
$fsdbDumpfile(wave.fsdb);
$fsdbDumpvars(6, tb);需編譯如果你已經對veriuser.c進行了修改, 那麼首先把veriuser.c 編譯為veriuser.o文件.
cc -KPIC -c veriuser.c -I${CDS_INST_DIR}/tools/verilog/include之後連接ld -G veriuser.o pli.a -o debussypli.so使用方法:$ ncverilog access wrc loadpli1= ./debussypli.so : debussy_bootstrap rtl.files當然在testbench文件中要寫上你所希望調用的debussy 提供的函數, 基本的如:

❺ 如何mp的fsdb波形到stdcell

關於PLI, 在此不再贅述:
首先, 我們建立一個工作目錄$ mkdir work$ cd work然後新開一個teminal窗口, 找到Debussy的安裝目錄. 進入/share/PLI/, 在該目錄下有很多版本的目錄,
選擇一個屬於你的NC版本的目錄, 比如nc51, 然後選擇你的操作系統, 如LINUX,(換而言之, 現在處於/share/PLI/nc51/LINUX) 之後你會發現:
nc_loadpli1/ nc_shared/ pli.a veriuser.c
把這些目錄及文件拷貝到 work目錄下.
免編譯如果你不需要添加其他的系統函數, 那麼直接可以用nc_loadpli1 下debpli.so 文件.
使用方法:$ ncverilog access wrc loadpli1= ./nc_loadpli1/debpli.so : debpli_boot rtl.files
當然在testbench文件中要寫上你所希望調用的debussy 提供的函數, 基本的如:
$fsdbDumpfile(wave.fsdb);
$fsdbDumpvars(6, tb);需編譯如果你已經對veriuser.c進行了修改, 那麼首先把veriuser.c 編譯為veriuser.o文件.
cc -KPIC -c veriuser.c -I${CDS_INST_DIR}/tools/verilog/include之後連接ld -G veriuser.o pli.a -o debussypli.so使用方法:$ ncverilog access wrc loadpli1= ./debussypli.so : debussy_bootstrap rtl.files當然在testbench文件中要寫上你所希望調用的debussy 提供的函數, 基本的如:

❻ 如何使用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

❼ Ncverilog中如何DUMP出fsdb格式的波形文件求解

關於PLI, 在此不再贅述:
首先, 我們建立一個工作目錄$ mkdir work$ cd work然後新開一個teminal窗口, 找到的安裝目錄. 進入/share/PLI/, 在該目錄下有很多版本的目錄,
選擇一個屬於你的NC版本的目錄, 比如nc51, 然後選擇你的操作系統, 如LINUX,(換而言之, 現在處於/share/PLI/nc51/LINUX) 之後你會發現:
nc_loadpli1/ nc_shared/ pli.a veriuser.c
把這些目錄及文件拷貝到 work目錄下.
免編譯如果你不需要添加其他的系統函數, 那麼直接可以用nc_loadpli1 下debpli.so 文件.
使用方法:$ ncverilog access wrc loadpli1= ./nc_loadpli1/debpli.so : debpli_boot rtl.files
當然在testbench文件中要寫上你所希望調用的debussy 提供的函數, 基本的如:
$fsdbDumpfile(wave.fsdb);
$fsdbDumpvars(6, tb);需編譯如果你已經對veriuser.c進行了修改, 那麼首先把veriuser.c 編譯為veriuser.o文件.
cc -KPIC -c veriuser.c -I${CDS_INST_DIR}/tools/verilog/include之後連接ld -G veriuser.o pli.a -o debussypli.so使用方法:$ ncverilog access wrc loadpli1= ./debussypli.so : debussy_bootstrap rtl.files當然在testbench文件中要寫上你所希望調用的debussy 提供的函數, 基本的如:

❽ 請教關於聲音波形處理方法

關於PLI,在此不再贅述:首先,我們建立一個工作目錄$mkdirwork$cdwork然後新開一個teminal窗口,找到Debussy的安裝目錄.進入/share/PLI/,在該目錄下有很多版本的目錄,選擇一個屬於你的NC版本的目錄,比如nc51,然後選擇你的操作系統,如LINUX,(換而言之,現在處於/share/PLI/nc51/LINUX)之後你會發現:nc_loadpli1/nc_shared/pli.averiuser.c把這些目錄及文件拷貝到work目錄下.免編譯如果你不需要添加其他的系統函數,那麼直接可以用nc_loadpli1下debpli.so文件.使用方法:$ncverilogaccesswrcloadpli1=./nc_loadpli1/debpli.so:debpli_bootrtl.files當然在testbench文件中要寫上你所希望調用的debussy提供的函數,基本的如:$fsdbDumpfile(wave.fsdb);$fsdbDumpvars(6,tb);需編譯如果你已經對veriuser.c進行了修改,那麼首先把veriuser.c編譯為veriuser.o文件.cc-KPIC-cveriuser.c-I${CDS_INST_DIR}/tools/verilog/include之後連接ld-Gveriuser.opli.a-odebussypli.so使用方法:$ncverilogaccesswrcloadpli1=./debussypli.so:debussy_bootstraprtl.files當然在testbench文件中要寫上你所希望調用的debussy提供的函數,基本的如:

❾ 如何編寫testbench的總結

如何編寫 testbench 的總結(非常實用的總結) 1.激勵的設置 相應於被測試模塊的輸入激勵設置為 reg 型,輸出相應設置為 wire 類型,雙向埠 inout 在 測試中需要進行處理。 方法 1:為雙向埠設置中間變數 inout_reg 作為該 inout 的輸出寄存,inout 口在 testbench 中要定義為 wire 型變數,然後用輸出使能控制傳輸方向。 eg: inout[0:0]bi_dir_port; wire[0:0]bi_dir_port; reg[0:0]bi_dir_port_reg; regbi_dir_port_oe; assignbi_dir_port=bi_dir_port_oe?bi_dir_port_reg:1'bz; 用 bi_dir_port_oe 控制埠數據方向,並利用中間變數寄存器改變其值。等於兩個模塊之間 用 inout 雙向口互連。往埠寫(就是往模塊裡面輸入) 方法 2:使用 force 和 release 語句,這種方法不能准確反映雙向埠的信號變化,但這種方 法可以反映塊內信號的變化。具體如示: moletest(); wiredata_inout; regdata_reg; reglink; #xx;//延時 forcedata_inout=1'bx;//強製作為輸入埠 ............... #xx; releasedata_inout;//釋放輸入埠 endmole 從文本文件中讀取和寫入向量 1)讀取文本文件:用$readmemb 系統任務從文本文件中讀取二進制向量(可以包含輸入激 勵和輸出期望值) 。$readmemh 用於讀取十六進制文件。例如: reg[7:0]mem[1:256]//a8-bit,256-word 定義存儲器 mem initial$readmemh("mem.data",mem)// 將.dat 文件讀入寄存器 mem 中 initial$readmemh("mem.data",mem,128,1)// 參數為寄存器載入數據的地址始終 2)輸出文本文件:打開輸出文件用?$fopen 例如: integerout_file;//out_file 是一個文件描述,需要定義為 integer 類型 out_file=$fopen("cpu.data");//cpu.data 是需要打開的文件,也就是最終的輸出文本 設計中的信號值可以通過$fmonitor,$fdisplay, 2.Verilog 和 Ncverilog 命令使用庫文件或庫目錄 ex).ncverilog-frun.f-vlib/lib.v-ylib2+libext+.v//一般編譯文件在 run.f 中, 庫文件在 lib.v 中,lib2 目錄中的.v 文件系統自動搜索 使用庫文件或庫目錄,只編譯需要的模塊而不必全部編譯 3.VerilogTestbench 信號記錄的系統任務: 1).SHM 資料庫可以記錄在設計模擬過程中信號的變化. 它只在 probes 有效的時間內記錄你 setprobeon 的信號的變化. ex).$shm_open("waves.shm");//打開波形資料庫 $shm_probe(top,"AS");//setprobeon"top", 第二個參數:A--signalsofthespecificscrope S--,excludinglibrarycells C--,includinglibrarycells AS--,excludinglibrarycells AC--,includinglibrarycells 還有一個 M,表示當前 scope 的 memories,可以跟上面的結合使用,"AM""AMS""AMC" 什麼都不加表示當前 scope 的 ports; $shm_close//關閉資料庫 2).VCD 資料庫也可以記錄在設計模擬過程中信號的變化. 它只記錄你選擇的信號的變化. ex).$mpfile("filename");//打開資料庫 $mpvars(1,top.u1);//scope=top.u1,depth=1 第一個參數表示深度, 為 0 時記錄所有深度; 第二個參數表示 scope,省略時表當前的 scope. $mpvars;//depth=allscope=all $mpvars(0);//depth=allscope=current $mpvars(1,top.u1);//depth=1scope=top.u1 $mpoff//暫停記錄數據改變,信號變化不寫入庫文件中 $mpon//重新恢復記錄 3).Debussyfsdb 資料庫也可以記錄信號的變化,它的優勢是可以跟 debussy 結合,方便調試. 如果要在 ncverilog 模擬時,記錄信號, 首先要設置 debussy: a.setenvLD_LIBRARY_PATHLD_LIBRARY_PATH (pathfordebpli.sofile(/share/PLI/nc_xl//nc_loadpli1)) b.whileinvokingncverilogusethe+ncloadpli1option. ncverilog-frun.f+debug+ncloadpli1=debpli:deb_PLIPtr fsdb 資料庫文件的記錄方法,是使用$fsdbDumpfile 和$fsdbDumpvars 系統函數,使用方法參見 VCD 注意: 在用 ncverilog 的時候,為了正確地記錄波形,要使用參數:"+access+rw", 否則沒有讀寫 許可權 在記錄信號或者波形時需要指出被記錄信號的路徑,如:tb.mole.u1.clk. ??????????????????????????????????????? 關於信號記錄的系統任務的說明: 在 testbench 中使用信號記錄的系統任務,就可以將自己需要的部分的結果以及波形文件記 錄下來(可採用 sigalscan 工具查看) ,適用於對較大的系統進行模擬,速度快,優於全局仿 真。使用簡單,在 testbench 中添加: initialbegin $shm_open("waves.shm"); $shm_probe("要記錄信號的路徑「, 」AS「) ; #10000 $shm_close;即可。 4.ncverilog 編譯的順序:ncverilogfile1file2.... 有時候這些文件存在依存關系,如在 file2 中要用到在 file1 中定義的變數,這時候就要注意其 編譯的順序是 從後到前,就先編譯 file2 然後才是 file2. 5.信號的強制賦值 force 首先, force 語句只能在過程語句中出現,即要在 initial 或者 always 中間. 去除 force 用 release 語句. initialbeginforcesig1=1'b1;...;releasesig1;end force 可以對 wire 賦值,這時整個 net 都被賦值; 也可以對 reg 賦值. 6.載入測試向量時,避免在時鍾的上下沿變化 為了模擬真實器件的行為,載入測試向量時,避免在時鍾的上下沿變化,而是在時鍾的上升 沿延時一個時間單位後,載入的測試向量發生變化。如: assign#5c=a^b ?? @(posedgeclk)#(0.1*`cycle)A=1; ****************************************************************************** //testbench 的波形輸出 moletop; ... initial begin $mpfile("./top.vcd");//存儲波形的文件名和路徑,一般是.vcd 格式. $mpvars(1,top);//存儲 top 這一層的所有信號數據 $mpvars(2,top.u1);//存儲 top.u1 之下兩層的所有數據信號(包含 top.u1 這一層) $mpvars(3,top.u2);//存儲 top.u2 之下三層的所有數據信號(包含 top.u2 這一層) $mpvars(0,top.u3);//存儲 top.u3 之下所有層的所有數據信號 end endmole //產生隨機數,seed 是種子 $random(seed); ex:din<=$random(20); //模擬時間,為 unsigned 型的 64 位數據 $time ex: ... timecondition_happen_time; ... condition_happen_time=$time; ... $monitor($time,"dataoutput=%d",dout); ... //參數 parameterpara1=10, para2=20, para3=30; //顯示任務 $display(); //監視任務 $monitor(); //延遲模型 specify ... //describpin-to-pindelay endspecify ex: molenand_or(Y,A,B,C); inputA,B,C; outputY; AND2#0.2(N,A,B); OR2#0.1(Y,C,N); specify (A*->Y)=0.2; (B*->Y)=0.3; (C*->Y)=0.1; endspecify endmole //時間刻度 `timescale 單位時間/時間精確度 //文件 I/O 1.打開文件 integerfile_id; file_id=fopen("file_path/file_name"); 2.寫入文件 //$fmonitor 只要有變化就一直記錄 $fmonitor(file_id,"%format_char",parameter); egfmonitor(file_id,"%m:%tin1=%do1=%h",$time,in1,o1); //$fwrite 需要觸發條件才記錄 $fwrite(file_id,"%format_char",parameter); //$fdisplay 需要觸發條件才記錄 $fdisplay(file_id,"%format_char",parameter); $fstrobe(); 3.讀取文件 integerfile_id; file_id=$fread("file_path/file_name","r"); 4.關閉文件 $fclose(fjile_id); 5.由文件設定存儲器初值 $readmemh("file_name",memory_name");//初始化數據為十六進制 $readmemb("file_name",memory_name");//初始化數據為二進制 //模擬控制 $finish(parameter);//parameter=0,1,2 $stop(parameter); //讀入 SDF 文件 $sdf_annotate("sdf_file_name",mole_instance,"scale_factors"); //mole_instance:sdf 文件所對應的 instance 名. //scale_factors:針對 timmingdelay 中的最小延時 min,典型延遲 typ,最大延時 max 調整延遲參 數 //generate 語句,在 Verilog-2001 中定義.用於表達重復性動作 //必須事先聲明 genvar 類型變數作為 generate 循環的指標 eg: genvari; generatefor(i=0;i<4;i=i+1) begin assign=din=i%2; end endgenerate //資源共享 always@(AorBorCorD) sum=sel?(A+B) C+D); //上面例子使用兩個加法器和一個 MUX,面積大 //下面例子使用一個加法器和兩個 MUX,面積小 always@(AorBorCorD) begin tmp1=sel?A:C; tmp2=sel?B ; end always@(tmp1ortmp2) sum=tmp1+tmp2; ****************************************************************************** 模板: moletestbench;//定義一個沒有輸入輸出的 mole reg??//將 DUT 的輸入定義為 reg 類型 ?? wire??//將 DUT 的輸出定義為 wire 類型 ?? //在這里例化 DUT initial begin ??//在這里添加激勵(可以有多個這樣的結構) end always??//通常在這里定義時鍾信號 initial //在這里添加比較語句(可選) end initial //在這里添加輸出語句(在屏幕上顯示模擬結果) end endmole 一下介紹一些書寫 Testbench 的技巧: 1.如果激勵中有一些重復的項目,可以考慮將這些語句編寫成一個 task,這樣會給書寫和仿 真帶來很大方便。例如,一個存儲器的 testbench 的激勵可以包含 write,read 等 task。 2.如果 DUT 中包含雙向信號(inout),在編寫 testbench 時要注意。需要一個 reg 變數來表示 其 輸入,還需要一個 wire 變數表示其輸出。 3.如果 initial 塊語句過於復雜,可以考慮將其分為互補相乾的幾個部分,用數個 initial 塊來 描述。在模擬時,這些 initial 塊會並發運行。這樣方便閱讀和修改。 4.每個 testbench 都最好包含$stop 語句,用以指明模擬何時結束。

熱點內容
線切割怎麼導圖 發布:2021-03-15 14:26:06 瀏覽:709
1台皮秒機器多少錢 發布:2021-03-15 14:25:49 瀏覽:623
焊接法蘭如何根據口徑配螺栓 發布:2021-03-15 14:24:39 瀏覽:883
印章雕刻機小型多少錢 發布:2021-03-15 14:22:33 瀏覽:395
切割機三五零木工貝片多少錢 發布:2021-03-15 14:22:30 瀏覽:432
加工盜磚片什麼櫸好 發布:2021-03-15 14:16:57 瀏覽:320
北洋機器局製造的銀元什麼樣 發布:2021-03-15 14:16:52 瀏覽:662
未來小七機器人怎麼更新 發布:2021-03-15 14:16:33 瀏覽:622
rexroth加工中心亂刀怎麼自動調整 發布:2021-03-15 14:15:05 瀏覽:450
機械鍵盤的鍵帽怎麼選 發布:2021-03-15 14:15:02 瀏覽:506