<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                本腳本可在配置好iverilog和gtkwave后,使用腳本快速仿真verilog項目。 ```tcl #!/usr/bin/env tclsh # 本腳本用于調用iverilog實現 verilog仿真和查看波形 puts [pwd] #exit 0 # 調用外部程序的過程 # cmd :指令 # args :cmd后面跟的參數 proc exec_sys {cmd args} { set out [exec {*}[auto_execok $cmd] {*}$args] puts $out } #help proc help {} { puts "" puts "快速仿真verilog的tcl腳本" puts "指令 -i :初始化項目并生成模板" puts "指令 :仿真項目并打開波形" } # 創建tb.v文件,文件tb.v必須不存在 proc makeTbFile {} { set fileName "tb.v" if { [file exists $fileName] == 0 } { ;#文件不存在則創建文件 set f [open tb.v w+] puts $f {`timescale 1ns / 1ps} puts $f {module tb ;} puts $f {reg clk,rst;} puts $f {} puts $f {//生成始時鐘} puts $f {parameter NCLK = 4;} puts $f {initial begin} puts $f { clk=0;} puts $f { forever clk=#(NCLK/2) ~clk; } puts $f {end } puts $f {} puts $f {/****************** BEGIN ADD module inst ******************/} puts $f {} puts $f {/****************** BEGIN END module inst ******************/} puts $f {} puts $f {initial begin} puts $f { $dumpfile("wave.lxt2");} puts $f { $dumpvars(0, tb); //dumpvars(深度, 實例化模塊1,實例化模塊2,.....)} puts $f {end} puts $f {} puts $f {initial begin} puts $f { rst = 1;} puts $f { #(NCLK) rst=0;} puts $f { #(NCLK) rst=1; //復位信號} puts $f {} puts $f { repeat(100) @(posedge clk)begin} puts $f {} puts $f { end} puts $f { $display("運行結束!");} puts $f { $dumpflush;} puts $f { $finish;} puts $f { $stop; } puts $f {end } puts $f {endmodule} close $f } else { puts "tb.v 文件已存在!" } } # 參數處理 if { $argc == 1 } { ;#當輸入的參數為1個的時候 #根據參數決定接下來的操作 set para [lindex $argv 0] if { [string equal $para "-i"] == 1 } { ;#初始化項目,生成仿真文件 puts " -i 參數" # 創建tb.v文件 makeTbFile exit 0 ;#退出腳本 } elseif { [string equal $para "-r"] == 1} { ;#重新生成仿真文件 puts " -r 參數" if { [file exists sim] == 1 && [file isdirectory sim] == 1} { #拷貝路徑下所有.v文件到 sim set fileList [glob -nocomplain *.v] ;# 篩選出 .v 文件 if { [llength $fileList] > 0 } { #拷貝所有的.v文件到sim目錄下 foreach i $fileList { file copy -force $i sim } } else { puts "沒有.v文件!" exit 0 } #調用仿真工具 cd sim #將編譯文件寫入 file.o 文件 set f [open file.o w+] foreach i $fileList { puts $f $i } close $f exec_sys iverilog -o wave -f file.o ;#編譯 exec_sys vvp -n wave -lxt2 &;#仿真 } else { puts "不存在仿真文件路徑 sim!" } exit 0 } } # 執行仿真功能,并打開波形顯示 if { $argc == 0 } { if { [file exists sim ] == 0 } { #創建 sim 文件夾 file mkdir sim } else { #刪除sim下的所有文件 set fileList [glob -nocomplain sim/*] puts $fileList file delete $fileList } #拷貝路徑下所有.v文件到 sim set fileList [glob -nocomplain *.v] ;# 篩選出 .v 文件 if { [llength $fileList] > 0 } { #拷貝所有的.v文件到sim目錄下 foreach i $fileList { file copy -force $i sim } } else { puts "沒有.v文件!" exit 0 } #調用仿真工具 cd sim #將編譯文件寫入 file.o 文件 set f [open file.o w+] foreach i $fileList { puts $f $i } close $f exec_sys iverilog -o wave -f file.o ;#編譯 exec_sys vvp -n wave -lxt2 ;#仿真 exec_sys gtkwave wave.lxt2 ;#顯示波形 puts "ok" } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看