1 | #start with: vsim -c -do simula.do |
---|
2 | |
---|
3 | vlib work |
---|
4 | |
---|
5 | #Map the required libraries here.# |
---|
6 | |
---|
7 | #Compile all modules# |
---|
8 | |
---|
9 | vlog +incdir+../T1-common/include/ ../T1-common/common/*.v |
---|
10 | vlog +incdir+../T1-common/include/ ../Top/*.v |
---|
11 | vlog +incdir+../OC-UART +incdir+../T1-common/include/ ../OC-UART/*.v |
---|
12 | vlog +incdir+../T1-common/include/ ../NOR-flash/*.v |
---|
13 | vlog +incdir+../T1-common/include/ ../os2wb/*.v |
---|
14 | vlog +incdir+../T1-common/include/ ../T1-common/m1/*.V |
---|
15 | vlog +incdir+../T1-common/include/ ../T1-common/srams/*.v |
---|
16 | vlog +incdir+../T1-common/include/ ../T1-common/u1/*.V |
---|
17 | vlog +incdir+../T1-common/include/ ../T1-FPU/*.v |
---|
18 | vlog +incdir+../T1-common/include/ +incdir+../WB ../WB/*.v |
---|
19 | vlog +incdir+../T1-common/include/ ../WB2ALTDDR3/*.v |
---|
20 | vlog +incdir+../T1-common/include/ ../Xilinx/*.v |
---|
21 | vlog +incdir+../T1-common/include/ ../T1-CPU/exu/*.v |
---|
22 | vlog +incdir+../T1-common/include/ ../T1-CPU/ffu/*.v |
---|
23 | vlog +incdir+../T1-common/include/ ../T1-CPU/ifu/*.v |
---|
24 | vlog +incdir+../T1-common/include/ ../T1-CPU/lsu/*.v |
---|
25 | vlog +incdir+../T1-common/include/ ../T1-CPU/mul/*.v |
---|
26 | vlog +incdir+../T1-common/include/ ../T1-CPU/rtl/*.v |
---|
27 | vlog +incdir+../T1-common/include/ ../T1-CPU/spu/*.v |
---|
28 | vlog +incdir+../T1-common/include/ ../T1-CPU/tlu/*.v |
---|
29 | |
---|
30 | #Compile files in sim folder (excluding model parameter file)# |
---|
31 | #$XILINX variable must be set |
---|
32 | vlog $env(XILINX)/../../verilog/src/glbl.v |
---|
33 | #vlog $XILINX/../../verilog/src/glbl.v |
---|
34 | vlog ../sim/*.v |
---|
35 | |
---|
36 | #Pass the parameters for memory model parameter file# |
---|
37 | vlog +incdir+. +define+x512Mb +define+sg37E +define+x16 ddr2_model.v |
---|
38 | |
---|
39 | #Load the design. Use required libraries.# |
---|
40 | |
---|
41 | vsim -c -t ps -novopt +notimingchecks -L unisims_ver work.tb_top glbl |
---|
42 | #vsim -c -t ps -novopt +notimingchecks work.tb_top glbl |
---|
43 | |
---|
44 | pause |
---|
45 | onerror {resume} |
---|
46 | #Log all the objects in design. These will appear in .wlf file# |
---|
47 | log -r /* |
---|
48 | #View sim_tb_top signals in waveform# |
---|
49 | add wave sim:/tb_top/* |
---|
50 | |
---|
51 | #Change radix to Hexadecimal# |
---|
52 | radix hex |
---|
53 | #Supress Numeric Std package and Arith package warnings.# |
---|
54 | #For VHDL designs we get some warnings due to unknown values on some signals at startup# |
---|
55 | # ** Warning: NUMERIC_STD.TO_INTEGER: metavalue detected, returning 0# |
---|
56 | #We may also get some Arithmetic packeage warnings because of unknown values on# |
---|
57 | #some of the signals that are used in an Arithmetic operation.# |
---|
58 | #In order to suppress these warnings, we use following two commands# |
---|
59 | set NumericStdNoWarnings 1 |
---|
60 | set StdArithNoWarnings 1 |
---|
61 | |
---|
62 | #Choose simulation run time by inserting a breakpoint and then run for specified # |
---|
63 | #period. For more details, refer to Simulation Guide section of MIG user guide (UG086).# |
---|
64 | when {/sim_tb_top/phy_init_done = 1} { |
---|
65 | if {[when -label a_100] == ""} { |
---|
66 | when -label a_100 { $now = 50 us } { |
---|
67 | nowhen a_100 |
---|
68 | report simulator control |
---|
69 | report simulator state |
---|
70 | if {[examine /sim_tb_top/error] == 0} { |
---|
71 | echo "TEST PASSED" |
---|
72 | stop |
---|
73 | } |
---|
74 | if {[examine /sim_tb_top/error] != 0} { |
---|
75 | echo "TEST FAILED: DATA ERROR" |
---|
76 | stop |
---|
77 | } |
---|
78 | } |
---|
79 | } |
---|
80 | } |
---|
81 | |
---|
82 | #In case calibration fails to complete, choose the run time and then stop# |
---|
83 | when {$now = @500 us and /sim_tb_top/phy_init_done != 1} { |
---|
84 | echo "TEST FAILED: CALIBRATION DID NOT COMPLETE" |
---|
85 | stop |
---|
86 | } |
---|
87 | |
---|
88 | echo "NOTE: Initial 200us power on period is skipped for simulation. |
---|
89 | Change SIM_ONLY parameter in sim_tb_top file to activate this." |
---|
90 | |
---|
91 | run -all |
---|
92 | stop |
---|
93 | |
---|