diff --git a/hdl/tb/core_tb.v b/hdl/tb/core_tb.v index ad23093..d94afa9 100644 --- a/hdl/tb/core_tb.v +++ b/hdl/tb/core_tb.v @@ -55,7 +55,7 @@ initial begin #10 reset = 0; - #2000 + #5000 reset = 1; $stop; end diff --git a/sim/core_tb.wcfg b/sim/core_tb.wcfg index 2563345..4b4b65e 100644 --- a/sim/core_tb.wcfg +++ b/sim/core_tb.wcfg @@ -23,6 +23,1286 @@ mem_data[0:255,31:0] mem_data[0:255,31:0] HEXRADIX + + [0,31:0] + mem_data[0,31:0] + HEXRADIX + + + [1,31:0] + mem_data[1,31:0] + HEXRADIX + + + [2,31:0] + mem_data[2,31:0] + HEXRADIX + + + [3,31:0] + mem_data[3,31:0] + HEXRADIX + + + [4,31:0] + mem_data[4,31:0] + HEXRADIX + + + [5,31:0] + mem_data[5,31:0] + HEXRADIX + + + [6,31:0] + mem_data[6,31:0] + HEXRADIX + + + [7,31:0] + mem_data[7,31:0] + HEXRADIX + + + [8,31:0] + mem_data[8,31:0] + HEXRADIX + + + [9,31:0] + mem_data[9,31:0] + HEXRADIX + + + [10,31:0] + mem_data[10,31:0] + HEXRADIX + + + [11,31:0] + mem_data[11,31:0] + HEXRADIX + + + [12,31:0] + mem_data[12,31:0] + HEXRADIX + + + [13,31:0] + mem_data[13,31:0] + HEXRADIX + + + [14,31:0] + mem_data[14,31:0] + HEXRADIX + + + [15,31:0] + mem_data[15,31:0] + HEXRADIX + + + [16,31:0] + mem_data[16,31:0] + HEXRADIX + + + [17,31:0] + mem_data[17,31:0] + HEXRADIX + + + [18,31:0] + mem_data[18,31:0] + HEXRADIX + + + [19,31:0] + mem_data[19,31:0] + HEXRADIX + + + [20,31:0] + mem_data[20,31:0] + HEXRADIX + + + [21,31:0] + mem_data[21,31:0] + HEXRADIX + + + [22,31:0] + mem_data[22,31:0] + HEXRADIX + + + [23,31:0] + mem_data[23,31:0] + HEXRADIX + + + [24,31:0] + mem_data[24,31:0] + HEXRADIX + + + [25,31:0] + mem_data[25,31:0] + HEXRADIX + + + [26,31:0] + mem_data[26,31:0] + HEXRADIX + + + [27,31:0] + mem_data[27,31:0] + HEXRADIX + + + [28,31:0] + mem_data[28,31:0] + HEXRADIX + + + [29,31:0] + mem_data[29,31:0] + HEXRADIX + + + [30,31:0] + mem_data[30,31:0] + HEXRADIX + + + [31,31:0] + mem_data[31,31:0] + HEXRADIX + + + [32,31:0] + mem_data[32,31:0] + HEXRADIX + + + [33,31:0] + mem_data[33,31:0] + HEXRADIX + + + [34,31:0] + mem_data[34,31:0] + HEXRADIX + + + [35,31:0] + mem_data[35,31:0] + HEXRADIX + + + [36,31:0] + mem_data[36,31:0] + HEXRADIX + + + [37,31:0] + mem_data[37,31:0] + HEXRADIX + + + [38,31:0] + mem_data[38,31:0] + HEXRADIX + + + [39,31:0] + mem_data[39,31:0] + HEXRADIX + + + [40,31:0] + mem_data[40,31:0] + HEXRADIX + + + [41,31:0] + mem_data[41,31:0] + HEXRADIX + + + [42,31:0] + mem_data[42,31:0] + HEXRADIX + + + [43,31:0] + mem_data[43,31:0] + HEXRADIX + + + [44,31:0] + mem_data[44,31:0] + HEXRADIX + + + [45,31:0] + mem_data[45,31:0] + HEXRADIX + + + [46,31:0] + mem_data[46,31:0] + HEXRADIX + + + [47,31:0] + mem_data[47,31:0] + HEXRADIX + + + [48,31:0] + mem_data[48,31:0] + HEXRADIX + + + [49,31:0] + mem_data[49,31:0] + HEXRADIX + + + [50,31:0] + mem_data[50,31:0] + HEXRADIX + + + [51,31:0] + mem_data[51,31:0] + HEXRADIX + + + [52,31:0] + mem_data[52,31:0] + HEXRADIX + + + [53,31:0] + mem_data[53,31:0] + HEXRADIX + + + [54,31:0] + mem_data[54,31:0] + HEXRADIX + + + [55,31:0] + mem_data[55,31:0] + HEXRADIX + + + [56,31:0] + mem_data[56,31:0] + HEXRADIX + + + [57,31:0] + mem_data[57,31:0] + HEXRADIX + + + [58,31:0] + mem_data[58,31:0] + HEXRADIX + + + [59,31:0] + mem_data[59,31:0] + HEXRADIX + + + [60,31:0] + mem_data[60,31:0] + HEXRADIX + + + [61,31:0] + mem_data[61,31:0] + HEXRADIX + + + [62,31:0] + mem_data[62,31:0] + HEXRADIX + + + [63,31:0] + mem_data[63,31:0] + HEXRADIX + + + [64,31:0] + mem_data[64,31:0] + HEXRADIX + + + [65,31:0] + mem_data[65,31:0] + HEXRADIX + + + [66,31:0] + mem_data[66,31:0] + HEXRADIX + + + [67,31:0] + mem_data[67,31:0] + HEXRADIX + + + [68,31:0] + mem_data[68,31:0] + HEXRADIX + + + [69,31:0] + mem_data[69,31:0] + HEXRADIX + + + [70,31:0] + mem_data[70,31:0] + HEXRADIX + + + [71,31:0] + mem_data[71,31:0] + HEXRADIX + + + [72,31:0] + mem_data[72,31:0] + HEXRADIX + + + [73,31:0] + mem_data[73,31:0] + HEXRADIX + + + [74,31:0] + mem_data[74,31:0] + HEXRADIX + + + [75,31:0] + mem_data[75,31:0] + HEXRADIX + + + [76,31:0] + mem_data[76,31:0] + HEXRADIX + + + [77,31:0] + mem_data[77,31:0] + HEXRADIX + + + [78,31:0] + mem_data[78,31:0] + HEXRADIX + + + [79,31:0] + mem_data[79,31:0] + HEXRADIX + + + [80,31:0] + mem_data[80,31:0] + HEXRADIX + + + [81,31:0] + mem_data[81,31:0] + HEXRADIX + + + [82,31:0] + mem_data[82,31:0] + HEXRADIX + + + [83,31:0] + mem_data[83,31:0] + HEXRADIX + + + [84,31:0] + mem_data[84,31:0] + HEXRADIX + + + [85,31:0] + mem_data[85,31:0] + HEXRADIX + + + [86,31:0] + mem_data[86,31:0] + HEXRADIX + + + [87,31:0] + mem_data[87,31:0] + HEXRADIX + + + [88,31:0] + mem_data[88,31:0] + HEXRADIX + + + [89,31:0] + mem_data[89,31:0] + HEXRADIX + + + [90,31:0] + mem_data[90,31:0] + HEXRADIX + + + [91,31:0] + mem_data[91,31:0] + HEXRADIX + + + [92,31:0] + mem_data[92,31:0] + HEXRADIX + + + [93,31:0] + mem_data[93,31:0] + HEXRADIX + + + [94,31:0] + mem_data[94,31:0] + HEXRADIX + + + [95,31:0] + mem_data[95,31:0] + HEXRADIX + + + [96,31:0] + mem_data[96,31:0] + HEXRADIX + + + [97,31:0] + mem_data[97,31:0] + HEXRADIX + + + [98,31:0] + mem_data[98,31:0] + HEXRADIX + + + [99,31:0] + mem_data[99,31:0] + HEXRADIX + + + [100,31:0] + mem_data[100,31:0] + HEXRADIX + + + [101,31:0] + mem_data[101,31:0] + HEXRADIX + + + [102,31:0] + mem_data[102,31:0] + HEXRADIX + + + [103,31:0] + mem_data[103,31:0] + HEXRADIX + + + [104,31:0] + mem_data[104,31:0] + HEXRADIX + + + [105,31:0] + mem_data[105,31:0] + HEXRADIX + + + [106,31:0] + mem_data[106,31:0] + HEXRADIX + + + [107,31:0] + mem_data[107,31:0] + HEXRADIX + + + [108,31:0] + mem_data[108,31:0] + HEXRADIX + + + [109,31:0] + mem_data[109,31:0] + HEXRADIX + + + [110,31:0] + mem_data[110,31:0] + HEXRADIX + + + [111,31:0] + mem_data[111,31:0] + HEXRADIX + + + [112,31:0] + mem_data[112,31:0] + HEXRADIX + + + [113,31:0] + mem_data[113,31:0] + HEXRADIX + + + [114,31:0] + mem_data[114,31:0] + HEXRADIX + + + [115,31:0] + mem_data[115,31:0] + HEXRADIX + + + [116,31:0] + mem_data[116,31:0] + HEXRADIX + + + [117,31:0] + mem_data[117,31:0] + HEXRADIX + + + [118,31:0] + mem_data[118,31:0] + HEXRADIX + + + [119,31:0] + mem_data[119,31:0] + HEXRADIX + + + [120,31:0] + mem_data[120,31:0] + HEXRADIX + + + [121,31:0] + mem_data[121,31:0] + HEXRADIX + + + [122,31:0] + mem_data[122,31:0] + HEXRADIX + + + [123,31:0] + mem_data[123,31:0] + HEXRADIX + + + [124,31:0] + mem_data[124,31:0] + HEXRADIX + + + [125,31:0] + mem_data[125,31:0] + HEXRADIX + + + [126,31:0] + mem_data[126,31:0] + HEXRADIX + + + [127,31:0] + mem_data[127,31:0] + HEXRADIX + + + [128,31:0] + mem_data[128,31:0] + HEXRADIX + + + [129,31:0] + mem_data[129,31:0] + HEXRADIX + + + [130,31:0] + mem_data[130,31:0] + HEXRADIX + + + [131,31:0] + mem_data[131,31:0] + HEXRADIX + + + [132,31:0] + mem_data[132,31:0] + HEXRADIX + + + [133,31:0] + mem_data[133,31:0] + HEXRADIX + + + [134,31:0] + mem_data[134,31:0] + HEXRADIX + + + [135,31:0] + mem_data[135,31:0] + HEXRADIX + + + [136,31:0] + mem_data[136,31:0] + HEXRADIX + + + [137,31:0] + mem_data[137,31:0] + HEXRADIX + + + [138,31:0] + mem_data[138,31:0] + HEXRADIX + + + [139,31:0] + mem_data[139,31:0] + HEXRADIX + + + [140,31:0] + mem_data[140,31:0] + HEXRADIX + + + [141,31:0] + mem_data[141,31:0] + HEXRADIX + + + [142,31:0] + mem_data[142,31:0] + HEXRADIX + + + [143,31:0] + mem_data[143,31:0] + HEXRADIX + + + [144,31:0] + mem_data[144,31:0] + HEXRADIX + + + [145,31:0] + mem_data[145,31:0] + HEXRADIX + + + [146,31:0] + mem_data[146,31:0] + HEXRADIX + + + [147,31:0] + mem_data[147,31:0] + HEXRADIX + + + [148,31:0] + mem_data[148,31:0] + HEXRADIX + + + [149,31:0] + mem_data[149,31:0] + HEXRADIX + + + [150,31:0] + mem_data[150,31:0] + HEXRADIX + + + [151,31:0] + mem_data[151,31:0] + HEXRADIX + + + [152,31:0] + mem_data[152,31:0] + HEXRADIX + + + [153,31:0] + mem_data[153,31:0] + HEXRADIX + + + [154,31:0] + mem_data[154,31:0] + HEXRADIX + + + [155,31:0] + mem_data[155,31:0] + HEXRADIX + + + [156,31:0] + mem_data[156,31:0] + HEXRADIX + + + [157,31:0] + mem_data[157,31:0] + HEXRADIX + + + [158,31:0] + mem_data[158,31:0] + HEXRADIX + + + [159,31:0] + mem_data[159,31:0] + HEXRADIX + + + [160,31:0] + mem_data[160,31:0] + HEXRADIX + + + [161,31:0] + mem_data[161,31:0] + HEXRADIX + + + [162,31:0] + mem_data[162,31:0] + HEXRADIX + + + [163,31:0] + mem_data[163,31:0] + HEXRADIX + + + [164,31:0] + mem_data[164,31:0] + HEXRADIX + + + [165,31:0] + mem_data[165,31:0] + HEXRADIX + + + [166,31:0] + mem_data[166,31:0] + HEXRADIX + + + [167,31:0] + mem_data[167,31:0] + HEXRADIX + + + [168,31:0] + mem_data[168,31:0] + HEXRADIX + + + [169,31:0] + mem_data[169,31:0] + HEXRADIX + + + [170,31:0] + mem_data[170,31:0] + HEXRADIX + + + [171,31:0] + mem_data[171,31:0] + HEXRADIX + + + [172,31:0] + mem_data[172,31:0] + HEXRADIX + + + [173,31:0] + mem_data[173,31:0] + HEXRADIX + + + [174,31:0] + mem_data[174,31:0] + HEXRADIX + + + [175,31:0] + mem_data[175,31:0] + HEXRADIX + + + [176,31:0] + mem_data[176,31:0] + HEXRADIX + + + [177,31:0] + mem_data[177,31:0] + HEXRADIX + + + [178,31:0] + mem_data[178,31:0] + HEXRADIX + + + [179,31:0] + mem_data[179,31:0] + HEXRADIX + + + [180,31:0] + mem_data[180,31:0] + HEXRADIX + + + [181,31:0] + mem_data[181,31:0] + HEXRADIX + + + [182,31:0] + mem_data[182,31:0] + HEXRADIX + + + [183,31:0] + mem_data[183,31:0] + HEXRADIX + + + [184,31:0] + mem_data[184,31:0] + HEXRADIX + + + [185,31:0] + mem_data[185,31:0] + HEXRADIX + + + [186,31:0] + mem_data[186,31:0] + HEXRADIX + + + [187,31:0] + mem_data[187,31:0] + HEXRADIX + + + [188,31:0] + mem_data[188,31:0] + HEXRADIX + + + [189,31:0] + mem_data[189,31:0] + HEXRADIX + + + [190,31:0] + mem_data[190,31:0] + HEXRADIX + + + [191,31:0] + mem_data[191,31:0] + HEXRADIX + + + [192,31:0] + mem_data[192,31:0] + HEXRADIX + + + [193,31:0] + mem_data[193,31:0] + HEXRADIX + + + [194,31:0] + mem_data[194,31:0] + HEXRADIX + + + [195,31:0] + mem_data[195,31:0] + HEXRADIX + + + [196,31:0] + mem_data[196,31:0] + HEXRADIX + + + [197,31:0] + mem_data[197,31:0] + HEXRADIX + + + [198,31:0] + mem_data[198,31:0] + HEXRADIX + + + [199,31:0] + mem_data[199,31:0] + HEXRADIX + + + [200,31:0] + mem_data[200,31:0] + HEXRADIX + + + [201,31:0] + mem_data[201,31:0] + HEXRADIX + + + [202,31:0] + mem_data[202,31:0] + HEXRADIX + + + [203,31:0] + mem_data[203,31:0] + HEXRADIX + + + [204,31:0] + mem_data[204,31:0] + HEXRADIX + + + [205,31:0] + mem_data[205,31:0] + HEXRADIX + + + [206,31:0] + mem_data[206,31:0] + HEXRADIX + + + [207,31:0] + mem_data[207,31:0] + HEXRADIX + + + [208,31:0] + mem_data[208,31:0] + HEXRADIX + + + [209,31:0] + mem_data[209,31:0] + HEXRADIX + + + [210,31:0] + mem_data[210,31:0] + HEXRADIX + + + [211,31:0] + mem_data[211,31:0] + HEXRADIX + + + [212,31:0] + mem_data[212,31:0] + HEXRADIX + + + [213,31:0] + mem_data[213,31:0] + HEXRADIX + + + [214,31:0] + mem_data[214,31:0] + HEXRADIX + + + [215,31:0] + mem_data[215,31:0] + HEXRADIX + + + [216,31:0] + mem_data[216,31:0] + HEXRADIX + + + [217,31:0] + mem_data[217,31:0] + HEXRADIX + + + [218,31:0] + mem_data[218,31:0] + HEXRADIX + + + [219,31:0] + mem_data[219,31:0] + HEXRADIX + + + [220,31:0] + mem_data[220,31:0] + HEXRADIX + + + [221,31:0] + mem_data[221,31:0] + HEXRADIX + + + [222,31:0] + mem_data[222,31:0] + HEXRADIX + + + [223,31:0] + mem_data[223,31:0] + HEXRADIX + + + [224,31:0] + mem_data[224,31:0] + HEXRADIX + + + [225,31:0] + mem_data[225,31:0] + HEXRADIX + + + [226,31:0] + mem_data[226,31:0] + HEXRADIX + + + [227,31:0] + mem_data[227,31:0] + HEXRADIX + + + [228,31:0] + mem_data[228,31:0] + HEXRADIX + + + [229,31:0] + mem_data[229,31:0] + HEXRADIX + + + [230,31:0] + mem_data[230,31:0] + HEXRADIX + + + [231,31:0] + mem_data[231,31:0] + HEXRADIX + + + [232,31:0] + mem_data[232,31:0] + HEXRADIX + + + [233,31:0] + mem_data[233,31:0] + HEXRADIX + + + [234,31:0] + mem_data[234,31:0] + HEXRADIX + + + [235,31:0] + mem_data[235,31:0] + HEXRADIX + + + [236,31:0] + mem_data[236,31:0] + HEXRADIX + + + [237,31:0] + mem_data[237,31:0] + HEXRADIX + + + [238,31:0] + mem_data[238,31:0] + HEXRADIX + + + [239,31:0] + mem_data[239,31:0] + HEXRADIX + + + [240,31:0] + mem_data[240,31:0] + HEXRADIX + + + [241,31:0] + mem_data[241,31:0] + HEXRADIX + + + [242,31:0] + mem_data[242,31:0] + HEXRADIX + + + [243,31:0] + mem_data[243,31:0] + HEXRADIX + + + [244,31:0] + mem_data[244,31:0] + HEXRADIX + + + [245,31:0] + mem_data[245,31:0] + HEXRADIX + + + [246,31:0] + mem_data[246,31:0] + HEXRADIX + + + [247,31:0] + mem_data[247,31:0] + HEXRADIX + + + [248,31:0] + mem_data[248,31:0] + HEXRADIX + + + [249,31:0] + mem_data[249,31:0] + HEXRADIX + + + [250,31:0] + mem_data[250,31:0] + HEXRADIX + + + [251,31:0] + mem_data[251,31:0] + HEXRADIX + + + [252,31:0] + mem_data[252,31:0] + HEXRADIX + + + [253,31:0] + mem_data[253,31:0] + HEXRADIX + + + [254,31:0] + mem_data[254,31:0] + HEXRADIX + + + [255,31:0] + mem_data[255,31:0] + HEXRADIX + mem_data_addr[31:0] diff --git a/test/test.S b/test/test.S index d815074..51e68ff 100644 --- a/test/test.S +++ b/test/test.S @@ -239,6 +239,40 @@ test10: nop nop +test11: + addi x30, x0, 11 # x30 = 11 + addi x5, x0, 0 # x5 = 0 + addi x6, x0, 0x10 # x6 = 0x00000010 = 16 +test11_loop: + nop + nop + nop + nop + nop + sw x10, 0(x9) # someint = 0x12345678 + addi x10, x10, 1 # x10 = x10 + 1 + addi x9, x9, 4 # x9 = x9 + 4 + addi x5, x5, 1 # x5 = x5 + 1 + blt x5, x6, test11_loop +test11_done: + +test12: + addi x30, x0, 12 +test12_loop: + # decrement values before load since they were incremented after final store + addi x10, x10, -1 # x10 = x10 - 1 + addi x9, x9, -4 # x9 = x9 - 4 + addi x5, x5, -1 # x5 = x5 - 1 + nop + nop + nop + nop + nop + lw x11, 0(x9) # someint = 0x12345678 + bne x11, x10, fail + bgt x5, x0, test12_loop +test12_done: + done: