1 |
2 |
__alexs__ |
#
|
2 |
|
|
# create environment libraries
|
3 |
|
|
#
|
4 |
|
|
proc env {} { vlib mul
|
5 |
|
|
vlib plasma
|
6 |
|
|
vlib memory
|
7 |
|
|
vlib work
|
8 |
|
|
}
|
9 |
|
|
|
10 |
|
|
#
|
11 |
|
|
# compile all source files
|
12 |
|
|
#
|
13 |
|
|
proc c_src {} {set src_path ../src
|
14 |
|
|
vcom -work plasma -93 -O5 -quiet $src_path/mips_instruction_set.vhd
|
15 |
|
|
vcom -work plasma -93 -O5 -quiet $src_path/plasma_pack.vhd
|
16 |
|
|
vcom -work mul -93 -O5 -quiet $src_path/cores/mul_core.vhd
|
17 |
|
|
vcom -work mul -93 -O5 -quiet $src_path/cores/div_core.vhd
|
18 |
|
|
vcom -work plasma -93 -O5 -quiet $src_path/subunits/plasma_pc.vhd
|
19 |
|
|
vcom -work plasma -93 -O5 -quiet $src_path/subunits/plasma_reg_bank.vhd
|
20 |
|
|
vcom -work plasma -93 -O5 -quiet $src_path/subunits/plasma_alu.vhd
|
21 |
|
|
vcom -work plasma -93 -O5 -quiet $src_path/subunits/plasma_mult.vhd
|
22 |
|
|
vcom -work plasma -93 -O5 -quiet $src_path/subunits/plasma_shifter.vhd
|
23 |
|
|
vcom -work plasma -93 -O5 -quiet $src_path/subunits/plasma_comparator.vhd
|
24 |
|
|
vcom -work plasma -93 -O5 -quiet $src_path/fpu/plasma_fpu_alu.vhd
|
25 |
|
|
vcom -work plasma -93 -O5 -quiet $src_path/fpu/plasma_fpu_comparator.vhd
|
26 |
|
|
vcom -work plasma -93 -O5 -quiet $src_path/fpu/plasma_fpu_reg_bank.vhd
|
27 |
|
|
vcom -work plasma -93 -O5 -quiet $src_path/fpu/plasma_fpu.vhd
|
28 |
|
|
vcom -work plasma -93 -O5 -quiet $src_path/datapaths/plasma_datapath_MIPSI.vhd
|
29 |
|
|
vcom -work plasma -93 -O5 -quiet $src_path/datapaths/plasma_datapath_MIPSI_FPU.vhd
|
30 |
|
|
vcom -work plasma -93 -O5 -quiet $src_path/controlunits/plasma_control_MIPSI.vhd
|
31 |
|
|
vcom -work plasma -93 -O5 -quiet $src_path/controlunits/plasma_control_MIPSI_FPU.vhd
|
32 |
|
|
vcom -work plasma -93 -O5 -quiet $src_path/plasma_mem_ctrl.vhd
|
33 |
|
|
vcom -work plasma -93 -O5 -quiet $src_path/plasma.vhd
|
34 |
|
|
|
35 |
|
|
set test_path ../test/vhdl
|
36 |
|
|
vcom -work memory -explicit -93 -rangecheck -O5 -nologo -quiet -pedanticerrors $test_path/plasma_memory.vhd
|
37 |
|
|
vcom -work work -explicit -93 -O5 $test_path/tb_plasma.vhd
|
38 |
|
|
}
|
39 |
|
|
|
40 |
|
|
|
41 |
|
|
#
|
42 |
|
|
# MAIN PROGRAM
|
43 |
|
|
#
|
44 |
|
|
# create simulation libraries
|
45 |
|
|
env
|
46 |
|
|
# compile sources
|
47 |
|
|
c_src
|
48 |
|
|
# start simulation
|
49 |
|
|
vsim -t ps -vopt -voptargs="-G FPU_FLAG=OF" \
|
50 |
|
|
-voptargs="-G SIM_FLAG=ON" \
|
51 |
|
|
-voptargs="-G DEBUG_FLAG=OF" \
|
52 |
|
|
-voptargs="+acc=r+/tb_plasma/init" \
|
53 |
|
|
-voptargs="+acc=r+/tb_plasma/sim_finish" \
|
54 |
|
|
-voptargs="+acc=r+/plasma_pack/plasma_rbank" \
|
55 |
|
|
-voptargs="+acc=r+/tb_plasma/u2_memory/ram"\
|
56 |
|
|
work.tb_plasma
|
57 |
|
|
|
58 |
|
|
# add simulation memory access
|
59 |
|
|
source plasma_memory.tcl
|
60 |
|
|
|
61 |
|
|
# add plasma signals
|
62 |
|
|
do wave.do
|
63 |
|
|
|
64 |
|
|
# start simulation
|
65 |
|
|
run -all
|