Modify data store location
This commit is contained in:
320
24sort_nums_no_init.asm
Normal file
320
24sort_nums_no_init.asm
Normal file
@@ -0,0 +1,320 @@
|
||||
.text
|
||||
#initialize $sp
|
||||
lui $sp, 0x4000
|
||||
addi $sp, $sp, 0x7ff
|
||||
|
||||
# load digit to mem
|
||||
lui $s0, 0x4000
|
||||
addi $s0, $s0, 0x20
|
||||
#0
|
||||
addi $s1, $zero, 0x3f
|
||||
sw $s1, 0($s0)
|
||||
#1
|
||||
addi $s1, $zero, 0x6
|
||||
sw $s1, 4($s0)
|
||||
#2
|
||||
addi $s1, $zero, 0x5b
|
||||
sw $s1, 8($s0)
|
||||
#3
|
||||
addi $s1, $zero, 0x4f
|
||||
sw $s1, 12($s0)
|
||||
#4
|
||||
addi $s1, $zero, 0x66
|
||||
sw $s1, 16($s0)
|
||||
#5
|
||||
addi $s1, $zero, 0x6d
|
||||
sw $s1, 20($s0)
|
||||
#6
|
||||
addi $s1, $zero, 0x7d
|
||||
sw $s1, 24($s0)
|
||||
#7
|
||||
addi $s1, $zero, 0x7
|
||||
sw $s1, 28($s0)
|
||||
#8
|
||||
addi $s1, $zero, 0x7f
|
||||
sw $s1, 32($s0)
|
||||
#9
|
||||
addi $s1, $zero, 0x6f
|
||||
sw $s1, 36($s0)
|
||||
#A
|
||||
addi $s1, $zero, 0x77
|
||||
sw $s1, 40($s0)
|
||||
#B
|
||||
addi $s1, $zero, 0x7c
|
||||
sw $s1, 44($s0)
|
||||
#C
|
||||
addi $s1, $zero, 0x58
|
||||
sw $s1, 48($s0)
|
||||
#D
|
||||
addi $s1, $zero, 0x5e
|
||||
sw $s1, 52($s0)
|
||||
#E
|
||||
addi $s1, $zero, 0x79
|
||||
sw $s1, 56($s0)
|
||||
#F
|
||||
addi $s1, $zero, 0x71
|
||||
sw $s1, 60($s0)
|
||||
|
||||
main:
|
||||
jal disp_num_in_mem
|
||||
|
||||
lui $t0, 0x4000
|
||||
lw $a0, 0x60($t0)
|
||||
jal insertion_sort
|
||||
end:
|
||||
jal disp_num_in_mem
|
||||
j end
|
||||
|
||||
disp_num_in_mem:
|
||||
addi $sp, $sp, -20
|
||||
sw $ra, 4($sp)
|
||||
sw $s0, 8($sp)
|
||||
sw $s1, 12($sp)
|
||||
sw $s2, 16($sp)
|
||||
sw $s3, 20($sp)
|
||||
|
||||
lui $s0, 0x4000
|
||||
# s1 = 0x40000010
|
||||
addi $s1, $s0, 0x10
|
||||
# s0 = 0x40000060
|
||||
addi $s0, $s0, 0x60
|
||||
addi $s2, $zero, 0
|
||||
# addi $s3, $zero, 20
|
||||
lw $s3, 0($s0) # s3 is the total count
|
||||
addi $s0, $s0, 4
|
||||
display_single_number:
|
||||
sll $t0, $s2, 2
|
||||
add $t0, $s0, $t0
|
||||
lw $a0, 0($t0)
|
||||
addi $a1, $s1, 0
|
||||
jal display_number
|
||||
|
||||
addi $s2, $s2, 1
|
||||
sub $t0, $s3, $s2
|
||||
bgtz $t0, display_single_number
|
||||
|
||||
|
||||
jal display_empty
|
||||
|
||||
lw $ra, 4($sp)
|
||||
lw $s0, 8($sp)
|
||||
lw $s1, 12($sp)
|
||||
lw $s2, 16($sp)
|
||||
lw $s3, 20($sp)
|
||||
addi $sp, $sp, 20
|
||||
jr $ra
|
||||
|
||||
# ------------------------------------------------------
|
||||
|
||||
# a0 is the number to be displayed, a1 is the bcd control addr
|
||||
display_number:
|
||||
addi $sp, $sp, -32
|
||||
sw $ra, 4($sp)
|
||||
sw $s0, 8($sp)
|
||||
sw $s1, 12($sp)
|
||||
sw $s2, 16($sp)
|
||||
sw $s3, 20($sp)
|
||||
sw $s4, 24($sp)
|
||||
sw $s5, 28($sp)
|
||||
sw $s6, 32($sp)
|
||||
|
||||
# s0 is the number to be displayed
|
||||
addi $s0, $a0, 0
|
||||
|
||||
# s1 is the bcd_control addr
|
||||
addi $s1, $a1, 0
|
||||
|
||||
# s2 is the base addr for display digit
|
||||
lui $s2, 0x4000
|
||||
addi $s2, $s2, 0x20
|
||||
|
||||
# s3 is the counter for a complete scan of 4 digit
|
||||
# addi $s3, $zero, 0x17c4
|
||||
addi $s3, $zero, 0xbe2
|
||||
all_digit_scan_loop:
|
||||
# s4 is the num being shifted gradually
|
||||
addi $s4, $s0, 0
|
||||
# s6 is the enable digit
|
||||
addi $s6, $zero, 0x100
|
||||
|
||||
addi $s5, $zero, 4
|
||||
single_digit_loop:
|
||||
# get a digit
|
||||
andi $t0, $s4, 0xf
|
||||
# digit * 4 is the memory shift
|
||||
sll $t0, $t0, 2
|
||||
add $t0, $s2, $t0
|
||||
lw $t0, 0($t0)
|
||||
or $t0, $t0, $s6
|
||||
sw $t0, 0($s1)
|
||||
|
||||
srl $s4, $s4, 4
|
||||
sll $s6, $s6, 1
|
||||
|
||||
addi $t0, $zero, 0x400
|
||||
wait_time_loop:
|
||||
addi $t0, $t0, -1
|
||||
bgtz $t0, wait_time_loop
|
||||
|
||||
addi $s5, $s5, -1
|
||||
bgtz $s5, single_digit_loop
|
||||
# end of single digit loop
|
||||
|
||||
# ** depends on the clock **
|
||||
# four digit, 328.68us.
|
||||
# 1s / 328.68us = 3042 = (be2)hex
|
||||
|
||||
addi $s3, $s3, -1
|
||||
bgtz $s3, all_digit_scan_loop
|
||||
|
||||
lw $ra, 4($sp)
|
||||
lw $s0, 8($sp)
|
||||
lw $s1, 12($sp)
|
||||
lw $s2, 16($sp)
|
||||
lw $s3, 20($sp)
|
||||
lw $s4, 24($sp)
|
||||
lw $s5, 28($sp)
|
||||
lw $s6, 32($sp)
|
||||
addi $sp, $sp, 32
|
||||
jr $ra
|
||||
|
||||
display_empty:
|
||||
lui $t0, 0x4000
|
||||
addi $t0, $t0, 0x10
|
||||
sw $zero, 0($t0)
|
||||
|
||||
lui $t0, 0x100
|
||||
display_empty_wait_loop:
|
||||
addi $t0, $t0, -1
|
||||
bgtz $t0, display_empty_wait_loop
|
||||
jr $ra
|
||||
|
||||
# a0 is the total number of numbers needed to be sorted
|
||||
insertion_sort:
|
||||
addi $sp, $sp, -12
|
||||
sw $ra, 4($sp)
|
||||
sw $s0, 8($sp)
|
||||
sw $s1, 12($sp)
|
||||
|
||||
# la $t0, num_N
|
||||
# lw $s0, 0($t0) # n in s0
|
||||
addi $s0, $a0, 0
|
||||
|
||||
# li $s1, 1 # i in s1
|
||||
addi $s1, $zero, 1
|
||||
item_loop:
|
||||
# bge $s1, $s0, done_item_loop # if i >= n, done loop
|
||||
sub $t0, $s0, $s1
|
||||
blez $t0, done_item_loop
|
||||
|
||||
li $a0, 0
|
||||
addi $a1, $s1, -1
|
||||
move $a2, $s1
|
||||
jal binary_search
|
||||
|
||||
move $a0, $v0
|
||||
move $a1, $s1
|
||||
jal insert
|
||||
|
||||
addi $s1, $s1, 1 # i ++
|
||||
j item_loop
|
||||
done_item_loop:
|
||||
|
||||
lw $ra, 4($sp)
|
||||
lw $s0, 8($sp)
|
||||
lw $s1, 12($sp)
|
||||
addi $sp, $sp, 12
|
||||
jr $ra
|
||||
|
||||
binary_search: # a0: left, a1: right, a2: i
|
||||
addi $sp, $sp, -20
|
||||
sw $s0, 4($sp)
|
||||
sw $s1, 8($sp)
|
||||
sw $s2, 12($sp)
|
||||
sw $s3, 16($sp)
|
||||
sw $ra, 20($sp)
|
||||
|
||||
# ble $a0, $a1, in_boundary_binary_search # left <= right, in normal position
|
||||
sub $t0, $a0, $a1
|
||||
blez $t0, in_boundary_binary_search
|
||||
|
||||
# move $v0, $a0 # now in boundary condition
|
||||
add $v0, $a0, $zero
|
||||
|
||||
j done_binary_search
|
||||
|
||||
in_boundary_binary_search:
|
||||
move $s0, $a0 # in normal situation
|
||||
move $s1, $a1
|
||||
move $s2, $a2
|
||||
add $s3, $s0, $s1 # s3 = mid = (left + right) >> 1
|
||||
srl $s3, $s3, 1
|
||||
# jal add_compare_count
|
||||
|
||||
# la $t0, num_buff
|
||||
lui $t0, 0x4000
|
||||
addi $t0, $t0, 0x64
|
||||
|
||||
sll $t1, $s3, 2
|
||||
add $t1, $t1, $t0
|
||||
lw $t1, 0($t1) # t1 = v[mid]
|
||||
sll $t2, $s2, 2
|
||||
add $t2, $t2, $t0
|
||||
lw $t2, 0($t2) # t2 = v[n]
|
||||
# ble $t1, $t2, binary_search_right # v[mid] <= v[n], jump to 'else'
|
||||
sub $t0, $t1, $t2
|
||||
blez $t0, binary_search_right
|
||||
binary_search_left:
|
||||
addi $a1, $s3, -1
|
||||
jal binary_search
|
||||
j done_binary_search
|
||||
binary_search_right:
|
||||
addi $a0, $s3, 1
|
||||
jal binary_search
|
||||
done_binary_search:
|
||||
lw $s0, 4($sp)
|
||||
lw $s1, 8($sp)
|
||||
lw $s2, 12($sp)
|
||||
lw $s3, 16($sp)
|
||||
lw $ra, 20($sp)
|
||||
addi $sp, $sp, 20
|
||||
jr $ra
|
||||
|
||||
insert: # $a0: int k, $a1: int n
|
||||
addi $sp, $sp, -12
|
||||
sw $s0, 4($sp)
|
||||
sw $s1, 8($sp)
|
||||
sw $ra, 12($sp)
|
||||
|
||||
# la $s0, num_buff # s0 = &v[0]
|
||||
lui $s0, 0x4000
|
||||
addi $s0, $s0, 0x64
|
||||
|
||||
sll $t0, $a1, 2
|
||||
add $s2, $s0, $t0
|
||||
lw $s2, 0($s2) # s2 = tmp = 'pivot' = v[n]
|
||||
|
||||
addi $s1, $a1, -1 # s1 = i = n - 1
|
||||
|
||||
insert_loop:
|
||||
# blt $s1, $a0, done_insert_loop # i < k, done loop
|
||||
sub $t0, $s1, $a0
|
||||
bltz $t0, done_insert_loop
|
||||
|
||||
sll $t0, $s1, 2
|
||||
add $t0, $s0, $t0 # t0 = &v[i]
|
||||
lw $t1, 0($t0)
|
||||
sw $t1, 4($t0)
|
||||
|
||||
addi $s1, $s1, -1 # i--
|
||||
j insert_loop
|
||||
done_insert_loop:
|
||||
sll $t0, $a0, 2
|
||||
add $t0, $s0, $t0
|
||||
sw $s2, 0($t0) # t0 = &v[k]
|
||||
|
||||
lw $s0, 4($sp)
|
||||
lw $s1, 8($sp)
|
||||
lw $ra, 12($sp)
|
||||
addi $sp, $sp, 12
|
||||
jr $ra
|
||||
204
24sort_nums_no_init.txt
Normal file
204
24sort_nums_no_init.txt
Normal file
@@ -0,0 +1,204 @@
|
||||
20'd0: instruction <= 32'h3c1d4000;
|
||||
20'd1: instruction <= 32'h23bd07ff;
|
||||
20'd2: instruction <= 32'h3c104000;
|
||||
20'd3: instruction <= 32'h22100020;
|
||||
20'd4: instruction <= 32'h2011003f;
|
||||
20'd5: instruction <= 32'hae110000;
|
||||
20'd6: instruction <= 32'h20110006;
|
||||
20'd7: instruction <= 32'hae110004;
|
||||
20'd8: instruction <= 32'h2011005b;
|
||||
20'd9: instruction <= 32'hae110008;
|
||||
20'd10: instruction <= 32'h2011004f;
|
||||
20'd11: instruction <= 32'hae11000c;
|
||||
20'd12: instruction <= 32'h20110066;
|
||||
20'd13: instruction <= 32'hae110010;
|
||||
20'd14: instruction <= 32'h2011006d;
|
||||
20'd15: instruction <= 32'hae110014;
|
||||
20'd16: instruction <= 32'h2011007d;
|
||||
20'd17: instruction <= 32'hae110018;
|
||||
20'd18: instruction <= 32'h20110007;
|
||||
20'd19: instruction <= 32'hae11001c;
|
||||
20'd20: instruction <= 32'h2011007f;
|
||||
20'd21: instruction <= 32'hae110020;
|
||||
20'd22: instruction <= 32'h2011006f;
|
||||
20'd23: instruction <= 32'hae110024;
|
||||
20'd24: instruction <= 32'h20110077;
|
||||
20'd25: instruction <= 32'hae110028;
|
||||
20'd26: instruction <= 32'h2011007c;
|
||||
20'd27: instruction <= 32'hae11002c;
|
||||
20'd28: instruction <= 32'h20110058;
|
||||
20'd29: instruction <= 32'hae110030;
|
||||
20'd30: instruction <= 32'h2011005e;
|
||||
20'd31: instruction <= 32'hae110034;
|
||||
20'd32: instruction <= 32'h20110079;
|
||||
20'd33: instruction <= 32'hae110038;
|
||||
20'd34: instruction <= 32'h20110071;
|
||||
20'd35: instruction <= 32'hae11003c;
|
||||
20'd36: instruction <= 32'h0c00002a;
|
||||
20'd37: instruction <= 32'h3c084000;
|
||||
20'd38: instruction <= 32'h8d040060;
|
||||
20'd39: instruction <= 32'h0c000077;
|
||||
20'd40: instruction <= 32'h0c00002a;
|
||||
20'd41: instruction <= 32'h08000028;
|
||||
20'd42: instruction <= 32'h23bdffec;
|
||||
20'd43: instruction <= 32'hafbf0004;
|
||||
20'd44: instruction <= 32'hafb00008;
|
||||
20'd45: instruction <= 32'hafb1000c;
|
||||
20'd46: instruction <= 32'hafb20010;
|
||||
20'd47: instruction <= 32'hafb30014;
|
||||
20'd48: instruction <= 32'h3c104000;
|
||||
20'd49: instruction <= 32'h22110010;
|
||||
20'd50: instruction <= 32'h22100060;
|
||||
20'd51: instruction <= 32'h20120000;
|
||||
20'd52: instruction <= 32'h8e130000;
|
||||
20'd53: instruction <= 32'h22100004;
|
||||
20'd54: instruction <= 32'h00124080;
|
||||
20'd55: instruction <= 32'h02084020;
|
||||
20'd56: instruction <= 32'h8d040000;
|
||||
20'd57: instruction <= 32'h22250000;
|
||||
20'd58: instruction <= 32'h0c000046;
|
||||
20'd59: instruction <= 32'h22520001;
|
||||
20'd60: instruction <= 32'h02724022;
|
||||
20'd61: instruction <= 32'h1d00fff8;
|
||||
20'd62: instruction <= 32'h0c000070;
|
||||
20'd63: instruction <= 32'h8fbf0004;
|
||||
20'd64: instruction <= 32'h8fb00008;
|
||||
20'd65: instruction <= 32'h8fb1000c;
|
||||
20'd66: instruction <= 32'h8fb20010;
|
||||
20'd67: instruction <= 32'h8fb30014;
|
||||
20'd68: instruction <= 32'h23bd0014;
|
||||
20'd69: instruction <= 32'h03e00008;
|
||||
20'd70: instruction <= 32'h23bdffe0;
|
||||
20'd71: instruction <= 32'hafbf0004;
|
||||
20'd72: instruction <= 32'hafb00008;
|
||||
20'd73: instruction <= 32'hafb1000c;
|
||||
20'd74: instruction <= 32'hafb20010;
|
||||
20'd75: instruction <= 32'hafb30014;
|
||||
20'd76: instruction <= 32'hafb40018;
|
||||
20'd77: instruction <= 32'hafb5001c;
|
||||
20'd78: instruction <= 32'hafb60020;
|
||||
20'd79: instruction <= 32'h20900000;
|
||||
20'd80: instruction <= 32'h20b10000;
|
||||
20'd81: instruction <= 32'h3c124000;
|
||||
20'd82: instruction <= 32'h22520020;
|
||||
20'd83: instruction <= 32'h20130be2;
|
||||
20'd84: instruction <= 32'h22140000;
|
||||
20'd85: instruction <= 32'h20160100;
|
||||
20'd86: instruction <= 32'h20150004;
|
||||
20'd87: instruction <= 32'h3288000f;
|
||||
20'd88: instruction <= 32'h00084080;
|
||||
20'd89: instruction <= 32'h02484020;
|
||||
20'd90: instruction <= 32'h8d080000;
|
||||
20'd91: instruction <= 32'h01164025;
|
||||
20'd92: instruction <= 32'hae280000;
|
||||
20'd93: instruction <= 32'h0014a102;
|
||||
20'd94: instruction <= 32'h0016b040;
|
||||
20'd95: instruction <= 32'h20080400;
|
||||
20'd96: instruction <= 32'h2108ffff;
|
||||
20'd97: instruction <= 32'h1d00fffe;
|
||||
20'd98: instruction <= 32'h22b5ffff;
|
||||
20'd99: instruction <= 32'h1ea0fff3;
|
||||
20'd100: instruction <= 32'h2273ffff;
|
||||
20'd101: instruction <= 32'h1e60ffee;
|
||||
20'd102: instruction <= 32'h8fbf0004;
|
||||
20'd103: instruction <= 32'h8fb00008;
|
||||
20'd104: instruction <= 32'h8fb1000c;
|
||||
20'd105: instruction <= 32'h8fb20010;
|
||||
20'd106: instruction <= 32'h8fb30014;
|
||||
20'd107: instruction <= 32'h8fb40018;
|
||||
20'd108: instruction <= 32'h8fb5001c;
|
||||
20'd109: instruction <= 32'h8fb60020;
|
||||
20'd110: instruction <= 32'h23bd0020;
|
||||
20'd111: instruction <= 32'h03e00008;
|
||||
20'd112: instruction <= 32'h3c084000;
|
||||
20'd113: instruction <= 32'h21080010;
|
||||
20'd114: instruction <= 32'had000000;
|
||||
20'd115: instruction <= 32'h3c080100;
|
||||
20'd116: instruction <= 32'h2108ffff;
|
||||
20'd117: instruction <= 32'h1d00fffe;
|
||||
20'd118: instruction <= 32'h03e00008;
|
||||
20'd119: instruction <= 32'h23bdfff4;
|
||||
20'd120: instruction <= 32'hafbf0004;
|
||||
20'd121: instruction <= 32'hafb00008;
|
||||
20'd122: instruction <= 32'hafb1000c;
|
||||
20'd123: instruction <= 32'h20900000;
|
||||
20'd124: instruction <= 32'h20110001;
|
||||
20'd125: instruction <= 32'h02114022;
|
||||
20'd126: instruction <= 32'h19000009;
|
||||
20'd127: instruction <= 32'h24040000;
|
||||
20'd128: instruction <= 32'h2225ffff;
|
||||
20'd129: instruction <= 32'h00113021;
|
||||
20'd130: instruction <= 32'h0c00008d;
|
||||
20'd131: instruction <= 32'h00022021;
|
||||
20'd132: instruction <= 32'h00112821;
|
||||
20'd133: instruction <= 32'h0c0000b2;
|
||||
20'd134: instruction <= 32'h22310001;
|
||||
20'd135: instruction <= 32'h0800007d;
|
||||
20'd136: instruction <= 32'h8fbf0004;
|
||||
20'd137: instruction <= 32'h8fb00008;
|
||||
20'd138: instruction <= 32'h8fb1000c;
|
||||
20'd139: instruction <= 32'h23bd000c;
|
||||
20'd140: instruction <= 32'h03e00008;
|
||||
20'd141: instruction <= 32'h23bdffec;
|
||||
20'd142: instruction <= 32'hafb00004;
|
||||
20'd143: instruction <= 32'hafb10008;
|
||||
20'd144: instruction <= 32'hafb2000c;
|
||||
20'd145: instruction <= 32'hafb30010;
|
||||
20'd146: instruction <= 32'hafbf0014;
|
||||
20'd147: instruction <= 32'h00854022;
|
||||
20'd148: instruction <= 32'h19000002;
|
||||
20'd149: instruction <= 32'h00801020;
|
||||
20'd150: instruction <= 32'h080000ab;
|
||||
20'd151: instruction <= 32'h00048021;
|
||||
20'd152: instruction <= 32'h00058821;
|
||||
20'd153: instruction <= 32'h00069021;
|
||||
20'd154: instruction <= 32'h02119820;
|
||||
20'd155: instruction <= 32'h00139842;
|
||||
20'd156: instruction <= 32'h3c084000;
|
||||
20'd157: instruction <= 32'h21080064;
|
||||
20'd158: instruction <= 32'h00134880;
|
||||
20'd159: instruction <= 32'h01284820;
|
||||
20'd160: instruction <= 32'h8d290000;
|
||||
20'd161: instruction <= 32'h00125080;
|
||||
20'd162: instruction <= 32'h01485020;
|
||||
20'd163: instruction <= 32'h8d4a0000;
|
||||
20'd164: instruction <= 32'h012a4022;
|
||||
20'd165: instruction <= 32'h19000003;
|
||||
20'd166: instruction <= 32'h2265ffff;
|
||||
20'd167: instruction <= 32'h0c00008d;
|
||||
20'd168: instruction <= 32'h080000ab;
|
||||
20'd169: instruction <= 32'h22640001;
|
||||
20'd170: instruction <= 32'h0c00008d;
|
||||
20'd171: instruction <= 32'h8fb00004;
|
||||
20'd172: instruction <= 32'h8fb10008;
|
||||
20'd173: instruction <= 32'h8fb2000c;
|
||||
20'd174: instruction <= 32'h8fb30010;
|
||||
20'd175: instruction <= 32'h8fbf0014;
|
||||
20'd176: instruction <= 32'h23bd0014;
|
||||
20'd177: instruction <= 32'h03e00008;
|
||||
20'd178: instruction <= 32'h23bdfff4;
|
||||
20'd179: instruction <= 32'hafb00004;
|
||||
20'd180: instruction <= 32'hafb10008;
|
||||
20'd181: instruction <= 32'hafbf000c;
|
||||
20'd182: instruction <= 32'h3c104000;
|
||||
20'd183: instruction <= 32'h22100064;
|
||||
20'd184: instruction <= 32'h00054080;
|
||||
20'd185: instruction <= 32'h02089020;
|
||||
20'd186: instruction <= 32'h8e520000;
|
||||
20'd187: instruction <= 32'h20b1ffff;
|
||||
20'd188: instruction <= 32'h02244022;
|
||||
20'd189: instruction <= 32'h05000006;
|
||||
20'd190: instruction <= 32'h00114080;
|
||||
20'd191: instruction <= 32'h02084020;
|
||||
20'd192: instruction <= 32'h8d090000;
|
||||
20'd193: instruction <= 32'had090004;
|
||||
20'd194: instruction <= 32'h2231ffff;
|
||||
20'd195: instruction <= 32'h080000bc;
|
||||
20'd196: instruction <= 32'h00044080;
|
||||
20'd197: instruction <= 32'h02084020;
|
||||
20'd198: instruction <= 32'had120000;
|
||||
20'd199: instruction <= 32'h8fb00004;
|
||||
20'd200: instruction <= 32'h8fb10008;
|
||||
20'd201: instruction <= 32'h8fbf000c;
|
||||
20'd202: instruction <= 32'h23bd000c;
|
||||
20'd203: instruction <= 32'h03e00008;
|
||||
204
24sort_nums_no_init_mars.txt
Normal file
204
24sort_nums_no_init_mars.txt
Normal file
@@ -0,0 +1,204 @@
|
||||
3c1d4000
|
||||
23bd07ff
|
||||
3c104000
|
||||
22100020
|
||||
2011003f
|
||||
ae110000
|
||||
20110006
|
||||
ae110004
|
||||
2011005b
|
||||
ae110008
|
||||
2011004f
|
||||
ae11000c
|
||||
20110066
|
||||
ae110010
|
||||
2011006d
|
||||
ae110014
|
||||
2011007d
|
||||
ae110018
|
||||
20110007
|
||||
ae11001c
|
||||
2011007f
|
||||
ae110020
|
||||
2011006f
|
||||
ae110024
|
||||
20110077
|
||||
ae110028
|
||||
2011007c
|
||||
ae11002c
|
||||
20110058
|
||||
ae110030
|
||||
2011005e
|
||||
ae110034
|
||||
20110079
|
||||
ae110038
|
||||
20110071
|
||||
ae11003c
|
||||
0c00002a
|
||||
3c084000
|
||||
8d040060
|
||||
0c000077
|
||||
0c00002a
|
||||
08000028
|
||||
23bdffec
|
||||
afbf0004
|
||||
afb00008
|
||||
afb1000c
|
||||
afb20010
|
||||
afb30014
|
||||
3c104000
|
||||
22110010
|
||||
22100060
|
||||
20120000
|
||||
8e130000
|
||||
22100004
|
||||
00124080
|
||||
02084020
|
||||
8d040000
|
||||
22250000
|
||||
0c000046
|
||||
22520001
|
||||
02724022
|
||||
1d00fff8
|
||||
0c000070
|
||||
8fbf0004
|
||||
8fb00008
|
||||
8fb1000c
|
||||
8fb20010
|
||||
8fb30014
|
||||
23bd0014
|
||||
03e00008
|
||||
23bdffe0
|
||||
afbf0004
|
||||
afb00008
|
||||
afb1000c
|
||||
afb20010
|
||||
afb30014
|
||||
afb40018
|
||||
afb5001c
|
||||
afb60020
|
||||
20900000
|
||||
20b10000
|
||||
3c124000
|
||||
22520020
|
||||
20130be2
|
||||
22140000
|
||||
20160100
|
||||
20150004
|
||||
3288000f
|
||||
00084080
|
||||
02484020
|
||||
8d080000
|
||||
01164025
|
||||
ae280000
|
||||
0014a102
|
||||
0016b040
|
||||
20080400
|
||||
2108ffff
|
||||
1d00fffe
|
||||
22b5ffff
|
||||
1ea0fff3
|
||||
2273ffff
|
||||
1e60ffee
|
||||
8fbf0004
|
||||
8fb00008
|
||||
8fb1000c
|
||||
8fb20010
|
||||
8fb30014
|
||||
8fb40018
|
||||
8fb5001c
|
||||
8fb60020
|
||||
23bd0020
|
||||
03e00008
|
||||
3c084000
|
||||
21080010
|
||||
ad000000
|
||||
3c080100
|
||||
2108ffff
|
||||
1d00fffe
|
||||
03e00008
|
||||
23bdfff4
|
||||
afbf0004
|
||||
afb00008
|
||||
afb1000c
|
||||
20900000
|
||||
20110001
|
||||
02114022
|
||||
19000009
|
||||
24040000
|
||||
2225ffff
|
||||
00113021
|
||||
0c00008d
|
||||
00022021
|
||||
00112821
|
||||
0c0000b2
|
||||
22310001
|
||||
0800007d
|
||||
8fbf0004
|
||||
8fb00008
|
||||
8fb1000c
|
||||
23bd000c
|
||||
03e00008
|
||||
23bdffec
|
||||
afb00004
|
||||
afb10008
|
||||
afb2000c
|
||||
afb30010
|
||||
afbf0014
|
||||
00854022
|
||||
19000002
|
||||
00801020
|
||||
080000ab
|
||||
00048021
|
||||
00058821
|
||||
00069021
|
||||
02119820
|
||||
00139842
|
||||
3c084000
|
||||
21080064
|
||||
00134880
|
||||
01284820
|
||||
8d290000
|
||||
00125080
|
||||
01485020
|
||||
8d4a0000
|
||||
012a4022
|
||||
19000003
|
||||
2265ffff
|
||||
0c00008d
|
||||
080000ab
|
||||
22640001
|
||||
0c00008d
|
||||
8fb00004
|
||||
8fb10008
|
||||
8fb2000c
|
||||
8fb30010
|
||||
8fbf0014
|
||||
23bd0014
|
||||
03e00008
|
||||
23bdfff4
|
||||
afb00004
|
||||
afb10008
|
||||
afbf000c
|
||||
3c104000
|
||||
22100064
|
||||
00054080
|
||||
02089020
|
||||
8e520000
|
||||
20b1ffff
|
||||
02244022
|
||||
05000006
|
||||
00114080
|
||||
02084020
|
||||
8d090000
|
||||
ad090004
|
||||
2231ffff
|
||||
080000bc
|
||||
00044080
|
||||
02084020
|
||||
ad120000
|
||||
8fb00004
|
||||
8fb10008
|
||||
8fbf000c
|
||||
23bd000c
|
||||
03e00008
|
||||
@@ -1,10 +1,35 @@
|
||||
import random
|
||||
|
||||
total_count = random.randint(5, 50)
|
||||
total_count = 20
|
||||
numbers = list()
|
||||
|
||||
for _ in range(20):
|
||||
for _ in range(total_count):
|
||||
numbers.append(random.randint(0, 65535))
|
||||
|
||||
numbers = [
|
||||
0x4B8D,
|
||||
0x2307,
|
||||
0xFAE0,
|
||||
0x7815,
|
||||
0xC105,
|
||||
0x84F0,
|
||||
0xDB6,
|
||||
0xF21D,
|
||||
0xE97A,
|
||||
0xA3B6,
|
||||
0x8466,
|
||||
0x3A25,
|
||||
0x5DF,
|
||||
0xD2DE,
|
||||
0xBA7A,
|
||||
0x7809,
|
||||
0xF6A8,
|
||||
0x361D,
|
||||
0x3ADB,
|
||||
0x969A,
|
||||
]
|
||||
|
||||
with open("gen_num.txt", "w") as fl:
|
||||
fl.writelines([hex(x) + "\n" for x in numbers])
|
||||
|
||||
@@ -12,5 +37,24 @@ with open("gen_num_asm.txt", "w") as fl:
|
||||
for idx, num in enumerate(numbers):
|
||||
fl.write("addi $s1, $zero, %s\nsw $s1, %d($s0)\n" % (hex(num), 4 * idx))
|
||||
|
||||
with open("gen_num_data_mem.txt", "w") as fl:
|
||||
fl.write(
|
||||
"""for (i = StartAddressInWord; i < 24 + StartAddressInWord; i = i + 1) begin
|
||||
memory_data[i] <= 32'h00000000;
|
||||
end
|
||||
for (
|
||||
i = %d + StartAddressInWord; i < MEM_SIZE_IN_WORD + StartAddressInWord; i = i + 1
|
||||
) begin
|
||||
memory_data[i] <= 32'h00000000;
|
||||
end
|
||||
"""
|
||||
% (24 + total_count + 1)
|
||||
)
|
||||
fl.write("memory_data[StartAddressInWord + 24] <= 32'h%08X;\n" % total_count)
|
||||
for idx, num in enumerate(numbers):
|
||||
fl.write(
|
||||
"memory_data[StartAddressInWord + %d] <= 32'h%08X;\n" % (idx + 25, num)
|
||||
)
|
||||
|
||||
with open("gen_num_sorted.txt", "w") as fl:
|
||||
fl.writelines([hex(x) + "\n" for x in sorted(numbers)])
|
||||
|
||||
29
gen_num_data_mem.txt
Normal file
29
gen_num_data_mem.txt
Normal file
@@ -0,0 +1,29 @@
|
||||
for (i = StartAddressInWord; i < 24 + StartAddressInWord; i = i + 1) begin
|
||||
memory_data[i] <= 32'h00000000;
|
||||
end
|
||||
for (
|
||||
i = 45 + StartAddressInWord; i < MEM_SIZE_IN_WORD + StartAddressInWord; i = i + 1
|
||||
) begin
|
||||
memory_data[i] <= 32'h00000000;
|
||||
end
|
||||
memory_data[StartAddressInWord + 24] <= 32'h00000014;
|
||||
memory_data[StartAddressInWord + 25] <= 32'h00004B8D;
|
||||
memory_data[StartAddressInWord + 26] <= 32'h00002307;
|
||||
memory_data[StartAddressInWord + 27] <= 32'h0000FAE0;
|
||||
memory_data[StartAddressInWord + 28] <= 32'h00007815;
|
||||
memory_data[StartAddressInWord + 29] <= 32'h0000C105;
|
||||
memory_data[StartAddressInWord + 30] <= 32'h000084F0;
|
||||
memory_data[StartAddressInWord + 31] <= 32'h00000DB6;
|
||||
memory_data[StartAddressInWord + 32] <= 32'h0000F21D;
|
||||
memory_data[StartAddressInWord + 33] <= 32'h0000E97A;
|
||||
memory_data[StartAddressInWord + 34] <= 32'h0000A3B6;
|
||||
memory_data[StartAddressInWord + 35] <= 32'h00008466;
|
||||
memory_data[StartAddressInWord + 36] <= 32'h00003A25;
|
||||
memory_data[StartAddressInWord + 37] <= 32'h000005DF;
|
||||
memory_data[StartAddressInWord + 38] <= 32'h0000D2DE;
|
||||
memory_data[StartAddressInWord + 39] <= 32'h0000BA7A;
|
||||
memory_data[StartAddressInWord + 40] <= 32'h00007809;
|
||||
memory_data[StartAddressInWord + 41] <= 32'h0000F6A8;
|
||||
memory_data[StartAddressInWord + 42] <= 32'h0000361D;
|
||||
memory_data[StartAddressInWord + 43] <= 32'h00003ADB;
|
||||
memory_data[StartAddressInWord + 44] <= 32'h0000969A;
|
||||
Reference in New Issue
Block a user