Sim Work miss
This commit is contained in:
@@ -6,9 +6,9 @@
|
||||
.type _start, @function
|
||||
.global _start
|
||||
_start:
|
||||
li a0, 4 # Num Warps
|
||||
li a0, 2 # Num Warps
|
||||
csrw 0x20, a0 # Setting the number of available warps
|
||||
li a0, 8 # Num Threads
|
||||
li a0, 1 # Num Threads
|
||||
csrw 0x21, a0 # Setting the number of available threads
|
||||
csrw mhartid,zero
|
||||
csrw misa,zero
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@@ -1,415 +1,449 @@
|
||||
:0200000480007A
|
||||
:10000000130520007310050213052000731015025C
|
||||
:10001000731040F17310103037F1FF7FEF00001BB9
|
||||
:10002000EF10806A73000000938B0600130D070029
|
||||
:1000000013058000731005021305400073101502DC
|
||||
:10001000731040F17310103037F1FF7FEF00801E36
|
||||
:10002000EF10D00B73000000938B0600130D070038
|
||||
:10003000130F01009303050013051000635C7500A6
|
||||
:1000400013010180130305006B5003001305150015
|
||||
:100050006FF0DFFE1300000013000000130000002B
|
||||
:1000600013000000130000001300000013010F0034
|
||||
:1000700013050000930F0600938D0300EBE0BF0112
|
||||
:10008000170500001305051B6B4005001703000052
|
||||
:100090001303C3F96B00030067800000170200011F
|
||||
:1000A0001302022023200200232212002324220014
|
||||
:1000B0002326320023284200232A5200232C6200E8
|
||||
:1000C000232E720023208202232292022324A202E2
|
||||
:1000D0002326B2022328C202232AD202232CE202C0
|
||||
:1000E000232EF202232002052322120523242205B7
|
||||
:1000F0002326320523284205232A5205232C620594
|
||||
:10010000232E720523208207232292072324A2078D
|
||||
:100110002326B2072328C207232AD207232CE2076B
|
||||
:10012000232EF2071302100067800000170200015F
|
||||
:1001300013020217032002008320420003218200E1
|
||||
:100140008321C20003220201832242010323820190
|
||||
:100150008323C20103240202832442020325820274
|
||||
:100160008325C20203260203832642030327820358
|
||||
:100170008327C2030328020483284204032982043C
|
||||
:100180008329C204032A0205832A4205032B820520
|
||||
:10019000832BC205032C0206832C4206032D820604
|
||||
:1001A000832DC206032E0207832E4207032F8207E8
|
||||
:1001B000832FC2071302000067800000732500022E
|
||||
:1001C000678000007325100267800000130101FEA4
|
||||
:1001D000232E1100232C810013040102232604FE88
|
||||
:1001E0006F0000030327C4FE9307404C3307F70258
|
||||
:1001F000B70700819387C731B307F700138507005E
|
||||
:10020000EF0040408327C4FE938717002326F4FEA7
|
||||
:100210000327C4FE93077000E3D6E7FC1300000039
|
||||
:100220008320C101032481011301010267800000C2
|
||||
:10023000130101FD23261102232481022322A1039D
|
||||
:100240001304010313070D009307404C3307F70213
|
||||
:10025000B70700819387C731B307F70013850700FD
|
||||
:10026000EF00804B93070500638A070213070D0018
|
||||
:10027000B7070081131727009387C727B307F70035
|
||||
:100280001307100023A0E70093070D0063960700F3
|
||||
:10029000EFF0DFE96F0080057300000013070D0029
|
||||
:1002A0009307404C3307F702B70700819387C731A4
|
||||
:1002B000B307F700130784FD9305070013850700B4
|
||||
:1002C000EF00003D832704FE138107008327C4FD50
|
||||
:1002D000832584FD032644FE832684FE0327C4FE73
|
||||
:1002E00013850700EFF05FD4730000008320C10284
|
||||
:1002F00003248102032D41021301010367800000E2
|
||||
:10030000130101FB23261104232481041304010596
|
||||
:10031000EFF0DFEA2324A4FE930901009307100005
|
||||
:100320002326F4FE6F0040080327C4FE9307404CC9
|
||||
:100330003307F702B70700819387C731B307F70088
|
||||
:1003400013850700EF00403D9307050063980704FD
|
||||
:100350000327C4FE9307404C3307F702B707008119
|
||||
:100360009387C731B307F700130704FD9305070010
|
||||
:1003700013850700EF00C031832784FD1381070038
|
||||
:10038000832744FD832504FD0326C4FD832604FE44
|
||||
:10039000032744FE13850700EFF05FCF8327C4FED9
|
||||
:1003A000938717002326F4FE8327C4FE032784FEC9
|
||||
:1003B000E3ECE7F613810900EFF05FCE930702004C
|
||||
:1003C00063880704B70700811385C731EF00C03485
|
||||
:1003D00093070500639E0702930784FB938507003C
|
||||
:1003E000B70700811385C731EF00802A832704FCFB
|
||||
:1003F000138107008327C4FB832584FB032644FC69
|
||||
:10040000832684FC0327C4FC13850700EFF0DFC1BB
|
||||
:10041000130000008320C10403248104130101059B
|
||||
:1004200067800000130101FB2326110423248104AB
|
||||
:1004300013040105232EA4FA232CB4FA232AC4FAA8
|
||||
:100440002328D4FAEFF09FD8EFF05FD72322A4FE41
|
||||
:1004500013090100232604FE232404FE6F00C008B4
|
||||
:10046000B709FFFF33013101832784FE2326F4FC03
|
||||
:10047000832784FB2328F4FC93070100232AF4FC40
|
||||
:10048000832744FB232CF4FC832704FB232EF4FC5A
|
||||
:100490008327C4FE2320F4FE0327C4FE9307404CA9
|
||||
:1004A0003307F702B70700819387C731B307F70017
|
||||
:1004B0001307C4FC9305070013850700EF00C0165F
|
||||
:1004C0008327C4FE938717002326F4FE8327C4FEE8
|
||||
:1004D000032744FE63E4E700232604FE832784FE0B
|
||||
:1004E000938717002324F4FE032784FE8327C4FB8D
|
||||
:1004F000E368F7F613010900EFF09FE01300000036
|
||||
:100500008320C104032481041301010567800000D6
|
||||
:10051000130101FD23261102232481021304010388
|
||||
:10052000232EA4FCEFF09FC92320A4FE232604FE63
|
||||
:100530006F004005232604FE232404FE6F00C00341
|
||||
:10054000B7070081032784FE131727009387C72767
|
||||
:10055000B307F70003A70700930710006318F7001D
|
||||
:100560008327C4FE938717002326F4FE832784FE87
|
||||
:10057000938717002324F4FE832784FE032704FEB9
|
||||
:10058000E3E0E7FC0327C4FE8327C4FDE314F7FA86
|
||||
:10059000232204FE6F008002B7070081032744FE78
|
||||
:1005A000131727009387C727B307F70023A0070077
|
||||
:1005B000832744FE938717002322F4FE832744FEFB
|
||||
:1005C000032704FEE3EAE7FC130000008320C102D6
|
||||
:1005D000032481021301010367800000130101FF5E
|
||||
:1005E00023268100232471011304010193870B004A
|
||||
:1005F000138507000324C100832B8100130101012F
|
||||
:10060000678000009302050013030000930370004D
|
||||
:1006100023A0620023A2620023A4620023A672002A
|
||||
:1006200023A86200678000009302050003A38200F4
|
||||
:100630001303130023A462001383420183AE42001C
|
||||
:1006400093935E003303730003AE05002320C301C0
|
||||
:1006500003AE45002322C30103AE85002324C3015A
|
||||
:1006600003AEC5002326C30103AE05012328C30141
|
||||
:1006700003AE4501232AC301938E1E00130F2003EE
|
||||
:100680006394EE01930E000023A2D2016780000064
|
||||
:100690009302050003A382001303F3FF23A4620067
|
||||
:1006A0001383420183AE0200930F2003138F0E00C9
|
||||
:1006B000130F1F006314FF01130F000023A0E201BA
|
||||
:1006C00093935E0033037300032E030023A0C50140
|
||||
:1006D000032E430023A2C501032E830023A4C501DA
|
||||
:1006E000032EC30023A6C501032E030123A8C501C1
|
||||
:1006F000032E430123AAC501678000009302050071
|
||||
:1007000003A3820013050000130E200363146E0080
|
||||
:1007100013051500678000009302050003A3820003
|
||||
:1007200013050000130E000063146E00130515007E
|
||||
:10073000678000009302050003A3C20083A30201A7
|
||||
:1007400033B5630067800000130141FF23201100CF
|
||||
:100750002322B1008345050063880500EF00C00136
|
||||
:10076000130515006FF01FFF832001008325410052
|
||||
:100770001301C10067800000B708010023A0B80082
|
||||
:1007800067800000130101FD23261102232481024A
|
||||
:1007900013040103232EA4FC0327C4FD9307F000D8
|
||||
:1007A00063E4E702B70700810327C4FD131727009E
|
||||
:1007B0009387C71BB307F70083A7070013850700BC
|
||||
:1007C000EFF09FF86F004007930700022326F4FE26
|
||||
:1007D000A30504FE8327C4FE9387C7FF0327C4FD38
|
||||
:1007E000B357F70093F7F7002322F4FE832744FE64
|
||||
:1007F0006386070093071000A305F4FE8347B4FE49
|
||||
:1008000063820702B7070081032744FE13172700FE
|
||||
:100810009387C71BB307F70083A70700138507005B
|
||||
:10082000EFF09FF28327C4FE9387C7FF2326F4FED1
|
||||
:100830008327C4FEE340F0FA8320C102032481022F
|
||||
:100840001301010367800000130101FE232E110034
|
||||
:10085000232C8100130401022326A4FE2324B4FECA
|
||||
:100860000325C4FEEFF05FEE032584FEEFF09FF159
|
||||
:10087000B707008113850708EFF01FED1300000094
|
||||
:100880008320C1010324810113010102678000005C
|
||||
:10089000130101FD23261102232481021304010305
|
||||
:1008A000232EA4FC232CB4FC232AC4FC2328D4FC30
|
||||
:1008B000B73700810327C4FD23AEE794B737008123
|
||||
:1008C0009387C795032784FD23A2E700B7370081EC
|
||||
:1008D0009387C795032744FD23A4E700B73700811A
|
||||
:1008E0009387C795032704FD23A6E700EFF09F8DAC
|
||||
:1008F0002324A4FE032704FD832784FEB357F702B5
|
||||
:100900002326F4FE032704FD832784FEB377F70232
|
||||
:10091000638807008327C4FE938717002326F4FE0D
|
||||
:100920008325C4FEB70700811385470CEFF0DFF184
|
||||
:10093000B73700819387C7950327C4FE23A8E70034
|
||||
:10094000032704FD832784FE6362F702B737008123
|
||||
:100950009386C795B71700801386479C832584FE2E
|
||||
:10096000032504FDEFF01FAC6F000002B7370081D4
|
||||
:100970009386C795B71700801386479C832504FD8F
|
||||
:10098000032504FDEFF01FAAEFF05F832322A4FEEE
|
||||
:10099000032704FD832744FE63F8E700032544FE94
|
||||
:1009A000EFF01FB76F00C000032504FDEFF05FB646
|
||||
:1009B000130000008320C1020324810213010103FC
|
||||
:1009C00067800000130101FA232E1104232C8104F7
|
||||
:1009D000130401062326A4FA2324B4FAEFF01FC05F
|
||||
:1009E000232CA4FC832784FD83A70700232AF4FC7F
|
||||
:1009F000832784FD83A747002328F4FC832784FDF5
|
||||
:100A000083A787002326F4FC832784FD83A707019F
|
||||
:100A10002326F4FE0327C4FE8327C4FAB307F70294
|
||||
:100A20002324F4FE8327C4FE639A07009307100073
|
||||
:100A30002326F4FE8327C4FA2324F4FE832784FDAF
|
||||
:100A400083A7C7002324F4FC232204FE6F00800D3B
|
||||
:100A5000232004FE232E04FC6F008007032784FA62
|
||||
:100A6000832784FCB307F7020327C4FDB307F7000D
|
||||
:100A70002322F4FC032784FC8327C4FDB307F70279
|
||||
:100A8000032784FEB307F7002320F4FC832744FCEC
|
||||
:100A900093972700032744FDB307F70003A7070038
|
||||
:100AA000832704FC93972700832604FDB387F60071
|
||||
:100AB00083A70700B307F702032704FEB307F70075
|
||||
:100AC0002320F4FE8327C4FD93871700232EF4FC14
|
||||
:100AD0000327C4FD832784FCE362F7F8032784FA25
|
||||
:100AE000832784FC3307F702832784FEB307F700CC
|
||||
:100AF000232EF4FA8327C4FB939727000327C4FC13
|
||||
:100B0000B307F700032704FE23A0E700832784FE32
|
||||
:100B1000938717002324F4FE832744FE938717004E
|
||||
:100B20002322F4FE832744FE0327C4FEE3E2E7F218
|
||||
:100B3000130000008320C105032481051301010671
|
||||
:100B400067800000130101FC232E1102232C810277
|
||||
:100B500013040104232EA4FC232CB4FC232AC4FC7C
|
||||
:100B60002328D4FC2326E4FCB73700810327C4FDE7
|
||||
:100B700023A8E796B737008193870797032784FD5B
|
||||
:100B800023A2E700B737008193870797032744FD27
|
||||
:100B900023A4E700B7370081938707970327C4FC96
|
||||
:100BA00023A6E700B737008193870797032704FD43
|
||||
:100BB00023A8E700EFF00FE12324A4FE0327C4FCE1
|
||||
:100BC000832784FEB357F7022326F4FE0327C4FCD1
|
||||
:100BD000832784FEB377F702638807008327C4FE68
|
||||
:100BE000938717002326F4FEB73700819387079772
|
||||
:100BF0000327C4FE23AAE7000327C4FC832784FE3F
|
||||
:100C00006362F702B737008193860797B7170080B2
|
||||
:100C10001386C7C7832584FE032504FDEFF09F805C
|
||||
:100C20006F000002B737008193860797B7170080DF
|
||||
:100C30001386C7C78325C4FC032504FDEFF08FFE90
|
||||
:100C4000EFF0CFD72322A4FE032704FD832744FE21
|
||||
:100C500063F8E700032544FEEFF09F8B6F00C000B0
|
||||
:100C6000032504FDEFF0DF8A130000008320C10399
|
||||
:100C7000032481031301010467800000130101FBB9
|
||||
:100C8000232611042324810413040105232EA4FA2E
|
||||
:100C9000232CB4FAEFF09F942320A4FE832704FEB4
|
||||
:100CA00083A70700232EF4FC832704FE83A74700B5
|
||||
:100CB000232CF4FC832704FE83A78700232AF4FC5B
|
||||
:100CC000832704FE83A747012326F4FE0327C4FEDF
|
||||
:100CD0008327C4FBB307F7022324F4FE8327C4FE53
|
||||
:100CE000639A0700930710002326F4FE8327C4FBB2
|
||||
:100CF0002324F4FE832704FE83A7C7002328F4FCE3
|
||||
:100D0000232204FE6F00000C032784FB832704FDCD
|
||||
:100D10003307F702832784FEB307F7002326F4FC8A
|
||||
:100D2000032784FE832704FDB337F70093F7F70FFB
|
||||
:100D30002324F4FC832784FC93B71700A303F4FC5B
|
||||
:100D4000834774FC138F0700B7170080938F07DB6E
|
||||
:100D50006B200F007B70FF018327C4FC9397270053
|
||||
:100D60000327C4FDB307F70083A607008327C4FC4D
|
||||
:100D700093972700032784FDB307F70003A7070015
|
||||
:100D80008327C4FC93972700032644FDB307F6008E
|
||||
:100D90003387E60023A0E700832784FE93871700AC
|
||||
:100DA0002324F4FEB7170080138E47DB67000E0084
|
||||
:100DB000130000006B300000832744FE9387170068
|
||||
:100DC0002322F4FE832744FE0327C4FEE3EEE7F26A
|
||||
:100DD000130000008320C1040324810413010105D2
|
||||
:100DE00067800000130101FC232E1102232C8102D5
|
||||
:100DF00013040104232EA4FC232CB4FC232AC4FCDA
|
||||
:100E00002328D4FC2326E4FCB73700810327C4FD44
|
||||
:100E100023A8E796B737008193870797032784FDB8
|
||||
:100E200023A2E700B737008193870797032744FD84
|
||||
:100E300023A4E700B7370081938707970327C4FCF3
|
||||
:100E400023A6E700B737008193870797032704FDA0
|
||||
:100E500023A8E700EFF00FB72324A4FE0327C4FC68
|
||||
:100E6000832784FEB357F7022326F4FE0327C4FC2E
|
||||
:100E7000832784FEB377F702638807008327C4FEC5
|
||||
:100E8000938717002326F4FEB737008193870797CF
|
||||
:100E90000327C4FE23AAE7000327C4FC832784FE9C
|
||||
:100EA0006362F702B737008193860797B717008010
|
||||
:100EB0001386C7F1832584FE032504FDEFF08FD64A
|
||||
:100EC0006F000002B737008193860797B71700803D
|
||||
:100ED0001386C7F18325C4FC032504FDEFF08FD4EE
|
||||
:100EE000EFF0CFAD2322A4FE032704FD832744FEA9
|
||||
:100EF00063F8E700032544FEEFF08FE16F00C000C8
|
||||
:100F0000032504FDEFF0CFE0130000008320C103B0
|
||||
:100F1000032481031301010467800000130101FB16
|
||||
:100F2000232611042324810413040105232EA4FA8B
|
||||
:100F3000232CB4FAEFF08FEA2320A4FE832704FECB
|
||||
:100F400083A70700232EF4FC832704FE83A7470012
|
||||
:100F5000232CF4FC832704FE83A78700232AF4FCB8
|
||||
:100F6000832704FE83A747012326F4FE0327C4FE3C
|
||||
:100F70008327C4FBB307F7022324F4FE8327C4FEB0
|
||||
:100F8000639A0700930710002326F4FE8327C4FB0F
|
||||
:100F90002324F4FE832704FE83A7C7002328F4FC40
|
||||
:100FA000232204FE6F00000C032784FB832704FD2B
|
||||
:100FB0003307F702832784FEB307F7002326F4FCE8
|
||||
:100FC000032784FE832704FDB337F70093F7F70F59
|
||||
:100FD0002324F4FC832784FC93B71700A303F4FCB9
|
||||
:100FE000834774FC138F0700B7170080938F0705A2
|
||||
:100FF0006B200F007B70FF018327C4FC93972700B1
|
||||
:101000000327C4FDB307F70083A607008327C4FCAA
|
||||
:1010100093972700032784FDB307F70003A7070072
|
||||
:101020008327C4FC93972700032644FDB307F600EB
|
||||
:101030003387E64023A0E700832784FE93871700C9
|
||||
:101040002324F4FEB7170080138E470567000E00B7
|
||||
:10105000130000006B300000832744FE93871700C5
|
||||
:101060002322F4FE832744FE0327C4FEE3EEE7F2C7
|
||||
:10107000130000008320C10403248104130101052F
|
||||
:1010800067800000130101FC232E1102232C810232
|
||||
:1010900013040104232EA4FC232CB4FC232AC4FC37
|
||||
:1010A0002328D4FC2326E4FCB73700810327C4FDA2
|
||||
:1010B00023A4E798B737008193878798032784FD97
|
||||
:1010C00023A2E700B737008193878798032744FD61
|
||||
:1010D00023A4E700B7370081938787980327C4FCD0
|
||||
:1010E00023A6E700B737008193878798032704FD7D
|
||||
:1010F00023A8E700EFF00F8D2324A4FE0327C4FCF0
|
||||
:10110000832784FEB357F7022326F4FE0327C4FC8B
|
||||
:10111000832784FEB377F702638807008327C4FE22
|
||||
:10112000938717002326F4FEB737008193878798AB
|
||||
:101130000327C4FE23AAE7000327C4FC832784FEF9
|
||||
:101140006362F702B737008193868798B7170080EC
|
||||
:101150001386C71B832584FE032504FDEFF08FACA7
|
||||
:101160006F000002B737008193868798B717008019
|
||||
:101170001386C71B8325C4FC032504FDEFF08FAA4B
|
||||
:10118000EFF0CF832322A4FE032704FD832744FE30
|
||||
:1011900063F8E700032544FEEFF08FB76F00C0004F
|
||||
:1011A000032504FDEFF0CFB6130000008320C10338
|
||||
:1011B000032481031301010467800000130101FB74
|
||||
:1011C000232611042324810413040105232EA4FAE9
|
||||
:1011D000232CB4FAEFF08FC02320A4FE832704FE53
|
||||
:1011E00083A70700232EF4FC832704FE83A7470070
|
||||
:1011F00083A70700232CF4FC832704FE83A7870022
|
||||
:10120000232AF4FC832704FE83A747012326F4FE48
|
||||
:101210000327C4FE8327C4FBB307F7022324F4FE8D
|
||||
:101220008327C4FE639A0700930710002326F4FE69
|
||||
:101230008327C4FB2324F4FE832704FE83A7C7006F
|
||||
:101240002328F4FC232204FE6F00000B032784FBF9
|
||||
:10125000832704FD3307F702832784FEB307F700D3
|
||||
:101260002326F4FC032784FE832704FDB337F7000D
|
||||
:1012700093F7F70F2324F4FC832784FC93B717001C
|
||||
:10128000A303F4FC834774FC138F0700B717008097
|
||||
:10129000938F472E6B200F007B70FF018327C4FCC8
|
||||
:1012A000939727000327C4FDB307F70083A6070021
|
||||
:1012B0008327C4FC93972700032744FDB307F70057
|
||||
:1012C000032784FD3387E60023A0E700832784FEFD
|
||||
:1012D000938717002324F4FEB7170080138E872E00
|
||||
:1012E00067000E00130000006B300000832744FEEF
|
||||
:1012F000938717002322F4FE832744FE0327C4FEAE
|
||||
:10130000E3E6E7F4130000008320C1040324810412
|
||||
:101310001301010567800000130101FC232E110257
|
||||
:10132000232C810213040104232EA4FC232CB4FCDF
|
||||
:10133000232AC4FC2328D4FC2326E4FCB7370081ED
|
||||
:101340000327C4FD23A4E798B737008193878798C4
|
||||
:10135000032784FD23A2E700B7370081938787988E
|
||||
:10136000032744FD23A4E700B737008193878798BC
|
||||
:101370000327C4FC23A6E700B7370081938787982B
|
||||
:10138000032704FD23A8E700EFE0DFE32324A4FE06
|
||||
:101390000327C4FC832784FEB357F7022326F4FEF9
|
||||
:1013A0000327C4FC832784FEB377F7026388070012
|
||||
:1013B0008327C4FE938717002326F4FEB7370081E6
|
||||
:1013C000938787980327C4FE23AAE7000327C4FC5A
|
||||
:1013D000832784FE6362F702B7370081938687987C
|
||||
:1013E000B717008013860745832584FE032504FD77
|
||||
:1013F000EFF04F836F000002B73700819386879824
|
||||
:10140000B7170080138607458325C4FC032504FD18
|
||||
:10141000EFF04F81EFE09FDA2322A4FE032704FDC3
|
||||
:10142000832744FE63F8E700032544FEEFF04F8E68
|
||||
:101430006F00C000032504FDEFF08F8D1300000046
|
||||
:101440008320C1030324810313010104678000008A
|
||||
:10145000130101FB23261104232481041304010535
|
||||
:10146000232EA4FA232CB4FAEFF04F972320A4FEE6
|
||||
:10147000832704FE83A70700232EF4FC832704FEA2
|
||||
:1014800083A7470083A70700232CF4FC832704FECF
|
||||
:1014900083A78700232AF4FC832704FE83A7470140
|
||||
:1014A0002326F4FE0327C4FE8327C4FBB307F702F9
|
||||
:1014B0002324F4FE8327C4FE639A070093071000D9
|
||||
:1014C0002326F4FE8327C4FB2324F4FE832704FE93
|
||||
:1014D00083A7C7002328F4FC232204FE6F00000B1F
|
||||
:1014E000032784FB832704FD3307F702832784FE49
|
||||
:1014F000B307F7002326F4FC032784FE832704FDAB
|
||||
:10150000B337F70093F7F70F2324F4FC832784FC09
|
||||
:1015100093B71700A303F4FC834774FC138F0700F1
|
||||
:10152000B7170080938F87576B200F007B70FF01E8
|
||||
:101530008327C4FC939727000327C4FDB307F70054
|
||||
:1015400083A607008327C4FC93972700032744FD45
|
||||
:10155000B307F700032784FD3387E60223A0E700E3
|
||||
:10156000832784FE938717002324F4FEB717008097
|
||||
:10157000138EC75767000E00130000006B30000089
|
||||
:10158000832744FE938717002322F4FE832744FE1B
|
||||
:101590000327C4FEE3E6E7F4130000008320C10440
|
||||
:1015A000032481041301010567800000130101FE7B
|
||||
:1015B000232E810013040102232604FE6F00800401
|
||||
:1015C000B73700810327C4FE131727009387079AB4
|
||||
:1015D000B307F7001307300023A0E700B7470081E7
|
||||
:1015E0000327C4FE131727009387079AB307F70052
|
||||
:1015F0001307200023A0E7008327C4FE938717006A
|
||||
:101600002326F4FE0327C4FE9307F00FE3DAE7FA7C
|
||||
:10161000130000000324C1011301010267800000D0
|
||||
:10162000130101FD23261102232481021304010367
|
||||
:10163000232EA4FCB707008113850711EFF0CF908C
|
||||
:10164000232604FE6F0080058327C4FE638E0700F7
|
||||
:101650008327C4FE93F7F70063980700B70700815C
|
||||
:1016600013854713EFF04F8E8327C4FE939727000F
|
||||
:101670000327C4FDB307F70083A7070013850700FE
|
||||
:10168000EFF04F90B707008113858713EFF0CF8BF2
|
||||
:101690008327C4FE938717002326F4FE0327C4FE86
|
||||
:1016A0009307F00FE3D2E7FAB70700811385C7135A
|
||||
:1016B000EFF08F89130000008320C1020324810210
|
||||
:1016C0001301010367800000130101FF23261100AD
|
||||
:1016D0002324810013040101EFF05FED9306000164
|
||||
:1016E000B75700811386079AB74700819385079AF9
|
||||
:1016F000B73700811385079AEFF08F99B7070081FC
|
||||
:1017000013850716EFF04F84B75700811385079AAA
|
||||
:10171000EFF01FF193070000138507008320C1003D
|
||||
:0C17200003248100130101016780000018
|
||||
:1000700013050000930F0600938D0300130000008A
|
||||
:100080001300000013000000130000001300000024
|
||||
:10009000130000001300000013000000EBE0BF019C
|
||||
:1000A0001300000013000000130000001300000004
|
||||
:1000B0001300000013000000170500001305451B86
|
||||
:1000C0006B40050017030000130343F66B000300A9
|
||||
:1000D000678000001702000113020226232002009D
|
||||
:1000E0002322120023242200232632002328420048
|
||||
:1000F000232A5200232C6200232E72002320820226
|
||||
:10010000232292022324A2022326B2022328C2021F
|
||||
:10011000232AD202232CE202232EF20223200205FC
|
||||
:1001200023221205232422052326320523284205F3
|
||||
:10013000232A5205232C6205232E720523208207D1
|
||||
:10014000232292072324A2072326B2072328C207CB
|
||||
:10015000232AD207232CE207232EF20713021000D2
|
||||
:1001600067800000170200011302021D0320020035
|
||||
:1001700083204200032182008321C2000322020166
|
||||
:1001800083224201032382018323C201032402024A
|
||||
:1001900083244202032582028325C202032602032E
|
||||
:1001A00083264203032782038327C2030328020412
|
||||
:1001B00083284204032982048329C204032A0205F6
|
||||
:1001C000832A4205032B8205832BC205032C0206DA
|
||||
:1001D000832C4206032D8206832DC206032E0207BE
|
||||
:1001E000832E4207032F8207832FC20713020000CA
|
||||
:1001F00067800000732500026780000073251002ED
|
||||
:1002000067800000130101FE232E1100232C8100C2
|
||||
:1002100013040102232604FE6F0040030327C4FEDB
|
||||
:10022000B7170000938747973307F702B707008196
|
||||
:1002300093874743B307F70013850700EF00C045D6
|
||||
:100240008327C4FE938717002326F4FE0327C4FEEA
|
||||
:100250009307F001E3D4E7FC130000008320C10101
|
||||
:10026000032481011301010267800000130101FDD5
|
||||
:1002700023261102232481022322A1031304010354
|
||||
:1002800093070D0093850700B707008113850704C6
|
||||
:10029000EF00406613000000130000001300000090
|
||||
:1002A0001300000013000000130000001300000002
|
||||
:1002B00013000000130000001300000013000000F2
|
||||
:1002C0001300000013070D00B7170000938747972E
|
||||
:1002D0003307F702B707008193874743B307F70057
|
||||
:1002E00013850700EF00004E93070500638A07029D
|
||||
:1002F00013070D00B7070081131727009387C7283E
|
||||
:10030000B307F7001307100023A0E70093070D00C1
|
||||
:1003100063960700EFF01FE56F00C0057300000053
|
||||
:1003200013070D00B7170000938747973307F702AD
|
||||
:10033000B707008193874743B307F700130784FD8E
|
||||
:100340009305070013850700EF00C03D832704FED7
|
||||
:10035000138107008327C4FD832584FD032644FE03
|
||||
:10036000832684FE0327C4FE13850700EFF0DFCB4E
|
||||
:10037000730000008320C10203248102032D410287
|
||||
:100380001301010367800000130101FB2326110400
|
||||
:100390002324810413040105EFF0DFE52324A4FEE8
|
||||
:1003A00093090100930710002326F4FE6F00C00894
|
||||
:1003B0000327C4FEB7170000938747973307F70258
|
||||
:1003C000B707008193874743B307F70013850700FA
|
||||
:1003D000EF00403F93070500639A07040327C4FE1C
|
||||
:1003E000B7170000938747973307F702B7070081D5
|
||||
:1003F00093874743B307F700130704FD93050700EE
|
||||
:1004000013850700EF000032832784FD1381070066
|
||||
:10041000832744FD832504FD0326C4FD832604FEB3
|
||||
:10042000032744FE13850700EFF0DFC98327C4FECE
|
||||
:10043000938717002326F4FE8327C4FE032784FE38
|
||||
:10044000E3E8E7F613810900EFF0DFC89307020045
|
||||
:1004500063880704B707008113854743EF008036A0
|
||||
:1004600093070500639E0702930784FB93850700AB
|
||||
:10047000B707008113854743EF00C02A832704FC98
|
||||
:10048000138107008327C4FB832584FB032644FCD8
|
||||
:10049000832684FC0327C4FC13850700EFF0DFB834
|
||||
:1004A000130000008320C10403248104130101050B
|
||||
:1004B00067800000130101FB23261104232481041B
|
||||
:1004C00013040105232EA4FA232CB4FA232AC4FA18
|
||||
:1004D0002328D4FAEFF01FD3EFF0DFD12322A4FEBC
|
||||
:1004E00013090100232604FE232404FE6F000009E3
|
||||
:1004F000B709FFFF33013101832784FE2326F4FC73
|
||||
:10050000832784FB2328F4FC93070100232AF4FCAF
|
||||
:10051000832744FB232CF4FC832704FB232EF4FCC9
|
||||
:100520008327C4FE2320F4FE0327C4FEB717000070
|
||||
:10053000938747973307F702B707008193874743AD
|
||||
:10054000B307F7001307C4FC9305070013850700E2
|
||||
:10055000EF00C0168327C4FE938717002326F4FEFE
|
||||
:100560008327C4FE032744FE63E4E700232604FE3A
|
||||
:10057000832784FE938717002324F4FE032784FE39
|
||||
:100580008327C4FBE366F7F613010900EFF0DFDF12
|
||||
:10059000130000008320C10403248104130101051A
|
||||
:1005A00067800000130101FD23261102232481022C
|
||||
:1005B00013040103232EA4FCEFF0DFC32320A4FEC9
|
||||
:1005C000232604FE6F004005232604FE232404FE98
|
||||
:1005D0006F00C003B7070081032784FE13172700AD
|
||||
:1005E0009387C728B307F70003A7070093071000F6
|
||||
:1005F0006318F7008327C4FE938717002326F4FEB1
|
||||
:10060000832784FE938717002324F4FE832784FE28
|
||||
:10061000032704FEE3E0E7FC0327C4FE8327C4FDB1
|
||||
:10062000E314F7FA232204FE6F008002B70700816B
|
||||
:10063000032744FE131727009387C728B307F70043
|
||||
:1006400023A00700832744FE938717002322F4FE8C
|
||||
:10065000832744FE032704FEE3EAE7FC13000000BF
|
||||
:100660008320C1020324810213010103678000007B
|
||||
:10067000130101FF232681002324710113040101CA
|
||||
:1006800093870B00138507000324C100832B81008F
|
||||
:1006900013010101678000009302050013030000AD
|
||||
:1006A0009303700023A0620023A2620023A46200CF
|
||||
:1006B00023A6720023A86200678000009302050051
|
||||
:1006C00003A382001303130023A4620013834201D7
|
||||
:1006D00083AE420093935E003303730003AE0500C4
|
||||
:1006E0002320C30103AE45002322C30103AE8500CE
|
||||
:1006F0002324C30103AEC5002326C30103AE0501B5
|
||||
:100700002328C30103AE4501232AC301938E1E0093
|
||||
:10071000130F20036394EE01930E000023A2D20175
|
||||
:10072000678000009302050003A38200130000000D
|
||||
:10073000130000001300000013000000130000006D
|
||||
:10074000130000001303F3FF23A46200138342018C
|
||||
:1007500083AE0200930F2003138F0E00130F1F00B0
|
||||
:100760006314FF01130F000023A0E20193935E00C6
|
||||
:1007700033037300032E030023A0C501032E43009F
|
||||
:1007800023A2C501032E830023A4C501032EC300A9
|
||||
:1007900023A6C501032E030123A8C501032E43018F
|
||||
:1007A00023AAC501678000009302050003A382000D
|
||||
:1007B00013050000130E200363146E0013051500CB
|
||||
:1007C000678000009302050003A382001305000068
|
||||
:1007D000130E000063146E001305150067800000FF
|
||||
:1007E0009302050003A3C20083A3020133B5630093
|
||||
:1007F00067800000130141FF232011002322B10074
|
||||
:100800008345050063880500EF00C001130515004E
|
||||
:100810006FF01FFF83200100832541001301C100F9
|
||||
:1008200067800000B708010023A0B80067800000BF
|
||||
:10083000130101FD23261102232481021304010365
|
||||
:10084000232EA4FC0327C4FD9307F00063E4E70212
|
||||
:10085000B70700810327C4FD131727009387C71C20
|
||||
:10086000B307F70083A7070013850700EFF09FF891
|
||||
:100870006F004007930700022326F4FEA30504FE41
|
||||
:100880008327C4FE9387C7FF0327C4FDB357F70030
|
||||
:1008900093F7F7002322F4FE832744FE63860700C4
|
||||
:1008A00093071000A305F4FE8347B4FE638207029A
|
||||
:1008B000B7070081032744FE131727009387C71C3F
|
||||
:1008C000B307F70083A7070013850700EFF09FF237
|
||||
:1008D0008327C4FE9387C7FF2326F4FE8327C4FE25
|
||||
:1008E000E340F0FA8320C1020324810213010103D3
|
||||
:1008F00067800000130101FE232E1100232C8100CC
|
||||
:10090000130401022326A4FE2324B4FE0325C4FEFF
|
||||
:10091000EFF05FEE032584FEEFF09FF1B707008153
|
||||
:1009200013850709EFF01FED130000008320C101BC
|
||||
:10093000032481011301010267800000130101FDFE
|
||||
:10094000232611022324810213040103232EA4FC75
|
||||
:10095000232CB4FC232AC4FC2328D4FCB7670281CF
|
||||
:100960000327C4FD23AEE71CB76702819387C71D29
|
||||
:10097000032784FD23A2E700B76702819387C71D81
|
||||
:10098000032744FD23A4E700B76702819387C71DAF
|
||||
:10099000032704FD23A6E700EFF05F862324A4FECF
|
||||
:1009A000032704FD832784FEB357F7022326F4FEB2
|
||||
:1009B000032704FD832784FEB377F70263880700CB
|
||||
:1009C0008327C4FE938717002326F4FE8325C4FEE5
|
||||
:1009D000B70700811385470DEFF0DFF1B76702819C
|
||||
:1009E0009387C71D0327C4FE23A8E700032704FD40
|
||||
:1009F000832784FE6362F702B76702819386C71D6F
|
||||
:100A0000B7170080138607A7832584FE032504FDFE
|
||||
:100A1000EFF05FAA6F000002B76702819386C71DDF
|
||||
:100A2000B7170080138607A7832504FD032504FD5F
|
||||
:100A3000EFF05FA8EFF00FFC2322A4FE032704FDD4
|
||||
:100A4000832744FE63F8E700032544FEEFF09FB5DB
|
||||
:100A50006F00C000032504FDEFF0DFB413000000B9
|
||||
:100A60008320C10203248102130101036780000077
|
||||
:100A7000130101FA232E1104232C8104130401060F
|
||||
:100A80002326A4FA2324B4FAEFF09FBE232CA4FC5F
|
||||
:100A9000832784FD83A70700232AF4FC832784FD92
|
||||
:100AA00083A747002328F4FC832784FD83A78700BE
|
||||
:100AB0002326F4FC832784FD83A707012326F4FE65
|
||||
:100AC0000327C4FE8327C4FAB307F7022324F4FEE6
|
||||
:100AD0008327C4FE639A0700930710002326F4FEC1
|
||||
:100AE0008327C4FA2324F4FE832784FD83A7C70049
|
||||
:100AF0002324F4FC232204FE6F00800D232004FE37
|
||||
:100B0000232E04FC6F008007032784FA832784FCCC
|
||||
:100B1000B307F7020327C4FDB307F7002322F4FC51
|
||||
:100B2000032784FC8327C4FDB307F702032784FE51
|
||||
:100B3000B307F7002320F4FC832744FC9397270096
|
||||
:100B4000032744FDB307F70003A70700832704FC2E
|
||||
:100B500093972700832604FDB387F60083A7070039
|
||||
:100B6000B307F702032704FEB307F7002320F4FEC0
|
||||
:100B70008327C4FD93871700232EF4FC0327C4FDAD
|
||||
:100B8000832784FCE362F7F8032784FA832784FC35
|
||||
:100B90003307F702832784FEB307F700232EF4FA06
|
||||
:100BA0008327C4FB939727000327C4FCB307F700F0
|
||||
:100BB000032704FE23A0E700832784FE9387170002
|
||||
:100BC0002324F4FE832744FE938717002322F4FE98
|
||||
:100BD000832744FE0327C4FEE3E2E7F2130000008C
|
||||
:100BE0008320C105032481051301010667800000ED
|
||||
:100BF000130101FC232E1102232C81021304010492
|
||||
:100C0000232EA4FC232CB4FC232AC4FC2328D4FCCC
|
||||
:100C10002326E4FCB76702810327C4FD23A8E71E4F
|
||||
:100C2000B76702819387071F032784FD23A2E7008C
|
||||
:100C3000B76702819387071F032744FD23A4E700BA
|
||||
:100C4000B76702819387071F0327C4FC23A6E70029
|
||||
:100C5000B76702819387071F032704FD23A8E700D6
|
||||
:100C6000EFF0CFD92324A4FE0327C4FC832784FEFE
|
||||
:100C7000B357F7022326F4FE0327C4FC832784FE20
|
||||
:100C8000B377F702638807008327C4FE93871700B2
|
||||
:100C90002326F4FEB76702819387071F0327C4FE4C
|
||||
:100CA00023AAE7000327C4FC832784FE6362F702BC
|
||||
:100CB000B76702819386071FB7170080138687D214
|
||||
:100CC000832584FE032504FDEFF0CFFE6F000002B4
|
||||
:100CD000B76702819386071FB7170080138687D2F4
|
||||
:100CE0008325C4FC032504FDEFF0CFFCEFF08FD08B
|
||||
:100CF0002322A4FE032704FD832744FE63F8E700B4
|
||||
:100D0000032544FEEFF01F8A6F00C000032504FD99
|
||||
:100D1000EFF05F89130000008320C10303248103E7
|
||||
:100D20001301010467800000130101FB2326110455
|
||||
:100D30002324810413040105232EA4FA232CB4FADE
|
||||
:100D4000EFF01F932320A4FE832704FE83A7070050
|
||||
:100D5000232EF4FC832704FE83A74700232CF4FCF6
|
||||
:100D6000832704FE83A78700232AF4FC832704FE3D
|
||||
:100D700083A747012326F4FE0327C4FE8327C4FB71
|
||||
:100D8000B307F7022324F4FE8327C4FE639A070007
|
||||
:100D9000930710002326F4FE8327C4FB2324F4FECC
|
||||
:100DA000832704FE83A7C7002328F4FC232204FE24
|
||||
:100DB0006F00000C032784FB832704FD3307F70231
|
||||
:100DC000832784FEB307F7002326F4FC032784FE61
|
||||
:100DD000832704FDB337F70093F7F70F2324F4FCC0
|
||||
:100DE000832784FC93B71700A303F4FC834774FCA8
|
||||
:100DF000138F0700B7170080938FC7E56B200F0094
|
||||
:100E00007B70FF018327C4FC939727000327C4FD51
|
||||
:100E1000B307F70083A607008327C4FC9397270036
|
||||
:100E2000032784FDB307F70003A707008327C4FC4B
|
||||
:100E300093972700032644FDB307F6003387E600A7
|
||||
:100E400023A0E700832784FE938717002324F4FE62
|
||||
:100E5000B7170080138E07E667000E00130000002E
|
||||
:100E60006B300000832744FE938717002322F4FE93
|
||||
:100E7000832744FE0327C4FEE3EEE7F213000000DD
|
||||
:100E80008320C1040324810413010105678000004D
|
||||
:100E9000130101FC232E1102232C810213040104EF
|
||||
:100EA000232EA4FC232CB4FC232AC4FC2328D4FC2A
|
||||
:100EB0002326E4FCB76702810327C4FD23A8E71EAD
|
||||
:100EC000B76702819387071F032784FD23A2E700EA
|
||||
:100ED000B76702819387071F032744FD23A4E70018
|
||||
:100EE000B76702819387071F0327C4FC23A6E70087
|
||||
:100EF000B76702819387071F032704FD23A8E70034
|
||||
:100F0000EFF0CFAF2324A4FE0327C4FC832784FE85
|
||||
:100F1000B357F7022326F4FE0327C4FC832784FE7D
|
||||
:100F2000B377F702638807008327C4FE938717000F
|
||||
:100F30002326F4FEB76702819387071F0327C4FEA9
|
||||
:100F400023AAE7000327C4FC832784FE6362F70219
|
||||
:100F5000B76702819386071FB7170080138687FC47
|
||||
:100F6000832584FE032504FDEFF0CFD46F0000023B
|
||||
:100F7000B76702819386071FB7170080138687FC27
|
||||
:100F80008325C4FC032504FDEFF0CFD2EFF08FA63C
|
||||
:100F90002322A4FE032704FD832744FE63F8E70011
|
||||
:100FA000032544FEEFF00FE06F00C000032504FDB1
|
||||
:100FB000EFF04FDF130000008320C10303248103FF
|
||||
:100FC0001301010467800000130101FB23261104B3
|
||||
:100FD0002324810413040105232EA4FA232CB4FA3C
|
||||
:100FE000EFF00FE92320A4FE832704FE83A7070068
|
||||
:100FF000232EF4FC832704FE83A74700232CF4FC54
|
||||
:10100000832704FE83A78700232AF4FC832704FE9A
|
||||
:1010100083A747012326F4FE0327C4FE8327C4FBCE
|
||||
:10102000B307F7022324F4FE8327C4FE639A070064
|
||||
:10103000930710002326F4FE8327C4FB2324F4FE29
|
||||
:10104000832704FE83A7C7002328F4FC232204FE81
|
||||
:101050006F00000C032784FB832704FD3307F7028E
|
||||
:10106000832784FEB307F7002326F4FC032784FEBE
|
||||
:10107000832704FDB337F70093F7F70F2324F4FC1D
|
||||
:10108000832784FC93B71700A303F4FC834774FC05
|
||||
:10109000138F0700B7170080938FC70F6B200F00C7
|
||||
:1010A0007B70FF018327C4FC939727000327C4FDAF
|
||||
:1010B000B307F70083A607008327C4FC9397270094
|
||||
:1010C000032784FDB307F70003A707008327C4FCA9
|
||||
:1010D00093972700032644FDB307F6003387E640C5
|
||||
:1010E00023A0E700832784FE938717002324F4FEC0
|
||||
:1010F000B7170080138E071067000E001300000062
|
||||
:101100006B300000832744FE938717002322F4FEF0
|
||||
:10111000832744FE0327C4FEE3EEE7F2130000003A
|
||||
:101120008320C104032481041301010567800000AA
|
||||
:10113000130101FC232E1102232C8102130401044C
|
||||
:10114000232EA4FC232CB4FC232AC4FC2328D4FC87
|
||||
:101150002326E4FCB76702810327C4FD23A4E7200C
|
||||
:10116000B767028193878720032784FD23A2E700C6
|
||||
:10117000B767028193878720032744FD23A4E700F4
|
||||
:10118000B7670281938787200327C4FC23A6E70063
|
||||
:10119000B767028193878720032704FD23A8E70010
|
||||
:1011A000EFF0CF852324A4FE0327C4FC832784FE0D
|
||||
:1011B000B357F7022326F4FE0327C4FC832784FEDB
|
||||
:1011C000B377F702638807008327C4FE938717006D
|
||||
:1011D0002326F4FEB7670281938787200327C4FE86
|
||||
:1011E00023AAE7000327C4FC832784FE6362F70277
|
||||
:1011F000B767028193868720B717008013868726FA
|
||||
:10120000832584FE032504FDEFF0CFAA6F000002C2
|
||||
:10121000B767028193868720B717008013868726D9
|
||||
:101220008325C4FC032504FDEFF0CFA8EFE09FFC6D
|
||||
:101230002322A4FE032704FD832744FE63F8E7006E
|
||||
:10124000032544FEEFF00FB66F00C000032504FD38
|
||||
:10125000EFF04FB5130000008320C1030324810386
|
||||
:101260001301010467800000130101FB2326110410
|
||||
:101270002324810413040105232EA4FA232CB4FA99
|
||||
:10128000EFF00FBF2320A4FE832704FE83A70700EF
|
||||
:10129000232EF4FC832704FE83A7470083A70700BF
|
||||
:1012A000232CF4FC832704FE83A78700232AF4FC65
|
||||
:1012B000832704FE83A747012326F4FE0327C4FEE9
|
||||
:1012C0008327C4FBB307F7022324F4FE8327C4FE5D
|
||||
:1012D000639A0700930710002326F4FE8327C4FBBC
|
||||
:1012E0002324F4FE832704FE83A7C7002328F4FCED
|
||||
:1012F000232204FE6F00000B032784FB832704FDD9
|
||||
:101300003307F702832784FEB307F7002326F4FC94
|
||||
:10131000032784FE832704FDB337F70093F7F70F05
|
||||
:101320002324F4FC832784FC93B71700A303F4FC65
|
||||
:10133000834774FC138F0700B7170080938F07391A
|
||||
:101340006B200F007B70FF018327C4FC939727005D
|
||||
:101350000327C4FDB307F70083A607008327C4FC57
|
||||
:1013600093972700032744FDB307F700032784FD65
|
||||
:101370003387E60023A0E700832784FE93871700C6
|
||||
:101380002324F4FEB7170080138E473967000E0040
|
||||
:10139000130000006B300000832744FE9387170082
|
||||
:1013A0002322F4FE832744FE0327C4FEE3E6E7F48A
|
||||
:1013B000130000008320C1040324810413010105EC
|
||||
:1013C00067800000130101FC232E1102232C8102EF
|
||||
:1013D00013040104232EA4FC232CB4FC232AC4FCF4
|
||||
:1013E0002328D4FC2326E4FCB76702810327C4FD2D
|
||||
:1013F00023A4E720B767028193878720032784FD12
|
||||
:1014000023A2E700B767028193878720032744FD63
|
||||
:1014100023A4E700B7670281938787200327C4FCD2
|
||||
:1014200023A6E700B767028193878720032704FD7F
|
||||
:1014300023A8E700EFE09FDC2324A4FE0327C4FCDD
|
||||
:10144000832784FEB357F7022326F4FE0327C4FC48
|
||||
:10145000832784FEB377F702638807008327C4FEDF
|
||||
:10146000938717002326F4FEB767028193878720AE
|
||||
:101470000327C4FE23AAE7000327C4FC832784FEB6
|
||||
:101480006362F702B767028193868720B7170080EF
|
||||
:101490001386C74F832584FE032504FDEFF08F815B
|
||||
:1014A0006F000002B767028193868720B71700801C
|
||||
:1014B0001386C74F8325C4FC032504FDEFE09FFF7F
|
||||
:1014C000EFE05FD32322A4FE032704FD832744FE1D
|
||||
:1014D00063F8E700032544FEEFF0CF8C6F00C000F7
|
||||
:1014E000032504FDEFF00F8C130000008320C103DF
|
||||
:1014F000032481031301010467800000130101FB31
|
||||
:10150000232611042324810413040105232EA4FAA5
|
||||
:10151000232CB4FAEFF0CF952320A4FE832704FEFA
|
||||
:1015200083A70700232EF4FC832704FE83A747002C
|
||||
:1015300083A70700232CF4FC832704FE83A78700DE
|
||||
:10154000232AF4FC832704FE83A747012326F4FE05
|
||||
:101550000327C4FE8327C4FBB307F7022324F4FE4A
|
||||
:101560008327C4FE639A0700930710002326F4FE26
|
||||
:101570008327C4FB2324F4FE832704FE83A7C7002C
|
||||
:101580002328F4FC232204FE6F00000B032784FBB6
|
||||
:10159000832704FD3307F702832784FEB307F70090
|
||||
:1015A0002326F4FC032784FE832704FDB337F700CA
|
||||
:1015B00093F7F70F2324F4FC832784FC93B71700D9
|
||||
:1015C000A303F4FC834774FC138F0700B717008054
|
||||
:1015D000938F47626B200F007B70FF018327C4FC51
|
||||
:1015E000939727000327C4FDB307F70083A60700DE
|
||||
:1015F0008327C4FC93972700032744FDB307F70014
|
||||
:10160000032784FD3387E60223A0E700832784FEB7
|
||||
:10161000938717002324F4FEB7170080138E876288
|
||||
:1016200067000E00130000006B300000832744FEAB
|
||||
:10163000938717002322F4FE832744FE0327C4FE6A
|
||||
:10164000E3E6E7F4130000008320C10403248104CF
|
||||
:101650001301010567800000130101FD23268102AB
|
||||
:1016600013040103232EA4FC232604FE6F000001B3
|
||||
:101670008327C4FE938717002326F4FE0327C4FEA6
|
||||
:101680008327C4FDE346F7FE130000000324C102D4
|
||||
:101690001301010367800000130101FD23261102DD
|
||||
:1016A0002324810213040103232EA4FC232CB4FC65
|
||||
:1016B000B7670281138707228327C4FDB307F700AA
|
||||
:1016C000130710002380E7008327C4FD6390070CF5
|
||||
:1016D000A30104FE232604FE6F00800A232604FED5
|
||||
:1016E000232404FE6F004003B7670281138707229B
|
||||
:1016F000832784FEB307F70083C7070063880700CA
|
||||
:101700008327C4FE938717002326F4FE832784FED5
|
||||
:10171000938717002324F4FE032784FE832784FD88
|
||||
:10172000E344F7FC0327C4FE832784FD631AF70410
|
||||
:10173000232204FE6F000004B7670281138707228B
|
||||
:10174000832744FEB307F70023800700B797028181
|
||||
:10175000130710002384E72E13056004EFF0DFEF7A
|
||||
:10176000B79702812384072E832744FE93871700AF
|
||||
:101770002322F4FE032744FE832784FDE34EF7FA79
|
||||
:10178000834734FEE39C07F46F004002130000001F
|
||||
:10179000B797028183C7872E93C7170093F7F70F78
|
||||
:1017A000E39807FE13054006EFF01FEB130000005F
|
||||
:1017B0008320C1020324810213010103678000001A
|
||||
:1017C000130101FE232E810013040102232604FECF
|
||||
:1017D0006F008004B76702810327C4FE1317270038
|
||||
:1017E00093870724B307F7001307300023A0E7000F
|
||||
:1017F000B77702810327C4FE1317270093870724B6
|
||||
:10180000B307F7001307200023A0E7008327C4FED7
|
||||
:10181000938717002326F4FE0327C4FE9307F00FD7
|
||||
:10182000E3DAE7FA130000000324C1011301010207
|
||||
:1018300067800000130101FD232611022324810289
|
||||
:1018400013040103232EA4FCB7070081138507129C
|
||||
:10185000EFE05FFA232604FE6F0080058327C4FEB5
|
||||
:10186000638E07008327C4FE93F7F7006398070091
|
||||
:10187000B707008113854714EFE0DFF78327C4FE25
|
||||
:10188000939727000327C4FDB307F70083A707003A
|
||||
:1018900013850700EFE0DFF9B70700811385871490
|
||||
:1018A000EFE05FF58327C4FE938717002326F4FE3D
|
||||
:1018B0000327C4FE9307F00FE3D2E7FAB7070081CE
|
||||
:1018C0001385C714EFE01FF3130000008320C1024B
|
||||
:1018D000032481021301010367800000130101FF4B
|
||||
:1018E000232611002324810013040101EFF05FED92
|
||||
:1018F00093060001B787028113860724B777028118
|
||||
:1019000093850724B767028113850724EFF00F83BF
|
||||
:10191000B707008113850717EFE0DFEDB787028176
|
||||
:1019200013850724EFF01FF19307000013850700CC
|
||||
:101930008320C1000324810013010101678000009E
|
||||
:02000004810079
|
||||
:10000000300000003100000032000000330000002A
|
||||
:10001000340000003500000036000000370000000A
|
||||
:10002000380000003900000061000000620000009C
|
||||
:10003000630000006400000065000000660000002E
|
||||
:1000400030000000310000003200000033000000EA
|
||||
:1000500034000000350000003600000037000000CA
|
||||
:10006000380000003900000061000000620000005C
|
||||
:1000700063000000640000006500000066000000EE
|
||||
:100080000A000000300000003100000032000000D3
|
||||
:10009000330000003400000035000000360000008E
|
||||
:1000A0003700000038000000390000006100000047
|
||||
:1000B00062000000630000006400000065000000B2
|
||||
:1000C000660000004F66667365743A200000000009
|
||||
:1000D000300000003100000032000000330000005A
|
||||
:1000E000340000003500000036000000370000003A
|
||||
:1000F00038000000390000006100000062000000CC
|
||||
:10010000630000006400000065000000660000005D
|
||||
:100110002D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D0F
|
||||
:100120002D2D2D2D2D2D2D2D2D2D2D2D2D2D2D0A22
|
||||
:10013000000000000A000000200000000A2D2D2D04
|
||||
:100140002D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2DDF
|
||||
:100150002D2D2D2D2D2D2D2D2D2D2D2D0A00000079
|
||||
:100160000A0A4D6174726978206D756C7469706CDF
|
||||
:0901700069636174696F6E0A0095
|
||||
:10017C000000008104000081080000810C00008157
|
||||
:10018C001000008114000081180000811C00008107
|
||||
:10019C002000008124000081280000812C000081B7
|
||||
:1001AC003000008134000081380000813C00008167
|
||||
:1001BC004000008144000081480000814C00008117
|
||||
:1000400052657363686564756C653A200000000052
|
||||
:1000500030000000310000003200000033000000DA
|
||||
:1000600034000000350000003600000037000000BA
|
||||
:10007000380000003900000061000000620000004C
|
||||
:1000800063000000640000006500000066000000DE
|
||||
:100090000A000000300000003100000032000000C3
|
||||
:1000A000330000003400000035000000360000007E
|
||||
:1000B0003700000038000000390000006100000037
|
||||
:1000C00062000000630000006400000065000000A2
|
||||
:1000D000660000004F66667365743A2000000000F9
|
||||
:1000E000300000003100000032000000330000004A
|
||||
:1000F000340000003500000036000000370000002A
|
||||
:1001000038000000390000006100000062000000BB
|
||||
:10011000630000006400000065000000660000004D
|
||||
:100120002D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2DFF
|
||||
:100130002D2D2D2D2D2D2D2D2D2D2D2D2D2D2D0A12
|
||||
:10014000000000000A000000200000000A2D2D2DF4
|
||||
:100150002D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2DCF
|
||||
:100160002D2D2D2D2D2D2D2D2D2D2D2D0A00000069
|
||||
:100170000A0A4D6174726978206D756C7469706CCF
|
||||
:0901800069636174696F6E0A0085
|
||||
:10018C000000008104000081080000810C00008147
|
||||
:10019C001000008114000081180000811C000081F7
|
||||
:1001AC002000008124000081280000812C000081A7
|
||||
:1001BC003000008134000081380000813C00008157
|
||||
:1001CC005000008154000081580000815C000081C7
|
||||
:1001DC006000008164000081680000816C00008177
|
||||
:1001EC007000008174000081780000817C00008127
|
||||
:1001FC0084000081880000818C00008190000081C7
|
||||
:1001FC008000008184000081880000818C000081D7
|
||||
:10020C0094000081980000819C000081A000008176
|
||||
:10021C00A4000081A8000081AC000081B000008126
|
||||
:10022C00B4000081B8000081BC000081C0000081D6
|
||||
:10023C00D0000081D4000081D8000081DC00008156
|
||||
:10023C00C4000081C8000081CC000081D000008186
|
||||
:10024C00E0000081E4000081E8000081EC00008106
|
||||
:10025C00F0000081F4000081F8000081FC000081B6
|
||||
:10026C000001008104010081080100810C01008162
|
||||
:10027C001001008114010081180100811C01008112
|
||||
:040000058000000077
|
||||
:00000001FF
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
void vx_before_main()
|
||||
{
|
||||
// unsigned num_available_warps = vx_available_warps();
|
||||
for (int i = 0; i < 8; i++)
|
||||
for (int i = 0; i < 32; i++)
|
||||
{
|
||||
queue_initialize(q + i);
|
||||
}
|
||||
@@ -15,9 +15,20 @@ void vx_before_main()
|
||||
void vx_reschedule_warps()
|
||||
{
|
||||
|
||||
|
||||
register unsigned curr_warp asm("s10");
|
||||
// vx_printf("Reschedule: ", curr_warp);
|
||||
vx_printf("Reschedule: ", curr_warp);
|
||||
asm __volatile__("nop");
|
||||
asm __volatile__("nop");
|
||||
asm __volatile__("nop");
|
||||
asm __volatile__("nop");
|
||||
asm __volatile__("nop");
|
||||
asm __volatile__("nop");
|
||||
asm __volatile__("nop");
|
||||
asm __volatile__("nop");
|
||||
asm __volatile__("nop");
|
||||
asm __volatile__("nop");
|
||||
asm __volatile__("nop");
|
||||
asm __volatile__("nop");
|
||||
|
||||
if (queue_isEmpty(q+curr_warp))
|
||||
{
|
||||
@@ -38,7 +49,7 @@ void vx_reschedule_warps()
|
||||
asm __volatile__("mv sp,%0"::"r" (j.base_sp):);
|
||||
vx_createThreads(j.n_threads, j.wid, j.func_ptr, j.args, j.assigned_warp);
|
||||
|
||||
ECALL;
|
||||
ECALL; // should never reach this
|
||||
|
||||
}
|
||||
|
||||
@@ -133,6 +144,7 @@ void vx_wait_for_warps(unsigned num_wait)
|
||||
num += 1;
|
||||
}
|
||||
}
|
||||
// vx_printf("Found: ", num);
|
||||
}
|
||||
|
||||
// vx_printf("num found: ", num);
|
||||
|
||||
@@ -29,11 +29,11 @@
|
||||
#define __end_if AFTER:\
|
||||
JOIN;
|
||||
|
||||
static int done[] = {0, 0, 0, 0, 0, 0, 0};
|
||||
static int done[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
|
||||
|
||||
static int main_sp[1];
|
||||
|
||||
unsigned context[32];
|
||||
unsigned context[64];
|
||||
void vx_save_context(void);
|
||||
void vx_load_context(void);
|
||||
|
||||
|
||||
@@ -6,9 +6,9 @@
|
||||
.type _start, @function
|
||||
.global _start
|
||||
_start:
|
||||
li a0, 2 # Num Warps
|
||||
li a0, 8 # Num Warps
|
||||
csrw 0x20, a0 # Setting the number of available warps
|
||||
li a0, 2 # Num Threads
|
||||
li a0, 4 # Num Threads
|
||||
csrw 0x21, a0 # Setting the number of available threads
|
||||
csrw mhartid,zero
|
||||
csrw misa,zero
|
||||
@@ -46,7 +46,21 @@ loop_done:
|
||||
li a0,0 # setting tid = 0 for main thread
|
||||
mv t6,a2 # setting func_addr
|
||||
mv s11,t2 # setting num_threads to spawn
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
.word 0x1bfe0eb
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
la a0, vx_reschedule_warps
|
||||
.word 0x5406b
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
|
||||
|
||||
|
||||
#define SIZE 50
|
||||
#define WARPS 7
|
||||
#define SIZE 100
|
||||
#define WARPS 8
|
||||
|
||||
|
||||
typedef struct Job_t
|
||||
@@ -31,7 +31,7 @@ typedef struct Queue_t
|
||||
|
||||
} Queue;
|
||||
|
||||
Queue q[8];
|
||||
Queue q[64];
|
||||
|
||||
void queue_initialize(Queue *);
|
||||
|
||||
|
||||
@@ -58,6 +58,12 @@ ec:
|
||||
queue_dequeue:
|
||||
mv t0, a0 # loading base address of q
|
||||
lw t1, 8 (t0) # t1 = num_j
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
addi t1, t1, -1 # --t1
|
||||
sw t1, 8 (t0) # num_j = t1
|
||||
addi t1, t0, 20 # t1 = jobs_addr
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
|
||||
module VX_context (
|
||||
input wire clk,
|
||||
/* verilator lint_off UNUSED */
|
||||
input wire in_warp,
|
||||
/* verilator lint_on UNUSED */
|
||||
input wire in_wb_warp,
|
||||
input wire in_valid[`NT_M1:0],
|
||||
input wire in_write_register,
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
|
||||
module VX_context_slave (
|
||||
input wire clk,
|
||||
/* verilator lint_off UNUSED */
|
||||
input wire in_warp,
|
||||
/* verilator lint_on UNUSED */
|
||||
input wire in_wb_warp,
|
||||
input wire in_valid[`NT_M1:0],
|
||||
input wire in_write_register,
|
||||
|
||||
228
rtl/VX_decode.v
228
rtl/VX_decode.v
@@ -19,6 +19,9 @@ module VX_decode(
|
||||
input wire[31:0] in_src1_fwd_data[`NT_M1:0],
|
||||
input wire in_src2_fwd,
|
||||
input wire[31:0] in_src2_fwd_data[`NT_M1:0],
|
||||
/* verilator lint_off UNUSED */
|
||||
input wire[`NW_M1:0] in_which_wspawn,
|
||||
/* verilator lint_on UNUSED */
|
||||
|
||||
input wire[`NW_M1:0] in_warp_num,
|
||||
|
||||
@@ -111,78 +114,181 @@ module VX_decode(
|
||||
reg[4:0] alu_op;
|
||||
reg[4:0] mul_alu;
|
||||
|
||||
/* verilator lint_off UNUSED */
|
||||
wire[31:0] w0_t0_registers[31:0];
|
||||
/* verilator lint_on UNUSED */
|
||||
|
||||
|
||||
wire context_zero_valid = (in_wb_warp_num == 0);
|
||||
wire[31:0] zero_a_reg_data[`NT_M1:0];
|
||||
wire[31:0] zero_b_reg_data[`NT_M1:0];
|
||||
reg zero_clone_stall;
|
||||
|
||||
// always @(*) begin
|
||||
// $display("DECODE WARP: %h", in_warp_num);
|
||||
// end
|
||||
|
||||
wire curr_warp_zero = in_warp_num == 0;
|
||||
wire curr_warp_one = in_warp_num == 1;
|
||||
|
||||
// always @(*) begin
|
||||
// $display("DECODE WARP: %h PC: %h",in_warp_num, in_curr_PC);
|
||||
// end
|
||||
|
||||
VX_context VX_Context_zero(
|
||||
.clk (clk),
|
||||
.in_warp (curr_warp_zero),
|
||||
.in_wb_warp (context_zero_valid),
|
||||
.in_valid (in_wb_valid),
|
||||
.in_rd (in_rd),
|
||||
.in_src1 (out_rs1),
|
||||
.in_src2 (out_rs2),
|
||||
.in_curr_PC (in_curr_PC),
|
||||
.in_is_clone (is_clone),
|
||||
.in_is_jal (is_jal),
|
||||
.in_src1_fwd (in_src1_fwd),
|
||||
.in_src1_fwd_data (in_src1_fwd_data),
|
||||
.in_src2_fwd (in_src2_fwd),
|
||||
.in_src2_fwd_data (in_src2_fwd_data),
|
||||
.in_write_register(write_register),
|
||||
.in_write_data (in_write_data),
|
||||
.out_a_reg_data (zero_a_reg_data),
|
||||
.out_b_reg_data (zero_b_reg_data),
|
||||
.out_clone_stall (zero_clone_stall),
|
||||
.w0_t0_registers (w0_t0_registers)
|
||||
);
|
||||
`ifdef ONLY
|
||||
|
||||
wire context_one_valid = (in_wb_warp_num == 1);
|
||||
wire[31:0] one_a_reg_data[`NT_M1:0];
|
||||
wire[31:0] one_b_reg_data[`NT_M1:0];
|
||||
reg one_clone_stall;
|
||||
VX_context_slave VX_Context_one(
|
||||
.clk (clk),
|
||||
.in_warp (curr_warp_one),
|
||||
.in_wb_warp (context_one_valid),
|
||||
.in_valid (in_wb_valid),
|
||||
.in_rd (in_rd),
|
||||
.in_src1 (out_rs1),
|
||||
.in_src2 (out_rs2),
|
||||
.in_curr_PC (in_curr_PC),
|
||||
.in_is_clone (is_clone),
|
||||
.in_is_jal (is_jal),
|
||||
.in_src1_fwd (in_src1_fwd),
|
||||
.in_src1_fwd_data (in_src1_fwd_data),
|
||||
.in_src2_fwd (in_src2_fwd),
|
||||
.in_src2_fwd_data (in_src2_fwd_data),
|
||||
.in_write_register(write_register),
|
||||
.in_write_data (in_write_data),
|
||||
.in_wspawn_regs (w0_t0_registers),
|
||||
.in_wspawn (is_wspawn),
|
||||
.out_a_reg_data (one_a_reg_data),
|
||||
.out_b_reg_data (one_b_reg_data),
|
||||
.out_clone_stall (one_clone_stall)
|
||||
);
|
||||
wire[31:0] glob_a_reg_data[`NT_M1:0];
|
||||
wire[31:0] glob_b_reg_data[`NT_M1:0];
|
||||
reg glob_clone_stall;
|
||||
|
||||
assign out_a_reg_data = curr_warp_zero ? zero_a_reg_data : one_a_reg_data;
|
||||
assign out_b_reg_data = curr_warp_zero ? zero_b_reg_data : one_b_reg_data;
|
||||
assign out_clone_stall = zero_clone_stall || one_clone_stall;
|
||||
wire curr_warp_zero = in_warp_num == 0;
|
||||
wire context_zero_valid = (in_wb_warp_num == 0);
|
||||
wire real_zero_isclone = is_clone && (in_warp_num == 0);
|
||||
VX_context VX_Context_zero(
|
||||
.clk (clk),
|
||||
.in_warp (curr_warp_zero),
|
||||
.in_wb_warp (context_zero_valid),
|
||||
.in_valid (in_wb_valid),
|
||||
.in_rd (in_rd),
|
||||
.in_src1 (out_rs1),
|
||||
.in_src2 (out_rs2),
|
||||
.in_curr_PC (in_curr_PC),
|
||||
.in_is_clone (real_zero_isclone),
|
||||
.in_is_jal (is_jal),
|
||||
.in_src1_fwd (in_src1_fwd),
|
||||
.in_src1_fwd_data (in_src1_fwd_data),
|
||||
.in_src2_fwd (in_src2_fwd),
|
||||
.in_src2_fwd_data (in_src2_fwd_data),
|
||||
.in_write_register(write_register),
|
||||
.in_write_data (in_write_data),
|
||||
.out_a_reg_data (glob_a_reg_data),
|
||||
.out_b_reg_data (glob_b_reg_data),
|
||||
.out_clone_stall (glob_clone_stall),
|
||||
.w0_t0_registers (w0_t0_registers)
|
||||
);
|
||||
|
||||
|
||||
assign out_a_reg_data = glob_a_reg_data;
|
||||
assign out_b_reg_data = glob_b_reg_data;
|
||||
assign out_clone_stall = glob_clone_stall;
|
||||
|
||||
`else
|
||||
|
||||
wire[31:0] glob_a_reg_data[`NW-1:0][`NT_M1:0];
|
||||
wire[31:0] glob_b_reg_data[`NW-1:0][`NT_M1:0];
|
||||
reg glob_clone_stall[`NW-1:0];
|
||||
|
||||
wire curr_warp_zero = in_warp_num == 0;
|
||||
wire context_zero_valid = (in_wb_warp_num == 0);
|
||||
wire real_zero_isclone = is_clone && (in_warp_num == 0);
|
||||
VX_context VX_Context_zero(
|
||||
.clk (clk),
|
||||
.in_warp (curr_warp_zero),
|
||||
.in_wb_warp (context_zero_valid),
|
||||
.in_valid (in_wb_valid),
|
||||
.in_rd (in_rd),
|
||||
.in_src1 (out_rs1),
|
||||
.in_src2 (out_rs2),
|
||||
.in_curr_PC (in_curr_PC),
|
||||
.in_is_clone (real_zero_isclone),
|
||||
.in_is_jal (is_jal),
|
||||
.in_src1_fwd (in_src1_fwd),
|
||||
.in_src1_fwd_data (in_src1_fwd_data),
|
||||
.in_src2_fwd (in_src2_fwd),
|
||||
.in_src2_fwd_data (in_src2_fwd_data),
|
||||
.in_write_register(write_register),
|
||||
.in_write_data (in_write_data),
|
||||
.out_a_reg_data (glob_a_reg_data[0]),
|
||||
.out_b_reg_data (glob_b_reg_data[0]),
|
||||
.out_clone_stall (glob_clone_stall[0]),
|
||||
.w0_t0_registers (w0_t0_registers)
|
||||
);
|
||||
|
||||
genvar r;
|
||||
generate
|
||||
for (r = 1; r < `NW; r = r + 1) begin
|
||||
wire context_glob_valid = (in_wb_warp_num == r);
|
||||
wire curr_warp_glob = in_warp_num == r;
|
||||
wire real_wspawn = is_wspawn && (in_which_wspawn == r);
|
||||
wire real_isclone = is_clone && (in_warp_num == r);
|
||||
VX_context_slave VX_Context_one(
|
||||
.clk (clk),
|
||||
.in_warp (curr_warp_glob),
|
||||
.in_wb_warp (context_glob_valid),
|
||||
.in_valid (in_wb_valid),
|
||||
.in_rd (in_rd),
|
||||
.in_src1 (out_rs1),
|
||||
.in_src2 (out_rs2),
|
||||
.in_curr_PC (in_curr_PC),
|
||||
.in_is_clone (real_isclone),
|
||||
.in_is_jal (is_jal),
|
||||
.in_src1_fwd (in_src1_fwd),
|
||||
.in_src1_fwd_data (in_src1_fwd_data),
|
||||
.in_src2_fwd (in_src2_fwd),
|
||||
.in_src2_fwd_data (in_src2_fwd_data),
|
||||
.in_write_register(write_register),
|
||||
.in_write_data (in_write_data),
|
||||
.in_wspawn_regs (w0_t0_registers),
|
||||
.in_wspawn (real_wspawn),
|
||||
.out_a_reg_data (glob_a_reg_data[r]),
|
||||
.out_b_reg_data (glob_b_reg_data[r]),
|
||||
.out_clone_stall (glob_clone_stall[r])
|
||||
);
|
||||
end
|
||||
endgenerate
|
||||
|
||||
// always @(posedge clk)
|
||||
// if(write_register && (in_wb_warp == 3) && (in_wb_valid[0]) && (in_rd == 31)) begin
|
||||
|
||||
// $display("Warp 3 writing ",);
|
||||
// end
|
||||
// end
|
||||
|
||||
reg[31:0] temp_out_a_reg_data[`NT_M1:0];
|
||||
reg[31:0] temp_out_b_reg_data[`NT_M1:0];
|
||||
/* verilator lint_off UNOPTFLAT */
|
||||
reg temp_out_clone_stall;
|
||||
/* verilator lint_on UNOPTFLAT */
|
||||
|
||||
always @(*) begin
|
||||
|
||||
if (`NW == 1) begin
|
||||
temp_out_a_reg_data = glob_a_reg_data;
|
||||
temp_out_b_reg_data = glob_b_reg_data;
|
||||
end else begin
|
||||
integer g;
|
||||
// temp_out_clone_stall = 0;
|
||||
for (g = 0; g < `NW; g = g + 1)
|
||||
begin
|
||||
if (in_warp_num == g[`NW_M1:0]) begin
|
||||
temp_out_a_reg_data = glob_a_reg_data[g];
|
||||
temp_out_b_reg_data = glob_b_reg_data[g];
|
||||
end
|
||||
|
||||
// temp_out_clone_stall = temp_out_clone_stall || glob_clone_stall[g];
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
assign out_a_reg_data = temp_out_a_reg_data;
|
||||
assign out_b_reg_data = temp_out_b_reg_data;
|
||||
// assign out_clone_stall = temp_out_clone_stall;
|
||||
|
||||
// assign out_a_reg_data = curr_warp_zero ? glob_a_reg_data[0] : glob_a_reg_data[1];
|
||||
// assign out_b_reg_data = curr_warp_zero ? glob_b_reg_data[0] : glob_b_reg_data[1];
|
||||
|
||||
genvar y;
|
||||
generate
|
||||
always @(*) begin
|
||||
temp_out_clone_stall = glob_clone_stall[0];
|
||||
for (y = 1; y < `NW; y = y+1) begin
|
||||
temp_out_clone_stall = temp_out_clone_stall || glob_clone_stall[y];
|
||||
end
|
||||
end
|
||||
endgenerate
|
||||
|
||||
assign out_clone_stall = temp_out_clone_stall;
|
||||
|
||||
|
||||
`endif
|
||||
|
||||
|
||||
// assign out_clone_stall = glob_clone_stall[0] || glob_clone_stall[1] ||
|
||||
// glob_clone_stall[2] || glob_clone_stall[3];
|
||||
|
||||
// always @(*) begin
|
||||
// if (context_one_valid) begin
|
||||
@@ -234,7 +340,7 @@ module VX_decode(
|
||||
assign out_wspawn_pc = out_a_reg_data[0];
|
||||
|
||||
// always @(*) begin
|
||||
// if (is_jalrs) begin
|
||||
// if (is_jalrs && in_warp_num == 2) begin
|
||||
// $display("JALRS WOHOOO: rs2 - %h", out_b_reg_data[0]);
|
||||
// end
|
||||
// end
|
||||
@@ -274,9 +380,6 @@ module VX_decode(
|
||||
|
||||
|
||||
|
||||
// ch_print("DECODE: PC: {0}, INSTRUCTION: {1}", in_curr_PC, in_instruction);
|
||||
|
||||
|
||||
|
||||
// assign out_reg_data[0] = ( (is_jal == 1'b1) ? in_curr_PC : ((in_src1_fwd == 1'b1) ? in_src1_fwd_data[0] : rd1_register[0]));
|
||||
// assign out_reg_data[1] = (in_src2_fwd == 1'b1) ? in_src2_fwd_data[0] : rd2_register[0];
|
||||
@@ -361,6 +464,7 @@ module VX_decode(
|
||||
begin
|
||||
if (is_jalrs || is_jmprt)
|
||||
begin
|
||||
// $display("OUT JAL DEST: %h", out_a_reg_data[0]);
|
||||
out_jal = 1'b1 && in_valid[0];
|
||||
out_jal_offset = 32'h0;
|
||||
end
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
|
||||
|
||||
#define NT 2
|
||||
#define NT_M1 1
|
||||
#define NT 4
|
||||
#define NT_M1 (NT-1)
|
||||
|
||||
#define NW 8
|
||||
|
||||
|
||||
#define R_INST 51
|
||||
#define L_INST 3
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
|
||||
`define NT 2
|
||||
`define NT_M1 1
|
||||
|
||||
`define NW_M1 1
|
||||
`define NT 4
|
||||
`define NT_M1 (`NT-1)
|
||||
|
||||
`define NW_M1 3
|
||||
`define NW 8
|
||||
// `define ONLY
|
||||
|
||||
|
||||
`define R_INST 7'd51
|
||||
|
||||
202
rtl/VX_fetch.v
202
rtl/VX_fetch.v
@@ -29,7 +29,8 @@ module VX_fetch (
|
||||
output wire[`NW_M1:0] out_warp_num,
|
||||
output wire[31:0] out_curr_PC,
|
||||
output wire out_valid[`NT_M1:0],
|
||||
output wire out_ebreak
|
||||
output wire out_ebreak,
|
||||
output wire[`NW_M1:0] out_which_wspawn
|
||||
);
|
||||
|
||||
reg stall;
|
||||
@@ -37,108 +38,161 @@ module VX_fetch (
|
||||
|
||||
reg[`NW_M1:0] warp_num;
|
||||
reg[`NW_M1:0] warp_state;
|
||||
reg[`NW_M1:0] warp_count;
|
||||
|
||||
reg[31:0] num_ecalls;
|
||||
|
||||
initial begin
|
||||
warp_num = 0;
|
||||
warp_state = 0;
|
||||
num_ecalls = 0;
|
||||
warp_count = 1;
|
||||
end
|
||||
|
||||
|
||||
always @(posedge clk) begin
|
||||
if (in_ebreak) begin
|
||||
num_ecalls <= num_ecalls + 1;
|
||||
$display("--------> New num_ecalls = %h", num_ecalls+1);
|
||||
end
|
||||
end
|
||||
|
||||
wire add_warp = in_wspawn && !in_ebreak && !in_clone_stall;
|
||||
wire remove_warp = in_ebreak && !in_wspawn && !in_clone_stall;
|
||||
|
||||
always @(posedge clk or posedge reset) begin
|
||||
if (reset || (warp_num == warp_state) || remove_warp || add_warp) begin
|
||||
if (reset || (warp_num >= warp_state) || remove_warp || add_warp) begin
|
||||
warp_num <= 0;
|
||||
`ifndef ONLY
|
||||
end else if (!warp_glob_valid[warp_num+1]) begin
|
||||
$display("Skipping one");
|
||||
warp_num <= warp_num + 2;
|
||||
`endif
|
||||
end else begin
|
||||
warp_num <= warp_num + 1;
|
||||
end
|
||||
|
||||
if (add_warp) begin
|
||||
// $display("Adding a new warp %h", warp_state);
|
||||
warp_state <= warp_state + 1;
|
||||
end else if (remove_warp) begin
|
||||
// $display("Removing a warp %h", warp_state);
|
||||
warp_state <= warp_state - 1;
|
||||
warp_count <= warp_count + 1;
|
||||
$display("Adding a new warp %h", warp_state+1);
|
||||
end else if (remove_warp) begin // No removing, just invalidating
|
||||
warp_count <= warp_count - 1;
|
||||
$display("Removing a warp %h %h", in_decode_warp_num, warp_count);
|
||||
if (warp_count == 2) begin
|
||||
$display("&&&&&&&&&&&&& STATE 0");
|
||||
warp_state <= 0;
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
assign out_ebreak = (warp_state == 0) && in_ebreak;
|
||||
assign out_ebreak = (in_decode_warp_num == 0) && in_ebreak;
|
||||
|
||||
|
||||
assign stall = in_clone_stall || in_branch_stall || in_fwd_stall || in_branch_stall_exe || in_interrupt || in_freeze || in_debug;
|
||||
|
||||
assign out_which_wspawn = (warp_state+1);
|
||||
|
||||
`ifdef ONLY
|
||||
|
||||
wire warp_zero_change_mask = in_change_mask && (in_decode_warp_num == 0);
|
||||
wire warp_zero_jal = in_jal && (in_memory_warp_num == 0);
|
||||
wire warp_zero_branch = in_branch_dir && (in_memory_warp_num == 0);
|
||||
wire warp_zero_stall = stall || (warp_num != 0);
|
||||
wire warp_zero_wspawn = (0 == 0) ? 0 : (in_wspawn && ((warp_state+1) == 0));
|
||||
wire[31:0] warp_zero_wspawn_pc = in_wspawn_pc;
|
||||
wire warp_zero_remove = remove_warp && (in_decode_warp_num == 0);
|
||||
|
||||
always @(*) begin : proc_
|
||||
if (warp_zero_remove) $display("4Removing warp: %h", 0);
|
||||
end
|
||||
|
||||
VX_warp VX_Warp(
|
||||
.clk (clk),
|
||||
.reset (reset),
|
||||
.stall (warp_zero_stall),
|
||||
.remove (warp_zero_remove),
|
||||
.in_thread_mask(in_thread_mask),
|
||||
.in_change_mask(warp_zero_change_mask),
|
||||
.in_jal (warp_zero_jal),
|
||||
.in_jal_dest (in_jal_dest),
|
||||
.in_branch_dir (warp_zero_branch),
|
||||
.in_branch_dest(in_branch_dest),
|
||||
.in_wspawn (warp_zero_wspawn),
|
||||
.in_wspawn_pc (warp_zero_wspawn_pc),
|
||||
.out_PC (out_PC),
|
||||
.out_valid (out_valid)
|
||||
);
|
||||
|
||||
`else
|
||||
|
||||
wire[31:0] warp_glob_pc[`NW-1:0];
|
||||
wire warp_glob_valid[`NW-1:0][`NT_M1:0];
|
||||
genvar cur_warp;
|
||||
generate
|
||||
for (cur_warp = 0; cur_warp < `NW; cur_warp = cur_warp + 1)
|
||||
begin
|
||||
wire warp_zero_change_mask = in_change_mask && (in_decode_warp_num == cur_warp);
|
||||
wire warp_zero_jal = in_jal && (in_memory_warp_num == cur_warp);
|
||||
wire warp_zero_branch = in_branch_dir && (in_memory_warp_num == cur_warp);
|
||||
wire warp_zero_stall = stall || (warp_num != cur_warp);
|
||||
wire warp_zero_wspawn = (cur_warp == 0) ? 0 : (in_wspawn && ((warp_state+1) == cur_warp));
|
||||
wire[31:0] warp_zero_wspawn_pc = in_wspawn_pc;
|
||||
wire warp_zero_remove = remove_warp && (in_decode_warp_num == cur_warp);
|
||||
|
||||
always @(*) begin : proc_
|
||||
if (warp_zero_remove) $display("4Removing warp: %h", cur_warp);
|
||||
end
|
||||
|
||||
VX_warp VX_Warp(
|
||||
.clk (clk),
|
||||
.reset (reset),
|
||||
.stall (warp_zero_stall),
|
||||
.remove (warp_zero_remove),
|
||||
.in_thread_mask(in_thread_mask),
|
||||
.in_change_mask(warp_zero_change_mask),
|
||||
.in_jal (warp_zero_jal),
|
||||
.in_jal_dest (in_jal_dest),
|
||||
.in_branch_dir (warp_zero_branch),
|
||||
.in_branch_dest(in_branch_dest),
|
||||
.in_wspawn (warp_zero_wspawn),
|
||||
.in_wspawn_pc (warp_zero_wspawn_pc),
|
||||
.out_PC (warp_glob_pc[cur_warp]),
|
||||
.out_valid (warp_glob_valid[cur_warp])
|
||||
);
|
||||
end
|
||||
endgenerate
|
||||
|
||||
|
||||
wire warp_zero_change_mask = in_change_mask && (in_decode_warp_num == 0);
|
||||
wire warp_zero_jal = in_jal && (in_memory_warp_num == 0);
|
||||
wire warp_zero_branch = in_branch_dir && (in_memory_warp_num == 0);
|
||||
wire warp_zero_stall = stall || (warp_num == 1);
|
||||
wire warp_zero_wspawn = 0;
|
||||
wire[31:0] warp_zero_wspawn_pc = 32'h0;
|
||||
reg[31:0] out_PC_var;
|
||||
reg out_valid_var[`NT_M1:0];
|
||||
|
||||
wire[31:0] warp_zero_pc;
|
||||
wire warp_zero_valid[`NT_M1:0];
|
||||
VX_warp VX_Warp_zero(
|
||||
.clk (clk),
|
||||
.reset (reset),
|
||||
.stall (warp_zero_stall),
|
||||
.in_thread_mask(in_thread_mask),
|
||||
.in_change_mask(warp_zero_change_mask),
|
||||
.in_jal (warp_zero_jal),
|
||||
.in_jal_dest (in_jal_dest),
|
||||
.in_branch_dir (warp_zero_branch),
|
||||
.in_branch_dest(in_branch_dest),
|
||||
.in_wspawn (warp_zero_wspawn),
|
||||
.in_wspawn_pc (warp_zero_wspawn_pc),
|
||||
.out_PC (warp_zero_pc),
|
||||
.out_valid (warp_zero_valid)
|
||||
);
|
||||
always @(*) begin : help
|
||||
integer g;
|
||||
integer h;
|
||||
for (g = 0; g < `NW; g = g + 1)
|
||||
begin
|
||||
if (warp_num == g[`NW_M1:0])
|
||||
begin
|
||||
out_PC_var = warp_glob_pc[g][31:0];
|
||||
for (h = 0; h < `NT; h = h + 1) out_valid_var[h] = warp_glob_valid[g][h];
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
assign out_PC = out_PC_var;
|
||||
assign out_valid = out_valid_var;
|
||||
|
||||
always @(*) begin
|
||||
if (out_valid[0]) begin
|
||||
$display("[%d] %h #%b#",out_warp_num, out_PC, out_valid);
|
||||
end
|
||||
end
|
||||
|
||||
`endif
|
||||
|
||||
|
||||
wire warp_one_change_mask = in_change_mask && (in_decode_warp_num == 1);
|
||||
wire warp_one_jal = in_jal && (in_memory_warp_num == 1);
|
||||
wire warp_one_branch = in_branch_dir && (in_memory_warp_num == 1);
|
||||
wire warp_one_stall = stall || (warp_num == 0);
|
||||
wire[31:0] warp_one_pc;
|
||||
wire warp_one_valid[`NT_M1:0];
|
||||
VX_warp VX_Warp_one(
|
||||
.clk (clk),
|
||||
.reset (reset),
|
||||
.stall (warp_one_stall),
|
||||
.in_thread_mask(in_thread_mask),
|
||||
.in_change_mask(warp_one_change_mask),
|
||||
.in_jal (warp_one_jal),
|
||||
.in_jal_dest (in_jal_dest),
|
||||
.in_branch_dir (warp_one_branch),
|
||||
.in_branch_dest(in_branch_dest),
|
||||
.in_wspawn (in_wspawn),
|
||||
.in_wspawn_pc (in_wspawn_pc),
|
||||
.out_PC (warp_one_pc),
|
||||
.out_valid (warp_one_valid)
|
||||
);
|
||||
|
||||
// always @(*) begin
|
||||
// if (in_wspawn) begin
|
||||
// $display("Spawning a warp @ %h",in_wspawn_pc);
|
||||
// end
|
||||
// end
|
||||
|
||||
// always @(posedge clk) begin
|
||||
// $display("curr warp: %h Threads:%d%d PC: %h", warp_num, out_valid[0],out_valid[1], out_PC);
|
||||
// end
|
||||
|
||||
// always @(*) begin
|
||||
// if (warp_num == 1) begin
|
||||
// $display("Going to PC: %h", warp_one_pc);
|
||||
// end
|
||||
// end
|
||||
|
||||
assign out_PC = (warp_num == 0) ? warp_zero_pc : warp_one_pc;
|
||||
assign out_valid = (warp_num == 0) ? warp_zero_valid : warp_one_valid;
|
||||
|
||||
// always @(*) begin
|
||||
// $display("FETCH PC: %h (%h, %h, %h)",delete, delete, in_jal_dest, in_branch_dest);
|
||||
// end
|
||||
|
||||
|
||||
assign out_curr_PC = out_PC;
|
||||
|
||||
@@ -5,6 +5,7 @@ module VX_warp (
|
||||
input wire clk,
|
||||
input wire reset,
|
||||
input wire stall,
|
||||
input wire remove,
|
||||
input wire in_thread_mask[`NT_M1:0],
|
||||
input wire in_change_mask,
|
||||
input wire in_jal,
|
||||
@@ -23,18 +24,24 @@ module VX_warp (
|
||||
var[31:0] use_PC;
|
||||
reg valid[`NT_M1:0];
|
||||
|
||||
reg valid_zero[`NT_M1:0];
|
||||
|
||||
integer ini_cur_th = 0;
|
||||
initial begin
|
||||
real_PC = 0;
|
||||
for (ini_cur_th = 1; ini_cur_th < `NT; ini_cur_th=ini_cur_th+1)
|
||||
for (ini_cur_th = 1; ini_cur_th < `NT; ini_cur_th=ini_cur_th+1) begin
|
||||
valid[ini_cur_th] = 0; // Thread 1 active
|
||||
valid[0] = 1;
|
||||
valid_zero[ini_cur_th] = 0;
|
||||
end
|
||||
valid[0] = 1;
|
||||
valid_zero[0] = 0;
|
||||
end
|
||||
|
||||
|
||||
always @(*) begin
|
||||
if (in_change_mask) begin
|
||||
if (remove) begin
|
||||
assign valid = valid_zero;
|
||||
end else if (in_change_mask) begin
|
||||
assign valid = in_thread_mask;
|
||||
end
|
||||
end
|
||||
@@ -50,6 +57,7 @@ module VX_warp (
|
||||
always @(*) begin
|
||||
if (in_jal == 1'b1) begin
|
||||
temp_PC = in_jal_dest;
|
||||
// $display("LINKING TO %h", temp_PC);
|
||||
end else if (in_branch_dir == 1'b1) begin
|
||||
temp_PC = in_branch_dest;
|
||||
end else begin
|
||||
|
||||
@@ -32,6 +32,7 @@ wire[31:0] fetch_curr_PC;
|
||||
wire fetch_valid[`NT_M1:0];
|
||||
wire[`NW_M1:0] fetch_warp_num;
|
||||
wire fetch_ebreak;
|
||||
wire[`NW_M1:0] fetch_which_warp;
|
||||
|
||||
// From f_d_register
|
||||
wire[31:0] f_d_instruction;
|
||||
@@ -228,7 +229,8 @@ VX_fetch vx_fetch(
|
||||
.out_curr_PC (fetch_curr_PC),
|
||||
.out_warp_num (fetch_warp_num),
|
||||
.out_valid (fetch_valid),
|
||||
.out_ebreak (fetch_ebreak)
|
||||
.out_ebreak (fetch_ebreak),
|
||||
.out_which_wspawn (fetch_which_warp)
|
||||
);
|
||||
|
||||
|
||||
@@ -264,6 +266,7 @@ VX_decode vx_decode(
|
||||
.in_src2_fwd (forwarding_src2_fwd),
|
||||
.in_src2_fwd_data(forwarding_src2_fwd_data),
|
||||
.in_warp_num (f_d_warp_num),
|
||||
.in_which_wspawn (fetch_which_warp),
|
||||
|
||||
.out_csr_address (decode_csr_address),
|
||||
.out_is_csr (decode_is_csr),
|
||||
|
||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -1,361 +0,0 @@
|
||||
// Verilated -*- C++ -*-
|
||||
// DESCRIPTION: Verilator output: Primary design header
|
||||
//
|
||||
// This header should be included by all source files instantiating the design.
|
||||
// The class here is then constructed to instantiate the design.
|
||||
// See the Verilator manual for examples.
|
||||
|
||||
#ifndef _VVortex_H_
|
||||
#define _VVortex_H_
|
||||
|
||||
#include "verilated.h"
|
||||
|
||||
class VVortex__Syms;
|
||||
|
||||
//----------
|
||||
|
||||
VL_MODULE(VVortex) {
|
||||
public:
|
||||
|
||||
// PORTS
|
||||
// The application code writes and reads these signals to
|
||||
// propagate new values into/out from the Verilated model.
|
||||
// Begin mtask footprint all:
|
||||
VL_IN8(clk,0,0);
|
||||
VL_IN8(reset,0,0);
|
||||
VL_OUT8(out_cache_driver_in_mem_read,2,0);
|
||||
VL_OUT8(out_cache_driver_in_mem_write,2,0);
|
||||
VL_OUT8(out_ebreak,0,0);
|
||||
VL_IN(fe_instruction,31,0);
|
||||
VL_OUT(curr_PC,31,0);
|
||||
VL_IN(in_cache_driver_out_data[2],31,0);
|
||||
VL_OUT(out_cache_driver_in_address[2],31,0);
|
||||
VL_OUT8(out_cache_driver_in_valid[2],0,0);
|
||||
VL_OUT(out_cache_driver_in_data[2],31,0);
|
||||
|
||||
// LOCAL SIGNALS
|
||||
// Internals; generally not touched by application code
|
||||
// Anonymous structures to workaround compiler member-count bugs
|
||||
struct {
|
||||
// Begin mtask footprint all:
|
||||
VL_SIG8(Vortex__DOT__decode_branch_stall,0,0);
|
||||
VL_SIG8(Vortex__DOT__decode_branch_type,2,0);
|
||||
VL_SIG8(Vortex__DOT__decode_jal,0,0);
|
||||
VL_SIG8(Vortex__DOT__decode_clone_stall,0,0);
|
||||
VL_SIG8(Vortex__DOT__decode_change_mask,0,0);
|
||||
VL_SIG8(Vortex__DOT__execute_branch_stall,0,0);
|
||||
VL_SIG8(Vortex__DOT__memory_branch_dir,0,0);
|
||||
VL_SIG8(Vortex__DOT__forwarding_fwd_stall,0,0);
|
||||
VL_SIG8(Vortex__DOT__forwarding_src1_fwd,0,0);
|
||||
VL_SIG8(Vortex__DOT__forwarding_src2_fwd,0,0);
|
||||
VL_SIG8(Vortex__DOT__vx_fetch__DOT__stall,0,0);
|
||||
VL_SIG8(Vortex__DOT__vx_fetch__DOT__warp_num,1,0);
|
||||
VL_SIG8(Vortex__DOT__vx_fetch__DOT__warp_state,1,0);
|
||||
VL_SIG8(Vortex__DOT__vx_fetch__DOT__add_warp,0,0);
|
||||
VL_SIG8(Vortex__DOT__vx_fetch__DOT__remove_warp,0,0);
|
||||
VL_SIG8(Vortex__DOT__vx_fetch__DOT__warp_zero_change_mask,0,0);
|
||||
VL_SIG8(Vortex__DOT__vx_fetch__DOT__warp_zero_stall,0,0);
|
||||
VL_SIG8(Vortex__DOT__vx_fetch__DOT__warp_one_change_mask,0,0);
|
||||
VL_SIG8(Vortex__DOT__vx_fetch__DOT__warp_one_stall,0,0);
|
||||
VL_SIG8(Vortex__DOT__vx_f_d_reg__DOT__warp_num,1,0);
|
||||
VL_SIG8(Vortex__DOT__vx_decode__DOT__is_itype,0,0);
|
||||
VL_SIG8(Vortex__DOT__vx_decode__DOT__is_csr,0,0);
|
||||
VL_SIG8(Vortex__DOT__vx_decode__DOT__is_clone,0,0);
|
||||
VL_SIG8(Vortex__DOT__vx_decode__DOT__is_jalrs,0,0);
|
||||
VL_SIG8(Vortex__DOT__vx_decode__DOT__is_jmprt,0,0);
|
||||
VL_SIG8(Vortex__DOT__vx_decode__DOT__is_wspawn,0,0);
|
||||
VL_SIG8(Vortex__DOT__vx_decode__DOT__jal_sys_jal,0,0);
|
||||
VL_SIG8(Vortex__DOT__vx_decode__DOT__mul_alu,4,0);
|
||||
VL_SIG8(Vortex__DOT__vx_decode__DOT__is_ebreak,0,0);
|
||||
VL_SIG8(Vortex__DOT__vx_decode__DOT__temp_final_alu,4,0);
|
||||
VL_SIG8(Vortex__DOT__vx_decode__DOT__VX_Context_zero__DOT__state_stall,5,0);
|
||||
VL_SIG8(Vortex__DOT__vx_decode__DOT__VX_Context_one__DOT__clone_state_stall,5,0);
|
||||
VL_SIG8(Vortex__DOT__vx_decode__DOT__VX_Context_one__DOT__wspawn_state_stall,5,0);
|
||||
VL_SIG8(Vortex__DOT__vx_d_e_reg__DOT__rd,4,0);
|
||||
VL_SIG8(Vortex__DOT__vx_d_e_reg__DOT__alu_op,4,0);
|
||||
VL_SIG8(Vortex__DOT__vx_d_e_reg__DOT__wb,1,0);
|
||||
VL_SIG8(Vortex__DOT__vx_d_e_reg__DOT__rs2_src,0,0);
|
||||
VL_SIG8(Vortex__DOT__vx_d_e_reg__DOT__mem_read,2,0);
|
||||
VL_SIG8(Vortex__DOT__vx_d_e_reg__DOT__mem_write,2,0);
|
||||
VL_SIG8(Vortex__DOT__vx_d_e_reg__DOT__branch_type,2,0);
|
||||
VL_SIG8(Vortex__DOT__vx_d_e_reg__DOT__is_csr,0,0);
|
||||
VL_SIG8(Vortex__DOT__vx_d_e_reg__DOT__jal,0,0);
|
||||
VL_SIG8(Vortex__DOT__vx_d_e_reg__DOT__warp_num,1,0);
|
||||
VL_SIG8(Vortex__DOT__vx_d_e_reg__DOT__stalling,0,0);
|
||||
VL_SIG8(Vortex__DOT__vx_e_m_reg__DOT__rd,4,0);
|
||||
VL_SIG8(Vortex__DOT__vx_e_m_reg__DOT__wb,1,0);
|
||||
VL_SIG8(Vortex__DOT__vx_e_m_reg__DOT__mem_read,2,0);
|
||||
VL_SIG8(Vortex__DOT__vx_e_m_reg__DOT__mem_write,2,0);
|
||||
VL_SIG8(Vortex__DOT__vx_e_m_reg__DOT__is_csr,0,0);
|
||||
VL_SIG8(Vortex__DOT__vx_e_m_reg__DOT__branch_type,2,0);
|
||||
VL_SIG8(Vortex__DOT__vx_e_m_reg__DOT__jal,0,0);
|
||||
VL_SIG8(Vortex__DOT__vx_e_m_reg__DOT__warp_num,1,0);
|
||||
VL_SIG8(Vortex__DOT__vx_m_w_reg__DOT__rd,4,0);
|
||||
VL_SIG8(Vortex__DOT__vx_m_w_reg__DOT__wb,1,0);
|
||||
VL_SIG8(Vortex__DOT__vx_m_w_reg__DOT__warp_num,1,0);
|
||||
VL_SIG8(Vortex__DOT__vx_forwarding__DOT__src1_exe_fwd,0,0);
|
||||
VL_SIG8(Vortex__DOT__vx_forwarding__DOT__src1_mem_fwd,0,0);
|
||||
VL_SIG8(Vortex__DOT__vx_forwarding__DOT__src1_wb_fwd,0,0);
|
||||
VL_SIG8(Vortex__DOT__vx_forwarding__DOT__src2_exe_fwd,0,0);
|
||||
VL_SIG8(Vortex__DOT__vx_forwarding__DOT__src2_mem_fwd,0,0);
|
||||
VL_SIG8(Vortex__DOT__vx_forwarding__DOT__src2_wb_fwd,0,0);
|
||||
VL_SIG16(Vortex__DOT__decode_csr_address,11,0);
|
||||
VL_SIG16(Vortex__DOT__vx_decode__DOT__alu_tempp,11,0);
|
||||
VL_SIG16(Vortex__DOT__vx_d_e_reg__DOT__csr_address,11,0);
|
||||
};
|
||||
struct {
|
||||
VL_SIG16(Vortex__DOT__vx_e_m_reg__DOT__csr_address,11,0);
|
||||
VL_SIG16(Vortex__DOT__vx_csr_handler__DOT__decode_csr_address,11,0);
|
||||
VL_SIG(Vortex__DOT__decode_itype_immed,31,0);
|
||||
VL_SIG(Vortex__DOT__decode_jal_offset,31,0);
|
||||
VL_SIG(Vortex__DOT__memory_branch_dest,31,0);
|
||||
VL_SIG(Vortex__DOT__csr_decode_csr_data,31,0);
|
||||
VL_SIG(Vortex__DOT__vx_fetch__DOT__out_PC,31,0);
|
||||
VL_SIG(Vortex__DOT__vx_fetch__DOT__VX_Warp_zero__DOT__real_PC,31,0);
|
||||
VL_SIG(Vortex__DOT__vx_fetch__DOT__VX_Warp_zero__DOT__temp_PC,31,0);
|
||||
VL_SIG(Vortex__DOT__vx_fetch__DOT__VX_Warp_one__DOT__real_PC,31,0);
|
||||
VL_SIG(Vortex__DOT__vx_fetch__DOT__VX_Warp_one__DOT__temp_PC,31,0);
|
||||
VL_SIG(Vortex__DOT__vx_f_d_reg__DOT__instruction,31,0);
|
||||
VL_SIG(Vortex__DOT__vx_f_d_reg__DOT__curr_PC,31,0);
|
||||
VL_SIG(Vortex__DOT__vx_d_e_reg__DOT__PC_next_out,31,0);
|
||||
VL_SIG(Vortex__DOT__vx_d_e_reg__DOT__itype_immed,31,0);
|
||||
VL_SIG(Vortex__DOT__vx_d_e_reg__DOT__upper_immed,19,0);
|
||||
VL_SIG(Vortex__DOT__vx_d_e_reg__DOT__csr_mask,31,0);
|
||||
VL_SIG(Vortex__DOT__vx_d_e_reg__DOT__curr_PC,31,0);
|
||||
VL_SIG(Vortex__DOT__vx_d_e_reg__DOT__jal_offset,31,0);
|
||||
VL_SIG(Vortex__DOT__vx_execute__DOT__genblk1__BRA__0__KET____DOT__vx_alu__DOT__ALU_in2,31,0);
|
||||
VL_SIG(Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2,31,0);
|
||||
VL_SIG(Vortex__DOT__vx_e_m_reg__DOT__PC_next,31,0);
|
||||
VL_SIG(Vortex__DOT__vx_e_m_reg__DOT__csr_result,31,0);
|
||||
VL_SIG(Vortex__DOT__vx_e_m_reg__DOT__curr_PC,31,0);
|
||||
VL_SIG(Vortex__DOT__vx_e_m_reg__DOT__branch_offset,31,0);
|
||||
VL_SIG(Vortex__DOT__vx_e_m_reg__DOT__jal_dest,31,0);
|
||||
VL_SIG(Vortex__DOT__vx_m_w_reg__DOT__PC_next,31,0);
|
||||
VL_SIG64(Vortex__DOT__vx_execute__DOT__genblk1__BRA__0__KET____DOT__vx_alu__DOT__mult_signed_result,63,0);
|
||||
VL_SIG64(Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__mult_signed_result,63,0);
|
||||
VL_SIG64(Vortex__DOT__vx_csr_handler__DOT__cycle,63,0);
|
||||
VL_SIG64(Vortex__DOT__vx_csr_handler__DOT__instret,63,0);
|
||||
VL_SIG8(Vortex__DOT__fetch_valid[2],0,0);
|
||||
VL_SIG8(Vortex__DOT__f_d_valid[2],0,0);
|
||||
VL_SIG(Vortex__DOT__decode_a_reg_data[2],31,0);
|
||||
VL_SIG(Vortex__DOT__decode_b_reg_data[2],31,0);
|
||||
VL_SIG8(Vortex__DOT__decode_valid[2],0,0);
|
||||
VL_SIG8(Vortex__DOT__decode_thread_mask[2],0,0);
|
||||
VL_SIG(Vortex__DOT__d_e_a_reg_data[2],31,0);
|
||||
VL_SIG(Vortex__DOT__d_e_b_reg_data[2],31,0);
|
||||
VL_SIG8(Vortex__DOT__d_e_valid[2],0,0);
|
||||
VL_SIG(Vortex__DOT__execute_alu_result[2],31,0);
|
||||
VL_SIG(Vortex__DOT__execute_b_reg_data[2],31,0);
|
||||
VL_SIG8(Vortex__DOT__execute_valid[2],0,0);
|
||||
VL_SIG(Vortex__DOT__e_m_alu_result[2],31,0);
|
||||
VL_SIG(Vortex__DOT__e_m_b_reg_data[2],31,0);
|
||||
VL_SIG8(Vortex__DOT__e_m_valid[2],0,0);
|
||||
VL_SIG(Vortex__DOT__memory_alu_result[2],31,0);
|
||||
VL_SIG(Vortex__DOT__memory_mem_result[2],31,0);
|
||||
VL_SIG8(Vortex__DOT__memory_valid[2],0,0);
|
||||
VL_SIG(Vortex__DOT__m_w_alu_result[2],31,0);
|
||||
VL_SIG(Vortex__DOT__m_w_mem_result[2],31,0);
|
||||
VL_SIG8(Vortex__DOT__m_w_valid[2],0,0);
|
||||
VL_SIG(Vortex__DOT__writeback_write_data[2],31,0);
|
||||
VL_SIG(Vortex__DOT__forwarding_src1_fwd_data[2],31,0);
|
||||
VL_SIG(Vortex__DOT__forwarding_src2_fwd_data[2],31,0);
|
||||
VL_SIG8(Vortex__DOT__vx_fetch__DOT__warp_zero_valid[2],0,0);
|
||||
VL_SIG8(Vortex__DOT__vx_fetch__DOT__warp_one_valid[2],0,0);
|
||||
VL_SIG8(Vortex__DOT__vx_fetch__DOT__VX_Warp_zero__DOT__valid[2],0,0);
|
||||
VL_SIG8(Vortex__DOT__vx_fetch__DOT__VX_Warp_one__DOT__valid[2],0,0);
|
||||
VL_SIG8(Vortex__DOT__vx_f_d_reg__DOT__valid[2],0,0);
|
||||
VL_SIG(Vortex__DOT__vx_decode__DOT__w0_t0_registers[32],31,0);
|
||||
VL_SIG(Vortex__DOT__vx_decode__DOT__zero_a_reg_data[2],31,0);
|
||||
VL_SIG(Vortex__DOT__vx_decode__DOT__zero_b_reg_data[2],31,0);
|
||||
VL_SIG(Vortex__DOT__vx_decode__DOT__one_a_reg_data[2],31,0);
|
||||
};
|
||||
struct {
|
||||
VL_SIG(Vortex__DOT__vx_decode__DOT__one_b_reg_data[2],31,0);
|
||||
VL_SIG8(Vortex__DOT__vx_decode__DOT__jalrs_thread_mask[2],0,0);
|
||||
VL_SIG8(Vortex__DOT__vx_decode__DOT__jmprt_thread_mask[2],0,0);
|
||||
VL_SIG(Vortex__DOT__vx_decode__DOT__VX_Context_zero__DOT__rd1_register[2],31,0);
|
||||
VL_SIG(Vortex__DOT__vx_decode__DOT__VX_Context_zero__DOT__rd2_register[2],31,0);
|
||||
VL_SIG(Vortex__DOT__vx_decode__DOT__VX_Context_zero__DOT__clone_regsiters[32],31,0);
|
||||
VL_SIG(Vortex__DOT__vx_decode__DOT__VX_Context_zero__DOT__vx_register_file_master__DOT__registers[32],31,0);
|
||||
VL_SIG(Vortex__DOT__vx_decode__DOT__VX_Context_zero__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers[32],31,0);
|
||||
VL_SIG(Vortex__DOT__vx_decode__DOT__VX_Context_one__DOT__rd1_register[2],31,0);
|
||||
VL_SIG(Vortex__DOT__vx_decode__DOT__VX_Context_one__DOT__rd2_register[2],31,0);
|
||||
VL_SIG(Vortex__DOT__vx_decode__DOT__VX_Context_one__DOT__clone_regsiters[32],31,0);
|
||||
VL_SIG(Vortex__DOT__vx_decode__DOT__VX_Context_one__DOT__vx_register_file_master__DOT__registers[32],31,0);
|
||||
VL_SIG(Vortex__DOT__vx_decode__DOT__VX_Context_one__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers[32],31,0);
|
||||
VL_SIG(Vortex__DOT__vx_d_e_reg__DOT__a_reg_data[2],31,0);
|
||||
VL_SIG(Vortex__DOT__vx_d_e_reg__DOT__b_reg_data[2],31,0);
|
||||
VL_SIG8(Vortex__DOT__vx_d_e_reg__DOT__valid[2],0,0);
|
||||
VL_SIG(Vortex__DOT__vx_d_e_reg__DOT__reg_data_z[2],31,0);
|
||||
VL_SIG8(Vortex__DOT__vx_d_e_reg__DOT__valid_z[2],0,0);
|
||||
VL_SIG(Vortex__DOT__vx_e_m_reg__DOT__alu_result[2],31,0);
|
||||
VL_SIG(Vortex__DOT__vx_e_m_reg__DOT__a_reg_data[2],31,0);
|
||||
VL_SIG(Vortex__DOT__vx_e_m_reg__DOT__b_reg_data[2],31,0);
|
||||
VL_SIG8(Vortex__DOT__vx_e_m_reg__DOT__valid[2],0,0);
|
||||
VL_SIG(Vortex__DOT__vx_m_w_reg__DOT__alu_result[2],31,0);
|
||||
VL_SIG(Vortex__DOT__vx_m_w_reg__DOT__mem_result[2],31,0);
|
||||
VL_SIG8(Vortex__DOT__vx_m_w_reg__DOT__valid[2],0,0);
|
||||
VL_SIG(Vortex__DOT__vx_writeback__DOT__out_pc_data[2],31,0);
|
||||
VL_SIG(Vortex__DOT__vx_forwarding__DOT__use_execute_PC_next[2],31,0);
|
||||
VL_SIG(Vortex__DOT__vx_forwarding__DOT__use_memory_PC_next[2],31,0);
|
||||
VL_SIG(Vortex__DOT__vx_forwarding__DOT__use_writeback_PC_next[2],31,0);
|
||||
VL_SIG16(Vortex__DOT__vx_csr_handler__DOT__csr[4096],11,0);
|
||||
};
|
||||
|
||||
// LOCAL VARIABLES
|
||||
// Internals; generally not touched by application code
|
||||
// Anonymous structures to workaround compiler member-count bugs
|
||||
struct {
|
||||
// Begin mtask footprint all:
|
||||
VL_SIG8(__Vtableidx1,2,0);
|
||||
VL_SIG8(__Vclklast__TOP__clk,0,0);
|
||||
VL_SIG8(__Vclklast__TOP__reset,0,0);
|
||||
VL_SIG(Vortex__DOT__vx_decode__DOT__VX_Context_zero__DOT____Vcellout__vx_register_file_master__out_src2_data,31,0);
|
||||
VL_SIG(Vortex__DOT__vx_decode__DOT__VX_Context_zero__DOT____Vcellout__vx_register_file_master__out_src1_data,31,0);
|
||||
VL_SIG(Vortex__DOT__vx_decode__DOT__VX_Context_zero__DOT____Vcellout__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__out_src2_data,31,0);
|
||||
VL_SIG(Vortex__DOT__vx_decode__DOT__VX_Context_zero__DOT____Vcellout__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__out_src1_data,31,0);
|
||||
VL_SIG(Vortex__DOT__vx_decode__DOT__VX_Context_one__DOT____Vcellout__vx_register_file_master__out_src2_data,31,0);
|
||||
VL_SIG(Vortex__DOT__vx_decode__DOT__VX_Context_one__DOT____Vcellout__vx_register_file_master__out_src1_data,31,0);
|
||||
VL_SIG(Vortex__DOT__vx_decode__DOT__VX_Context_one__DOT____Vcellout__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__out_src2_data,31,0);
|
||||
VL_SIG(Vortex__DOT__vx_decode__DOT__VX_Context_one__DOT____Vcellout__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__out_src1_data,31,0);
|
||||
VL_SIG(Vortex__DOT__vx_execute__DOT____Vcellout__genblk1__BRA__0__KET____DOT__vx_alu__out_alu_result,31,0);
|
||||
VL_SIG(Vortex__DOT__vx_execute__DOT____Vcellout__genblk1__BRA__1__KET____DOT__vx_alu__out_alu_result,31,0);
|
||||
VL_SIG8(Vortex__DOT____Vcellout__vx_fetch__out_valid[2],0,0);
|
||||
VL_SIG8(Vortex__DOT____Vcellinp__vx_fetch__in_thread_mask[2],0,0);
|
||||
VL_SIG8(Vortex__DOT____Vcellout__vx_f_d_reg__out_valid[2],0,0);
|
||||
VL_SIG8(Vortex__DOT____Vcellinp__vx_f_d_reg__in_valid[2],0,0);
|
||||
VL_SIG8(Vortex__DOT____Vcellout__vx_decode__out_thread_mask[2],0,0);
|
||||
VL_SIG8(Vortex__DOT____Vcellout__vx_decode__out_valid[2],0,0);
|
||||
VL_SIG(Vortex__DOT____Vcellout__vx_decode__out_b_reg_data[2],31,0);
|
||||
VL_SIG(Vortex__DOT____Vcellout__vx_decode__out_a_reg_data[2],31,0);
|
||||
VL_SIG(Vortex__DOT____Vcellinp__vx_decode__in_src2_fwd_data[2],31,0);
|
||||
VL_SIG(Vortex__DOT____Vcellinp__vx_decode__in_src1_fwd_data[2],31,0);
|
||||
VL_SIG8(Vortex__DOT____Vcellinp__vx_decode__in_wb_valid[2],0,0);
|
||||
VL_SIG(Vortex__DOT____Vcellinp__vx_decode__in_write_data[2],31,0);
|
||||
VL_SIG8(Vortex__DOT____Vcellinp__vx_decode__in_valid[2],0,0);
|
||||
VL_SIG8(Vortex__DOT____Vcellout__vx_d_e_reg__out_valid[2],0,0);
|
||||
VL_SIG(Vortex__DOT____Vcellout__vx_d_e_reg__out_b_reg_data[2],31,0);
|
||||
VL_SIG(Vortex__DOT____Vcellout__vx_d_e_reg__out_a_reg_data[2],31,0);
|
||||
VL_SIG8(Vortex__DOT____Vcellinp__vx_d_e_reg__in_valid[2],0,0);
|
||||
VL_SIG(Vortex__DOT____Vcellinp__vx_d_e_reg__in_b_reg_data[2],31,0);
|
||||
VL_SIG(Vortex__DOT____Vcellinp__vx_d_e_reg__in_a_reg_data[2],31,0);
|
||||
VL_SIG8(Vortex__DOT____Vcellout__vx_execute__out_valid[2],0,0);
|
||||
VL_SIG(Vortex__DOT____Vcellout__vx_execute__out_b_reg_data[2],31,0);
|
||||
VL_SIG(Vortex__DOT____Vcellout__vx_execute__out_alu_result[2],31,0);
|
||||
VL_SIG8(Vortex__DOT____Vcellinp__vx_execute__in_valid[2],0,0);
|
||||
VL_SIG(Vortex__DOT____Vcellinp__vx_execute__in_b_reg_data[2],31,0);
|
||||
VL_SIG(Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data[2],31,0);
|
||||
VL_SIG8(Vortex__DOT____Vcellout__vx_e_m_reg__out_valid[2],0,0);
|
||||
VL_SIG(Vortex__DOT____Vcellout__vx_e_m_reg__out_b_reg_data[2],31,0);
|
||||
VL_SIG(Vortex__DOT____Vcellout__vx_e_m_reg__out_alu_result[2],31,0);
|
||||
VL_SIG8(Vortex__DOT____Vcellinp__vx_e_m_reg__in_valid[2],0,0);
|
||||
VL_SIG(Vortex__DOT____Vcellinp__vx_e_m_reg__in_b_reg_data[2],31,0);
|
||||
VL_SIG(Vortex__DOT____Vcellinp__vx_e_m_reg__in_alu_result[2],31,0);
|
||||
VL_SIG8(Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_valid[2],0,0);
|
||||
VL_SIG(Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_data[2],31,0);
|
||||
VL_SIG(Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_address[2],31,0);
|
||||
VL_SIG8(Vortex__DOT____Vcellout__vx_memory__out_valid[2],0,0);
|
||||
VL_SIG(Vortex__DOT____Vcellout__vx_memory__out_mem_result[2],31,0);
|
||||
VL_SIG(Vortex__DOT____Vcellout__vx_memory__out_alu_result[2],31,0);
|
||||
VL_SIG(Vortex__DOT____Vcellinp__vx_memory__in_cache_driver_out_data[2],31,0);
|
||||
VL_SIG8(Vortex__DOT____Vcellinp__vx_memory__in_valid[2],0,0);
|
||||
VL_SIG(Vortex__DOT____Vcellinp__vx_memory__in_rd2[2],31,0);
|
||||
VL_SIG(Vortex__DOT____Vcellinp__vx_memory__in_alu_result[2],31,0);
|
||||
VL_SIG8(Vortex__DOT____Vcellout__vx_m_w_reg__out_valid[2],0,0);
|
||||
VL_SIG(Vortex__DOT____Vcellout__vx_m_w_reg__out_mem_result[2],31,0);
|
||||
VL_SIG(Vortex__DOT____Vcellout__vx_m_w_reg__out_alu_result[2],31,0);
|
||||
VL_SIG8(Vortex__DOT____Vcellinp__vx_m_w_reg__in_valid[2],0,0);
|
||||
VL_SIG(Vortex__DOT____Vcellinp__vx_m_w_reg__in_mem_result[2],31,0);
|
||||
VL_SIG(Vortex__DOT____Vcellinp__vx_m_w_reg__in_alu_result[2],31,0);
|
||||
VL_SIG(Vortex__DOT____Vcellout__vx_writeback__out_write_data[2],31,0);
|
||||
VL_SIG(Vortex__DOT____Vcellinp__vx_writeback__in_mem_result[2],31,0);
|
||||
VL_SIG(Vortex__DOT____Vcellinp__vx_writeback__in_alu_result[2],31,0);
|
||||
VL_SIG(Vortex__DOT____Vcellout__vx_forwarding__out_src2_fwd_data[2],31,0);
|
||||
};
|
||||
struct {
|
||||
VL_SIG(Vortex__DOT____Vcellout__vx_forwarding__out_src1_fwd_data[2],31,0);
|
||||
VL_SIG(Vortex__DOT____Vcellinp__vx_forwarding__in_writeback_mem_data[2],31,0);
|
||||
VL_SIG(Vortex__DOT____Vcellinp__vx_forwarding__in_writeback_alu_result[2],31,0);
|
||||
VL_SIG(Vortex__DOT____Vcellinp__vx_forwarding__in_memory_mem_data[2],31,0);
|
||||
VL_SIG(Vortex__DOT____Vcellinp__vx_forwarding__in_memory_alu_result[2],31,0);
|
||||
VL_SIG(Vortex__DOT____Vcellinp__vx_forwarding__in_execute_alu_result[2],31,0);
|
||||
VL_SIG8(Vortex__DOT__vx_fetch__DOT____Vcellout__VX_Warp_zero__out_valid[2],0,0);
|
||||
VL_SIG8(Vortex__DOT__vx_fetch__DOT____Vcellinp__VX_Warp_zero__in_thread_mask[2],0,0);
|
||||
VL_SIG8(Vortex__DOT__vx_fetch__DOT____Vcellout__VX_Warp_one__out_valid[2],0,0);
|
||||
VL_SIG8(Vortex__DOT__vx_fetch__DOT____Vcellinp__VX_Warp_one__in_thread_mask[2],0,0);
|
||||
VL_SIG(Vortex__DOT__vx_decode__DOT____Vcellout__VX_Context_zero__w0_t0_registers[32],31,0);
|
||||
VL_SIG(Vortex__DOT__vx_decode__DOT____Vcellout__VX_Context_zero__out_b_reg_data[2],31,0);
|
||||
VL_SIG(Vortex__DOT__vx_decode__DOT____Vcellout__VX_Context_zero__out_a_reg_data[2],31,0);
|
||||
VL_SIG(Vortex__DOT__vx_decode__DOT____Vcellinp__VX_Context_zero__in_write_data[2],31,0);
|
||||
VL_SIG(Vortex__DOT__vx_decode__DOT____Vcellinp__VX_Context_zero__in_src2_fwd_data[2],31,0);
|
||||
VL_SIG(Vortex__DOT__vx_decode__DOT____Vcellinp__VX_Context_zero__in_src1_fwd_data[2],31,0);
|
||||
VL_SIG8(Vortex__DOT__vx_decode__DOT____Vcellinp__VX_Context_zero__in_valid[2],0,0);
|
||||
VL_SIG(Vortex__DOT__vx_decode__DOT____Vcellout__VX_Context_one__out_b_reg_data[2],31,0);
|
||||
VL_SIG(Vortex__DOT__vx_decode__DOT____Vcellout__VX_Context_one__out_a_reg_data[2],31,0);
|
||||
VL_SIG(Vortex__DOT__vx_decode__DOT____Vcellinp__VX_Context_one__in_wspawn_regs[32],31,0);
|
||||
VL_SIG(Vortex__DOT__vx_decode__DOT____Vcellinp__VX_Context_one__in_write_data[2],31,0);
|
||||
VL_SIG(Vortex__DOT__vx_decode__DOT____Vcellinp__VX_Context_one__in_src2_fwd_data[2],31,0);
|
||||
VL_SIG(Vortex__DOT__vx_decode__DOT____Vcellinp__VX_Context_one__in_src1_fwd_data[2],31,0);
|
||||
VL_SIG8(Vortex__DOT__vx_decode__DOT____Vcellinp__VX_Context_one__in_valid[2],0,0);
|
||||
VL_SIG(Vortex__DOT__vx_decode__DOT__VX_Context_zero__DOT____Vcellout__vx_register_file_master__out_regs[32],31,0);
|
||||
VL_SIG(Vortex__DOT__vx_decode__DOT__VX_Context_zero__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[32],31,0);
|
||||
VL_SIG(Vortex__DOT__vx_decode__DOT__VX_Context_one__DOT____Vcellout__vx_register_file_master__out_regs[32],31,0);
|
||||
VL_SIG(Vortex__DOT__vx_decode__DOT__VX_Context_one__DOT____Vcellinp__vx_register_file_master__in_wspawn_regs[32],31,0);
|
||||
VL_SIG(Vortex__DOT__vx_decode__DOT__VX_Context_one__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[32],31,0);
|
||||
};
|
||||
static VL_ST_SIG8(__Vtable1_Vortex__DOT__vx_decode__DOT__mul_alu[8],4,0);
|
||||
|
||||
// INTERNAL VARIABLES
|
||||
// Internals; generally not touched by application code
|
||||
VVortex__Syms* __VlSymsp; // Symbol table
|
||||
|
||||
// PARAMETERS
|
||||
// Parameters marked /*verilator public*/ for use by application code
|
||||
|
||||
// CONSTRUCTORS
|
||||
private:
|
||||
VL_UNCOPYABLE(VVortex); ///< Copying not allowed
|
||||
public:
|
||||
/// Construct the model; called by application code
|
||||
/// The special name may be used to make a wrapper with a
|
||||
/// single model invisible with respect to DPI scope names.
|
||||
VVortex(const char* name="TOP");
|
||||
/// Destroy the model; called (often implicitly) by application code
|
||||
~VVortex();
|
||||
|
||||
// API METHODS
|
||||
/// Evaluate the model. Application must call when inputs change.
|
||||
void eval();
|
||||
/// Simulation complete, run final blocks. Application must call on completion.
|
||||
void final();
|
||||
|
||||
// INTERNAL METHODS
|
||||
private:
|
||||
static void _eval_initial_loop(VVortex__Syms* __restrict vlSymsp);
|
||||
public:
|
||||
void __Vconfigure(VVortex__Syms* symsp, bool first);
|
||||
private:
|
||||
static QData _change_request(VVortex__Syms* __restrict vlSymsp);
|
||||
public:
|
||||
static void _combo__TOP__5(VVortex__Syms* __restrict vlSymsp);
|
||||
static void _combo__TOP__8(VVortex__Syms* __restrict vlSymsp);
|
||||
private:
|
||||
void _ctor_var_reset();
|
||||
public:
|
||||
static void _eval(VVortex__Syms* __restrict vlSymsp);
|
||||
private:
|
||||
#ifdef VL_DEBUG
|
||||
void _eval_debug_assertions();
|
||||
#endif // VL_DEBUG
|
||||
public:
|
||||
static void _eval_initial(VVortex__Syms* __restrict vlSymsp);
|
||||
static void _eval_settle(VVortex__Syms* __restrict vlSymsp);
|
||||
static void _initial__TOP__1(VVortex__Syms* __restrict vlSymsp);
|
||||
static void _sequent__TOP__3(VVortex__Syms* __restrict vlSymsp);
|
||||
static void _sequent__TOP__4(VVortex__Syms* __restrict vlSymsp);
|
||||
static void _sequent__TOP__6(VVortex__Syms* __restrict vlSymsp);
|
||||
static void _sequent__TOP__7(VVortex__Syms* __restrict vlSymsp);
|
||||
static void _settle__TOP__2(VVortex__Syms* __restrict vlSymsp);
|
||||
} VL_ATTR_ALIGNED(128);
|
||||
|
||||
#endif // guard
|
||||
@@ -1,66 +0,0 @@
|
||||
# Verilated -*- Makefile -*-
|
||||
# DESCRIPTION: Verilator output: Makefile for building Verilated archive or executable
|
||||
#
|
||||
# Execute this makefile from the object directory:
|
||||
# make -f VVortex.mk
|
||||
|
||||
default: VVortex
|
||||
|
||||
### Constants...
|
||||
# Perl executable (from $PERL)
|
||||
PERL = perl
|
||||
# Path to Verilator kit (from $VERILATOR_ROOT)
|
||||
VERILATOR_ROOT = /usr/local/Cellar/verilator/4.010/share/verilator
|
||||
# SystemC include directory with systemc.h (from $SYSTEMC_INCLUDE)
|
||||
SYSTEMC_INCLUDE ?=
|
||||
# SystemC library directory with libsystemc.a (from $SYSTEMC_LIBDIR)
|
||||
SYSTEMC_LIBDIR ?=
|
||||
|
||||
### Switches...
|
||||
# SystemC output mode? 0/1 (from --sc)
|
||||
VM_SC = 0
|
||||
# Legacy or SystemC output mode? 0/1 (from --sc)
|
||||
VM_SP_OR_SC = $(VM_SC)
|
||||
# Deprecated
|
||||
VM_PCLI = 1
|
||||
# Deprecated: SystemC architecture to find link library path (from $SYSTEMC_ARCH)
|
||||
VM_SC_TARGET_ARCH = linux
|
||||
|
||||
### Vars...
|
||||
# Design prefix (from --prefix)
|
||||
VM_PREFIX = VVortex
|
||||
# Module prefix (from --prefix)
|
||||
VM_MODPREFIX = VVortex
|
||||
# User CFLAGS (from -CFLAGS on Verilator command line)
|
||||
VM_USER_CFLAGS = \
|
||||
|
||||
# User LDLIBS (from -LDFLAGS on Verilator command line)
|
||||
VM_USER_LDLIBS = \
|
||||
|
||||
# User .cpp files (from .cpp's on Verilator command line)
|
||||
VM_USER_CLASSES = \
|
||||
test_bench \
|
||||
|
||||
# User .cpp directories (from .cpp's on Verilator command line)
|
||||
VM_USER_DIR = \
|
||||
. \
|
||||
|
||||
|
||||
### Default rules...
|
||||
# Include list of all generated classes
|
||||
include VVortex_classes.mk
|
||||
# Include global rules
|
||||
include $(VERILATOR_ROOT)/include/verilated.mk
|
||||
|
||||
### Executable rules... (from --exe)
|
||||
VPATH += $(VM_USER_DIR)
|
||||
|
||||
test_bench.o: test_bench.cpp
|
||||
$(OBJCACHE) $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(OPT_FAST) -c -o $@ $<
|
||||
|
||||
### Link rules... (from --exe)
|
||||
VVortex: $(VK_USER_OBJS) $(VK_GLOBAL_OBJS) $(VM_PREFIX)__ALL.a
|
||||
$(LINK) $(LDFLAGS) $^ $(LOADLIBES) $(LDLIBS) -o $@ $(LIBS) $(SC_LIBS)
|
||||
|
||||
|
||||
# Verilated -*- Makefile -*-
|
||||
Binary file not shown.
@@ -1,3 +0,0 @@
|
||||
// DESCRIPTION: Generated by verilator_includer via makefile
|
||||
#define VL_INCLUDE_OPT include
|
||||
#include "VVortex.cpp"
|
||||
@@ -1,4 +0,0 @@
|
||||
VVortex__ALLcls.o: VVortex__ALLcls.cpp VVortex.cpp VVortex.h \
|
||||
/usr/local/Cellar/verilator/4.010/share/verilator/include/verilated.h \
|
||||
/usr/local/Cellar/verilator/4.010/share/verilator/include/verilatedos.h \
|
||||
VVortex__Syms.h
|
||||
Binary file not shown.
@@ -1,3 +0,0 @@
|
||||
// DESCRIPTION: Generated by verilator_includer via makefile
|
||||
#define VL_INCLUDE_OPT include
|
||||
#include "VVortex__Syms.cpp"
|
||||
@@ -1,4 +0,0 @@
|
||||
VVortex__ALLsup.o: VVortex__ALLsup.cpp VVortex__Syms.cpp VVortex__Syms.h \
|
||||
/usr/local/Cellar/verilator/4.010/share/verilator/include/verilated.h \
|
||||
/usr/local/Cellar/verilator/4.010/share/verilator/include/verilatedos.h \
|
||||
VVortex.h
|
||||
Binary file not shown.
@@ -1,19 +0,0 @@
|
||||
// Verilated -*- C++ -*-
|
||||
// DESCRIPTION: Verilator output: Symbol table implementation internals
|
||||
|
||||
#include "VVortex__Syms.h"
|
||||
#include "VVortex.h"
|
||||
|
||||
// FUNCTIONS
|
||||
VVortex__Syms::VVortex__Syms(VVortex* topp, const char* namep)
|
||||
// Setup locals
|
||||
: __Vm_namep(namep)
|
||||
, __Vm_didInit(false)
|
||||
// Setup submodule names
|
||||
{
|
||||
// Pointer to top level
|
||||
TOPp = topp;
|
||||
// Setup each module's pointers to their submodules
|
||||
// Setup each module's pointer back to symbol table (for public functions)
|
||||
TOPp->__Vconfigure(this, true);
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
// Verilated -*- C++ -*-
|
||||
// DESCRIPTION: Verilator output: Symbol table internal header
|
||||
//
|
||||
// Internal details; most calling programs do not need this header
|
||||
|
||||
#ifndef _VVortex__Syms_H_
|
||||
#define _VVortex__Syms_H_
|
||||
|
||||
#include "verilated.h"
|
||||
|
||||
// INCLUDE MODULE CLASSES
|
||||
#include "VVortex.h"
|
||||
|
||||
// SYMS CLASS
|
||||
class VVortex__Syms : public VerilatedSyms {
|
||||
public:
|
||||
|
||||
// LOCAL STATE
|
||||
const char* __Vm_namep;
|
||||
bool __Vm_didInit;
|
||||
|
||||
// SUBCELL STATE
|
||||
VVortex* TOPp;
|
||||
|
||||
// CREATORS
|
||||
VVortex__Syms(VVortex* topp, const char* namep);
|
||||
~VVortex__Syms() {}
|
||||
|
||||
// METHODS
|
||||
inline const char* name() { return __Vm_namep; }
|
||||
|
||||
} VL_ATTR_ALIGNED(64);
|
||||
|
||||
#endif // guard
|
||||
@@ -1 +0,0 @@
|
||||
obj_dir/VVortex.cpp obj_dir/VVortex.h obj_dir/VVortex.mk obj_dir/VVortex__Syms.cpp obj_dir/VVortex__Syms.h obj_dir/VVortex__ver.d obj_dir/VVortex_classes.mk : /usr/local/Cellar/verilator/4.010/bin/verilator_bin /usr/local/Cellar/verilator/4.010/bin/verilator_bin VX_alu.v VX_context.v VX_context_slave.v VX_csr_handler.v VX_d_e_reg.v VX_decode.v VX_define.v VX_e_m_reg.v VX_execute.v VX_f_d_reg.v VX_fetch.v VX_forwarding.v VX_m_w_reg.v VX_memory.v VX_register_file.v VX_register_file_master_slave.v VX_register_file_slave.v VX_warp.v VX_writeback.v Vortex.v
|
||||
@@ -1,31 +0,0 @@
|
||||
# DESCRIPTION: Verilator output: Timestamp data for --skip-identical. Delete at will.
|
||||
C "-Wall -cc Vortex.v --exe test_bench.cpp"
|
||||
S 4608404 12889046060 1553037052 0 1548678579 0 "/usr/local/Cellar/verilator/4.010/bin/verilator_bin"
|
||||
S 2785 12890803842 1558067516 0 1558067516 0 "VX_alu.v"
|
||||
S 3486 12890803843 1558067516 0 1558067516 0 "VX_context.v"
|
||||
S 4928 12890803844 1558067516 0 1558067516 0 "VX_context_slave.v"
|
||||
S 1495 12889457987 1554023089 0 1554023089 0 "VX_csr_handler.v"
|
||||
S 5512 12890803845 1558067516 0 1558067516 0 "VX_d_e_reg.v"
|
||||
S 14563 12890803846 1558067516 0 1558067516 0 "VX_decode.v"
|
||||
S 1574 12890803847 1558067516 0 1558067516 0 "VX_define.v"
|
||||
S 4267 12890803848 1558067516 0 1558067516 0 "VX_e_m_reg.v"
|
||||
S 3692 12890803849 1558067516 0 1558067516 0 "VX_execute.v"
|
||||
S 1751 12890803850 1558067516 0 1558067516 0 "VX_f_d_reg.v"
|
||||
S 4619 12890803851 1558067516 0 1558067516 0 "VX_fetch.v"
|
||||
S 6293 12890803852 1558067516 0 1558067516 0 "VX_forwarding.v"
|
||||
S 1866 12890803853 1558067516 0 1558067516 0 "VX_m_w_reg.v"
|
||||
S 4352 12890803854 1558067516 0 1558067516 0 "VX_memory.v"
|
||||
S 1249 12890803855 1558067516 0 1558067516 0 "VX_register_file.v"
|
||||
S 1655 12890803856 1558067516 0 1558067516 0 "VX_register_file_master_slave.v"
|
||||
S 1599 12890803857 1558067516 0 1558067516 0 "VX_register_file_slave.v"
|
||||
S 1686 12890803859 1558067516 0 1558067516 0 "VX_warp.v"
|
||||
S 1568 12890803860 1558067516 0 1558067516 0 "VX_writeback.v"
|
||||
S 18714 12890803861 1558067516 0 1558067516 0 "Vortex.v"
|
||||
T 451065 12890803863 1558067556 0 1558067556 0 "obj_dir/VVortex.cpp"
|
||||
T 20559 12890803864 1558067556 0 1558067556 0 "obj_dir/VVortex.h"
|
||||
T 1800 12890416977 1558067556 0 1558067556 0 "obj_dir/VVortex.mk"
|
||||
T 530 12890416973 1558067556 0 1558067556 0 "obj_dir/VVortex__Syms.cpp"
|
||||
T 711 12890416972 1558067556 0 1558067556 0 "obj_dir/VVortex__Syms.h"
|
||||
T 563 12890416978 1558067556 0 1558067556 0 "obj_dir/VVortex__ver.d"
|
||||
T 0 0 1558067556 0 1558067556 0 "obj_dir/VVortex__verFiles.dat"
|
||||
T 1159 12890416976 1558067556 0 1558067556 0 "obj_dir/VVortex_classes.mk"
|
||||
@@ -1,38 +0,0 @@
|
||||
# Verilated -*- Makefile -*-
|
||||
# DESCRIPTION: Verilator output: Make include file with class lists
|
||||
#
|
||||
# This file lists generated Verilated files, for including in higher level makefiles.
|
||||
# See VVortex.mk for the caller.
|
||||
|
||||
### Switches...
|
||||
# Coverage output mode? 0/1 (from --coverage)
|
||||
VM_COVERAGE = 0
|
||||
# Threaded output mode? 0/1/N threads (from --threads)
|
||||
VM_THREADS = 0
|
||||
# Tracing output mode? 0/1 (from --trace)
|
||||
VM_TRACE = 0
|
||||
|
||||
### Object file lists...
|
||||
# Generated module classes, fast-path, compile with highest optimization
|
||||
VM_CLASSES_FAST += \
|
||||
VVortex \
|
||||
|
||||
# Generated module classes, non-fast-path, compile with low/medium optimization
|
||||
VM_CLASSES_SLOW += \
|
||||
|
||||
# Generated support classes, fast-path, compile with highest optimization
|
||||
VM_SUPPORT_FAST += \
|
||||
|
||||
# Generated support classes, non-fast-path, compile with low/medium optimization
|
||||
VM_SUPPORT_SLOW += \
|
||||
VVortex__Syms \
|
||||
|
||||
# Global classes, need linked once per executable, fast-path, compile with highest optimization
|
||||
VM_GLOBAL_FAST += \
|
||||
verilated \
|
||||
|
||||
# Global classes, need linked once per executable, non-fast-path, compile with low/medium optimization
|
||||
VM_GLOBAL_SLOW += \
|
||||
|
||||
|
||||
# Verilated -*- Makefile -*-
|
||||
@@ -1,4 +0,0 @@
|
||||
test_bench.o: ../test_bench.cpp ../test_bench.h ../VX_define.h ../ram.h \
|
||||
VVortex.h \
|
||||
/usr/local/Cellar/verilator/4.010/share/verilator/include/verilated.h \
|
||||
/usr/local/Cellar/verilator/4.010/share/verilator/include/verilatedos.h
|
||||
Binary file not shown.
@@ -1,9 +0,0 @@
|
||||
verilated.o: \
|
||||
/usr/local/Cellar/verilator/4.010/share/verilator/include/verilated.cpp \
|
||||
/usr/local/Cellar/verilator/4.010/share/verilator/include/verilatedos.h \
|
||||
/usr/local/Cellar/verilator/4.010/share/verilator/include/verilated_imp.h \
|
||||
/usr/local/Cellar/verilator/4.010/share/verilator/include/verilated.h \
|
||||
/usr/local/Cellar/verilator/4.010/share/verilator/include/verilated_heavy.h \
|
||||
/usr/local/Cellar/verilator/4.010/share/verilator/include/verilated_syms.h \
|
||||
/usr/local/Cellar/verilator/4.010/share/verilator/include/verilated_sym_props.h \
|
||||
/usr/local/Cellar/verilator/4.010/share/verilator/include/verilated_config.h
|
||||
Binary file not shown.
@@ -1,7 +0,0 @@
|
||||
# Dynamic Instructions: 222955
|
||||
# of total cycles: 222962
|
||||
# of forwarding stalls: 0
|
||||
# of branch stalls: 0
|
||||
# CPI: 1.00003
|
||||
# time to simulate: 6.95312e-310 milliseconds
|
||||
# GRADE: Failed on test: 4294967295
|
||||
|
||||
@@ -148,7 +148,6 @@ bool Vortex::ibus_driver()
|
||||
|
||||
|
||||
////////////////////// STATS //////////////////////
|
||||
++stats_total_cycles;
|
||||
|
||||
|
||||
if (((((unsigned int)curr_inst) != 0) && (((unsigned int)curr_inst) != 0xffffffff)))
|
||||
@@ -175,10 +174,13 @@ bool Vortex::dbus_driver()
|
||||
// std::cout << "DBUS DRIVER\n" << std::endl;
|
||||
////////////////////// DBUS //////////////////////
|
||||
|
||||
bool did = false;
|
||||
|
||||
for (unsigned curr_th = 0; curr_th < NT; curr_th++)
|
||||
{
|
||||
if ((vortex->out_cache_driver_in_mem_write != NO_MEM_WRITE) && vortex->out_cache_driver_in_valid[curr_th])
|
||||
{
|
||||
did = true;
|
||||
data_write = (uint32_t) vortex->out_cache_driver_in_data[curr_th];
|
||||
addr = (uint32_t) vortex->out_cache_driver_in_address[curr_th];
|
||||
|
||||
@@ -187,6 +189,18 @@ bool Vortex::dbus_driver()
|
||||
std::cerr << (char) data_write;
|
||||
}
|
||||
|
||||
if ((addr >= 0x810002cc) && (addr < 0x810002d0))
|
||||
{
|
||||
int index = (addr - 0x810002cc) / 4;
|
||||
std::cerr << GREEN << "1done[" << index << "] = " << data_write << DEFAULT << "\n";
|
||||
}
|
||||
|
||||
if ((addr >= 0x810059f4) && (addr < 0x810059f4))
|
||||
{
|
||||
int index = (addr - 0x810059f4) / 4;
|
||||
std::cerr << RED << "2done[" << index << "] = " << data_write << DEFAULT << "\n";
|
||||
}
|
||||
|
||||
if (vortex->out_cache_driver_in_mem_write == SB_MEM_WRITE)
|
||||
{
|
||||
data_write = ( data_write) & 0xFF;
|
||||
@@ -208,14 +222,15 @@ bool Vortex::dbus_driver()
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// printf("----\n");
|
||||
for (unsigned curr_th = 0; curr_th < NT; curr_th++)
|
||||
{
|
||||
|
||||
if ((vortex->out_cache_driver_in_mem_read != NO_MEM_READ) && vortex->out_cache_driver_in_valid[curr_th])
|
||||
{
|
||||
|
||||
|
||||
did = true;
|
||||
addr = (uint32_t) vortex->out_cache_driver_in_address[curr_th];
|
||||
ram.getWord(addr, &data_read);
|
||||
|
||||
@@ -258,6 +273,15 @@ bool Vortex::dbus_driver()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (did && (NW > 1))
|
||||
{
|
||||
|
||||
if (NW < NT)
|
||||
{
|
||||
this->stats_total_cycles += NT % (NW -1);
|
||||
}
|
||||
}
|
||||
// printf("******\n");
|
||||
|
||||
|
||||
@@ -294,7 +318,6 @@ bool Vortex::simulate(std::string file_to_simulate)
|
||||
unsigned curr_inst;
|
||||
unsigned new_PC;
|
||||
|
||||
int cycle = 0;
|
||||
// while (this->stop && (!(stop && (counter > 5))))
|
||||
// {
|
||||
|
||||
@@ -360,10 +383,10 @@ bool Vortex::simulate(std::string file_to_simulate)
|
||||
counter = 0;
|
||||
}
|
||||
|
||||
cycle++;
|
||||
++stats_total_cycles;
|
||||
}
|
||||
|
||||
std::cerr << "Total Cycles: " << cycle << "\n";
|
||||
std::cerr << "New Total Cycles: " << (this->stats_total_cycles) << "\n";
|
||||
|
||||
uint32_t status;
|
||||
ram.getWord(0, &status);
|
||||
|
||||
Reference in New Issue
Block a user