|
京微雅格是世界上除美國(guó)硅谷以外唯一自主研發(fā)并成功量產(chǎn)現(xiàn)場(chǎng)可編程邏輯(FPGA)芯片的公司,目前擁有數(shù)百項(xiàng)技術(shù)專(zhuān)利和近百款產(chǎn)品。目前,已經(jīng)有越來(lái)越多的用戶都開(kāi)始使用國(guó)產(chǎn)FPGA來(lái)做自己的設(shè)計(jì),然而在FPGA的開(kāi)發(fā)過(guò)程中,免不了要對(duì)設(shè)計(jì)進(jìn)行仿真。京微雅格的FPGA是支持在modelsim中進(jìn)行仿真的。 京微雅格的FPGA需要在Primace軟件中進(jìn)行開(kāi)發(fā),為了便于客戶進(jìn)行仿真設(shè)計(jì),在Primace5.0及以上版本都支持在工程中直接調(diào)用仿真工具M(jìn)odelsim。同時(shí),也支持在modelsim中直接進(jìn)行調(diào)用京微雅格仿真庫(kù)的方式脫離primace軟件進(jìn)行仿真。這對(duì)利用modelsim進(jìn)行自動(dòng)化仿真提供了極大的便利。 1、 在Primace中調(diào)用modelsim仿真 Primace5.0及以上版本的軟件,直接支持在軟件中直接調(diào)用modelsim軟件進(jìn)行仿真。具體步驟如下: 一、下載安裝Modelsim,能正常使用Modelsim。 二、設(shè)置Primace軟件的EDA工具路徑。打開(kāi)Primace軟件,選擇Tools菜單下的Options選項(xiàng),彈出設(shè)置窗口。點(diǎn)擊左邊窗口Environment分支下的EDA Tools標(biāo)簽,在右邊的窗口中設(shè)置好EDA Simulation Tool下的Modelsim Path路徑,例如“C:\modeltech_10.1a\win32”,需要具體到win32目錄,如下圖所示。 三、編寫(xiě)testbench文件并將文件添加到工程中。并設(shè)置文件屬性為testbench。 該testbench文件是仿真激勵(lì)文件,只有添加到工程中,并且設(shè)為testbench屬性后,才能讓Primace軟件識(shí)別為激勵(lì)文件,才能正常啟動(dòng)仿真過(guò)程。下圖所示為添加名為top_tb.v的testbench文件。 經(jīng)過(guò)這步,工程里就具備了所有的條件,既有源碼Design File,也有Test Bench File。 四、運(yùn)行菜單Flow->Simulation->RTL Simulation 啟動(dòng)RTL級(jí)的前仿真。這時(shí)Primace會(huì)自動(dòng)調(diào)用Modelsim軟件,并把所有源碼在Modelsim里編譯,并自動(dòng)啟動(dòng)仿真窗口。 同樣,運(yùn)行Flow->Simulation->Timing Simulation可以啟動(dòng)包含時(shí)延信息的后仿真,得到的波形是經(jīng)過(guò)布局布線后在芯片內(nèi)的真實(shí)波形仿真結(jié)果。 2、 仿真過(guò)程探究 primace調(diào)用modelsim后,在modelsim的腳本窗口會(huì)發(fā)現(xiàn)一些信息,經(jīng)過(guò)查看信息就大概能了解整體仿真的過(guò)程是如何進(jìn)行的。這種仿真,實(shí)際是Primace軟件啟動(dòng)modelsim后,執(zhí)行了do文件的結(jié)果。 執(zhí)行過(guò)一次RTL Simulation之后,Primace會(huì)在工程目錄下新建simulate目錄,并自動(dòng)生成所有相關(guān)的仿真文件,包括擴(kuò)展名為.do的文件。用文本工具打開(kāi)*.do文件可以看到其內(nèi)容: Modelsim的do文件是modelsim支持的一種批處理文件: 第8行:建立rtl_work庫(kù) 第9行:把work庫(kù)映射到rtl_work庫(kù)上來(lái) 第10行:編譯京微雅格的FPGA仿真庫(kù)文件 第11行:編譯工程里使用到的IP仿真核庫(kù)文件 第12行:編譯工程里的源文件,激勵(lì)文件 第13行:?jiǎn)?dòng)modelsim仿真 第14行:添加所有信號(hào)到波形文件中 當(dāng)Modelsim執(zhí)行到此時(shí),用戶只需要執(zhí)行相應(yīng)的時(shí)間就可以進(jìn)行仿真了。 在用Primace調(diào)用Moldesim進(jìn)行仿真時(shí),如果需要更改代碼重新編譯仿真,每次都去點(diǎn)擊Flow->Simulation->RTL Simulation進(jìn)行仿真,會(huì)比較麻煩。其實(shí)在連續(xù)改代碼并生新仿真的過(guò)程中,可以按以下步驟進(jìn)行: 1、 工程第一次可以運(yùn)行Flow->Simulation->Timing Simulation過(guò)程,讓軟件自動(dòng)建立do文件,并調(diào)用modelsim仿真之后,不要再關(guān)閉modelsim程序,直接在modelsim里的腳本執(zhí)行窗口執(zhí)行do 文件就可以啟動(dòng)仿真:如輸入 do top_rtl_sim.do 并按回車(chē)確認(rèn)。 2、 仿真過(guò)程不要關(guān)閉modelsim,修改源代碼時(shí),可以用modelsim文本編輯器,也可以使用UE等第三方文本編輯器,修改后在腳本執(zhí)行窗口直接運(yùn)行do文件。 3、 為防止每次都手動(dòng)修改并添加仿真信號(hào),可以保存需要的仿真信號(hào)。在Modelsim程序的File菜單下,點(diǎn)擊Save Format,保存信號(hào)文件為wave.do文件。 要自動(dòng)添加這些信號(hào),修改第14行為 “do wave.do”。如果再想自動(dòng)執(zhí)行一段時(shí)間,可以在15行添加 “run 5ms”,這樣仿真停止后就可以直接觀察所需要的信號(hào)了,如下圖所示: 3、 直接Modelsim仿真 能不能不用Primace軟件調(diào)用modelsim的方法,直接在Modelsim里仿真呢?答案是肯定的。這需要有京微雅格的仿真庫(kù)文件,一旦有了仿真庫(kù)文件,就可以在第三方仿真工具中靈活進(jìn)行仿真。具體過(guò)程如下: 1、 建立modelsim工程,工程名:speed_sim 添加源文件及testbench文件: 2、 添加仿真基礎(chǔ)庫(kù)文件到工程里來(lái) 仿真庫(kù)文件在安裝primace的目錄里:C:/capital_micro/primace5.0.3/data/lib/ 3、 添加IPcore必要的源文件。例如工程里使用到FIFO,就到工程目錄下的ip_core目錄下找相應(yīng)的源文件,也添加到工程里來(lái)。 4、 編譯整個(gè)工程,把必要的語(yǔ)法錯(cuò)誤改掉,直到?jīng)]有錯(cuò)誤。啟動(dòng)仿真 使用中的簡(jiǎn)單方便的技巧: 1、 在波形文件中添加的信號(hào),可以存為wave.do文件,需要的時(shí)候執(zhí)行do wave.do就可以把所需的信號(hào)添加到波形窗口中。 2、 更新過(guò)原代碼后,不需要重新啟動(dòng)仿真,只需要編譯一下更新的源代碼文件,然后點(diǎn)擊復(fù)位按鈕,把仿真器的所有狀態(tài)復(fù)位,再執(zhí)行設(shè)計(jì)的時(shí)間,就是新的更新后的代碼仿真波形了。這樣可以不用每次都通過(guò)start simulation啟動(dòng)仿真。 |