背景:從ISE14.7遷移到vivado2016.2. xilinx的軟件改的真是不一般的大。兩個軟件操作差距真是讓人想罵人。由於項目需要,准備調試DDR3。對於新手來說,例化一個DDR3 ip.如果有個例程,可以參考。那就非常好了。xilinx貼心的給我們准備了這個例程。那如何去運行這個例程,給我們作為參考用呢。本文檔就簡單介紹一下具體方法。本方法純屬個人方法。如有問題,自行解決!!!
開始正題:
第一步,在你自己的project下例化一個DDR3的ip。例化完成之后,如下圖:

第二步,右擊這個核,顯示open ip example 
第三步,就是點擊這個open_ip_example_design .vivado會開始新建一個project .過程不表~。結果如圖 
第四步,簡單的操作是,運行tb仿真就行了 

運行結果:就是漫長的等待!!!!!!!!!系統自帶的vivado simulate 
實際項目,仿真測試,還是用利器modelsim吧!速度甩了vivado自帶的好幾條街~
運行結果: 
到此,整個流程都結束了。
BUT,總感覺怪怪的是不是,系統自帶的仿真時如何操作的呢!!!
其實vivado對應的project里有相關的文檔解釋的很清楚了。
關於modelsim的操作如下:
1. How to run simulations in Modelsim/QuestaSim simulator
A) sim.do File :
a) The 'sim.do' file has commands to compile and simulate memory
interface design and run the simulation for specified period of time.
b) It has the syntax to Map the required libraries (unisims_ver,
unisim and secureip). The libraries should be mapped using
the following command
vmap unisims_ver <unisims_ver lib path>
vmap unisim <unisim lib path>
vmap secureip <secureip lib path>
Also, $XILINX_VIVADO environment variable must be set in order to compile glbl.v file
c) Displays the waveforms that are listed with "add wave" command.
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
B) Steps to run the Modelsim/QuestaSim simulation:
a) The user should invoke the Modelsim/QuestaSim simulator GUI.
b) Change the present working directory path to the sim folder.
In Transcript window, at Modelsim/QuestaSim prompt, type the following
command to change directory path.
cd <sim directory path>
c) Run the simulation using sim.do file.
At Modelsim/QuestaSim prompt, type the following command:
do sim.do
d) To exit simulation, type the following command at Modelsim/QuestaSim
prompt:
quit -f
e) Verify the transcript file for the memory transactions.
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
大家看懂了有沒有?看起了很簡單。是不是!!!!BUT,你自己操作一遍,發現不知道怎么弄!!!
此處分割線———————————————————————-
為了找到流程,第一步在project里面找到sim.do文件。 
第二步,打開文件,查看相關內容 
vlib work
Map the required libraries here
vmap unisims_ver
vmap unisim
vmap secureip
Compile all modules
vlog ../../../sources_1/imports/rtl/*.v
vlog -incr ../../../sources_1/imports/rtl/traffic_gen/*.v
vlog ../../../sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/mig_7series_0.v
vlog ../../../sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/mig_7series_0_mig_sim.v
vlog -incr ../../../sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/clocking/*.v
vlog -incr ../../../sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/controller/*.v
vlog -incr ../../../sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/ecc/*.v
vlog -incr ../../../sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/ip_top/*.v
vlog -incr ../../../sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/phy/*.v
vlog -incr ../../../sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/ui/*.v
這段代碼干什么用的呢?
vlib work ,剛才截圖里說了,是用來在當前目錄下建一個work文件夾
至於為毛能建立?大伙百度一下。
vlog ….
vlog….
vlog….
這幾行的是編譯對應目錄下的.v文件
剩下的基本上就是一樣的。編譯
Compile files in sim folder (excluding model parameter file)
$XILINX variable must be set
vlog -incr $env(XILINX_VIVADO)/data/verilog/src/glbl.v
vlog wiredly.v
vlog sim_tb_top.v
這里的glbl.v文件是哪里的呢?這個文件是在vivado安裝路徑里面。我們需要copy過來。然后把語句改一下。不然你就要去設置XILINX_VIVADO 的環境變量。我一開始是報錯了。所以還是改了吧
改成如下的
vlog ./glbl.v
do 文件需要修改的就這么多。沒什么修改的。
是不是到此就可以了呢!too native too simple
這里我們需要一個modelsim.ini文件。這個文件是干啥的呢?
是vivado仿真庫里的環境變量!!!
這個文件必須要,不然找不到相應的編譯庫。根本就無法編譯。
我們把這個文件copy過來。基本上就可以了。
這次就直接在modelsim里面,change directory到當前目錄。然后直接輸入do sim.do。就等着運行結束,出結果吧。
第一篇認真寫的博客。謝絕無引用轉載。寫的有點粗略。后期再慢慢修改吧!
-
-
-
yanhe156
4天前 20:233樓 -
vivado自帶的example design的路徑在哪? 找不到啊
-
-
-
-
qq_32164245
前天 11:06 -
回復yanhe156:D:\FPGA\DDR3\k7_ddr3\ddr3_sim1\mig_7series_0_ex\mig_7series_0_ex.srcs\sources_1\ip\mig_7series_0\mig_7series_0\example_design按這樣的路徑找 這只是我的路徑 但是后面的都一樣
-
-
-
-
u011164476
2017-07-06 19:202樓 -
你好,我問一下如果我加上fifo,自己寫一個與ddr3的控制接口, sim_tb_top.v需要修改嗎?其他的還要修改嗎?我自己寫了一個用戶接口控制一直不知道testvbench怎么寫,希望你能回復一下,謝謝。可加qq870650456
-
-
-
-
qq_36255949
2017-04-30 21:391樓 -
你好,如果加上fifo的話怎么仿真呢?sim.do文件改怎樣修改呢?
-
