?? dspuva16a.do
字號:
echo
echo
echo #########################################
echo " Simulation Script 'DSPuva16a' using ModelSimXE 5.3d #"
echo " v010411 Ok Santiago de Pablo (sanpab@eis.uva.es) #"
echo #########################################
echo
-- Test of ALU and MAC instructions.
restart -force
delete wave -r *
radix hexadecimal
add wave CLK;
add wave nRESET;
add wave State;
add wave CODEaddr;
add wave CODEdata;
add wave IR;
add wave DataBus;
add wave -unsigned RegAddr;
add wave RegWE;
add wave ZFF;
add wave SFF;
add wave VFF;
echo
-- Global signals
force CLK 1 0ns, 0 50ns -repeat 100ns
force nRESET 0 0ns, 1 15ns
-- Initialize
force PORTin 16#0000 0ns
force CODEdata 16#FFFF 0ns
run 100ns
------------------------------------------
-- Program Memory --
------------------------------------------
-- 0x00: 0x0000 NOP --
-- 0x01: 0xAE00 r14 = K --
-- 0x02: 0x53A2 K = 0x53A2 --
-- 0x03: 0xA700 r7 = K --
-- 0x04: 0x6B1F K = 0x6B1F --
-- 0x05: 0xB3E7 r3 = r14 - r7 --
-- 0x06: 0x9733 if (lt) r3 = -r3 --
-- 0x07: 0x42E7 r2 = r14 * r7 --
-- 0x08: 0x6273 r2 = r2 + r7 * r3 --
-- 0x09: 0xAF27 r15 = r2 + r7 (*) --
-- 0x0A: 0x0000 NOP --
-- (*) r2 computed on 0x07, not on 0x08!--
------------------------------------------
-----------------
-- NOP at 0x00 --
-----------------
force CODEdata 16#0000 15ns
force CODEdata 16#XXXX 215ns
run 400ns
-------------------------------------
-- "r14 = 0x53A2" at 0x01 and 0x02 --
-------------------------------------
force CODEdata 16#AE00 15ns
force CODEdata 16#53A2 215ns
run 400ns
------------------------------------
-- "r7 = 0x6B1F" at 0x03 and 0x04 --
------------------------------------
force CODEdata 16#A700 15ns
force CODEdata 16#6B1F 215ns
run 50ns
echo "$now ns: DataBus is 0x[examine -hex DataBus] vs 0x53a200."
echo "$now ns: RegAddr is [examine -u RegAddr] vs 14."
echo "$now ns: RegWE is '[examine RegWE]' vs '1'."
run 100ns
echo "$now ns: ZFF is '[examine ZFF]' vs '0'."
echo "$now ns: SFF is '[examine SFF]' vs '0'."
echo "$now ns: VFF is '[examine VFF]' vs '0'."
run 250ns
-----------------------------
-- "r3 = r14 - r7" at 0x05 --
-----------------------------
-- 0x53A2 (+0'6533) - 0x6B1F (+0'8368) = 0xE88300 (-0,1835) ok
force CODEdata 16#B3E7 15ns
force CODEdata 16#XXXX 215ns
run 50ns
echo "$now ns: DataBus is 0x[examine -hex DataBus] vs 0x6b1f00."
echo "$now ns: RegAddr is [examine -u RegAddr] vs 7."
echo "$now ns: RegWE is '[examine RegWE]' vs '1'."
run 100ns
echo "$now ns: SFF is '[examine SFF]' vs '0'."
run 250ns
--------------------------------
-- "if (lt) r3 = -r3" at 0x06 --
--------------------------------
-- abs[0xE88300 (-0,1835)] = 0x177D00 (+0,1835) ok
force CODEdata 16#9733 15ns
force CODEdata 16#XXXX 215ns
run 50ns
echo "$now ns: DataBus is 0x[examine -hex DataBus] vs 0xe88300."
echo "$now ns: RegAddr is [examine -u RegAddr] vs 3."
echo "$now ns: RegWE is '[examine RegWE]' vs '1'."
run 100ns
echo "$now ns: SFF is '[examine SFF]' vs '1'."
run 250ns
-----------------------------
-- "r2 = r14 * r7" at 0x06 --
-----------------------------
-- 0x53A2 (+0'6533) * 0x6B1F (+0'8368) = 0x45FDAD (+0'5468) ok
force CODEdata 16#42E7 15ns
force CODEdata 16#XXXX 215ns
run 50ns
echo "$now ns: DataBus is 0x[examine -hex DataBus] vs 0x177d00."
echo "$now ns: RegAddr is [examine -u RegAddr] vs 3."
echo "$now ns: RegWE is '[examine RegWE]' vs '1'."
run 100ns
echo "$now ns: SFF is '[examine SFF]' vs '0'."
run 250ns
---------------------------------
-- "r2 = r2 + r7 * r3" at 0x07 --
---------------------------------
-- 0x6B1F00 (+0'8368) * 0x177D00 (+0,1835) = 0x13A82E (+0,1537) ok
-- 0x45FDAD (+0'5468) + 0x13A82E (+0,1537) = 0x59A5DB (+0,7004) ok
force CODEdata 16#6273 15ns
force CODEdata 16#XXXX 215ns
run 50ns
echo "$now ns: DataBus is 0x[examine -hex DataBus] vs 0xffffff."
run 350ns
-----------------------------
-- "r15 = r2 + r7" at 0x06 --
-----------------------------
-- 0x45FDAD (+0'5468) + 0x6B1F00 (+0'8368) = 0xB11CAD (+1,3837=>V!) ok
force CODEdata 16#AF27 15ns
force CODEdata 16#XXXX 215ns
run 50ns
echo "$now ns: DataBus is 0x[examine -hex DataBus] vs 0xffffff."
echo "$now ns: RegWE is '[examine RegWE]' vs '0'."
run 100ns
echo "$now ns: DataBus is 0x[examine -hex DataBus] vs 0x45fdad."
echo "$now ns: RegAddr is [examine -u RegAddr] vs 2."
echo "$now ns: RegWE is '[examine RegWE]' vs '1'."
run 250ns
-----------------
-- Ending NOPs --
-----------------
force CODEdata 16#0000 15ns
run 50ns
echo "$now ns: DataBus is 0x[examine -hex DataBus] vs 0xb11cad."
echo "$now ns: RegAddr is [examine -u RegAddr] vs 15."
echo "$now ns: RegWE is '[examine RegWE]' vs '1'."
run 100ns
echo "$now ns: VFF is '[examine VFF]' vs '1'."
echo "$now ns: DataBus is 0x[examine -hex DataBus] vs 0x59a5db."
echo "$now ns: RegAddr is [examine -u RegAddr] vs 2."
echo "$now ns: RegWE is '[examine RegWE]' vs '1'."
run 250ns
run 400ns
echo
echo All lines above must match.
-- End of file --
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -