vmu6.in 5.63 KB
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;							;;
;;  MULTIPLIER DATAPATH AND INSTRUCTION DECODE TEST:	;;
;;							;;
;;	VMACQ, VMULU, VMULQ, VMUDN, VMULF, VMUDM, VMUDL,;;
;;	VMUDHL, VMUDH, VMADN, VMADM, VMADHL, VMADL,	;;
;;	VMADH, VMACU, VMACF				;;
;;							;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
prog_name  vmu

reg_assign vS         $v9
reg_assign vT         $v11
reg_assign vD         $v13
reg_assign vDexp      $v15
reg_assign vTemp      $v17
reg_assign vAccL      $v19
reg_assign vAccM      $v21
reg_assign vAccH      $v23
reg_assign vAccLexp   $v25
reg_assign vAccMexp   $v27
reg_assign vAccHexp   $v29
reg_assign v4000      $v31
reg_assign v0001      $v0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; VMADL
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
start
op      vmadl
element 4w

vS    0xa853 0x50a7 0xa14f 0x429f 0x853f 0x0a7e 0x14fc 0x29f8
vT    0x0000 0x0000 0x0000 0x0000 0x3f0a 0x0000 0x0000 0x0000

vAccL 0xf0a2 0xe145 0xc28a 0x8515 0x0a2b 0x1456 0x28ac 0x5158
vAccM 0xa2b1 0x4563 0x8ac7 0x158f 0x2b1e 0x563c 0xac78 0x58f1
vAccH 0xffff 0x0000 0xffff 0x0000 0x0000 0x0000 0xffff 0x0000

end
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
start
op      vmadl
element 0h

vS    0x2468 0x48d1 0x91a3 0x2346 0x468c 0x8d19 0x1a32 0x3464
vT    0xd190 0x0000 0x0000 0x0000 0x9041 0x0000 0x0000 0x0000

vAccL 0x20a2 0x4144 0x8289 0x0512 0x0a25 0x144a 0x2894 0x5128
vAccM 0xa251 0x44a2 0x8944 0x1289 0x2512 0x4a25 0x944a 0x2894
vAccH 0xffff 0x0000 0xffff 0x0000 0x0000 0x0000 0xffff 0x0000

end
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
start
op      vmadl
element 0q

vS    0x468b 0x8d16 0x1a2d 0x345b 0x68b7 0xd16e 0xa2dd 0x45ba
vT    0x16e9 0x0000 0x6e94 0x0000 0xe941 0x0000 0x9411 0x0000

vAccL 0xa089 0x4112 0x8224 0x0448 0x0891 0x1122 0x2244 0x4489
vAccM 0x8912 0x1225 0x244a 0x4894 0x9129 0x2252 0x44a5 0x894a
vAccH 0xffff 0x0000 0x0000 0x0000 0xffff 0x0000 0x0000 0xffff

end
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; Slice0: (01ff,7e00)
;; Slice1: (03ff,7c00)
;; Slice2: (07ff,7800)
;; Slice3: (0fff,7000)
;; Slice4: (1fff,6000)
;; Slice5: (3fff,4000)
;; Slice6: (abcd,ef01)
;; Slice7: (1234,5678)
;;
start
op      vmadl
element vector

vS    0x01ff 0x03ff 0x07ff 0x0fff 0x1fff 0x3fff 0xabcd 0x1234
vT    0x7e00 0x7c00 0x7800 0x7000 0x6000 0x4000 0xef01 0x5678

vAccL 0x9999 0xaaaa 0xbbbb 0xcccc 0xdddd 0xeeee 0xffff 0x0000
vAccM 0x1111 0x8222 0xb333 0x4444 0x5555 0xe666 0xf777 0x7fff
vAccH 0x0000 0xffff 0xffff 0x0000 0x0000 0xffff 0xffff 0x0000

end
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Normal
start
op      vmadl
element vector

vS    0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000
vT    0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000

vAccL 0x0000 0x0000 0x7fff 0x0000 0x1234 0x89ab 0xfeed 0x3456
vAccM 0x0000 0x4123 0x7ffe 0x8123 0xffff 0x5432 0x6789 0xabcd
vAccH 0x0000 0x0000 0x0000 0xffff 0xffff 0x0000 0x0000 0xffff

end
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; overflow
start
op      vmadl
element vector

vS    0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000
vT    0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000

vAccL 0x1111 0x2222 0x3333 0x4444 0x5555 0x6666 0x7777 0x8888
vAccM 0x8123 0x5678 0x2345 0x3456 0x4567 0x5678 0x6789 0x789a
vAccH 0x0000 0x0001 0x0002 0x0004 0x0008 0x0010 0x0020 0x0040

end
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; underflow
start
op      vmadl
element vector

vS    0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000
vT    0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000

vAccL 0x9999 0xaaaa 0xbbbb 0xcccc 0xdddd 0xeeee 0xffff 0xeeee
vAccM 0x8123 0x1234 0x2345 0x3456 0x4567 0x5678 0x6789 0x789a
vAccH 0x8000 0x8001 0x8002 0x8004 0x8008 0x8010 0x8020 0x8040

end
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; VMADH
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
start
op      vmadh
element 5w

vS    0xfff3 0xffe7 0xffce 0xff9d 0x003a 0x0074 0xffe9 0xffd2
vT    0x0000 0x0000 0x0000 0x0000 0x0000 0xffbd 0x0000 0x0000

vAccL 0xa5ee 0x4bdc 0x97b8 0x2f71 0x5ee2 0xbdc4 0x7b88 0xf710
vAccM 0xee21 0xdc42 0xb885 0x710a 0xe214 0xc428 0x8850 0x10a1
vAccH 0xffff 0xffff 0xffff 0x0000 0xffff 0xffff 0xffff 0x0000

end
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
start
op      vmadh
element 1h

vS    0x0034 0x0069 0xffd3 0xffa6 0x004c 0xff98 0x0031 0x0062
vT    0x0000 0x0010 0x0000 0x0000 0x0000 0xffa4 0x0000 0x0000

vAccL 0x2918 0x5230 0xa460 0x48c0 0x9181 0x2302 0x4605 0x8c0a
vAccM 0x1815 0x302b 0x6056 0xc0ad 0x815a 0x02b4 0x0568 0x0ad0
vAccH 0x0000 0x0000 0x0000 0xffff 0xffff 0x0000 0x0000 0x0000

end
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
start
op      vmadh
element 1q

vS    0xff91 0x0023 0x0047 0xff8f 0x001f 0x003f 0x007e 0xfffd
vT    0x0000 0xfff6 0x0000 0xffd9 0x0000 0x0065 0x0000 0xff96

vAccL 0xfb2c 0xf659 0xecb2 0xd964 0xb2c9 0x6593 0xcb27 0x964e
vAccM 0x2c9d 0x593a 0xb275 0x64ea 0xc9d5 0x93ab 0x2756 0x4eac
vAccH 0x0000 0x0000 0xffff 0x0000 0xffff 0xffff 0x0000 0x0000

end
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; Slice0: (fe00,01ff)
;; Slice1: (fc00,03ff)
;; Slice2: (f800,07ff)
;; Slice3: (f000,0fff)
;; Slice4: (e000,1fff)
;; Slice5: (c000,3fff)
;; Slice6: (8000,7fff)
;; Slice7: (0000,ffff)
;;
start
op      vmadh
element vector

vS    0xfe00 0xfc00 0xf800 0xf000 0xe000 0xc000 0x8000 0x0000
vT    0x01ff 0x03ff 0x07ff 0x0fff 0x1fff 0x3fff 0x7fff 0xffff

vAccL 0xfe00 0xfc00 0xf800 0xf000 0xe000 0xc000 0x8000 0x0000
vAccM 0x01ff 0x03ff 0x07ff 0x0fff 0x1fff 0x3fff 0x7fff 0xffff
vAccH 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0xffff

end