原创 nanosim使用

2008-2-3 18:37 8502 6 7 分类: 模拟

準備事項



範例程式下載 (一個Verilog寫的4-bit full-adder,與testbench)


本教學內容假設各位已經熟析Design Analyzer與ModelSim ... 


觀念介紹



NanoSimSynopsys發展的模擬軟體,可以用來做Timing / Power的模擬,是一種transistor level and dynamic simulator,並且可以做數位與類比整合的模擬(mixed netlists)。


下圖所示為各種軟體特性的示意 (資料來源:PrimePower Manual)
page561.gif




整個軟體運作時的輸出與輸入檔案如下所示:(資料來源:CIC NanoSim課程教材)


page562.gif





  • Netlist Files:HDL code經過合成後轉出的.v檔,或是類比電路跑HSPICE的.sp檔



  • Stimulus Files:HDL寫的testbench.v經過value change dump轉成.vcd,.vcd再經過VTRAN轉成vector file (.vec)
                            .vec 是讓軟體用來餵給netlist當input pattern用的



  • Configuration File:用來設定軟體模擬時,要擷取哪些點的哪些訊息(如電壓或電流),以儲存在.out與.log
                                 (如果是用GUI介面,可以不需要這個檔案)



  • Technology file:NanoSim uses a tech. file in place of MOS models during simulation



  • .out File  :執行模擬後的產出檔案,供turboWave直接讀取以顯示電壓/電流波形



  • .fsdb File:執行模擬後的產出檔案,供turboWave直接讀取以顯示電壓/電流波形



  • .log File  :模擬結果的輸出,裡面有耗電情況的report


由於NanoSim是Transistor-level simulator,要執行NanoSim有幾種方式



  • 提供類比電路的spice netlist (.sp or .spi)與MOS spice module (含電壓/溫度規格) -- 類比模擬



  • 提供數位電路的gate-level netlist (.v),cell-base spice simulation module (not cell-base Verilog simulation module)與MOS spice module (含電壓/溫度規格) -- 數位模擬 (官方使用說明)



  • 提供類比電路的spice netlist (.sp or .spi)與數位電路的gate-level netlist (.v),以VCS搭配NanoSim做類比與數位的混合模擬 (官方使用說明)


     bulb.gif 由於CIC現有製程並無提供cell-base spice simulation module,所以第二種方法目前行不通


快速上手四部曲





  1. 由testbench產生.vcd (利用ModelSim or other HDL simulator)



  2. 再把.vcd轉成.vec (必須先編輯command file add4.vtran)



  3. 開啟GUI介面的NanoSim,並做設定



  4. 查看波形與報告結果 (利用turboWave or other waveform viwer)


NanoSim是一套功能很強大的軟體,其使用手冊依功能區分有十幾份,合計數千頁。本教學文件僅就其Logic Simulator的基本功能做初探,並做power模擬,可以參閱Tutorial : Simulating with Gate-Level Verilog Netlists。





範例程式裡幾個比較重要的檔案說明


add4test.v


testbench file of the design project


add4.v


The design project


add4_gate.v


after synthesis, the gate-level netlist of  the design project


add4.vcd


The value change dump file generated from ModelSim


supply.spi


SPICE file, to define power supply and temperature


cmos35t.mod


SPICE file / Technology file, to define MOS model


cfg


Configuration file


add4.vtran


command-file for vtran command to transfer .vcd into .vec




  1. 由testbench產生.vcd (利用ModelSim or other tools)  top.jpg



1-1 在原本的testbench(add4test)裡,加入如下的一段敘述


     page586.gif


    $dumpfile("xxx.vcd") -- 將所有dump的資料,存到某個檔案。(雙引號不可省)
    $dumpvars() -- 紀錄所有變數的變化情況(括號可省略)。括號內沒有指定變數,表示all variables都dump 


1-2 開啟ModelSim,建一個project,然後compile gate-level netlist (add4_gate.v) and testbench (add4test.v) with simulate module library


page587.gif



1-3 切換到Library標籤下,選擇work library展開,執行top module name "testbed"的simulate


1-4 執行Run後,就會產生add4.vcd檔。


bulb.gif 在執行Run之前,要先確認ModelSim跑模擬的時間長,至少要超過testbench裡所設定的總時間,以此例而言是取250001 ns(因為在add4test.v中有一行  initial  #250000 $stop ;  );或是直接執行Simulate \ Run \ Run -All page549.gif也可以




  1. 把.vcd轉成.vec (必須先編輯command file add4.vtran )  top.jpg



執行 % vtran add4.vtran,就會產生add4.vec;
-- add4.vtran指定.vcd來源檔與.vec輸出檔名稱。



page563.gif


bulb.gif以上範例是一個最精簡的寫法,如果您有興趣想進一步了解如何寫cmd_file,請參閱VTRAN Manual (有280頁... )


bulb.gif從testbench.v --> .vcd --> .vec有點麻煩,其實最簡單的作法,可以利用$monitor/$fmonitor指令,直接從testbench產生.vec檔




  1. 開啟GUI介面的NanoSim,並做設定  top.jpg



3-1 執行 % nanosimgui &
    
選擇 Setup a new simulation


page565.jpg



3-2 指定工作路徑時,該路徑必須已經存在,若該路徑不存在,軟體不會自動幫你建。按Next後,會在工作目錄下新增一個"add4.wrk"檔,下一次開啟NanoSim可以在3-1步驟選擇"Open an existing simulation"開啟"add4.wrk"


page567.jpg


3-3 Netlist & Stimulus settings



3-3-1 輸入類比電路的SPICE file(如果有),與MOS model與VDD / VSS設定


page568.gif




bulb.gif當你在右邊"SPICE Netlist File"欄位內選定檔案,左邊"SPICE Netlist File Type"欄位會自動顯示相對應的Type
bulb.gifPre-layout SPICE netlist files設定欄位內,若要刪除一列的設定項,於項目編號上按滑鼠右鍵,選"Delete Row"


3-3-2 輸入合成後的gate-level netlist 與此design做合成時用的cell library路徑


page569.gif




3-3-3 指定gate-level netlist中的top module name,並指定configuration file路徑


page564.gif




bulb.gif為何這裡要用configuration file,而不直接在step 3-4, 3-5設定就好? 本configuration file內容如下...



page566.gif


      第2, 3行就是步驟3-5的設定,第一行我目前不知道要在視窗哪裡設定,而這一行的意思是什麼我也不太清楚
      但它會影響到做
Gate-Level Verilog Netlists simulation的結果(不信你把它拿掉看看會發生什麼事...)


3-3-4 輸入vector stimulus (.vec)


page570.gif



3-4 模擬前檢查所有的設定


page571.jpg



3-5 按"Simulate"開始跑模擬




  1. 查看波形與報告結果 (利用turboWave or other waveform viwer)  top.jpg

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户90519 2009-8-11 15:07

Good!!
相关推荐阅读
用户131639 2010-03-23 16:35
Awk 介绍
通用线程:Awk 实例第 1部分 一种名称很奇特的优秀语言介绍 http://www-128.ibm.com/developerworks/cn/linux/shell/awk/awk-1/index...
用户131639 2010-03-23 16:32
shell的输入与输出操作
shell的输入与输出主要包括:echo命令read命令cat命令管道tee命令标准输入、输出和标准错误重定向 echo [-e] [-n] stringstring : 字符串,可以含 shell...
用户131639 2009-08-22 21:22
PCB基本设计流程
  就随便写点对PCB有一个系统的、合理的设计流程。     一般PCB基本设计流程如下:前期准备->PCB结构设计->PCB布局->布线->布线优化和丝印->网络和DR...
用户131639 2009-08-22 00:06
香港金融危机全解密
引用1997年的金秋10月20日,国东强早早地打开了电脑等待着香港股市开盘。今天是一个特殊的日子,10年前的今天,正是美国华尔街股市的“黑色星期一”。现在香港回归的喜悦气氛还未散尽,人们已经感到了危机...
用户131639 2008-09-18 17:13
Why we should do gate-level simulation?
1. Since scan and other test structures are added during and after synthesis, they are notchecked by...
用户131639 2008-09-07 17:05
FPGA STA
静态时序分析在高速FPGA设计中的应用摘要:介绍了采用STA (静态时序分析)对FPGA (现场可编程门阵列)设计进行时序验证的基本原理,并介绍了几种与STA相关联的时序约束。针对时序不满足的情况,提...
EE直播间
更多
我要评论
1
6
关闭 站长推荐上一条 /3 下一条