mirror of
https://github.com/vortexgpgpu/vortex.git
synced 2025-04-24 05:47:35 -04:00
FIxed first circular issue
This commit is contained in:
parent
de8de00f6e
commit
1e648c5819
19 changed files with 2302 additions and 2799 deletions
File diff suppressed because it is too large
Load diff
Binary file not shown.
|
@ -1,405 +1,405 @@
|
|||
:0200000480007A
|
||||
:10000000373500FF13050530930570002322B50036
|
||||
:100010001300000013000000130000000326450039
|
||||
:10002000130500006B000500938B0600130D0700FD
|
||||
:10003000130F01009303050013051000635C7500A6
|
||||
:1000400013010180130305006B5003001305150015
|
||||
:100050006FF0DFFE1300000013000000130000002B
|
||||
:1000600013000000130000001300000013010F0034
|
||||
:1000700013050000930F0600938D0300130000008A
|
||||
:1000000037050200930570002322B500130000009D
|
||||
:100010001300000013000000032645001305000034
|
||||
:100020006B000500938B0600130D0700130F0100F2
|
||||
:100030009303050013051000635C75001301018034
|
||||
:10004000130305006B500300130515006FF0DFFE6E
|
||||
:100050001300000013000000130000001300000054
|
||||
:10006000130000001300000013010F00130500002F
|
||||
:10007000930F0600938D030013000000130000008F
|
||||
:100080001300000013000000130000001300000024
|
||||
:10009000130000001300000013000000EBE0BF019C
|
||||
:100090001300000013000000EBE0BF01130000009C
|
||||
:1000A0001300000013000000130000001300000004
|
||||
:1000B0001300000013000000170500001305451B86
|
||||
:1000C0006B40050017030000130343F66B000300A9
|
||||
:1000D00067800000170200011302C22323200200E0
|
||||
:1000E0002322120023242200232632002328420048
|
||||
:1000F000232A5200232C6200232E72002320820226
|
||||
:10010000232292022324A2022326B2022328C2021F
|
||||
:10011000232AD202232CE202232EF20223200205FC
|
||||
:1001200023221205232422052326320523284205F3
|
||||
:10013000232A5205232C6205232E720523208207D1
|
||||
:10014000232292072324A2072326B2072328C207CB
|
||||
:10015000232AD207232CE207232EF20713021000D2
|
||||
:1001600067800000170200011302C21A0320020078
|
||||
:1001700083204200032182008321C2000322020166
|
||||
:1001800083224201032382018323C201032402024A
|
||||
:1001900083244202032582028325C202032602032E
|
||||
:1001A00083264203032782038327C2030328020412
|
||||
:1001B00083284204032982048329C204032A0205F6
|
||||
:1001C000832A4205032B8205832BC205032C0206DA
|
||||
:1001D000832C4206032D8206832DC206032E0207BE
|
||||
:1001E000832E4207032F8207832FC20713020000CA
|
||||
:1001F00067800000732500026780000073251002ED
|
||||
:1002000067800000130101FE232E1100232C8100C2
|
||||
:1002100013040102232604FE6F0040030327C4FEDB
|
||||
:10022000B7170000938747973307F702B707008196
|
||||
:1002300093870741B307F70013850700EF000044D9
|
||||
:100240008327C4FE938717002326F4FE0327C4FEEA
|
||||
:100250009307F001E3D4E7FC130000008320C10101
|
||||
:10026000032481011301010267800000130101FDD5
|
||||
:1002700023261102232481022322A1031304010354
|
||||
:100280001300000013070D00B7170000938747976E
|
||||
:100290003307F702B707008193870741B307F700D9
|
||||
:1002A00013850700EF00405093070500638A07029B
|
||||
:1002B00013070D00B70700811317270093878726C0
|
||||
:1002C000B307F7001307100023A0E70093070D0002
|
||||
:1002D00063960700EFF01FE96F00C0057300000090
|
||||
:1002E00013070D00B7170000938747973307F702EE
|
||||
:1002F000B707008193870741B307F700130784FD11
|
||||
:100300009305070013850700EF000040832704FED4
|
||||
:10031000138107008327C4FD832584FD032644FE43
|
||||
:10032000832684FE0327C4FE13850700EFF0DFCF8A
|
||||
:10033000730000008320C10203248102032D4102C7
|
||||
:100340001301010367800000130101FB2326110440
|
||||
:100350002324810413040105EFF0DFE92324A4FE24
|
||||
:1003600093090100930710002326F4FE6F00C008D4
|
||||
:100370000327C4FEB7170000938747973307F70298
|
||||
:10038000B707008193870741B307F700138507007C
|
||||
:10039000EF00804193070500639A07040327C4FE1A
|
||||
:1003A000B7170000938747973307F702B707008115
|
||||
:1003B00093870741B307F700130704FD9305070070
|
||||
:1003C00013850700EF004034832784FD1381070065
|
||||
:1003D000832744FD832504FD0326C4FD832604FEF4
|
||||
:1003E000032744FE13850700EFF0DFCD8327C4FE0B
|
||||
:1003F000938717002326F4FE8327C4FE032784FE79
|
||||
:10040000E3E8E7F613810900EFF0DFCC9307020081
|
||||
:1004100063880704B707008113850741EF00C038E0
|
||||
:1004200093070500639E0702930784FB93850700EB
|
||||
:10043000B707008113850741EF00002D832704FCD7
|
||||
:10044000138107008327C4FB832584FB032644FC18
|
||||
:10045000832684FC0327C4FC13850700EFF0DFBC70
|
||||
:10046000130000008320C10403248104130101054B
|
||||
:1004700067800000130101FB23261104232481045B
|
||||
:1004800013040105232EA4FA232CB4FA232AC4FA58
|
||||
:100490002328D4FAEFF01FD7EFF0DFD52322A4FEF4
|
||||
:1004A00013090100232604FE232404FE6F00000923
|
||||
:1004B000B709FFFF33013101832784FE2326F4FCB3
|
||||
:1004C000832784FB2328F4FC93070100232AF4FCF0
|
||||
:1004D000832744FB232CF4FC832704FB232EF4FC0A
|
||||
:1004E0008327C4FE2320F4FE0327C4FEB7170000B1
|
||||
:1004F000938747973307F702B70700819387074130
|
||||
:10050000B307F7001307C4FC930507001385070022
|
||||
:10051000EF0000198327C4FE938717002326F4FEFB
|
||||
:100520008327C4FE032744FE63E4E700232604FE7A
|
||||
:10053000832784FE938717002324F4FE032784FE79
|
||||
:100540008327C4FBE366F7F613010900EFF0DFDF52
|
||||
:10055000130000008320C10403248104130101055A
|
||||
:1005600067800000130101FD23261102232481026C
|
||||
:1005700013040103232EA4FC8325C4FDB7070081C7
|
||||
:1005800013850704EF004035EFF0DFC62320A4FEFB
|
||||
:10059000232604FE6F008006930710002326F4FE36
|
||||
:1005A000232404FE6F00C003B7070081032784FEE5
|
||||
:1005B0001317270093878726B307F70003A70700C1
|
||||
:1005C000930710006318F7008327C4FE9387170072
|
||||
:1005D0002326F4FE832784FE938717002324F4FE4A
|
||||
:1005E000032784FE9307F001E3D0E7FC8325C4FED4
|
||||
:1005F000B70700811385C704EF00002E0327C4FE50
|
||||
:100600008327C4FDE36AF7F8232204FE6F0080020B
|
||||
:10061000B7070081032744FE131727009387872617
|
||||
:10062000B307F70023A00700832744FE9387170032
|
||||
:100630002322F4FE832744FE032704FEE3EAE7FCBB
|
||||
:10064000130000008320C10203248102130101036F
|
||||
:1006500067800000130101FF23268100232471011C
|
||||
:100660001304010193870B00138507000324C100C5
|
||||
:10067000832B8100130101016780000093020500B4
|
||||
:10068000130300009303700023A0620023A2620002
|
||||
:1006900023A4620023A6720023A8620067800000E2
|
||||
:1006A0009302050003A382001303130023A4620036
|
||||
:1006B0001383420183AE420093935E0033037300C1
|
||||
:1006C00003AE05002320C30103AE45002322C3016E
|
||||
:1006D00003AE85002324C30103AEC5002326C30156
|
||||
:1006E00003AE05012328C30103AE4501232AC3013C
|
||||
:1006F000938E1E00130F20036394EE01930E0000EF
|
||||
:1007000023A2D201678000009302050003A38200A8
|
||||
:1000B00013000000170500001305451B6B400500E9
|
||||
:1000C00017030000130343F66B0003006780000072
|
||||
:1000D000170200011302022423200200232212002F
|
||||
:1000E000232422002326320023284200232A520000
|
||||
:1000F000232C6200232E72002320820223229202EC
|
||||
:100100002324A2022326B2022328C202232AD202D7
|
||||
:10011000232CE202232EF2022320020523221205C1
|
||||
:10012000232422052326320523284205232A5205AB
|
||||
:10013000232C6205232E7205232082072322920797
|
||||
:100140002324A2072326B2072328C207232AD20783
|
||||
:10015000232CE207232EF207130210006780000011
|
||||
:10016000170200011302021B032002008320420039
|
||||
:10017000032182008321C200032202018322420163
|
||||
:10018000032382018323C201032402028324420247
|
||||
:10019000032582028325C20203260203832642032B
|
||||
:1001A000032782038327C20303280204832842040F
|
||||
:1001B000032982048329C204032A0205832A4205F3
|
||||
:1001C000032B8205832BC205032C0206832C4206D7
|
||||
:1001D000032D8206832DC206032E0207832E4207BB
|
||||
:1001E000032F8207832FC2071302000067800000DD
|
||||
:1001F00073250002678000007325100267800000ED
|
||||
:10020000130101FE232E1100232C8100130401028F
|
||||
:10021000232604FE6F0040030327C4FEB717000027
|
||||
:10022000938747973307F702B70700819387074102
|
||||
:10023000B307F70013850700EF0000448327C4FECF
|
||||
:10024000938717002326F4FE0327C4FE9307F001CB
|
||||
:10025000E3D4E7FC130000008320C10103248101E3
|
||||
:100260001301010267800000130101FD2326110222
|
||||
:10027000232481022322A10313040103130000009D
|
||||
:1002800013070D00B7170000938747973307F7024E
|
||||
:10029000B707008193870741B307F700138507006D
|
||||
:1002A000EF00405093070500638A070213070D0013
|
||||
:1002B000B70700811317270093878726B307F70036
|
||||
:1002C0001307100023A0E70093070D0063960700B3
|
||||
:1002D000EFF01FE96F00C0057300000013070D0069
|
||||
:1002E000B7170000938747973307F702B7070081D6
|
||||
:1002F00093870741B307F700130784FD93050700B1
|
||||
:1003000013850700EF000040832704FE13810700D8
|
||||
:100310008327C4FD832584FD032644FE832684FEB3
|
||||
:100320000327C4FE13850700EFF0DFCF7300000042
|
||||
:100330008320C10203248102032D41021301010322
|
||||
:1003400067800000130101FB23261104232481048C
|
||||
:1003500013040105EFF0DFE92324A4FE9309010053
|
||||
:10036000930710002326F4FE6F00C0080327C4FE85
|
||||
:10037000B7170000938747973307F702B707008145
|
||||
:1003800093870741B307F70013850700EF0080410B
|
||||
:1003900093070500639A07040327C4FEB7170000FC
|
||||
:1003A000938747973307F702B70700819387074181
|
||||
:1003B000B307F700130704FD930507001385070033
|
||||
:1003C000EF004034832784FD13810700832744FD19
|
||||
:1003D000832504FD0326C4FD832604FE032744FE73
|
||||
:1003E00013850700EFF0DFCD8327C4FE9387170046
|
||||
:1003F0002326F4FE8327C4FE032784FEE3E8E7F602
|
||||
:1004000013810900EFF0DFCC930702006388070433
|
||||
:10041000B707008113850741EF00C0389307050037
|
||||
:10042000639E0702930784FB93850700B70700814B
|
||||
:1004300013850741EF00002D832704FC138107007B
|
||||
:100440008327C4FB832584FB032644FC832684FC8A
|
||||
:100450000327C4FC13850700EFF0DFBC1300000086
|
||||
:100460008320C10403248104130101056780000077
|
||||
:10047000130101FB23261104232481041304010525
|
||||
:10048000232EA4FA232CB4FA232AC4FA2328D4FA5C
|
||||
:10049000EFF01FD7EFF0DFD52322A4FE13090100F0
|
||||
:1004A000232604FE232404FE6F000009B709FFFF82
|
||||
:1004B00033013101832784FE2326F4FC832784FB48
|
||||
:1004C0002328F4FC93070100232AF4FC832744FB30
|
||||
:1004D000232CF4FC832704FB232EF4FC8327C4FE87
|
||||
:1004E0002320F4FE0327C4FEB71700009387479725
|
||||
:1004F0003307F702B707008193870741B307F70077
|
||||
:100500001307C4FC9305070013850700EF000019CB
|
||||
:100510008327C4FE938717002326F4FE8327C4FE97
|
||||
:10052000032744FE63E4E700232604FE832784FEBA
|
||||
:10053000938717002324F4FE032784FE8327C4FB3C
|
||||
:10054000E366F7F613010900EFF0DFDF13000000A8
|
||||
:100550008320C10403248104130101056780000086
|
||||
:10056000130101FD23261102232481021304010338
|
||||
:10057000232EA4FC8325C4FDB7070081138507043F
|
||||
:10058000EF004035EFF0DFC62320A4FE232604FE53
|
||||
:100590006F008006930710002326F4FE232404FE38
|
||||
:1005A0006F00C003B7070081032784FE13172700DD
|
||||
:1005B00093878726B307F70003A707009307100068
|
||||
:1005C0006318F7008327C4FE938717002326F4FEE1
|
||||
:1005D000832784FE938717002324F4FE032784FED9
|
||||
:1005E0009307F001E3D0E7FC8325C4FEB707008141
|
||||
:1005F0001385C704EF00002E0327C4FE8327C4FD24
|
||||
:10060000E36AF7F8232204FE6F008002B707008137
|
||||
:10061000032744FE1317270093878726B307F700A5
|
||||
:1006200023A00700832744FE938717002322F4FEAC
|
||||
:10063000832744FE032704FEE3EAE7FC13000000DF
|
||||
:100640008320C1020324810213010103678000009B
|
||||
:10065000130101FF232681002324710113040101EA
|
||||
:1006600093870B00138507000324C100832B8100AF
|
||||
:1006700013010101678000009302050013030000CD
|
||||
:100680009303700023A0620023A2620023A46200EF
|
||||
:1006900023A6720023A86200678000009302050071
|
||||
:1006A00003A382001303130023A4620013834201F7
|
||||
:1006B00083AE420093935E003303730003AE0500E4
|
||||
:1006C0002320C30103AE45002322C30103AE8500EE
|
||||
:1006D0002324C30103AEC5002326C30103AE0501D5
|
||||
:1006E0002328C30103AE4501232AC301938E1E00B4
|
||||
:1006F000130F20036394EE01930E000023A2D20196
|
||||
:10070000678000009302050003A38200130000002D
|
||||
:10071000130000001300000013000000130000008D
|
||||
:1007200013000000130000001303F3FF23A4620072
|
||||
:100730001383420183AE0200930F2003138F0E0038
|
||||
:10074000130F1F006314FF01130F000023A0E20129
|
||||
:1007500093935E0033037300032E030023A0C501AF
|
||||
:10076000032E430023A2C501032E830023A4C50149
|
||||
:10077000032EC30023A6C501032E030123A8C50130
|
||||
:10078000032E430123AAC5016780000093020500E0
|
||||
:1007900003A3820013050000130E200363146E00F0
|
||||
:1007A00013051500678000009302050003A3820073
|
||||
:1007B00013050000130E000063146E0013051500EE
|
||||
:1007C000678000009302050003A3C20083A3020117
|
||||
:1007D00033B5630067800000130141FF232011003F
|
||||
:1007E0002322B1008345050063880500EF00C001A6
|
||||
:1007F000130515006FF01FFF8320010083254100C2
|
||||
:100800001301C10067800000B708010023A0B800F1
|
||||
:1008100067800000130101FD2326110223248102B9
|
||||
:1008200013040103232EA4FC0327C4FD9307F00047
|
||||
:1008300063E4E702B70700810327C4FD131727000D
|
||||
:100840009387871AB307F70083A70700138507006C
|
||||
:10085000EFF09FF86F004007930700022326F4FE95
|
||||
:10086000A30504FE8327C4FE9387C7FF0327C4FDA7
|
||||
:10087000B357F70093F7F7002322F4FE832744FED3
|
||||
:100880006386070093071000A305F4FE8347B4FEB8
|
||||
:1008900063820702B7070081032744FE131727006E
|
||||
:1008A0009387871AB307F70083A70700138507000C
|
||||
:1008B000EFF09FF28327C4FE9387C7FF2326F4FE41
|
||||
:1008C0008327C4FEE340F0FA8320C102032481029F
|
||||
:1008D0001301010367800000130101FE232E1100A4
|
||||
:1008E000232C8100130401022326A4FE2324B4FE3A
|
||||
:1008F0000325C4FEEFF05FEE032584FEEFF09FF1C9
|
||||
:10090000B707008113854709EFF01FED13000000C2
|
||||
:100910008320C101032481011301010267800000CB
|
||||
:10092000130101FD23261102232481021304010374
|
||||
:10093000232EA4FC232CB4FC232AC4FC2328D4FC9F
|
||||
:10094000B76702810327C4FD23ACE71AB7670281AA
|
||||
:100950009387871B032784FD23A2E700B7670281E3
|
||||
:100960009387871B032744FD23A4E700B767028111
|
||||
:100970009387871B032704FD23A6E700EFF01F885A
|
||||
:100980002324A4FE032704FD832784FEB357F70224
|
||||
:100990002326F4FE032704FD832784FEB377F702A2
|
||||
:1009A000638807008327C4FE938717002326F4FE7D
|
||||
:1009B000B76702819387871B0327C4FE23A8E7003C
|
||||
:1009C000032704FD832784FE6362F702B767028171
|
||||
:1009D0009386871BB7170080138647A4832584FE60
|
||||
:1009E000032504FDEFF01FA96F000002B767028125
|
||||
:1009F0009386871BB7170080138647A4832504FDC1
|
||||
:100A0000032504FDEFF01FA7EFF0CFFE2322A4FE85
|
||||
:100A1000032704FD832744FE63F8E700032544FE13
|
||||
:100A2000EFF05FB46F00C000032504FDEFF09FB34B
|
||||
:100A3000130000008320C10203248102130101037B
|
||||
:100A400067800000130101FA232E1104232C810476
|
||||
:100A5000130401062326A4FA2324B4FAEFF09FBF5F
|
||||
:100A6000232CA4FC832784FD83A70700232AF4FCFE
|
||||
:100A7000832784FD83A747002328F4FC832784FD74
|
||||
:100A800083A787002326F4FC832784FD83A707011F
|
||||
:100A90002326F4FE0327C4FE8327C4FAB307F70214
|
||||
:100AA0002324F4FE8327C4FE639A070093071000F3
|
||||
:100AB0002326F4FE8327C4FA2324F4FE832784FD2F
|
||||
:100AC00083A7C7002324F4FC232204FE6F00800DBB
|
||||
:100AD000232004FE232E04FC6F008007032784FAE2
|
||||
:100AE000832784FCB307F7020327C4FDB307F7008D
|
||||
:100AF0002322F4FC032784FC8327C4FDB307F702F9
|
||||
:100B0000032784FEB307F7002320F4FC832744FC6B
|
||||
:100B100093972700032744FDB307F70003A70700B7
|
||||
:100B2000832704FC93972700832604FDB387F600F0
|
||||
:100B300083A70700B307F702032704FEB307F700F4
|
||||
:100B40002320F4FE8327C4FD93871700232EF4FC93
|
||||
:100B50000327C4FD832784FCE362F7F8032784FAA4
|
||||
:100B6000832784FC3307F702832784FEB307F7004B
|
||||
:100B7000232EF4FA8327C4FB939727000327C4FC92
|
||||
:100B8000B307F700032704FE23A0E700832784FEB2
|
||||
:100B9000938717002324F4FE832744FE93871700CE
|
||||
:100BA0002322F4FE832744FE0327C4FEE3E2E7F298
|
||||
:100BB000130000008320C1050324810513010106F1
|
||||
:100BC00067800000130101FC232E1102232C8102F7
|
||||
:100BD00013040104232EA4FC232CB4FC232AC4FCFC
|
||||
:100BE0002328D4FC2326E4FCB76702810327C4FD35
|
||||
:100BF00023A6E71CB76702819387C71C032784FDE0
|
||||
:100C000023A2E700B76702819387C71C032744FD2F
|
||||
:100C100023A4E700B76702819387C71C0327C4FC9E
|
||||
:100C200023A6E700B76702819387C71C032704FD4B
|
||||
:100C300023A8E700EFF08FDC2324A4FE0327C4FCE5
|
||||
:100C4000832784FEB357F7022326F4FE0327C4FC50
|
||||
:100C5000832784FEB377F702638807008327C4FEE7
|
||||
:100C6000938717002326F4FEB76702819387C71C7A
|
||||
:100C70000327C4FE23AAE7000327C4FC832784FEBE
|
||||
:100C80006362F702B76702819386C71CB7170080BB
|
||||
:100C90001386C7CF832584FE032504FDEFF08FFD67
|
||||
:100CA0006F000002B76702819386C71CB7170080E8
|
||||
:100CB0001386C7CF8325C4FC032504FDEFF08FFB0B
|
||||
:100CC000EFF04FD32322A4FE032704FD832744FE25
|
||||
:100CD00063F8E700032544FEEFF0DF886F00C000F3
|
||||
:100CE000032504FDEFF01F88130000008320C103DB
|
||||
:100CF000032481031301010467800000130101FB39
|
||||
:100D0000232611042324810413040105232EA4FAAD
|
||||
:100D1000232CB4FAEFF01F942320A4FE832704FEB3
|
||||
:100D200083A70700232EF4FC832704FE83A7470034
|
||||
:100D3000232CF4FC832704FE83A78700232AF4FCDA
|
||||
:100D4000832704FE83A747012326F4FE0327C4FE5E
|
||||
:100D50008327C4FBB307F7022324F4FE8327C4FED2
|
||||
:100D6000639A0700930710002326F4FE8327C4FB31
|
||||
:100D70002324F4FE832704FE83A7C7002328F4FC62
|
||||
:100D8000232204FE6F00000C032784FB832704FD4D
|
||||
:100D90003307F702832784FEB307F7002326F4FC0A
|
||||
:100DA000032784FE832704FDB337F70093F7F70F7B
|
||||
:100DB0002324F4FC832784FC93B71700A303F4FCDB
|
||||
:100DC000834774FC138F0700B7170080938F07E3E6
|
||||
:100DD0006B200F007B70FF018327C4FC93972700D3
|
||||
:100DE0000327C4FDB307F70083A607008327C4FCCD
|
||||
:100DF00093972700032784FDB307F70003A7070095
|
||||
:100E00008327C4FC93972700032644FDB307F6000D
|
||||
:100E10003387E60023A0E700832784FE938717002B
|
||||
:100E20002324F4FEB7170080138E47E367000E00FB
|
||||
:100E3000130000006B300000832744FE93871700E7
|
||||
:100E40002322F4FE832744FE0327C4FEE3EEE7F2E9
|
||||
:100E5000130000008320C104032481041301010551
|
||||
:100E600067800000130101FC232E1102232C810254
|
||||
:100E700013040104232EA4FC232CB4FC232AC4FC59
|
||||
:100E80002328D4FC2326E4FCB76702810327C4FD92
|
||||
:100E900023A6E71CB76702819387C71C032784FD3D
|
||||
:100EA00023A2E700B76702819387C71C032744FD8D
|
||||
:100EB00023A4E700B76702819387C71C0327C4FCFC
|
||||
:100EC00023A6E700B76702819387C71C032704FDA9
|
||||
:100ED00023A8E700EFF08FB22324A4FE0327C4FC6D
|
||||
:100EE000832784FEB357F7022326F4FE0327C4FCAE
|
||||
:100EF000832784FEB377F702638807008327C4FE45
|
||||
:100F0000938717002326F4FEB76702819387C71CD7
|
||||
:100F10000327C4FE23AAE7000327C4FC832784FE1B
|
||||
:100F20006362F702B76702819386C71CB717008018
|
||||
:100F30001386C7F9832584FE032504FDEFF08FD3C4
|
||||
:100F40006F000002B76702819386C71CB717008045
|
||||
:100F50001386C7F98325C4FC032504FDEFF08FD168
|
||||
:100F6000EFF04FA92322A4FE032704FD832744FEAC
|
||||
:100F700063F8E700032544FEEFF0CFDE6F00C0000A
|
||||
:100F8000032504FDEFF00FDE130000008320C103F2
|
||||
:100F9000032481031301010467800000130101FB96
|
||||
:100FA000232611042324810413040105232EA4FA0B
|
||||
:100FB000232CB4FAEFF00FEA2320A4FE832704FECB
|
||||
:100FC00083A70700232EF4FC832704FE83A7470092
|
||||
:100FD000232CF4FC832704FE83A78700232AF4FC38
|
||||
:100FE000832704FE83A747012326F4FE0327C4FEBC
|
||||
:100FF0008327C4FBB307F7022324F4FE8327C4FE30
|
||||
:10100000639A0700930710002326F4FE8327C4FB8E
|
||||
:101010002324F4FE832704FE83A7C7002328F4FCBF
|
||||
:10102000232204FE6F00000C032784FB832704FDAA
|
||||
:101030003307F702832784FEB307F7002326F4FC67
|
||||
:10104000032784FE832704FDB337F70093F7F70FD8
|
||||
:101050002324F4FC832784FC93B71700A303F4FC38
|
||||
:10106000834774FC138F0700B7170080938F070D19
|
||||
:101070006B200F007B70FF018327C4FC9397270030
|
||||
:101080000327C4FDB307F70083A607008327C4FC2A
|
||||
:1010900093972700032784FDB307F70003A70700F2
|
||||
:1010A0008327C4FC93972700032644FDB307F6006B
|
||||
:1010B0003387E64023A0E700832784FE9387170049
|
||||
:1010C0002324F4FEB7170080138E470D67000E002F
|
||||
:1010D000130000006B300000832744FE9387170045
|
||||
:1010E0002322F4FE832744FE0327C4FEE3EEE7F247
|
||||
:1010F000130000008320C1040324810413010105AF
|
||||
:1011000067800000130101FC232E1102232C8102B1
|
||||
:1011100013040104232EA4FC232CB4FC232AC4FCB6
|
||||
:101120002328D4FC2326E4FCB76702810327C4FDEF
|
||||
:1011300023A2E71EB76702819387471E032784FD1A
|
||||
:1011400023A2E700B76702819387471E032744FD68
|
||||
:1011500023A4E700B76702819387471E0327C4FCD7
|
||||
:1011600023A6E700B76702819387471E032704FD84
|
||||
:1011700023A8E700EFF08F882324A4FE0327C4FCF4
|
||||
:10118000832784FEB357F7022326F4FE0327C4FC0B
|
||||
:10119000832784FEB377F702638807008327C4FEA2
|
||||
:1011A000938717002326F4FEB76702819387471EB3
|
||||
:1011B0000327C4FE23AAE7000327C4FC832784FE79
|
||||
:1011C0006362F702B76702819386471EB7170080F4
|
||||
:1011D0001386C723832584FE032504FDEFF08FA922
|
||||
:1011E0006F000002B76702819386471EB717008021
|
||||
:1011F0001386C7238325C4FC032504FDEFF08FA7C6
|
||||
:10120000EFE05FFF2322A4FE032704FD832744FEB3
|
||||
:1012100063F8E700032544FEEFF0CFB46F00C00091
|
||||
:10122000032504FDEFF00FB4130000008320C10379
|
||||
:10123000032481031301010467800000130101FBF3
|
||||
:10124000232611042324810413040105232EA4FA68
|
||||
:10125000232CB4FAEFF00FC02320A4FE832704FE52
|
||||
:1012600083A70700232EF4FC832704FE83A74700EF
|
||||
:1012700083A70700232CF4FC832704FE83A78700A1
|
||||
:10128000232AF4FC832704FE83A747012326F4FEC8
|
||||
:101290000327C4FE8327C4FBB307F7022324F4FE0D
|
||||
:1012A0008327C4FE639A0700930710002326F4FEE9
|
||||
:1012B0008327C4FB2324F4FE832704FE83A7C700EF
|
||||
:1012C0002328F4FC232204FE6F00000B032784FB79
|
||||
:1012D000832704FD3307F702832784FEB307F70053
|
||||
:1012E0002326F4FC032784FE832704FDB337F7008D
|
||||
:1012F00093F7F70F2324F4FC832784FC93B717009C
|
||||
:10130000A303F4FC834774FC138F0700B717008016
|
||||
:10131000938F47366B200F007B70FF018327C4FC3F
|
||||
:10132000939727000327C4FDB307F70083A60700A0
|
||||
:101330008327C4FC93972700032744FDB307F700D6
|
||||
:10134000032784FD3387E60023A0E700832784FE7C
|
||||
:10135000938717002324F4FEB7170080138E873677
|
||||
:1013600067000E00130000006B300000832744FE6E
|
||||
:10137000938717002322F4FE832744FE0327C4FE2D
|
||||
:10138000E3E6E7F4130000008320C1040324810492
|
||||
:101390001301010567800000130101FC232E1102D7
|
||||
:1013A000232C810213040104232EA4FC232CB4FC5F
|
||||
:1013B000232AC4FC2328D4FC2326E4FCB76702813B
|
||||
:1013C0000327C4FD23A2E71EB76702819387471E48
|
||||
:1013D000032784FD23A2E700B76702819387471E96
|
||||
:1013E000032744FD23A4E700B76702819387471EC4
|
||||
:1013F0000327C4FC23A6E700B76702819387471E33
|
||||
:10140000032704FD23A8E700EFE05FDF2324A4FE09
|
||||
:101410000327C4FC832784FEB357F7022326F4FE78
|
||||
:101420000327C4FC832784FEB377F7026388070091
|
||||
:101430008327C4FE938717002326F4FEB767028133
|
||||
:101440009387471E0327C4FE23AAE7000327C4FC93
|
||||
:10145000832784FE6362F702B76702819386471E83
|
||||
:10146000B71700801386074D832584FE032504FDEE
|
||||
:10147000EFF04F806F000002B76702819386471E2E
|
||||
:10148000B71700801386074D8325C4FC032504FD90
|
||||
:10149000EFE05FFEEFE01FD62322A4FE032704FD4A
|
||||
:1014A000832744FE63F8E700032544FEEFF08F8BAB
|
||||
:1014B0006F00C000032504FDEFF0CF8A1300000089
|
||||
:1014C0008320C1030324810313010104678000000A
|
||||
:1014D000130101FB232611042324810413040105B5
|
||||
:1014E000232EA4FA232CB4FAEFF0CF962320A4FEE7
|
||||
:1014F000832704FE83A70700232EF4FC832704FE22
|
||||
:1015000083A7470083A70700232CF4FC832704FE4E
|
||||
:1015100083A78700232AF4FC832704FE83A74701BF
|
||||
:101520002326F4FE0327C4FE8327C4FBB307F70278
|
||||
:101530002324F4FE8327C4FE639A07009307100058
|
||||
:101540002326F4FE8327C4FB2324F4FE832704FE12
|
||||
:1015500083A7C7002328F4FC232204FE6F00000B9E
|
||||
:10156000032784FB832704FD3307F702832784FEC8
|
||||
:10157000B307F7002326F4FC032784FE832704FD2A
|
||||
:10158000B337F70093F7F70F2324F4FC832784FC89
|
||||
:1015900093B71700A303F4FC834774FC138F070071
|
||||
:1015A000B7170080938F875F6B200F007B70FF0160
|
||||
:1015B0008327C4FC939727000327C4FDB307F700D4
|
||||
:1015C00083A607008327C4FC93972700032744FDC5
|
||||
:1015D000B307F700032784FD3387E60223A0E70063
|
||||
:1015E000832784FE938717002324F4FEB717008017
|
||||
:1015F000138EC75F67000E00130000006B30000001
|
||||
:10160000832744FE938717002322F4FE832744FE9A
|
||||
:101610000327C4FEE3E6E7F4130000008320C104BF
|
||||
:10162000032481041301010567800000130101FDFB
|
||||
:101630002326810213040103232EA4FC232604FE87
|
||||
:101640006F0000018327C4FE938717002326F4FE52
|
||||
:101650000327C4FE8327C4FDE346F7FE1300000002
|
||||
:101660000324C1021301010367800000130101FD7F
|
||||
:10167000232611022324810213040103232EA4FC38
|
||||
:10168000232CB4FCB76702811387C71F8327C4FDCF
|
||||
:10169000B307F700130710002380E7008327C4FD7A
|
||||
:1016A0006390070CA30104FE232604FE6F00800A4A
|
||||
:1016B000232604FE232404FE6F004003B767028143
|
||||
:1016C0001387C71F832784FEB307F70083C707006C
|
||||
:1016D000638807008327C4FE938717002326F4FE40
|
||||
:1016E000832784FE938717002324F4FE032784FEB8
|
||||
:1016F000832784FDE344F7FC0327C4FE832784FD8E
|
||||
:10170000631AF704232204FE6F000004B767028106
|
||||
:101710001387C71F832744FEB307F7002380070002
|
||||
:10172000B7970281130710002382E72C130560048A
|
||||
:10173000EFF0DFEFB79702812382072C832744FE67
|
||||
:10174000938717002322F4FE032744FE832784FD9A
|
||||
:10175000E34EF7FA834734FEE39C07F46F00400240
|
||||
:1017600013000000B797028183C7472C93C7170067
|
||||
:1017700093F7F70FE39807FE13054006EFF01FEB12
|
||||
:10178000130000008320C10203248102130101031E
|
||||
:1017900067800000130101FF23268100130401016B
|
||||
:1017A0009307000013080000138507009305080045
|
||||
:1017B0000324C1001301010167800000130101FE31
|
||||
:1017C000232E810013040102232604FE6F008004EF
|
||||
:1017D000B76702810327C4FE131727009387C72129
|
||||
:1017E000B307F7001307300023A0E700B7770281A3
|
||||
:1017F0000327C4FE131727009387C721B307F700F9
|
||||
:101800001307200023A0E7008327C4FE9387170057
|
||||
:101810002326F4FE0327C4FE9307F00FE3DAE7FA6A
|
||||
:10182000130000000324C1011301010267800000BE
|
||||
:10183000130101FD23261102232481021304010355
|
||||
:10184000232EA4FCB707008113858711EFE0DFF892
|
||||
:10185000232604FE6F0080058327C4FE638E0700E5
|
||||
:101860008327C4FE93F7F70063980700B70700814A
|
||||
:101870001385C713EFE05FF68327C4FE9397270015
|
||||
:101880000327C4FDB307F70083A7070013850700EC
|
||||
:10189000EFE05FF8B707008113850714EFE0DFF38F
|
||||
:1018A0008327C4FE938717002326F4FE0327C4FE74
|
||||
:1018B0009307F00FE3D2E7FAB707008113854714C7
|
||||
:1018C000EFE09FF1130000008320C1020324810296
|
||||
:1018D0001301010367800000130101FF232611009B
|
||||
:1018E0002324810013040101EFF05FEDB76702814B
|
||||
:1018F0001385C721EFF0DFF393070000138507007E
|
||||
:101900008320C100032481001301010167800000CE
|
||||
:10072000130000001303F3FF23A4620013834201AC
|
||||
:1007300083AE0200930F2003138F0E00130F1F00D0
|
||||
:100740006314FF01130F000023A0E20193935E00E6
|
||||
:1007500033037300032E030023A0C501032E4300BF
|
||||
:1007600023A2C501032E830023A4C501032EC300C9
|
||||
:1007700023A6C501032E030123A8C501032E4301AF
|
||||
:1007800023AAC501678000009302050003A382002D
|
||||
:1007900013050000130E200363146E0013051500EB
|
||||
:1007A000678000009302050003A382001305000088
|
||||
:1007B000130E000063146E0013051500678000001F
|
||||
:1007C0009302050003A3C20083A3020133B56300B3
|
||||
:1007D00067800000130141FF232011002322B10094
|
||||
:1007E0008345050063880500EF00C001130515006F
|
||||
:1007F0006FF01FFF83200100832541001301C1001A
|
||||
:1008000067800000B708010023A0B80067800000DF
|
||||
:10081000130101FD23261102232481021304010385
|
||||
:10082000232EA4FC0327C4FD9307F00063E4E70232
|
||||
:10083000B70700810327C4FD131727009387871A82
|
||||
:10084000B307F70083A7070013850700EFF09FF8B1
|
||||
:100850006F004007930700022326F4FEA30504FE61
|
||||
:100860008327C4FE9387C7FF0327C4FDB357F70050
|
||||
:1008700093F7F7002322F4FE832744FE63860700E4
|
||||
:1008800093071000A305F4FE8347B4FE63820702BA
|
||||
:10089000B7070081032744FE131727009387871AA1
|
||||
:1008A000B307F70083A7070013850700EFF09FF257
|
||||
:1008B0008327C4FE9387C7FF2326F4FE8327C4FE45
|
||||
:1008C000E340F0FA8320C1020324810213010103F3
|
||||
:1008D00067800000130101FE232E1100232C8100EC
|
||||
:1008E000130401022326A4FE2324B4FE0325C4FE20
|
||||
:1008F000EFF05FEE032584FEEFF09FF1B707008174
|
||||
:1009000013854709EFF01FED130000008320C1019C
|
||||
:10091000032481011301010267800000130101FD1E
|
||||
:10092000232611022324810213040103232EA4FC95
|
||||
:10093000232CB4FC232AC4FC2328D4FCB7670281EF
|
||||
:100940000327C4FD23ACE71AB76702819387871B8F
|
||||
:10095000032784FD23A2E700B76702819387871BE3
|
||||
:10096000032744FD23A4E700B76702819387871B11
|
||||
:10097000032704FD23A6E700EFF01F882324A4FE2D
|
||||
:10098000032704FD832784FEB357F7022326F4FED2
|
||||
:10099000032704FD832784FEB377F70263880700EB
|
||||
:1009A0008327C4FE938717002326F4FEB7670281CE
|
||||
:1009B0009387871B0327C4FE23A8E700032704FDB2
|
||||
:1009C000832784FE6362F702B76702819386871BE1
|
||||
:1009D000B7170080138607A4832584FE032504FD32
|
||||
:1009E000EFF01FA96F000002B76702819386871B93
|
||||
:1009F000B7170080138607A4832504FD032504FD93
|
||||
:100A0000EFF01FA7EFF0CFFE2322A4FE032704FD83
|
||||
:100A1000832744FE63F8E700032544FEEFF05FB44C
|
||||
:100A20006F00C000032504FDEFF09FB3130000002A
|
||||
:100A30008320C102032481021301010367800000A7
|
||||
:100A4000130101FA232E1104232C8104130401063F
|
||||
:100A50002326A4FA2324B4FAEFF09FBF232CA4FC8E
|
||||
:100A6000832784FD83A70700232AF4FC832784FDC2
|
||||
:100A700083A747002328F4FC832784FD83A78700EE
|
||||
:100A80002326F4FC832784FD83A707012326F4FE95
|
||||
:100A90000327C4FE8327C4FAB307F7022324F4FE16
|
||||
:100AA0008327C4FE639A0700930710002326F4FEF1
|
||||
:100AB0008327C4FA2324F4FE832784FD83A7C70079
|
||||
:100AC0002324F4FC232204FE6F00800D232004FE67
|
||||
:100AD000232E04FC6F008007032784FA832784FCFD
|
||||
:100AE000B307F7020327C4FDB307F7002322F4FC82
|
||||
:100AF000032784FC8327C4FDB307F702032784FE82
|
||||
:100B0000B307F7002320F4FC832744FC93972700C6
|
||||
:100B1000032744FDB307F70003A70700832704FC5E
|
||||
:100B200093972700832604FDB387F60083A7070069
|
||||
:100B3000B307F702032704FEB307F7002320F4FEF0
|
||||
:100B40008327C4FD93871700232EF4FC0327C4FDDD
|
||||
:100B5000832784FCE362F7F8032784FA832784FC65
|
||||
:100B60003307F702832784FEB307F700232EF4FA36
|
||||
:100B70008327C4FB939727000327C4FCB307F70020
|
||||
:100B8000032704FE23A0E700832784FE9387170032
|
||||
:100B90002324F4FE832744FE938717002322F4FEC8
|
||||
:100BA000832744FE0327C4FEE3E2E7F213000000BC
|
||||
:100BB0008320C1050324810513010106678000001D
|
||||
:100BC000130101FC232E1102232C810213040104C2
|
||||
:100BD000232EA4FC232CB4FC232AC4FC2328D4FCFD
|
||||
:100BE0002326E4FCB76702810327C4FD23A6E71C84
|
||||
:100BF000B76702819387C71C032784FD23A2E70000
|
||||
:100C0000B76702819387C71C032744FD23A4E7002D
|
||||
:100C1000B76702819387C71C0327C4FC23A6E7009C
|
||||
:100C2000B76702819387C71C032704FD23A8E70049
|
||||
:100C3000EFF08FDC2324A4FE0327C4FC832784FE6B
|
||||
:100C4000B357F7022326F4FE0327C4FC832784FE50
|
||||
:100C5000B377F702638807008327C4FE93871700E2
|
||||
:100C60002326F4FEB76702819387C71C0327C4FEBF
|
||||
:100C700023AAE7000327C4FC832784FE6362F702EC
|
||||
:100C8000B76702819386C71CB7170080138687CF8A
|
||||
:100C9000832584FE032504FDEFF08FFD6F00000225
|
||||
:100CA000B76702819386C71CB7170080138687CF6A
|
||||
:100CB0008325C4FC032504FDEFF08FFBEFF04FD339
|
||||
:100CC0002322A4FE032704FD832744FE63F8E700E4
|
||||
:100CD000032544FEEFF0DF886F00C000032504FD0C
|
||||
:100CE000EFF01F88130000008320C1030324810359
|
||||
:100CF0001301010467800000130101FB2326110486
|
||||
:100D00002324810413040105232EA4FA232CB4FA0E
|
||||
:100D1000EFF01F942320A4FE832704FE83A707007F
|
||||
:100D2000232EF4FC832704FE83A74700232CF4FC26
|
||||
:100D3000832704FE83A78700232AF4FC832704FE6D
|
||||
:100D400083A747012326F4FE0327C4FE8327C4FBA1
|
||||
:100D5000B307F7022324F4FE8327C4FE639A070037
|
||||
:100D6000930710002326F4FE8327C4FB2324F4FEFC
|
||||
:100D7000832704FE83A7C7002328F4FC232204FE54
|
||||
:100D80006F00000C032784FB832704FD3307F70261
|
||||
:100D9000832784FEB307F7002326F4FC032784FE91
|
||||
:100DA000832704FDB337F70093F7F70F2324F4FCF0
|
||||
:100DB000832784FC93B71700A303F4FC834774FCD8
|
||||
:100DC000138F0700B7170080938FC7E26B200F00C7
|
||||
:100DD0007B70FF018327C4FC939727000327C4FD82
|
||||
:100DE000B307F70083A607008327C4FC9397270067
|
||||
:100DF000032784FDB307F70003A707008327C4FC7C
|
||||
:100E000093972700032644FDB307F6003387E600D7
|
||||
:100E100023A0E700832784FE938717002324F4FE92
|
||||
:100E2000B7170080138E07E367000E001300000061
|
||||
:100E30006B300000832744FE938717002322F4FEC3
|
||||
:100E4000832744FE0327C4FEE3EEE7F2130000000D
|
||||
:100E50008320C1040324810413010105678000007D
|
||||
:100E6000130101FC232E1102232C8102130401041F
|
||||
:100E7000232EA4FC232CB4FC232AC4FC2328D4FC5A
|
||||
:100E80002326E4FCB76702810327C4FD23A6E71CE1
|
||||
:100E9000B76702819387C71C032784FD23A2E7005D
|
||||
:100EA000B76702819387C71C032744FD23A4E7008B
|
||||
:100EB000B76702819387C71C0327C4FC23A6E700FA
|
||||
:100EC000B76702819387C71C032704FD23A8E700A7
|
||||
:100ED000EFF08FB22324A4FE0327C4FC832784FEF3
|
||||
:100EE000B357F7022326F4FE0327C4FC832784FEAE
|
||||
:100EF000B377F702638807008327C4FE9387170040
|
||||
:100F00002326F4FEB76702819387C71C0327C4FE1C
|
||||
:100F100023AAE7000327C4FC832784FE6362F70249
|
||||
:100F2000B76702819386C71CB7170080138687F9BD
|
||||
:100F3000832584FE032504FDEFF08FD36F000002AC
|
||||
:100F4000B76702819386C71CB7170080138687F99D
|
||||
:100F50008325C4FC032504FDEFF08FD1EFF04FA9EA
|
||||
:100F60002322A4FE032704FD832744FE63F8E70041
|
||||
:100F7000032544FEEFF0CFDE6F00C000032504FD23
|
||||
:100F8000EFF00FDE130000008320C1030324810370
|
||||
:100F90001301010467800000130101FB23261104E3
|
||||
:100FA0002324810413040105232EA4FA232CB4FA6C
|
||||
:100FB000EFF00FEA2320A4FE832704FE83A7070097
|
||||
:100FC000232EF4FC832704FE83A74700232CF4FC84
|
||||
:100FD000832704FE83A78700232AF4FC832704FECB
|
||||
:100FE00083A747012326F4FE0327C4FE8327C4FBFF
|
||||
:100FF000B307F7022324F4FE8327C4FE639A070095
|
||||
:10100000930710002326F4FE8327C4FB2324F4FE59
|
||||
:10101000832704FE83A7C7002328F4FC232204FEB1
|
||||
:101020006F00000C032784FB832704FD3307F702BE
|
||||
:10103000832784FEB307F7002326F4FC032784FEEE
|
||||
:10104000832704FDB337F70093F7F70F2324F4FC4D
|
||||
:10105000832784FC93B71700A303F4FC834774FC35
|
||||
:10106000138F0700B7170080938FC70C6B200F00FA
|
||||
:101070007B70FF018327C4FC939727000327C4FDDF
|
||||
:10108000B307F70083A607008327C4FC93972700C4
|
||||
:10109000032784FDB307F70003A707008327C4FCD9
|
||||
:1010A00093972700032644FDB307F6003387E640F5
|
||||
:1010B00023A0E700832784FE938717002324F4FEF0
|
||||
:1010C000B7170080138E070D67000E001300000095
|
||||
:1010D0006B300000832744FE938717002322F4FE21
|
||||
:1010E000832744FE0327C4FEE3EEE7F2130000006B
|
||||
:1010F0008320C104032481041301010567800000DB
|
||||
:10110000130101FC232E1102232C8102130401047C
|
||||
:10111000232EA4FC232CB4FC232AC4FC2328D4FCB7
|
||||
:101120002326E4FCB76702810327C4FD23A2E71E40
|
||||
:10113000B76702819387471E032784FD23A2E70038
|
||||
:10114000B76702819387471E032744FD23A4E70066
|
||||
:10115000B76702819387471E0327C4FC23A6E700D5
|
||||
:10116000B76702819387471E032704FD23A8E70082
|
||||
:10117000EFF08F882324A4FE0327C4FC832784FE7A
|
||||
:10118000B357F7022326F4FE0327C4FC832784FE0B
|
||||
:10119000B377F702638807008327C4FE938717009D
|
||||
:1011A0002326F4FEB76702819387471E0327C4FEF8
|
||||
:1011B00023AAE7000327C4FC832784FE6362F702A7
|
||||
:1011C000B76702819386471EB7170080138687236F
|
||||
:1011D000832584FE032504FDEFF08FA96F00000234
|
||||
:1011E000B76702819386471EB7170080138687234F
|
||||
:1011F0008325C4FC032504FDEFF08FA7EFE05FFF1C
|
||||
:101200002322A4FE032704FD832744FE63F8E7009E
|
||||
:10121000032544FEEFF0CFB46F00C000032504FDAA
|
||||
:10122000EFF00FB4130000008320C10303248103F7
|
||||
:101230001301010467800000130101FB2326110440
|
||||
:101240002324810413040105232EA4FA232CB4FAC9
|
||||
:10125000EFF00FC02320A4FE832704FE83A707001E
|
||||
:10126000232EF4FC832704FE83A7470083A70700EF
|
||||
:10127000232CF4FC832704FE83A78700232AF4FC95
|
||||
:10128000832704FE83A747012326F4FE0327C4FE19
|
||||
:101290008327C4FBB307F7022324F4FE8327C4FE8D
|
||||
:1012A000639A0700930710002326F4FE8327C4FBEC
|
||||
:1012B0002324F4FE832704FE83A7C7002328F4FC1D
|
||||
:1012C000232204FE6F00000B032784FB832704FD09
|
||||
:1012D0003307F702832784FEB307F7002326F4FCC5
|
||||
:1012E000032784FE832704FDB337F70093F7F70F36
|
||||
:1012F0002324F4FC832784FC93B71700A303F4FC96
|
||||
:10130000834774FC138F0700B7170080938F07364D
|
||||
:101310006B200F007B70FF018327C4FC939727008D
|
||||
:101320000327C4FDB307F70083A607008327C4FC87
|
||||
:1013300093972700032744FDB307F700032784FD95
|
||||
:101340003387E60023A0E700832784FE93871700F6
|
||||
:101350002324F4FEB7170080138E473667000E0073
|
||||
:10136000130000006B300000832744FE93871700B2
|
||||
:101370002322F4FE832744FE0327C4FEE3E6E7F4BA
|
||||
:10138000130000008320C10403248104130101051C
|
||||
:1013900067800000130101FC232E1102232C81021F
|
||||
:1013A00013040104232EA4FC232CB4FC232AC4FC24
|
||||
:1013B0002328D4FC2326E4FCB76702810327C4FD5D
|
||||
:1013C00023A2E71EB76702819387471E032784FD88
|
||||
:1013D00023A2E700B76702819387471E032744FDD6
|
||||
:1013E00023A4E700B76702819387471E0327C4FC45
|
||||
:1013F00023A6E700B76702819387471E032704FDF2
|
||||
:1014000023A8E700EFE05FDF2324A4FE0327C4FC4A
|
||||
:10141000832784FEB357F7022326F4FE0327C4FC78
|
||||
:10142000832784FEB377F702638807008327C4FE0F
|
||||
:10143000938717002326F4FEB76702819387471E20
|
||||
:101440000327C4FE23AAE7000327C4FC832784FEE6
|
||||
:101450006362F702B76702819386471EB717008061
|
||||
:101460001386C74C832584FE032504FDEFF04F80CF
|
||||
:101470006F000002B76702819386471EB71700808E
|
||||
:101480001386C74C8325C4FC032504FDEFE05FFEF3
|
||||
:10149000EFE01FD62322A4FE032704FD832744FE8A
|
||||
:1014A00063F8E700032544FEEFF08F8B6F00C00068
|
||||
:1014B000032504FDEFF0CF8A130000008320C10351
|
||||
:1014C000032481031301010467800000130101FB61
|
||||
:1014D000232611042324810413040105232EA4FAD6
|
||||
:1014E000232CB4FAEFF0CF962320A4FE832704FE2A
|
||||
:1014F00083A70700232EF4FC832704FE83A747005D
|
||||
:1015000083A70700232CF4FC832704FE83A787000E
|
||||
:10151000232AF4FC832704FE83A747012326F4FE35
|
||||
:101520000327C4FE8327C4FBB307F7022324F4FE7A
|
||||
:101530008327C4FE639A0700930710002326F4FE56
|
||||
:101540008327C4FB2324F4FE832704FE83A7C7005C
|
||||
:101550002328F4FC232204FE6F00000B032784FBE6
|
||||
:10156000832704FD3307F702832784FEB307F700C0
|
||||
:101570002326F4FC032784FE832704FDB337F700FA
|
||||
:1015800093F7F70F2324F4FC832784FC93B7170009
|
||||
:10159000A303F4FC834774FC138F0700B717008084
|
||||
:1015A000938F475F6B200F007B70FF018327C4FC84
|
||||
:1015B000939727000327C4FDB307F70083A607000E
|
||||
:1015C0008327C4FC93972700032744FDB307F70044
|
||||
:1015D000032784FD3387E60223A0E700832784FEE8
|
||||
:1015E000938717002324F4FEB7170080138E875FBC
|
||||
:1015F00067000E00130000006B300000832744FEDC
|
||||
:10160000938717002322F4FE832744FE0327C4FE9A
|
||||
:10161000E3E6E7F4130000008320C10403248104FF
|
||||
:101620001301010567800000130101FD23268102DB
|
||||
:1016300013040103232EA4FC232604FE6F000001E3
|
||||
:101640008327C4FE938717002326F4FE0327C4FED6
|
||||
:101650008327C4FDE346F7FE130000000324C10204
|
||||
:101660001301010367800000130101FD232611020D
|
||||
:101670002324810213040103232EA4FC232CB4FC95
|
||||
:10168000B76702811387C71F8327C4FDB307F7001D
|
||||
:10169000130710002380E7008327C4FD6390070C25
|
||||
:1016A000A30104FE232604FE6F00800A232604FE05
|
||||
:1016B000232404FE6F004003B76702811387C71F0E
|
||||
:1016C000832784FEB307F70083C7070063880700FA
|
||||
:1016D0008327C4FE938717002326F4FE832784FE06
|
||||
:1016E000938717002324F4FE032784FE832784FDB9
|
||||
:1016F000E344F7FC0327C4FE832784FD631AF70441
|
||||
:10170000232204FE6F000004B76702811387C71FFE
|
||||
:10171000832744FEB307F70023800700B7970281B1
|
||||
:10172000130710002382E72C13056004EFF0DFEFAE
|
||||
:10173000B79702812382072C832744FE93871700E3
|
||||
:101740002322F4FE032744FE832784FDE34EF7FAA9
|
||||
:10175000834734FEE39C07F46F004002130000004F
|
||||
:10176000B797028183C7472C93C7170093F7F70FEA
|
||||
:10177000E39807FE13054006EFF01FEB130000008F
|
||||
:101780008320C1020324810213010103678000004A
|
||||
:10179000130101FF232681001304010193070000B8
|
||||
:1017A0001308000013850700930508000324C100F7
|
||||
:1017B0001301010167800000130101FE232E810047
|
||||
:1017C00013040102232604FE6F008004B767028120
|
||||
:1017D0000327C4FE131727009387C721B307F70019
|
||||
:1017E0001307300023A0E700B77702810327C4FE68
|
||||
:1017F000131727009387C721B307F70013072000AB
|
||||
:1018000023A0E7008327C4FE938717002326F4FE56
|
||||
:101810000327C4FE9307F00FE3DAE7FA1300000092
|
||||
:101820000324C1011301010267800000130101FDBF
|
||||
:10183000232611022324810213040103232EA4FC76
|
||||
:10184000B707008113858711EFE0DFF8232604FE38
|
||||
:101850006F0080058327C4FE638E07008327C4FEC4
|
||||
:1018600093F7F70063980700B70700811385C71344
|
||||
:10187000EFE05FF68327C4FE939727000327C4FD9C
|
||||
:10188000B307F70083A7070013850700EFE05FF8B1
|
||||
:10189000B707008113850714EFE0DFF38327C4FE49
|
||||
:1018A000938717002326F4FE0327C4FE9307F00F47
|
||||
:1018B000E3D2E7FAB707008113854714EFE09FF101
|
||||
:1018C000130000008320C1020324810213010103DD
|
||||
:1018D00067800000130101FF2326110023248100EB
|
||||
:1018E00013040101EFF05FEDB76702811385C72193
|
||||
:1018F000EFF0DFF393070000138507008320C1009A
|
||||
:0C19000003248100130101016780000036
|
||||
:02000004810079
|
||||
:10000000300000003100000032000000330000002A
|
||||
:10001000340000003500000036000000370000000A
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
.type _start, @function
|
||||
.global _start
|
||||
_start:
|
||||
la a0, 0xFF003300
|
||||
la a0, 0x020000
|
||||
li a1, 7
|
||||
sw a1, 4(a0)
|
||||
nop
|
||||
|
|
12
rtl/Makefile
12
rtl/Makefile
|
@ -11,18 +11,20 @@ EXE=--exe ./simulate/test_bench.cpp
|
|||
|
||||
COMP=--compiler gcc
|
||||
|
||||
WNO=-Wno-UNOPTFLAT -Wno-UNDRIVEN --Wno-PINMISSING -Wno-STMTDLY -Wno-WIDTH -Wno-UNSIGNED
|
||||
# WNO=-Wno-UNDRIVEN --Wno-PINMISSING -Wno-STMTDLY -Wno-WIDTH -Wno-UNSIGNED
|
||||
WNO=
|
||||
|
||||
LIGHTW=-Wno-UNOPTFLAT
|
||||
LIGHTW=
|
||||
# LIGHTW=-Wno-UNOPTFLAT
|
||||
# LIB=-LDFLAGS '-L/usr/local/systemc/'
|
||||
LIB=
|
||||
|
||||
CF=-CFLAGS '-std=c++11 -O3'
|
||||
|
||||
DEB=--prof-cfuncs -DVL_DEBUG=1 --coverage --trace
|
||||
DEB=--trace --prof-cfuncs -DVL_DEBUG=1
|
||||
|
||||
|
||||
MAKECPP=(cd obj_dir && make -j -f VVortex.mk)
|
||||
MAKECPP=(cd obj_dir && make -j -f VVortex.mk OPT='-DVL_DEBUG' VL_DEBUG=1 DVL_DEBUG=1)
|
||||
|
||||
# -LDFLAGS '-lsystemc'
|
||||
VERILATOR:
|
||||
|
@ -35,7 +37,7 @@ VERILATORnoWarnings:
|
|||
|
||||
compdebug:
|
||||
echo "#define VCD_OUTPUT" > simulate/tb_debug.h
|
||||
verilator $(COMP) -cc $(FILE) $(INCLUDE) $(EXE) $(LIB) -CFLAGS '-std=c++11 -DVL_DEBUG' $(WNO) $(DEB)
|
||||
verilator_bin_dbg $(COMP) -cc $(FILE) $(INCLUDE) $(EXE) $(LIB) -CFLAGS '-std=c++11 -DVL_DEBUG' $(WNO) $(DEB)
|
||||
|
||||
RUNFILE: VERILATOR
|
||||
$(MAKECPP)
|
||||
|
|
|
@ -72,7 +72,8 @@ VX_gpr_stage VX_gpr_stage(
|
|||
|
||||
|
||||
VX_lsu load_store_unit(
|
||||
// .clk (clk),
|
||||
.clk (clk),
|
||||
.reset (reset),
|
||||
.VX_lsu_req (VX_lsu_req),
|
||||
.VX_mem_wb (VX_mem_wb),
|
||||
.VX_dcache_rsp(VX_dcache_rsp),
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
|
||||
// `define SYN 1
|
||||
|
||||
`define CACHE_NUM_BANKS 8
|
||||
|
||||
`define NUMBER_BANKS 8
|
||||
`define NUM_WORDS_PER_BLOCK 4
|
||||
|
|
|
@ -17,9 +17,7 @@ module VX_dmem_controller (
|
|||
wire[`NT_M1:0] sm_driver_in_valid = VX_dcache_req.out_cache_driver_in_valid & {`NT{to_shm}};
|
||||
wire[`NT_M1:0] cache_driver_in_valid = VX_dcache_req.out_cache_driver_in_valid & {`NT{~to_shm}};
|
||||
|
||||
// Cache don't understand
|
||||
wire initial_request = (|cache_driver_in_valid);
|
||||
wire read_or_write = (VX_dcache_req.out_cache_driver_in_mem_write != `NO_MEM_WRITE);
|
||||
wire read_or_write = (VX_dcache_req.out_cache_driver_in_mem_write != `NO_MEM_WRITE) && (|cache_driver_in_valid);
|
||||
|
||||
|
||||
|
||||
|
@ -58,7 +56,8 @@ module VX_dmem_controller (
|
|||
.i_p_read_or_write (read_or_write),
|
||||
.o_p_readdata (cache_driver_out_data),
|
||||
.o_p_delay (cache_delay),
|
||||
.o_m_addr (VX_dram_req_rsp.o_m_addr),
|
||||
.o_m_evict_addr (VX_dram_req_rsp.o_m_evict_addr),
|
||||
.o_m_read_addr (VX_dram_req_rsp.o_m_read_addr),
|
||||
.o_m_valid (VX_dram_req_rsp.o_m_valid),
|
||||
.o_m_writedata (VX_dram_req_rsp.o_m_writedata),
|
||||
.o_m_read_or_write (VX_dram_req_rsp.o_m_read_or_write),
|
||||
|
@ -68,8 +67,7 @@ module VX_dmem_controller (
|
|||
|
||||
|
||||
assign VX_dcache_rsp.in_cache_driver_out_data = to_shm ? sm_driver_out_data : cache_driver_out_data;
|
||||
// assign VX_dcache_rsp.delay = sm_delay;
|
||||
assign VX_dcache_rsp.delay = sm_delay || (!cache_delay);
|
||||
assign VX_dcache_rsp.delay = sm_delay || cache_delay;
|
||||
|
||||
|
||||
endmodule
|
|
@ -25,10 +25,6 @@ VX_inst_meta_inter fe_inst_meta_fd();
|
|||
VX_frE_to_bckE_req_inter VX_frE_to_bckE_req();
|
||||
VX_inst_meta_inter fd_inst_meta_de();
|
||||
|
||||
// From decode
|
||||
wire decode_branch_stall;
|
||||
|
||||
|
||||
wire total_freeze = schedule_delay;
|
||||
|
||||
/* verilator lint_off UNUSED */
|
||||
|
|
37
rtl/VX_lsu.v
37
rtl/VX_lsu.v
|
@ -3,7 +3,8 @@
|
|||
|
||||
|
||||
module VX_lsu (
|
||||
// input wire clk,
|
||||
input wire clk,
|
||||
input wire reset,
|
||||
VX_lsu_req_inter VX_lsu_req,
|
||||
|
||||
// Write back to GPR
|
||||
|
@ -14,7 +15,7 @@ module VX_lsu (
|
|||
output wire out_delay
|
||||
);
|
||||
|
||||
// VX_inst_mem_wb_inter VX_mem_wb_temp();
|
||||
VX_inst_mem_wb_inter VX_mem_wb_temp();
|
||||
|
||||
assign out_delay = VX_dcache_rsp.delay;
|
||||
|
||||
|
@ -33,32 +34,32 @@ module VX_lsu (
|
|||
for (index = 0; index <= `NT_M1; index = index + 1) begin
|
||||
assign VX_dcache_req.out_cache_driver_in_address[index] = address[index];
|
||||
assign VX_dcache_req.out_cache_driver_in_data[index] = VX_lsu_req.store_data[index];
|
||||
assign VX_dcache_req.out_cache_driver_in_valid[index] = (VX_lsu_req.valid[index] && !VX_dcache_rsp.delay);
|
||||
assign VX_dcache_req.out_cache_driver_in_valid[index] = (VX_lsu_req.valid[index]);
|
||||
|
||||
assign VX_mem_wb.loaded_data[index] = VX_dcache_rsp.in_cache_driver_out_data[index];
|
||||
assign VX_mem_wb_temp.loaded_data[index] = VX_dcache_rsp.in_cache_driver_out_data[index];
|
||||
end
|
||||
|
||||
assign VX_dcache_req.out_cache_driver_in_mem_read = VX_lsu_req.mem_read;
|
||||
assign VX_dcache_req.out_cache_driver_in_mem_write = VX_lsu_req.mem_write;
|
||||
|
||||
|
||||
assign VX_mem_wb.rd = VX_lsu_req.rd;
|
||||
assign VX_mem_wb.wb = VX_lsu_req.wb;
|
||||
assign VX_mem_wb.wb_valid = VX_lsu_req.valid;
|
||||
assign VX_mem_wb.wb_warp_num = VX_lsu_req.warp_num;
|
||||
assign VX_mem_wb_temp.rd = VX_lsu_req.rd;
|
||||
assign VX_mem_wb_temp.wb = VX_lsu_req.wb;
|
||||
assign VX_mem_wb_temp.wb_valid = VX_lsu_req.valid;
|
||||
assign VX_mem_wb_temp.wb_warp_num = VX_lsu_req.warp_num;
|
||||
|
||||
|
||||
|
||||
// wire zero_temp = 0;
|
||||
// VX_generic_register #(.N(256)) register_wb_data
|
||||
// (
|
||||
// .clk (clk),
|
||||
// .reset(zero_temp),
|
||||
// .stall(zero_temp),
|
||||
// .flush(zero_temp),
|
||||
// .in ({VX_mem_wb_temp.loaded_data, VX_mem_wb_temp.rd, VX_mem_wb_temp.wb, VX_mem_wb_temp.wb_valid, VX_mem_wb_temp.wb_warp_num}),
|
||||
// .out ({VX_mem_wb.loaded_data , VX_mem_wb.rd , VX_mem_wb.wb , VX_mem_wb.wb_valid , VX_mem_wb.wb_warp_num })
|
||||
// );
|
||||
wire zero_temp = 0;
|
||||
VX_generic_register #(.N(142)) register_wb_data
|
||||
(
|
||||
.clk (clk),
|
||||
.reset(reset),
|
||||
.stall(zero_temp),
|
||||
.flush(out_delay),
|
||||
.in ({VX_mem_wb_temp.loaded_data, VX_mem_wb_temp.rd, VX_mem_wb_temp.wb, VX_mem_wb_temp.wb_valid, VX_mem_wb_temp.wb_warp_num}),
|
||||
.out ({VX_mem_wb.loaded_data , VX_mem_wb.rd , VX_mem_wb.wb , VX_mem_wb.wb_valid , VX_mem_wb.wb_warp_num })
|
||||
);
|
||||
|
||||
|
||||
endmodule // Memory
|
||||
|
|
|
@ -10,16 +10,15 @@ module VX_priority_encoder_w_mask
|
|||
);
|
||||
|
||||
integer i;
|
||||
always @(*) begin
|
||||
always @(valids) begin
|
||||
index = 0;
|
||||
found = 0;
|
||||
mask = 0;
|
||||
for (i = 0; i < N; i=i+1)
|
||||
begin
|
||||
if (!found && valids[i]) begin
|
||||
for (i = 0; i < N; i=i+1) begin
|
||||
if (valids[i]) begin
|
||||
index = i[$clog2(N)-1:0];
|
||||
found = 1;
|
||||
mask[i[$clog2(N)-1:0]] = 1;
|
||||
mask[i[$clog2(N)-1:0]] = 1 << i;
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
32
rtl/Vortex.v
32
rtl/Vortex.v
|
@ -8,7 +8,8 @@ module Vortex(
|
|||
input wire[31:0] icache_response_instruction,
|
||||
output wire[31:0] icache_request_pc_address,
|
||||
// Req
|
||||
output reg [31:0] o_m_addr,
|
||||
output reg [31:0] o_m_read_addr,
|
||||
output reg [31:0] o_m_evict_addr,
|
||||
output reg o_m_valid,
|
||||
output reg [31:0] o_m_writedata[`NUMBER_BANKS - 1:0][`NUM_WORDS_PER_BLOCK-1:0],
|
||||
output reg o_m_read_or_write,
|
||||
|
@ -16,32 +17,9 @@ module Vortex(
|
|||
// Rsp
|
||||
input wire [31:0] i_m_readdata[`NUMBER_BANKS - 1:0][`NUM_WORDS_PER_BLOCK-1:0],
|
||||
input wire i_m_ready,
|
||||
// Remove Start
|
||||
input wire[31:0] in_cache_driver_out_data[`NT_M1:0],
|
||||
output wire[31:0] out_cache_driver_in_address[`NT_M1:0],
|
||||
output wire[2:0] out_cache_driver_in_mem_read,
|
||||
output wire[2:0] out_cache_driver_in_mem_write,
|
||||
output wire out_cache_driver_in_valid[`NT_M1:0],
|
||||
output wire[31:0] out_cache_driver_in_data[`NT_M1:0],
|
||||
// Remove end
|
||||
output wire out_ebreak
|
||||
output wire out_ebreak
|
||||
);
|
||||
|
||||
// assign out_cache_driver_in_address = 0;
|
||||
assign out_cache_driver_in_mem_read = `NO_MEM_READ;
|
||||
assign out_cache_driver_in_mem_write = `NO_MEM_WRITE;
|
||||
// assign out_cache_driver_in_valid = 0;
|
||||
// assign out_cache_driver_in_data = 0;
|
||||
|
||||
// assign out_cache_driver_in_address = VX_dcache_req.out_cache_driver_in_address;
|
||||
// assign out_cache_driver_in_mem_read = VX_dcache_req.out_cache_driver_in_mem_read;
|
||||
// assign out_cache_driver_in_mem_write = VX_dcache_req.out_cache_driver_in_mem_write;
|
||||
// assign out_cache_driver_in_valid = VX_dcache_req.out_cache_driver_in_valid;
|
||||
// assign out_cache_driver_in_data = VX_dcache_req.out_cache_driver_in_data;
|
||||
|
||||
// assign VX_dcache_rsp.in_cache_driver_out_data = in_cache_driver_out_data;
|
||||
|
||||
|
||||
// Dcache Interface
|
||||
|
||||
VX_dcache_response_inter VX_dcache_rsp();
|
||||
|
@ -50,7 +28,8 @@ VX_dcache_request_inter VX_dcache_req();
|
|||
|
||||
VX_dram_req_rsp_inter VX_dram_req_rsp();
|
||||
|
||||
assign o_m_addr = VX_dram_req_rsp.o_m_addr;
|
||||
assign o_m_read_addr = VX_dram_req_rsp.o_m_read_addr;
|
||||
assign o_m_evict_addr = VX_dram_req_rsp.o_m_evict_addr;
|
||||
assign o_m_valid = VX_dram_req_rsp.o_m_valid;
|
||||
assign o_m_read_or_write = VX_dram_req_rsp.o_m_read_or_write;
|
||||
|
||||
|
@ -61,7 +40,6 @@ genvar curr_word;
|
|||
for (curr_bank = 0; curr_bank < `NUMBER_BANKS; curr_bank = curr_bank + 1) begin
|
||||
|
||||
for (curr_word = 0; curr_word < `NUM_WORDS_PER_BLOCK; curr_word = curr_word + 1) begin
|
||||
|
||||
assign o_m_writedata[curr_bank][curr_word] = VX_dram_req_rsp.o_m_writedata[curr_bank][curr_word];
|
||||
assign VX_dram_req_rsp.i_m_readdata[curr_bank][curr_word] = i_m_readdata[curr_bank][curr_word];
|
||||
|
||||
|
|
3
rtl/cache/VX_Cache_Bank.v
vendored
3
rtl/cache/VX_Cache_Bank.v
vendored
|
@ -46,7 +46,7 @@ module VX_Cache_Bank
|
|||
// Inputs
|
||||
input wire clk;
|
||||
input wire [3:0] state;
|
||||
//input wire write_from_mem;
|
||||
//input wire write_from_mem;
|
||||
|
||||
// Reading Data
|
||||
input wire[$clog2(NUMBER_INDEXES)-1:0] actual_index;
|
||||
|
@ -118,7 +118,6 @@ module VX_Cache_Bank
|
|||
.evict (write_from_mem),
|
||||
.data_write(data_write),
|
||||
.tag_write (o_tag),
|
||||
|
||||
// Outputs
|
||||
.tag_use (tag_use),
|
||||
.data_use (data_use),
|
||||
|
|
67
rtl/cache/VX_d_cache.v
vendored
67
rtl/cache/VX_d_cache.v
vendored
|
@ -10,7 +10,7 @@
|
|||
|
||||
`include "../VX_define.v"
|
||||
//`include "VX_priority_encoder.v"
|
||||
`include "VX_Cache_Bank.v"
|
||||
// `include "VX_Cache_Bank.v"
|
||||
//`include "cache_set.v"
|
||||
|
||||
|
||||
|
@ -102,7 +102,6 @@ module VX_d_cache(clk,
|
|||
|
||||
|
||||
|
||||
reg[`NT_M1:0] threads_serviced_Qual;
|
||||
|
||||
VX_cache_bank_valid #(.NUMBER_BANKS(NUMBER_BANKS)) multip_banks(
|
||||
.i_p_valid (use_valid),
|
||||
|
@ -111,38 +110,52 @@ module VX_d_cache(clk,
|
|||
);
|
||||
|
||||
|
||||
reg detect_bank_conflict;
|
||||
genvar bank_ind;
|
||||
for (bank_ind = 0; bank_ind < NUMBER_BANKS; bank_ind=bank_ind+1)
|
||||
begin
|
||||
assign detect_bank_conflict = detect_bank_conflict | ($countones(thread_track_banks[bank_ind]) > 1);
|
||||
|
||||
VX_priority_encoder_w_mask #(.N(`NT)) choose_thread(
|
||||
.valids(thread_track_banks[bank_ind]),
|
||||
.mask (use_mask_per_bank[bank_ind]),
|
||||
.index (index_per_bank[bank_ind]),
|
||||
.found (valid_per_bank[bank_ind])
|
||||
);
|
||||
reg[`NT_M1:0] threads_serviced_Qual;
|
||||
// reg detect_bank_conflict;
|
||||
// genvar bank_ind;
|
||||
// always @(*) begin
|
||||
// for (bank_ind = 0; bank_ind < NUMBER_BANKS; bank_ind=bank_ind+1)
|
||||
// begin
|
||||
// detect_bank_conflict = detect_bank_conflict | ($countones(thread_track_banks[bank_ind]) > 1);
|
||||
|
||||
////////////////
|
||||
|
||||
assign new_final_data_read[index_per_bank[bank_ind]] = hit_per_bank[bank_ind] ? readdata_per_bank[bank_ind] : 0;
|
||||
|
||||
assign threads_serviced_per_bank[bank_ind] = use_mask_per_bank[bank_ind] & {`NT{hit_per_bank[bank_ind]}};
|
||||
|
||||
end
|
||||
// end
|
||||
// end
|
||||
|
||||
genvar bid;
|
||||
for (bid = 0; bid < NUMBER_BANKS; bid=bid+1)
|
||||
begin
|
||||
assign threads_serviced_Qual = threads_serviced_Qual | threads_serviced_per_bank[bid];
|
||||
wire[`NT_M1:0] use_threads_track_banks = thread_track_banks[bid];
|
||||
VX_priority_encoder_w_mask #(.N(`NT)) choose_thread(
|
||||
.valids(use_threads_track_banks),
|
||||
.mask (use_mask_per_bank[bid]),
|
||||
.index (index_per_bank[bid]),
|
||||
.found (valid_per_bank[bid])
|
||||
);
|
||||
|
||||
assign new_final_data_read[index_per_bank[bid]] = hit_per_bank[bid] ? readdata_per_bank[bid] : 0;
|
||||
|
||||
assign threads_serviced_per_bank[bid] = use_mask_per_bank[bid] & {`NT{hit_per_bank[bid]}};
|
||||
end
|
||||
|
||||
|
||||
wire[NUMBER_BANKS - 1 : 0] detect_bank_miss = (valid_per_bank & ~hit_per_bank);
|
||||
// genvar tid;
|
||||
|
||||
assign threads_serviced_Qual = threads_serviced_per_bank[0] | threads_serviced_per_bank[1] | threads_serviced_per_bank[2] | threads_serviced_per_bank[3] | threads_serviced_per_bank[4] | threads_serviced_per_bank[5] | threads_serviced_per_bank[6] | threads_serviced_per_bank[7];
|
||||
// for(tid = 0; tid )
|
||||
wire[NUMBER_BANKS - 1 : 0] detect_bank_miss;
|
||||
// genvar bbid;
|
||||
// always @(*) begin
|
||||
// for (bbid = 0; bbid < NUMBER_BANKS; bbid=bbid+1)
|
||||
// begin
|
||||
// assign threads_serviced_Qual = threads_serviced_Qual | threads_serviced_per_bank[bbid];
|
||||
// end
|
||||
// end
|
||||
|
||||
|
||||
assign detect_bank_miss = (valid_per_bank & ~hit_per_bank);
|
||||
|
||||
wire delay;
|
||||
assign delay = (new_stored_valid != 0); // add other states
|
||||
assign delay = (new_stored_valid != 0) || (state != CACHE_IDLE); // add other states
|
||||
|
||||
assign o_p_delay = delay;
|
||||
|
||||
|
@ -173,7 +186,7 @@ module VX_d_cache(clk,
|
|||
always @(posedge clk) begin
|
||||
state <= new_state;
|
||||
|
||||
if (state == CACHE_IDLE) stored_valid <= new_stored_valid;
|
||||
stored_valid <= new_stored_valid;
|
||||
|
||||
if (miss_found) begin
|
||||
miss_addr <= i_p_addr[send_index_to_bank[miss_bank_index]];
|
||||
|
@ -220,10 +233,10 @@ module VX_d_cache(clk,
|
|||
.readdata (readdata_per_bank[bank_id]), // Data read
|
||||
.eviction_addr (eviction_addr_per_bank[bank_id]),
|
||||
.data_evicted (o_m_writedata[bank_id]),
|
||||
.eviction_wb (eviction_wb[bank_ind]), // Something needs to be written back
|
||||
.eviction_wb (eviction_wb[bank_id]), // Something needs to be written back
|
||||
|
||||
|
||||
.fetched_writedata(i_m_readdata[bank_ind]) // Data From memory
|
||||
.fetched_writedata(i_m_readdata[bank_id]) // Data From memory
|
||||
);
|
||||
|
||||
end
|
||||
|
|
568
rtl/cache/VX_d_cache_old.v
vendored
568
rtl/cache/VX_d_cache_old.v
vendored
|
@ -1,568 +0,0 @@
|
|||
// Cache Memory (8way 4word) //
|
||||
// i_ means input port //
|
||||
// o_ means output port //
|
||||
// _p_ means data exchange with processor //
|
||||
// _m_ means data exchange with memory //
|
||||
|
||||
|
||||
// TO DO:
|
||||
// - Send in a response from memory of what the data is from the test bench
|
||||
|
||||
`include "VX_define.v"
|
||||
//`include "VX_priority_encoder.v"
|
||||
`include "VX_Cache_Bank.v"
|
||||
//`include "cache_set.v"
|
||||
|
||||
|
||||
module VX_d_cache(clk,
|
||||
rst,
|
||||
i_p_initial_request,
|
||||
i_p_addr,
|
||||
//i_p_byte_en,
|
||||
i_p_writedata,
|
||||
i_p_read_or_write, // 0 = Read | 1 = Write
|
||||
i_p_valid,
|
||||
//i_p_write,
|
||||
o_p_readdata,
|
||||
o_p_readdata_valid,
|
||||
o_p_waitrequest, // 0 = all threads done | 1 = Still threads that need to
|
||||
|
||||
o_m_addr,
|
||||
//o_m_byte_en,
|
||||
o_m_writedata,
|
||||
|
||||
o_m_read_or_write, // 0 = Read | 1 = Write
|
||||
o_m_valid,
|
||||
//o_m_write,
|
||||
i_m_readdata,
|
||||
|
||||
//i_m_readdata_ready,
|
||||
//i_m_waitrequest,
|
||||
i_m_ready
|
||||
|
||||
//cnt_r,
|
||||
//cnt_w,
|
||||
//cnt_hit_r,
|
||||
//cnt_hit_w
|
||||
//cnt_wb_r,
|
||||
//cnt_wb_w
|
||||
);
|
||||
|
||||
parameter NUMBER_BANKS = 8;
|
||||
|
||||
localparam CACHE_IDLE = 0; // Idle
|
||||
localparam SORT_BY_BANK = 1; // Determines the bank each thread will access
|
||||
localparam INITIAL_ACCESS = 2; // Accesses the bank and checks if it is a hit or miss
|
||||
localparam INITIAL_PROCESSING = 3; // Check to see if there were misses
|
||||
localparam CONTINUED_PROCESSING = 4; // Keep checking status of banks that need to be written back or fetched
|
||||
localparam DIRTY_EVICT_GRAB_BLOCK = 5; // Grab the full block of dirty data
|
||||
localparam DIRTY_EVICT_WB = 6; // Write back this block into memory
|
||||
localparam FETCH_FROM_MEM = 7; // Send a request to mem looking for read data
|
||||
localparam FETCH2 = 8; // Stall until memory gets back with the data
|
||||
localparam UPDATE_CACHE = 9; // Update the cache with the data read from mem
|
||||
localparam RE_ACCESS = 10; // Access the cache after the block has been fetched from memory
|
||||
localparam RE_ACCESS_PROCESSING = 11; // Access the cache after the block has been fetched from memory
|
||||
|
||||
|
||||
//parameter cache_entry = 9;
|
||||
input wire clk, rst;
|
||||
input wire [`NT_M1:0] i_p_valid;
|
||||
//input wire [`NT_M1:0][24:0] i_p_addr; // FIXME
|
||||
input wire [`NT_M1:0][31:0] i_p_addr; // FIXME
|
||||
input wire i_p_initial_request;
|
||||
//input wire [3:0] i_p_byte_en;
|
||||
input wire [`NT_M1:0][31:0] i_p_writedata;
|
||||
input wire i_p_read_or_write; //, i_p_write;
|
||||
output reg [`NT_M1:0][31:0] o_p_readdata;
|
||||
output reg [`NT_M1:0] o_p_readdata_valid;
|
||||
output wire o_p_waitrequest;
|
||||
//output reg [24:0] o_m_addr; // Only one address is sent out at a time to memory -- FIXME
|
||||
output reg [31:0] o_m_addr; // Address is xxxxxxxxxxoooobbbyy
|
||||
output reg o_m_valid;
|
||||
//output wire [255:0][31:0] evicted_data;
|
||||
//output wire [3:0] o_m_byte_en;
|
||||
//output reg [(NUMBER_BANKS * 32) - 1:0] o_m_writedata;
|
||||
output reg[NUMBER_BANKS - 1:0][`NUM_WORDS_PER_BLOCK-1:0][31:0] o_m_writedata;
|
||||
output reg o_m_read_or_write; //, o_m_write;
|
||||
//input wire [(NUMBER_BANKS * 32) - 1:0] i_m_readdata; // Read Data that is passed from the memory module back to the controller
|
||||
input wire[NUMBER_BANKS - 1:0][`NUM_WORDS_PER_BLOCK-1:0][31:0] i_m_readdata;
|
||||
//input wire i_m_readdata_ready;
|
||||
//input wire i_m_waitrequest;
|
||||
input wire i_m_ready;
|
||||
|
||||
//output reg [31:0] cnt_r;
|
||||
//output reg [31:0] cnt_w;
|
||||
//output reg [31:0] cnt_hit_r;
|
||||
//output reg [31:0] cnt_hit_w;
|
||||
//output reg [31:0] cnt_wb_r;
|
||||
//output reg [31:0] cnt_wb_w;
|
||||
|
||||
//wire [1:0] tag [`NT_M1:0];
|
||||
//wire [3:0] index [`NT_M1:0];
|
||||
//wire [2:0] bank [`NT_M1:0];
|
||||
//wire all_done;
|
||||
|
||||
//integer i;
|
||||
reg [`NT_M1:0] thread_done; // Maybe should have "thread_serviced" and "thread_done", serviced==checked cache
|
||||
//reg [`NT_M1:0] thread_serviced; // Maybe should have "thread_serviced" and "thread_done", serviced==checked cache
|
||||
reg [NUMBER_BANKS - 1:0] banks_ready;
|
||||
//reg [NUMBER_BANKS - 1:0] banks_missed;
|
||||
reg [NUMBER_BANKS - 1:0] banks_to_service;
|
||||
reg [NUMBER_BANKS - 1:0] banks_wb_needed;
|
||||
reg [NUMBER_BANKS - 1:0][31:0] banks_wb_addr;
|
||||
//reg [NUMBER_BANKS - 1:0] bank_states;
|
||||
//reg [NUMBER_BANKS - 1:0][31:0] banks_wb_data;
|
||||
//reg [NUMBER_BANKS - 1:0][13:0] banks_in_addr;
|
||||
|
||||
|
||||
reg [3:0] state;
|
||||
reg [NUMBER_BANKS - 1:0][31:0] data_from_bank;
|
||||
//reg got_valid_data;
|
||||
//reg [31:0] data_to_write;
|
||||
|
||||
|
||||
//reg [`NT_M1:0] thread_track_bank_0;
|
||||
//reg [`NT_M1:0] thread_track_bank_1;
|
||||
//reg [`NT_M1:0] thread_track_bank_2;
|
||||
//reg [`NT_M1:0] thread_track_bank_3;
|
||||
//reg [`NT_M1:0] thread_track_bank_4;
|
||||
//reg [`NT_M1:0] thread_track_bank_5;
|
||||
//reg [`NT_M1:0] thread_track_bank_6;
|
||||
//reg [`NT_M1:0] thread_track_bank_7;
|
||||
reg [NUMBER_BANKS - 1 : 0][`NT_M1:0] thread_track_banks;
|
||||
reg [NUMBER_BANKS - 1 : 0] bank_has_access; // Will track if a bank has been accessed in this cycle
|
||||
reg [NUMBER_BANKS - 1 : 0][31:0] bank_access_addr;
|
||||
reg [NUMBER_BANKS - 1 : 0][31:0] bank_access_data;
|
||||
reg [NUMBER_BANKS - 1 : 0][1:0] threads_in_banks;
|
||||
|
||||
|
||||
//reg [1:0] thread_in_memory; // keeps track of threadID which is in memory
|
||||
reg rd_or_wr;
|
||||
//reg did_miss, needs_service; Commented out Oct 21
|
||||
|
||||
integer bnk;
|
||||
integer found;
|
||||
integer t_id;
|
||||
//integer num_misses;
|
||||
//integer num_evictions_to_wb;
|
||||
integer i; //reg [1:0] correct_tag;
|
||||
integer index;
|
||||
//reg [3:0] correct_index;
|
||||
|
||||
//assign tag = i_p_addr[13:12];
|
||||
|
||||
assign o_p_waitrequest = (thread_done == 4'hF) ? 1'b0 : 1'b1; // change thread_done to be generic
|
||||
//assign did_miss = (banks_missed != 8'h0) ? 1'b1 : 1'b0;
|
||||
//assign needs_service = ((banks_to_service != 8'b0 || banks_to_service_temp != 8'b0)) ? 1'b1 : 1'b0; // added banks_to_service temp
|
||||
//assign w_Test1 = r_Check ? 1'b1 : 1'b0;
|
||||
//for ( i = 0;i < `NT_M1;i = i + 1) begin
|
||||
// assign tag[i] = i_p_addr[i][13:12];
|
||||
|
||||
// Fares
|
||||
// wire no_bank_misses;
|
||||
// assign no_bank_misses = banks_to_service != 8'b0;
|
||||
|
||||
reg[NUMBER_BANKS - 1:0] banks_to_service_temp;
|
||||
reg[NUMBER_BANKS - 1:0] banks_to_wb;
|
||||
reg[NUMBER_BANKS - 1:0] banks_to_wb_temp;
|
||||
reg[NUMBER_BANKS - 1:0] banks_all_help;
|
||||
|
||||
|
||||
always @(posedge clk) begin
|
||||
if (rst) begin
|
||||
state <= CACHE_IDLE;
|
||||
//banks_ready <= 8'b0;
|
||||
//cnt_r <= 0;
|
||||
//cnt_w <= 0;
|
||||
//cnt_hit_r <= 0;
|
||||
//cnt_hit_w <= 0;
|
||||
//cnt_wb_r <= 0;
|
||||
//cnt_wb_w <= 0;
|
||||
|
||||
end else begin
|
||||
// Change Logic of which state the cache is in
|
||||
case (state)
|
||||
CACHE_IDLE:begin
|
||||
if (i_p_initial_request == 1'b1) begin
|
||||
state <= SORT_BY_BANK;
|
||||
end
|
||||
end
|
||||
SORT_BY_BANK:begin
|
||||
state <= INITIAL_ACCESS;
|
||||
end
|
||||
INITIAL_ACCESS:begin
|
||||
if (thread_done == 4'hF) begin
|
||||
state <= CACHE_IDLE;
|
||||
end else begin
|
||||
state <= INITIAL_PROCESSING;
|
||||
end
|
||||
end
|
||||
INITIAL_PROCESSING:begin
|
||||
//if (bank_has_access == banks_ready ) begin // if all hits
|
||||
if (thread_done == 4'hF) begin
|
||||
state <= INITIAL_ACCESS;
|
||||
end else begin
|
||||
state <= CONTINUED_PROCESSING;
|
||||
end
|
||||
|
||||
end
|
||||
CONTINUED_PROCESSING:begin
|
||||
if (banks_to_wb == 8'b0 && banks_to_service == 8'b0) begin // If all threads are done, then the cache can go back into idle state (not currently fetching any requests)
|
||||
//if (banks_to_wb_temp == 8'b0 && banks_to_service_temp == 8'b0) begin
|
||||
state <= INITIAL_ACCESS;
|
||||
//end else if (num_misses > 0) begin
|
||||
end else if ((banks_to_wb != 8'b0)) begin // change 1pm
|
||||
//end else if ((banks_to_wb_temp != 8'b0)) begin // change 1pm
|
||||
state <= DIRTY_EVICT_GRAB_BLOCK;
|
||||
//end else if (did_miss == 1'b1 || needs_service == 1'b1) begin
|
||||
end else if(banks_to_service != 8'b0) begin
|
||||
//end else if(banks_to_service_temp != 8'b0) begin
|
||||
state <= FETCH_FROM_MEM;
|
||||
// end else if (did_miss == 1'b0 && num_evictions_to_wb > 0) begin
|
||||
//end else if (needs_service == 1'b0 && did_miss == 1'b0 && (banks_to_wb != 8'b0)) begin
|
||||
//end else if (did_miss == 1'b0 && needs_service == 1'b0) begin
|
||||
//state <= INITIAL_ACCESS;
|
||||
end
|
||||
end
|
||||
FETCH_FROM_MEM:begin
|
||||
state <= FETCH2;
|
||||
end
|
||||
FETCH2:begin
|
||||
if (i_m_ready == 1'b1) begin
|
||||
state <= UPDATE_CACHE; // Not sure about this one !!!!!! Check
|
||||
end else begin
|
||||
state <= FETCH2;
|
||||
end
|
||||
end
|
||||
UPDATE_CACHE:begin
|
||||
state <= RE_ACCESS;
|
||||
end
|
||||
RE_ACCESS:begin
|
||||
state <= CONTINUED_PROCESSING;
|
||||
end
|
||||
RE_ACCESS_PROCESSING: begin
|
||||
state <= CONTINUED_PROCESSING;
|
||||
end
|
||||
DIRTY_EVICT_GRAB_BLOCK:begin
|
||||
state <= DIRTY_EVICT_WB;
|
||||
end
|
||||
DIRTY_EVICT_WB:begin
|
||||
state <= CONTINUED_PROCESSING;
|
||||
end
|
||||
endcase
|
||||
end
|
||||
|
||||
//tag[`NT_M1:0] <= i_p_addr[`NT_M1:0][13:12];
|
||||
end
|
||||
|
||||
// Change values which will be fed into the cache
|
||||
always @(*) begin
|
||||
case (state)
|
||||
CACHE_IDLE:begin
|
||||
thread_done = 0;
|
||||
o_m_read_or_write = 0;
|
||||
o_m_valid = 0;
|
||||
o_m_writedata = 0;
|
||||
o_p_readdata = 0;
|
||||
o_p_readdata_valid = 0;
|
||||
bank_has_access = 8'b0;
|
||||
//bank_states = CACHE_IDLE;
|
||||
//thread_track_bank_0 = 4'b0;
|
||||
//thread_track_bank_1 = 4'b0;
|
||||
//thread_track_bank_2 = 4'b0;
|
||||
//thread_track_bank_3 = 4'b0;
|
||||
//thread_track_bank_4 = 4'b0;
|
||||
//thread_track_bank_5 = 4'b0;
|
||||
//thread_track_bank_6 = 4'b0;
|
||||
//thread_track_bank_7 = 4'b0;
|
||||
for (bnk = 0; bnk < NUMBER_BANKS; bnk = bnk + 1) begin
|
||||
thread_track_banks[bnk] = 4'b0;
|
||||
end
|
||||
end
|
||||
SORT_BY_BANK:begin
|
||||
//bank_states = SORT_BY_BANK;
|
||||
rd_or_wr = i_p_read_or_write;
|
||||
for (t_id = 0; t_id <= `NT_M1; t_id = t_id + 1) begin
|
||||
//t_id = {1'b0,t_id};
|
||||
if (i_p_valid[t_id] == 1'b0) begin
|
||||
thread_done[t_id] = 1'b1;
|
||||
end
|
||||
//if (i_p_valid[t_id] == 1'b1 && thread_done[t_id] == 1'b0) begin // Need logic for thread done
|
||||
else if (i_p_addr[t_id][4:2] == 3'b000) begin
|
||||
//banks_in_addr[0] = i_p_addr[t_id]; // WIll need to do this later
|
||||
//thread_track_bank_0[t_id] = 1'b1;
|
||||
thread_track_banks[0][t_id] = 1'b1;
|
||||
end
|
||||
else if (i_p_addr[t_id][4:2] == 3'b001) begin // !!!!!!!
|
||||
//banks_in_addr[0] = i_p_addr[t_id]; // WIll need to do this later
|
||||
//thread_track_bank_1[t_id] = 1'b1;
|
||||
thread_track_banks[1][t_id] = 1'b1;
|
||||
end
|
||||
else if (i_p_addr[t_id][4:2] == 3'b010) begin
|
||||
//banks_in_addr[0] = i_p_addr[t_id]; // WIll need to do this later
|
||||
//thread_track_bank_2[t_id] = 1'b1;
|
||||
thread_track_banks[2][t_id] = 1'b1;
|
||||
end
|
||||
else if (i_p_addr[t_id][4:2] == 3'b011) begin
|
||||
//banks_in_addr[0] = i_p_addr[t_id]; // WIll need to do this later
|
||||
//thread_track_bank_3[t_id] = 1'b1;
|
||||
thread_track_banks[3][t_id] = 1'b1;
|
||||
end
|
||||
else if (i_p_addr[t_id][4:2] == 3'b100) begin
|
||||
//banks_in_addr[0] = i_p_addr[t_id]; // WIll need to do this later
|
||||
//thread_track_bank_4[t_id] = 1'b1;
|
||||
thread_track_banks[4][t_id] = 1'b1;
|
||||
end
|
||||
else if (i_p_addr[t_id][4:2] == 3'b101) begin
|
||||
//banks_in_addr[0] = i_p_addr[t_id]; // WIll need to do this later
|
||||
//thread_track_bank_5[t_id] = 1'b1;
|
||||
thread_track_banks[5][t_id] = 1'b1;
|
||||
end
|
||||
else if (i_p_addr[t_id][4:2] == 3'b110) begin
|
||||
//banks_in_addr[0] = i_p_addr[t_id]; // WIll need to do this later
|
||||
//thread_track_bank_6[t_id] = 1'b1;
|
||||
thread_track_banks[6][t_id] = 1'b1;
|
||||
end
|
||||
else if (i_p_addr[t_id][4:2] == 3'b111) begin
|
||||
//banks_in_addr[0] = i_p_addr[t_id]; // WIll need to do this later
|
||||
//thread_track_bank_7[t_id] = 1'b1;
|
||||
thread_track_banks[7][t_id] = 1'b1;
|
||||
end
|
||||
end
|
||||
end
|
||||
INITIAL_ACCESS:begin
|
||||
//bank_states = INITIAL_ACCESS;
|
||||
o_m_valid = 1'b0;
|
||||
|
||||
// Before Access
|
||||
// if (no_bank_misses) begin
|
||||
// Dont do anything, next clock cycle it will switch back to (Fetch from mem)
|
||||
// end else begin // Do logic to send requests to each bank (look through thread_track_bank regs)
|
||||
bank_has_access = 8'b0;
|
||||
for (t_id = 0; t_id <= `NT_M1; t_id = t_id + 1) begin
|
||||
for (bnk = 0; bnk < NUMBER_BANKS; bnk = bnk + 1) begin
|
||||
if(thread_track_banks[bnk][t_id] == 1'b1 && bank_has_access[bnk] == 1'b0) begin
|
||||
bank_has_access[bnk] = 1'b1;
|
||||
bank_access_data[bnk] = i_p_writedata[t_id];
|
||||
bank_access_addr[bnk] = i_p_addr[t_id];
|
||||
threads_in_banks[bnk] = t_id[1:0];
|
||||
end
|
||||
end
|
||||
//if (banks_wb_needed[bnk]) begin // need to fix this for multiple misses
|
||||
//o_m_read_or_write = 1'b0;
|
||||
//o_m_addr = banks_wb_addr[bnk];
|
||||
//o_m_valid = 1'b1;
|
||||
//o_m_writedata = {banks_wb_data[bnk], 96'b0};
|
||||
//end
|
||||
//if(thread_track_bank_0[t_id] == 1'b1 && bank_has_access[0] == 1'b0) begin
|
||||
//bank_has_access[0] = 1'b1;
|
||||
//bank_access_data[0] = i_p_writedata[t_id];
|
||||
//bank_access_addr[0] = i_p_addr[t_id];
|
||||
//threads_in_banks[0] = t_id;
|
||||
//end
|
||||
// NEED TO UPDATE HITS (STORE IN THREADS_DONE)
|
||||
end
|
||||
//num_misses = {28'b0, $countones(banks_missed)};
|
||||
//did_miss = (banks_missed == 4'hF);
|
||||
|
||||
// end
|
||||
|
||||
|
||||
end
|
||||
INITIAL_PROCESSING:begin
|
||||
for (bnk = 0; bnk < NUMBER_BANKS; bnk = bnk + 1) begin
|
||||
if(banks_ready[bnk]) begin // FIX to handle hits
|
||||
thread_done[threads_in_banks[bnk]] = 1'b1;
|
||||
o_p_readdata[threads_in_banks[bnk]] = data_from_bank[bnk];
|
||||
if(i_p_read_or_write == 1'b0) begin
|
||||
o_p_readdata_valid[threads_in_banks[bnk]] = 1'b1;
|
||||
end
|
||||
thread_track_banks[bnk][threads_in_banks[bnk]] = 1'b0; // Update that this thread does not need to be serviced again
|
||||
end
|
||||
end
|
||||
//banks_to_service_temp = !banks_ready; // These are clean misses
|
||||
for (bnk = 0; bnk < NUMBER_BANKS; bnk = bnk + 1) begin
|
||||
assign banks_to_service_temp[bnk] = (banks_ready[bnk] || (bank_has_access[bnk] == 0)) ? 1'b0 : 1'b1;
|
||||
assign banks_to_wb_temp[bnk] = (banks_wb_needed[bnk]);
|
||||
assign banks_all_help[bnk] = banks_to_service_temp[bnk] || banks_to_wb_temp[bnk];
|
||||
end
|
||||
//bank_has_access = 8'b0; // Oct 23
|
||||
end
|
||||
CONTINUED_PROCESSING:begin
|
||||
//for (i = `NW-1; i >= 0; i = i - 1) begin
|
||||
// if (thread_done[threads_in_banks[bnk]] == 1'b1) begin // Not sure about this logic
|
||||
// //index = i[`NW_M1:0];
|
||||
// banks_to_service_temp[i] = 1'b0;
|
||||
// banks_to_wb_temp[i] = 1'b0;
|
||||
// end
|
||||
//end
|
||||
|
||||
for (bnk = 0; bnk < NUMBER_BANKS; bnk = bnk + 1) begin
|
||||
if(banks_ready[bnk]) begin // FIX to handle hits
|
||||
thread_done[threads_in_banks[bnk]] = 1'b1;
|
||||
o_p_readdata[threads_in_banks[bnk]] = data_from_bank[bnk];
|
||||
if(i_p_read_or_write == 1'b0) begin
|
||||
o_p_readdata_valid[threads_in_banks[bnk]] = 1'b1;
|
||||
end
|
||||
thread_track_banks[bnk][threads_in_banks[bnk]] = 1'b0; // Update that this thread does not need to be serviced again
|
||||
// Added Oct 21
|
||||
banks_to_service_temp[bnk] = 1'b0;
|
||||
banks_to_wb_temp[bnk] = 1'b0;
|
||||
end
|
||||
end
|
||||
bank_has_access = 8'b0; // Oct 23
|
||||
end
|
||||
FETCH_FROM_MEM:begin
|
||||
// NEED TO ADD LOGIC TO SEE IF MISSES GO TO SAME BLOCK
|
||||
index = 0;
|
||||
found = 0;
|
||||
for (i = `NW-1; i >= 0; i = i - 1) begin
|
||||
if (banks_to_service[i]) begin // Not sure about this logic
|
||||
//index = i[`NW_M1:0];
|
||||
index = i;
|
||||
found = 1;
|
||||
end
|
||||
end
|
||||
if (found == 1) begin
|
||||
//banks_missed[index] = 0;
|
||||
//thread_done
|
||||
|
||||
//thread_in_memory = threads_in_banks[index];
|
||||
//o_m_writedata = bank_access_data[index];
|
||||
banks_to_service_temp[index] = 0;
|
||||
o_m_addr = bank_access_addr[index];
|
||||
o_m_valid = 1'b1;
|
||||
o_m_read_or_write = 1'b0;
|
||||
end
|
||||
//bank_states = FETCH_FROM_MEM;
|
||||
end
|
||||
FETCH2:begin
|
||||
o_m_valid = 1'b0;
|
||||
end
|
||||
UPDATE_CACHE:begin
|
||||
for (bnk = 0; bnk < NUMBER_BANKS; bnk = bnk + 1) begin
|
||||
//if(thread_track_banks[bnk][t_id] == 1'b1 && bank_has_access[bnk] == 1'b0) begin
|
||||
bank_has_access[bnk] = 1'b1;
|
||||
//bank_access_data[bnk] = i_m_readdata[(bnk+1)*32 - 1:bnk*32];
|
||||
bank_access_addr[bnk] = o_m_addr;
|
||||
threads_in_banks[bnk] = t_id[1:0];
|
||||
//end
|
||||
end
|
||||
//bank_access_data = i_m_readdata;
|
||||
rd_or_wr = 1'b1;
|
||||
//thread_done[thread_in_memory] = 1'b1; // Removed, new cache style - Oct 21
|
||||
//o_p_readdata[thread_in_memory] = i_m_readdata[i_p_addr[thread_in_memory][9:5]]; // Removed, new cache style
|
||||
end
|
||||
DIRTY_EVICT_WB:begin // this begininng logic should be added to dirty evict grab block
|
||||
|
||||
//thread_done[thread_in_memory] = 1'b1;
|
||||
bank_has_access = 8'b0;
|
||||
o_m_valid = 1'b1;
|
||||
end
|
||||
DIRTY_EVICT_GRAB_BLOCK:begin
|
||||
index = 0;
|
||||
found = 0;
|
||||
for (i = `NW-1; i >= 0; i = i - 1) begin
|
||||
if (banks_to_wb_temp[i]) begin
|
||||
//index = i[`NW_M1:0];
|
||||
index = i;
|
||||
found = 1;
|
||||
end
|
||||
end
|
||||
if (found == 1) begin
|
||||
banks_to_wb_temp[index] = 0;
|
||||
for (i = `NW-1; i >= 0; i = i - 1) begin
|
||||
if (banks_to_wb_temp[i] && banks_wb_addr[index][31:7] == banks_wb_addr[i][31:7]) begin
|
||||
//index = i[`NW_M1:0];
|
||||
banks_to_wb_temp[i] = 0;
|
||||
end
|
||||
end
|
||||
//thread_done
|
||||
//thread_in_memory = threads_in_banks[index];
|
||||
//o_m_writedata[(bnk+1)*32 - 1:bnk*32] = banks_wb_data[index];
|
||||
o_m_addr = banks_wb_addr[index];
|
||||
o_m_read_or_write = 1'b1;
|
||||
end
|
||||
//for (bnk = 0; bnk < NUMBER_BANKS; bnk = bnk + 1) begin
|
||||
//o_m_writedata[(bnk+1)*32 - 1:bnk*32] = banks_wb_data[index];
|
||||
//end
|
||||
// NEXT LINE CONTAINS DATA TO WB !!!! Think need to just change this to be read data and can remove banks_wb_data
|
||||
//o_m_writedata = {banks_wb_data[7],banks_wb_data[6],banks_wb_data[5],banks_wb_data[4],banks_wb_data[3],banks_wb_data[2],banks_wb_data[1],banks_wb_data[0]};
|
||||
//num_evictions_to_wb = {28'b0, $countones(banks_wb_needed)};
|
||||
rd_or_wr = 1'b0;
|
||||
for (bnk = 0; bnk < NUMBER_BANKS; bnk = bnk + 1) begin
|
||||
//if(thread_track_banks[bnk][t_id] == 1'b1 && bank_has_access[bnk] == 1'b0) begin
|
||||
bank_has_access[bnk] = 1'b1;
|
||||
bank_access_addr[bnk] = o_m_addr;
|
||||
//end
|
||||
end
|
||||
end
|
||||
RE_ACCESS:begin
|
||||
//bank_states = INITIAL_ACCESS;
|
||||
o_m_valid = 1'b0;
|
||||
|
||||
// Before Access
|
||||
// if (no_bank_misses) begin
|
||||
// Dont do anything, next clock cycle it will switch back to (Fetch from mem)
|
||||
// end else begin // Do logic to send requests to each bank (look through thread_track_bank regs)
|
||||
//bank_has_access = banks_all_help & !(banks_to_wb) & !(banks_to_service);
|
||||
for (t_id = 0; t_id <= `NT_M1; t_id = t_id + 1) begin
|
||||
for (bnk = 0; bnk < NUMBER_BANKS; bnk = bnk + 1) begin
|
||||
//bank_has_access[bnk] = banks_all_help[bnk] && !thread_done[threads_in_banks[bnk]]; // Not sure
|
||||
bank_has_access[bnk] = banks_all_help[bnk] && !thread_done[t_id]; // Not sure
|
||||
if(thread_track_banks[bnk][t_id] == 1'b1 && bank_has_access[bnk] == 1'b1) begin
|
||||
//bank_has_access[bnk] = 1'b1;
|
||||
bank_access_data[bnk] = i_p_writedata[t_id];
|
||||
bank_access_addr[bnk] = i_p_addr[t_id];
|
||||
threads_in_banks[bnk] = t_id[1:0];
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
end
|
||||
RE_ACCESS_PROCESSING:begin
|
||||
// After Access
|
||||
|
||||
end
|
||||
|
||||
endcase
|
||||
end
|
||||
|
||||
always @(posedge clk) begin
|
||||
banks_to_service <= banks_to_service_temp;
|
||||
banks_to_wb <= banks_to_wb_temp;
|
||||
end
|
||||
|
||||
|
||||
genvar bank_id;
|
||||
generate
|
||||
for (bank_id = 0; bank_id < NUMBER_BANKS; bank_id = bank_id + 1)
|
||||
begin
|
||||
VX_Cache_Bank bank_structure (
|
||||
.clk (clk),
|
||||
.state (state),
|
||||
.read_or_write (rd_or_wr),
|
||||
.valid_in (bank_has_access[bank_id]),
|
||||
.actual_index (bank_access_addr[bank_id][14:7]), // fix when size changes
|
||||
.o_tag (bank_access_addr[bank_id][31:15]), // fix when size changes
|
||||
.block_offset (bank_access_addr[bank_id][6:5]),
|
||||
.writedata (bank_access_data[bank_id]),
|
||||
//.fetched_writedata (i_m_readdata[(bank_id+1)*32-1 -: 32]),
|
||||
.fetched_writedata (i_m_readdata[bank_id[3:0]]),
|
||||
.readdata (data_from_bank[bank_id]),
|
||||
.hit (banks_ready[bank_id]),
|
||||
//.miss (banks_missed[bank_id]),
|
||||
.eviction_wb (banks_wb_needed[bank_id]),
|
||||
.eviction_addr (banks_wb_addr[bank_id]),
|
||||
//.data_evicted (o_m_writedata[(bank_id+1)*32-1 -: 32])
|
||||
.data_evicted (o_m_writedata[bank_id[3:0]])
|
||||
);
|
||||
|
||||
end
|
||||
endgenerate
|
||||
|
||||
//end
|
||||
|
||||
endmodule
|
|
@ -8,7 +8,8 @@
|
|||
interface VX_dram_req_rsp_inter ();
|
||||
|
||||
// Req
|
||||
wire [31:0] o_m_addr;
|
||||
wire [31:0] o_m_evict_addr;
|
||||
wire [31:0] o_m_read_addr;
|
||||
wire o_m_valid;
|
||||
wire[`NUMBER_BANKS - 1:0][`NUM_WORDS_PER_BLOCK-1:0][31:0] o_m_writedata;
|
||||
wire o_m_read_or_write;
|
||||
|
|
|
@ -3,6 +3,8 @@
|
|||
|
||||
#define NW 8
|
||||
|
||||
#define CACHE_NUM_BANKS 8
|
||||
#define CACHE_WORDS_PER_BLOCK 4
|
||||
|
||||
#define R_INST 51
|
||||
#define L_INST 3
|
||||
|
|
|
@ -5,11 +5,12 @@
|
|||
int main(int argc, char **argv)
|
||||
{
|
||||
|
||||
Verilated::debug(1);
|
||||
|
||||
Verilated::commandArgs(argc, argv);
|
||||
|
||||
Verilated::traceEverOn(true);
|
||||
|
||||
// Verilated::debug(1);
|
||||
|
||||
|
||||
// bool passed = true;
|
||||
|
|
|
@ -45,6 +45,8 @@ class Vortex
|
|||
VVortex * vortex;
|
||||
|
||||
unsigned start_pc;
|
||||
bool refill;
|
||||
unsigned refill_addr;
|
||||
long int curr_cycle;
|
||||
bool stop;
|
||||
bool unit_test;
|
||||
|
@ -190,120 +192,196 @@ bool Vortex::ibus_driver()
|
|||
|
||||
bool Vortex::dbus_driver()
|
||||
{
|
||||
uint32_t data_read;
|
||||
uint32_t data_write;
|
||||
uint32_t addr;
|
||||
// std::cout << "DBUS DRIVER\n" << std::endl;
|
||||
////////////////////// DBUS //////////////////////
|
||||
|
||||
bool did = false;
|
||||
|
||||
for (unsigned curr_th = 0; curr_th < NT; curr_th++)
|
||||
|
||||
if (this->refill)
|
||||
{
|
||||
if ((vortex->out_cache_driver_in_mem_write != NO_MEM_WRITE) && vortex->out_cache_driver_in_valid[curr_th])
|
||||
this->refill = false;
|
||||
unsigned unordered_mem[32];
|
||||
int num_iter = 0;
|
||||
for (int i = 0; i < CACHE_WORDS_PER_BLOCK; i++)
|
||||
{
|
||||
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];
|
||||
|
||||
if (addr == 0x00010000)
|
||||
{
|
||||
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;
|
||||
ram.writeByte( addr, &data_write);
|
||||
|
||||
} else if (vortex->out_cache_driver_in_mem_write == SH_MEM_WRITE)
|
||||
{
|
||||
data_write = ( data_write) & 0xFFFF;
|
||||
ram.writeHalf( addr, &data_write);
|
||||
} else if (vortex->out_cache_driver_in_mem_write == SW_MEM_WRITE)
|
||||
{
|
||||
// printf("STORING %x in %x \n", data_write, addr);
|
||||
data_write = data_write;
|
||||
ram.writeWord( addr, &data_write);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// 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];
|
||||
for (int j = 0; j < (CACHE_NUM_BANKS*8); j+=8)
|
||||
{
|
||||
unsigned addr = this->refill_addr + (4*num_iter);
|
||||
unsigned data_read;
|
||||
ram.getWord(addr, &data_read);
|
||||
|
||||
if (vortex->out_cache_driver_in_mem_read == LB_MEM_READ)
|
||||
{
|
||||
|
||||
vortex->in_cache_driver_out_data[curr_th] = (data_read & 0x80) ? (data_read | 0xFFFFFF00) : (data_read & 0xFF);
|
||||
|
||||
} else if (vortex->out_cache_driver_in_mem_read == LH_MEM_READ)
|
||||
{
|
||||
|
||||
vortex->in_cache_driver_out_data[curr_th] = (data_read & 0x8000) ? (data_read | 0xFFFF0000) : (data_read & 0xFFFF);
|
||||
|
||||
} else if (vortex->out_cache_driver_in_mem_read == LW_MEM_READ)
|
||||
{
|
||||
// printf("Reading mem - Addr: %x = %x\n", addr, data_read);
|
||||
// std::cout << "READING - Addr: " << std::hex << addr << " = " << data_read << "\n";
|
||||
// std::cout << std::dec;
|
||||
vortex->in_cache_driver_out_data[curr_th] = data_read;
|
||||
|
||||
} else if (vortex->out_cache_driver_in_mem_read == LBU_MEM_READ)
|
||||
{
|
||||
|
||||
vortex->in_cache_driver_out_data[curr_th] = (data_read & 0xFF);
|
||||
|
||||
} else if (vortex->out_cache_driver_in_mem_read == LHU_MEM_READ)
|
||||
{
|
||||
|
||||
vortex->in_cache_driver_out_data[curr_th] = (data_read & 0xFFFF);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
vortex->in_cache_driver_out_data[curr_th] = 0xbabebabe;
|
||||
}
|
||||
unordered_mem[i+j] = data_read;
|
||||
num_iter++;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
vortex->i_m_ready = 1;
|
||||
for (int i = 0; i < CACHE_NUM_BANKS; i++)
|
||||
{
|
||||
vortex->in_cache_driver_out_data[curr_th] = 0xbabebabe;
|
||||
for (int j = 0; j < CACHE_WORDS_PER_BLOCK; j++)
|
||||
{
|
||||
vortex->i_m_readdata[i][j] = unordered_mem[(i*CACHE_WORDS_PER_BLOCK)+j];
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (did && (NW > 1))
|
||||
else
|
||||
{
|
||||
|
||||
if (NW < NT)
|
||||
if (vortex->o_m_valid)
|
||||
{
|
||||
this->stats_total_cycles += NT % (NW -1);
|
||||
if (vortex->o_m_read_or_write)
|
||||
{
|
||||
unsigned ordered_mem[32];
|
||||
|
||||
// Create unordered mem
|
||||
unsigned unordered_mem[32];
|
||||
for (int i = 0; i < CACHE_NUM_BANKS; i++)
|
||||
{
|
||||
for (int j = 0; j < CACHE_WORDS_PER_BLOCK; j++)
|
||||
{
|
||||
unordered_mem[(i*CACHE_WORDS_PER_BLOCK)+j] = vortex->o_m_writedata[i][j];
|
||||
}
|
||||
}
|
||||
|
||||
// Order the memory
|
||||
int num_iter = 0;
|
||||
for (int i = 0; i < CACHE_NUM_BANKS; i++)
|
||||
{
|
||||
for (int j = 0; j < (CACHE_NUM_BANKS*CACHE_WORDS_PER_BLOCK); j+=CACHE_WORDS_PER_BLOCK)
|
||||
{
|
||||
printf("i: %d, j: %d, num_iter: %d\n", i, j, num_iter);
|
||||
ordered_mem[i+j] = unordered_mem[num_iter];
|
||||
num_iter++;
|
||||
}
|
||||
}
|
||||
|
||||
// Save the memory
|
||||
for (int i = 0; i < (CACHE_WORDS_PER_BLOCK * CACHE_NUM_BANKS); i++)
|
||||
{
|
||||
unsigned addr = (vortex->o_m_evict_addr) + (4*i);
|
||||
unsigned * data_addr = ordered_mem + i;
|
||||
ram.writeWord( addr, data_addr);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Respond next cycle
|
||||
this->refill = true;
|
||||
this->refill_addr = vortex->o_m_read_addr;
|
||||
}
|
||||
}
|
||||
|
||||
// uint32_t data_read;
|
||||
// uint32_t data_write;
|
||||
// uint32_t addr;
|
||||
// // 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];
|
||||
|
||||
// if (addr == 0x00010000)
|
||||
// {
|
||||
// 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;
|
||||
// ram.writeByte( addr, &data_write);
|
||||
|
||||
// } else if (vortex->out_cache_driver_in_mem_write == SH_MEM_WRITE)
|
||||
// {
|
||||
// data_write = ( data_write) & 0xFFFF;
|
||||
// ram.writeHalf( addr, &data_write);
|
||||
// } else if (vortex->out_cache_driver_in_mem_write == SW_MEM_WRITE)
|
||||
// {
|
||||
// // printf("STORING %x in %x \n", data_write, addr);
|
||||
// data_write = data_write;
|
||||
// ram.writeWord( addr, &data_write);
|
||||
// }
|
||||
|
||||
// }
|
||||
|
||||
// }
|
||||
|
||||
|
||||
|
||||
|
||||
// // 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);
|
||||
|
||||
// if (vortex->out_cache_driver_in_mem_read == LB_MEM_READ)
|
||||
// {
|
||||
|
||||
// vortex->in_cache_driver_out_data[curr_th] = (data_read & 0x80) ? (data_read | 0xFFFFFF00) : (data_read & 0xFF);
|
||||
|
||||
// } else if (vortex->out_cache_driver_in_mem_read == LH_MEM_READ)
|
||||
// {
|
||||
|
||||
// vortex->in_cache_driver_out_data[curr_th] = (data_read & 0x8000) ? (data_read | 0xFFFF0000) : (data_read & 0xFFFF);
|
||||
|
||||
// } else if (vortex->out_cache_driver_in_mem_read == LW_MEM_READ)
|
||||
// {
|
||||
// // printf("Reading mem - Addr: %x = %x\n", addr, data_read);
|
||||
// // std::cout << "READING - Addr: " << std::hex << addr << " = " << data_read << "\n";
|
||||
// // std::cout << std::dec;
|
||||
// vortex->in_cache_driver_out_data[curr_th] = data_read;
|
||||
|
||||
// } else if (vortex->out_cache_driver_in_mem_read == LBU_MEM_READ)
|
||||
// {
|
||||
|
||||
// vortex->in_cache_driver_out_data[curr_th] = (data_read & 0xFF);
|
||||
|
||||
// } else if (vortex->out_cache_driver_in_mem_read == LHU_MEM_READ)
|
||||
// {
|
||||
|
||||
// vortex->in_cache_driver_out_data[curr_th] = (data_read & 0xFFFF);
|
||||
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// vortex->in_cache_driver_out_data[curr_th] = 0xbabebabe;
|
||||
// }
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// vortex->in_cache_driver_out_data[curr_th] = 0xbabebabe;
|
||||
// }
|
||||
|
||||
// }
|
||||
|
||||
// if (did && (NW > 1))
|
||||
// {
|
||||
|
||||
// if (NW < NT)
|
||||
// {
|
||||
// this->stats_total_cycles += NT % (NW -1);
|
||||
// }
|
||||
// }
|
||||
// printf("******\n");
|
||||
|
||||
|
||||
|
@ -376,15 +454,17 @@ bool Vortex::simulate(std::string file_to_simulate)
|
|||
vortex->reset = 1;
|
||||
vortex->clk = 0;
|
||||
vortex->eval();
|
||||
// m_trace->dump(10);
|
||||
vortex->reset = 1;
|
||||
vortex->clk = 1;
|
||||
vortex->eval();
|
||||
// m_trace->dump(11);
|
||||
vortex->reset = 0;
|
||||
vortex->clk = 0;
|
||||
|
||||
// unsigned cycles;
|
||||
counter = 0;
|
||||
this->stats_total_cycles = 10;
|
||||
this->stats_total_cycles = 12;
|
||||
while (this->stop && ((counter < 2)))
|
||||
// while (this->stats_total_cycles < 10)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue