-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathramFile_test.do
More file actions
128 lines (113 loc) · 4.56 KB
/
ramFile_test.do
File metadata and controls
128 lines (113 loc) · 4.56 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
vsim work.reg_file
# End time: 20:02:05 on Oct 13,2025, Elapsed time: 22:43:42
# Errors: 1, Warnings: 2
# vsim work.reg_file
# Start time: 20:02:05 on Oct 13,2025
# Loading std.standard
# Loading std.textio(body)
# Loading ieee.std_logic_1164(body)
# Loading ieee.numeric_std(body)
# Loading work.reg_file(structural)
# Loading work.reg8(structural)
# Loading work.dff(behav)
# ===============================================================
# Add all signals to the waveform
# ===============================================================
add wave -position insertpoint sim:/reg_file/*
# ===============================================================
# Apply stimulus manually
# ===============================================================
# --- Clock generation (10 ns period) ---
force -freeze sim:/reg_file/clk 1 0, 0 {5 ns} -r 10ns
# --- Initial reset ---
force -freeze sim:/reg_file/rst 1 0
run 20 ns
force -freeze sim:/reg_file/rst 0 0
# ===============================================================
# Test Sequence
# ===============================================================
# ---------------------------------------------------------------
# 1. Reset all registers, set all read addresses to zero
# ---------------------------------------------------------------
force -freeze sim:/reg_file/rd_addr0 000 0
force -freeze sim:/reg_file/rd_addr1 000 0
force -freeze sim:/reg_file/we 0 0
force -freeze sim:/reg_file/data_in x"00" 0
run 20 ns
# ---------------------------------------------------------------
# 2. Write Reg(0) = 0xFF
# ---------------------------------------------------------------
force -freeze sim:/reg_file/we 1 0
force -freeze sim:/reg_file/wr_addr 000 0
force -freeze sim:/reg_file/data_in x"FF" 0
run 10 ns
force -freeze sim:/reg_file/we 0 0
run 10 ns
# ---------------------------------------------------------------
# 3. Write Reg(1) = 0x11
# ---------------------------------------------------------------
force -freeze sim:/reg_file/we 1 0
force -freeze sim:/reg_file/wr_addr 001 0
force -freeze sim:/reg_file/data_in x"11" 0
run 10 ns
force -freeze sim:/reg_file/we 0 0
run 10 ns
# ---------------------------------------------------------------
# 4. Write Reg(7) = 0x90
# ---------------------------------------------------------------
force -freeze sim:/reg_file/we 1 0
force -freeze sim:/reg_file/wr_addr 111 0
force -freeze sim:/reg_file/data_in x"90" 0
run 10 ns
force -freeze sim:/reg_file/we 0 0
run 10 ns
# ---------------------------------------------------------------
# 5. Write Reg(3) = 0x08
# ---------------------------------------------------------------
force -freeze sim:/reg_file/we 1 0
force -freeze sim:/reg_file/wr_addr 011 0
force -freeze sim:/reg_file/data_in x"08" 0
run 10 ns
force -freeze sim:/reg_file/we 0 0
run 10 ns
# ---------------------------------------------------------------
# 6. Read Reg(1) on port 0, Reg(7) on port 1, and write 0x03 to Reg(4)
# ---------------------------------------------------------------
force -freeze sim:/reg_file/rd_addr0 001 0
force -freeze sim:/reg_file/rd_addr1 111 0
force -freeze sim:/reg_file/we 1 0
force -freeze sim:/reg_file/wr_addr 100 0
force -freeze sim:/reg_file/data_in x"03" 0
run 10 ns
force -freeze sim:/reg_file/we 0 0
run 20 ns
# ---------------------------------------------------------------
# 7. Read Reg(2) on port 0, Reg(3) on port 1
# ---------------------------------------------------------------
force -freeze sim:/reg_file/rd_addr0 010 0
force -freeze sim:/reg_file/rd_addr1 011 0
run 20 ns
# ---------------------------------------------------------------
# 8. Read Reg(4) on port 0, Reg(5) on port 1
# ---------------------------------------------------------------
force -freeze sim:/reg_file/rd_addr0 100 0
force -freeze sim:/reg_file/rd_addr1 101 0
run 20 ns
# ---------------------------------------------------------------
# 9. Read Reg(6) on port 0, Reg(0) on port 1, and write 0x01 to Reg(0)
# ---------------------------------------------------------------
force -freeze sim:/reg_file/rd_addr0 110 0
force -freeze sim:/reg_file/rd_addr1 000 0
force -freeze sim:/reg_file/we 1 0
force -freeze sim:/reg_file/wr_addr 000 0
force -freeze sim:/reg_file/data_in x"01" 0
run 10 ns
force -freeze sim:/reg_file/we 0 0
run 20 ns
# ===============================================================
# End simulation
# ===============================================================
run 100 ns
echo "# ==============================================================="
echo "# End time: [clock format [clock seconds] -format {%H:%M:%S on %b %d,%Y}]"
echo "# ==============================================================="