Fixed SM + added def SYN

This commit is contained in:
felsabbagh3 2019-10-22 15:56:30 -04:00
parent 3cb5820ecd
commit 1645a04b1d
13 changed files with 2388 additions and 2364 deletions

File diff suppressed because it is too large Load diff

Binary file not shown.

View file

@ -1,405 +1,405 @@
:0200000480007A
:10000000373500FF13050530930570002322B50036
:1000100003264500130500006B000500938B0600C6
:10002000130D0700130F01009303050013051000C3
:10003000635C750013010180130305006B5003001E
:10004000130515006FF0DFFE130000001300000021
:100050001300000013000000130000001300000054
:1000600013010F0013050000930F0600938D03008A
:100070001300000013000000130000001300000034
:100010001300000013000000130000000326450039
:10002000130500006B000500938B0600130D0700FD
:10003000130F01009303050013051000635C7500A6
:1000400013010180130305006B5003001305150015
:100050006FF0DFFE1300000013000000130000002B
:1000600013000000130000001300000013010F0034
:1000700013050000930F0600938D0300130000008A
:100080001300000013000000130000001300000024
:10009000EBE0BF011300000013000000130000009C
:1000A00013000000130000001300000017050000FB
:1000B0001305451B6B40050017030000130343F6AF
:1000C0006B00030067800000170200011302822406
:1000D00023200200232212002324220023263200A0
:1000E00023284200232A5200232C6200232E720070
:1000F00023208202232292022324A2022326B20278
:100100002328C202232AD202232CE202232EF20247
:10011000232002052322120523242205232632054B
:1001200023284205232A5205232C6205232E72051B
:1001300023208207232292072324A2072326B20723
:100140002328C207232AD207232CE207232EF207F3
:100150001302100067800000170200011302821BC7
:100160000320020083204200032182008321C20079
:100170000322020183224201032382018323C2015D
:100180000324020283244202032582028325C20241
:100190000326020383264203032782038327C20325
:1001A0000328020483284204032982048329C20409
:1001B000032A0205832A4205032B8205832BC205ED
:1001C000032C0206832C4206032D8206832DC206D1
:1001D000032E0207832E4207032F8207832FC207B5
:1001E0001302000067800000732500026780000092
:1001F0007325100267800000130101FE232E1100F9
:10020000232C810013040102232604FE6F00400307
:100210000327C4FEB7170000938747973307F702F9
:10022000B707008193870741B307F70013850700DD
:10023000EF0000448327C4FE938717002326F4FEB3
:100240000327C4FE9307F001E3D4E7FC130000008A
:100250008320C10103248101130101026780000092
:10026000130101FD23261102232481022322A1036D
:10027000130401031300000013070D00B71700005B
:10028000938747973307F702B707008193870741A2
:10029000B307F70013850700EF00405093070500F0
:1002A000638A070213070D00B707008113172700A1
:1002B00093878726B307F7001307100023A0E700F2
:1002C00093070D0063960700EFF01FE96F00C0056C
:1002D0007300000013070D00B717000093874797BE
:1002E0003307F702B707008193870741B307F70089
:1002F000130784FD9305070013850700EF000040F6
:10030000832704FE138107008327C4FD832584FD12
:10031000032644FE832684FE0327C4FE13850700BC
:10032000EFF0DFCF730000008320C10203248102BD
:10033000032D41021301010367800000130101FB3B
:10034000232611042324810413040105EFF0DFE9BF
:100350002324A4FE93090100930710002326F4FE32
:100360006F00C0080327C4FEB717000093874797A4
:100370003307F702B707008193870741B307F700F8
:1003800013850700EF00804193070500639A070477
:100390000327C4FEB7170000938747973307F70278
:1003A000B707008193870741B307F700130704FDE0
:1003B0009305070013850700EF004034832784FD71
:1003C00013810700832744FD832504FD0326C4FD14
:1003D000832604FE032744FE13850700EFF0DFCDDC
:1003E0008327C4FE938717002326F4FE8327C4FEC9
:1003F000032784FEE3E8E7F613810900EFF0DFCC82
:100400009307020063880704B7070081138507413B
:10041000EF00C03893070500639E0702930784FB33
:1004200093850700B707008113850741EF00002D72
:10043000832704FC138107008327C4FB832584FBE7
:10044000032644FC832684FC0327C4FC1385070091
:10045000EFF0DFBC130000008320C10403248104FB
:100460001301010567800000130101FB232611041D
:100470002324810413040105232EA4FA232CB4FAA7
:10048000232AC4FA2328D4FAEFF01FD7EFF0DFD5E0
:100490002322A4FE13090100232604FE232404FEC4
:1004A0006F000009B709FFFF33013101832784FE84
:1004B0002326F4FC832784FB2328F4FC9307010004
:1004C000232AF4FC832744FB232CF4FC832704FB1E
:1004D000232EF4FC8327C4FE2320F4FE0327C4FE4E
:1004E000B7170000938747973307F702B7070081D4
:1004F00093870741B307F7001307C4FC9305070070
:1005000013850700EF0000198327C4FE93871700A7
:100510002326F4FE8327C4FE032744FE63E4E7009A
:10052000232604FE832784FE938717002324F4FEEA
:10053000032784FE8327C4FBE366F7F61301090053
:10054000EFF0DFDF130000008320C10403248104E7
:100550001301010567800000130101FD232611022C
:100560002324810213040103232EA4FC8325C4FD4C
:10057000B707008113850704EF004035EFF0DFC6B1
:100580002320A4FE232604FE6F008006930710009C
:100590002326F4FE232404FE6F00C003B707008166
:1005A000032784FE1317270093878726B307F700D6
:1005B00003A70700930710006318F7008327C4FE02
:1005C000938717002326F4FE832784FE9387170062
:1005D0002324F4FE032784FE9307F001E3D0E7FC15
:1005E0008325C4FEB70700811385C704EF00002EE2
:1005F0000327C4FE8327C4FDE36AF7F8232204FE21
:100600006F008002B7070081032744FE13172700FD
:1006100093878726B307F70023A00700832744FEAC
:10062000938717002322F4FE832744FE032704FE4A
:10063000E3EAE7FC130000008320C10203248102E7
:100640001301010367800000130101FF23268100CD
:10065000232471011304010193870B001385070004
:100660000324C100832B8100130101016780000076
:1006700093020500130300009303700023A062009F
:1006800023A2620023A4620023A6720023A86200B2
:10069000678000009302050003A382001303130088
:1006A00023A462001383420183AE420093935E0051
:1006B0003303730003AE05002320C30103AE4500DE
:1006C0002322C30103AE85002324C30103AEC5006A
:1006D0002326C30103AE05012328C30103AE450150
:1006E000232AC301938E1E00130F20036394EE018F
:1006F000930E000023A2D201678000009302050040
:1007000003A3820013000000130000001300000088
:100710001300000013000000130000001303F3FF98
:1007200023A462001383420183AE0200930F2003CF
:10073000138F0E00130F1F006314FF01130F00002F
:1007400023A0E20193935E0033037300032E0300A2
:1007500023A0C501032E430023A2C501032E83005D
:1007600023A4C501032EC30023A6C501032E030144
:1007700023A8C501032E430123AAC50167800000F9
:100780009302050003A3820013050000130E20034B
:1007900063146E00130515006780000093020500C6
:1007A00003A3820013050000130E000063146E0003
:1007B00013051500678000009302050003A3C20023
:1007C00083A3020133B5630067800000130141FF7A
:1007D000232011002322B100834505006388050012
:1007E000EF00C001130515006FF01FFF832001000B
:1007F000832541001301C10067800000B708010094
:1008000023A0B80067800000130101FD2326110218
:100810002324810213040103232EA4FC0327C4FD17
:100820009307F00063E4E702B70700810327C4FDE4
:10083000131727009387871AB307F70083A70700CA
:1008400013850700EFF09FF86F0040079307000241
:100850002326F4FEA30504FE8327C4FE9387C7FF67
:100860000327C4FDB357F70093F7F7002322F4FEE4
:10087000832744FE6386070093071000A305F4FE58
:100880008347B4FE63820702B7070081032744FE53
:10089000131727009387871AB307F70083A707006A
:1008A00013850700EFF09FF28327C4FE9387C7FFED
:1008B0002326F4FE8327C4FEE340F0FA8320C1021E
:1008C000032481021301010367800000130101FE6C
:1008D000232E1100232C8100130401022326A4FEE1
:1008E0002324B4FE0325C4FEEFF05FEE032584FE4F
:1008F000EFF09FF1B707008113854709EFF01FED77
:10090000130000008320C1010324810113010102AF
:1009100067800000130101FD2326110223248102B8
:1009200013040103232EA4FC232CB4FC232AC4FCAF
:100930002328D4FCB76702810327C4FD23ACE71A40
:10094000B76702819387871B032784FD23A2E700F3
:10095000B76702819387871B032744FD23A4E70021
:10096000B76702819387871B032704FD23A6E7004F
:10097000EFF01F882324A4FE032704FD832784FEB1
:10098000B357F7022326F4FE032704FD832784FED2
:10099000B377F702638807008327C4FE93871700A5
:1009A0002326F4FEB76702819387871B0327C4FEC3
:1009B00023A8E700032704FD832784FE6362F70270
:1009C000B76702819386871BB7170080138687A3BA
:1009D000832584FE032504FDEFF01FA96F000002AC
:1009E000B76702819386871BB7170080138687A39A
:1009F000832504FD032504FDEFF01FA7EFF0CFFED4
:100A00002322A4FE032704FD832744FE63F8E700A6
:100A1000032544FEEFF05FB46F00C000032504FD22
:100A2000EFF09FB3130000008320C1020324810272
:100A30001301010367800000130101FA232E110442
:100A4000232C8104130401062326A4FA2324B4FAD8
:100A5000EFF09FBF232CA4FC832784FD83A707000E
:100A6000232AF4FC832784FD83A747002328F4FC72
:100A7000832784FD83A787002326F4FC832784FD36
:100A800083A707012326F4FE0327C4FE8327C4FAA5
:100A9000B307F7022324F4FE8327C4FE639A0700FA
:100AA000930710002326F4FE8327C4FA2324F4FEC0
:100AB000832784FD83A7C7002324F4FC232204FE9C
:100AC0006F00800D232004FE232E04FC6F0080079E
:100AD000032784FA832784FCB307F7020327C4FDA6
:100AE000B307F7002322F4FC032784FC8327C4FD0B
:100AF000B307F702032784FEB307F7002320F4FCB3
:100B0000832744FC93972700032744FDB307F7008E
:100B100003A70700832704FC93972700832604FD7F
:100B2000B387F60083A70700B307F702032704FE85
:100B3000B307F7002320F4FE8327C4FD9387170033
:100B4000232EF4FC0327C4FD832784FCE362F7F81B
:100B5000032784FA832784FC3307F702832784FE64
:100B6000B307F700232EF4FA8327C4FB93972700DB
:100B70000327C4FCB307F700032704FE23A0E70004
:100B8000832784FE938717002324F4FE832744FEE3
:100B9000938717002322F4FE832744FE0327C4FE15
:100BA000E3E2E7F2130000008320C105032481057E
:100BB0001301010667800000130101FC232E1102BE
:100BC000232C810213040104232EA4FC232CB4FC47
:100BD000232AC4FC2328D4FC2326E4FCB767028123
:100BE0000327C4FD23A6E71CB76702819387C71CB0
:100BF000032784FD23A2E700B76702819387C71C00
:100C0000032744FD23A4E700B76702819387C71C2D
:100C10000327C4FC23A6E700B76702819387C71C9C
:100C2000032704FD23A8E700EFF08FDC2324A4FEB4
:100C30000327C4FC832784FEB357F7022326F4FE60
:100C40000327C4FC832784FEB377F7026388070079
:100C50008327C4FE938717002326F4FEB76702811B
:100C60009387C71C0327C4FE23AAE7000327C4FCFD
:100C7000832784FE6362F702B76702819386C71CED
:100C8000B7170080138607CF832584FE032504FD54
:100C9000EFF08FFD6F000002B76702819386C71CDB
:100CA000B7170080138607CF8325C4FC032504FDF6
:100CB000EFF08FFBEFF04FD32322A4FE032704FDB8
:100CC000832744FE63F8E700032544FEEFF0DF8846
:100CD0006F00C000032504FDEFF01F881300000023
:100CE0008320C103032481031301010467800000F2
:100CF000130101FB2326110423248104130401059D
:100D0000232EA4FA232CB4FAEFF01F942320A4FE80
:100D1000832704FE83A70700232EF4FC832704FE09
:100D200083A74700232CF4FC832704FE83A78700B6
:100D3000232AF4FC832704FE83A747012326F4FE1D
:100D40000327C4FE8327C4FBB307F7022324F4FE62
:100D50008327C4FE639A0700930710002326F4FE3E
:100D60008327C4FB2324F4FE832704FE83A7C70044
:100D70002328F4FC232204FE6F00000C032784FBCD
:100D8000832704FD3307F702832784FEB307F700A8
:100D90002326F4FC032784FE832704FDB337F700E2
:100DA00093F7F70F2324F4FC832784FC93B71700F1
:100DB000A303F4FC834774FC138F0700B71700806C
:100DC000938F47E26B200F007B70FF018327C4FCE9
:100DD000939727000327C4FDB307F70083A60700F6
:100DE0008327C4FC93972700032784FDB307F700EC
:100DF00003A707008327C4FC93972700032644FD1D
:100E0000B307F6003387E60023A0E700832784FEBC
:100E1000938717002324F4FEB7170080138E87E210
:100E200067000E00130000006B300000832744FEB3
:100E3000938717002322F4FE832744FE0327C4FE72
:100E4000E3EEE7F2130000008320C10403248104D1
:100E50001301010567800000130101FC232E11021C
:100E6000232C810213040104232EA4FC232CB4FCA4
:100E7000232AC4FC2328D4FC2326E4FCB767028180
:100E80000327C4FD23A6E71CB76702819387C71C0D
:100E9000032784FD23A2E700B76702819387C71C5D
:100EA000032744FD23A4E700B76702819387C71C8B
:100EB0000327C4FC23A6E700B76702819387C71CFA
:100EC000032704FD23A8E700EFF08FB22324A4FE3C
:100ED0000327C4FC832784FEB357F7022326F4FEBE
:100EE0000327C4FC832784FEB377F70263880700D7
:100EF0008327C4FE938717002326F4FEB767028179
:100F00009387C71C0327C4FE23AAE7000327C4FC5A
:100F1000832784FE6362F702B76702819386C71C4A
:100F2000B7170080138607F9832584FE032504FD87
:100F3000EFF08FD36F000002B76702819386C71C62
:100F4000B7170080138607F98325C4FC032504FD29
:100F5000EFF08FD1EFF04FA92322A4FE032704FD69
:100F6000832744FE63F8E700032544FEEFF0CFDE5D
:100F70006F00C000032504FDEFF00FDE130000003A
:100F80008320C1030324810313010104678000004F
:100F9000130101FB232611042324810413040105FA
:100FA000232EA4FA232CB4FAEFF00FEA2320A4FE98
:100FB000832704FE83A70700232EF4FC832704FE67
:100FC00083A74700232CF4FC832704FE83A7870014
:100FD000232AF4FC832704FE83A747012326F4FE7B
:100FE0000327C4FE8327C4FBB307F7022324F4FEC0
:100FF0008327C4FE639A0700930710002326F4FE9C
:101000008327C4FB2324F4FE832704FE83A7C700A1
:101010002328F4FC232204FE6F00000C032784FB2A
:10102000832704FD3307F702832784FEB307F70005
:101030002326F4FC032784FE832704FDB337F7003F
:1010400093F7F70F2324F4FC832784FC93B717004E
:10105000A303F4FC834774FC138F0700B7170080C9
:10106000938F470C6B200F007B70FF018327C4FC1C
:10107000939727000327C4FDB307F70083A6070053
:101080008327C4FC93972700032784FDB307F70049
:1010900003A707008327C4FC93972700032644FD7A
:1010A000B307F6003387E64023A0E700832784FEDA
:1010B000938717002324F4FEB7170080138E870C44
:1010C00067000E00130000006B300000832744FE11
:1010D000938717002322F4FE832744FE0327C4FED0
:1010E000E3EEE7F2130000008320C104032481042F
:1010F0001301010567800000130101FC232E11027A
:10110000232C810213040104232EA4FC232CB4FC01
:10111000232AC4FC2328D4FC2326E4FCB7670281DD
:101120000327C4FD23A2E71EB76702819387471EEA
:10113000032784FD23A2E700B76702819387471E38
:10114000032744FD23A4E700B76702819387471E66
:101150000327C4FC23A6E700B76702819387471ED5
:10116000032704FD23A8E700EFF08F882324A4FEC3
:101170000327C4FC832784FEB357F7022326F4FE1B
:101180000327C4FC832784FEB377F7026388070034
:101190008327C4FE938717002326F4FEB7670281D6
:1011A0009387471E0327C4FE23AAE7000327C4FC36
:1011B000832784FE6362F702B76702819386471E26
:1011C000B717008013860723832584FE032504FDBB
:1011D000EFF08FA96F000002B76702819386471E68
:1011E000B7170080138607238325C4FC032504FD5D
:1011F000EFF08FA7EFE05FFF2322A4FE032704FD9B
:10120000832744FE63F8E700032544FEEFF0CFB4E4
:101210006F00C000032504FDEFF00FB413000000C1
:101220008320C103032481031301010467800000AC
:10123000130101FB23261104232481041304010557
:10124000232EA4FA232CB4FAEFF00FC02320A4FE1F
:10125000832704FE83A70700232EF4FC832704FEC4
:1012600083A7470083A70700232CF4FC832704FEF1
:1012700083A78700232AF4FC832704FE83A7470162
:101280002326F4FE0327C4FE8327C4FBB307F7021B
:101290002324F4FE8327C4FE639A070093071000FB
:1012A0002326F4FE8327C4FB2324F4FE832704FEB5
:1012B00083A7C7002328F4FC232204FE6F00000B41
:1012C000032784FB832704FD3307F702832784FE6B
:1012D000B307F7002326F4FC032784FE832704FDCD
:1012E000B337F70093F7F70F2324F4FC832784FC2C
:1012F00093B71700A303F4FC834774FC138F070014
:10130000B7170080938F87356B200F007B70FF012C
:101310008327C4FC939727000327C4FDB307F70076
:1013200083A607008327C4FC93972700032744FD67
:10133000B307F700032784FD3387E60023A0E70007
:10134000832784FE938717002324F4FEB7170080B9
:10135000138EC73567000E00130000006B300000CD
:10136000832744FE938717002322F4FE832744FE3D
:101370000327C4FEE3E6E7F4130000008320C10462
:10138000032481041301010567800000130101FC9F
:10139000232E1102232C810213040104232EA4FC0A
:1013A000232CB4FC232AC4FC2328D4FC2326E4FCED
:1013B000B76702810327C4FD23A2E71EB767028136
:1013C0009387471E032784FD23A2E700B7670281A6
:1013D0009387471E032744FD23A4E700B7670281D4
:1013E0009387471E0327C4FC23A6E700B767028143
:1013F0009387471E032704FD23A8E700EFE05FDF84
:101400002324A4FE0327C4FC832784FEB357F702DA
:101410002326F4FE0327C4FC832784FEB377F70258
:10142000638807008327C4FE938717002326F4FEF2
:10143000B76702819387471E0327C4FE23AAE700EC
:101440000327C4FC832784FE6362F702B767028127
:101450009386471EB71700801386474C832584FE6A
:10146000032504FDEFF04F806F000002B767028193
:101470009386471EB71700801386474C8325C4FC0C
:10148000032504FDEFE05FFEEFE01FD62322A4FE5C
:10149000032704FD832744FE63F8E700032544FE89
:1014A000EFF08F8B6F00C000032504FDEFF0CF8AB3
:1014B000130000008320C1030324810313010104EE
:1014C00067800000130101FB2326110423248104FB
:1014D00013040105232EA4FA232CB4FAEFF0CF96BF
:1014E0002320A4FE832704FE83A70700232EF4FCF9
:1014F000832704FE83A7470083A70700232CF4FC5F
:10150000832704FE83A78700232AF4FC832704FE95
:1015100083A747012326F4FE0327C4FE8327C4FBC9
:10152000B307F7022324F4FE8327C4FE639A07005F
:10153000930710002326F4FE8327C4FB2324F4FE24
:10154000832704FE83A7C7002328F4FC232204FE7C
:101550006F00000B032784FB832704FD3307F7028A
:10156000832784FEB307F7002326F4FC032784FEB9
:10157000832704FDB337F70093F7F70F2324F4FC18
:10158000832784FC93B71700A303F4FC834774FC00
:10159000138F0700B7170080938FC75E6B200F0073
:1015A0007B70FF018327C4FC939727000327C4FDAA
:1015B000B307F70083A607008327C4FC939727008F
:1015C000032744FDB307F700032784FD3387E602B2
:1015D00023A0E700832784FE938717002324F4FECB
:1015E000B7170080138E075F67000E00130000001E
:1015F0006B300000832744FE938717002322F4FEFC
:10160000832744FE0327C4FEE3E6E7F4130000004B
:101610008320C104032481041301010567800000B5
:10162000130101FD2326810213040103232EA4FCD0
:10163000232604FE6F0000018327C4FE9387170052
:101640002326F4FE0327C4FE8327C4FDE346F7FEEA
:10165000130000000324C10213010103678000008E
:10166000130101FD23261102232481021304010327
:10167000232EA4FC232CB4FCB76702811387C71F59
:101680008327C4FDB307F700130710002380E7008A
:101690008327C4FD6390070CA30104FE232604FEE8
:1016A0006F00800A232604FE232404FE6F004003FB
:1016B000B76702811387C71F832784FEB307F7002C
:1016C00083C70700638807008327C4FE938717003A
:1016D0002326F4FE832784FE938717002324F4FE39
:1016E000032784FE832784FDE344F7FC0327C4FE1D
:1016F000832784FD631AF704232204FE6F0000048D
:10170000B76702811387C71F832744FEB307F7001B
:1017100023800700B7970281130710002382E72C6C
:1017200013056004EFF0DFEFB79702812382072CE7
:10173000832744FE938717002322F4FE032744FEE9
:10174000832784FDE34EF7FA834734FEE39C07F4D6
:101750006F00400213000000B797028183C7472C37
:1017600093C7170093F7F70FE39807FE130540069A
:10177000EFF01FEB130000008320C102032481025D
:101780001301010367800000130101FF232681007C
:1017900013040101930700001308000013850700DC
:1017A000930508000324C1001301010167800000B4
:1017B000130101FE232E810013040102232604FEDF
:1017C0006F008004B76702810327C4FE1317270048
:1017D0009387C721B307F7001307300023A0E70062
:1017E000B77702810327C4FE131727009387C72109
:1017F000B307F7001307200023A0E7008327C4FEE8
:10180000938717002326F4FE0327C4FE9307F00FE7
:10181000E3DAE7FA130000000324C1011301010217
:1018200067800000130101FD232611022324810299
:1018300013040103232EA4FCB7070081138587112D
:10184000EFE0DFF8232604FE6F0080058327C4FE47
:10185000638E07008327C4FE93F7F70063980700A1
:10186000B70700811385C713EFE05FF68327C4FE37
:10187000939727000327C4FDB307F70083A707004A
:1018800013850700EFE05FF8B707008113850714A1
:10189000EFE0DFF38327C4FE938717002326F4FECF
:1018A0000327C4FE9307F00FE3D2E7FAB7070081DE
:1018B00013854714EFE09FF1130000008320C1025D
:1018C000032481021301010367800000130101FF5B
:1018D000232611002324810013040101EFF05FEDA2
:1018E000B76702811385C721EFF0DFF3930700008C
:1018F000138507008320C100032481001301010127
:0419000067800000FC
:10009000130000001300000013000000EBE0BF019C
: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
: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
:02000004810079
:10000000300000003100000032000000330000002A
:10001000340000003500000036000000370000000A

View file

@ -9,6 +9,9 @@ _start:
la a0, 0xFF003300
li a1, 7
sw a1, 4(a0)
nop
nop
nop
lw a2, 4(a0)
li a0, 0
.word 0x0005006b # tmc a0

View file

@ -13,7 +13,7 @@ COMP=--compiler gcc
WNO=-Wno-UNOPTFLAT -Wno-UNDRIVEN --Wno-PINMISSING -Wno-STMTDLY -Wno-WIDTH -Wno-UNSIGNED
LIGHTW=-Wno-UNOPTFLAT --Wno-PINMISSING -Wno-WIDTH -Wno-STMTDLY
LIGHTW=-Wno-UNOPTFLAT
# LIB=-LDFLAGS '-L/usr/local/systemc/'
LIB=
@ -27,7 +27,7 @@ MAKECPP=(cd obj_dir && make -j -f VVortex.mk)
# -LDFLAGS '-lsystemc'
VERILATOR:
echo "#define VCD_OFF" > simulate/tb_debug.h
verilator $(COMP) -cc $(FILE) $(INCLUDE) $(EXE) $(LIB) $(CF)
verilator $(COMP) -cc $(FILE) $(INCLUDE) $(EXE) $(LIB) $(CF) $(LIGHTW)
VERILATORnoWarnings:
echo "#define VCD_OFF" > simulate/tb_debug.h

View file

@ -9,6 +9,7 @@
// Uncomment the below line if NW=1
// `define ONLY
// `define SYN 1
`define NUMBER_BANKS 8

View file

@ -11,116 +11,122 @@ module VX_gpr (
output reg[`NT_M1:0][31:0] out_b_reg_data
);
wire write_enable;
assign write_enable = valid_write_request && ((VX_writeback_inter.wb != 0) && (VX_writeback_inter.rd != 5'h0));
byte_enabled_simple_dual_port_ram first_ram(
.we (write_enable),
.clk (clk),
.waddr (VX_writeback_inter.rd),
.raddr1(VX_gpr_read.rs1),
.raddr2(VX_gpr_read.rs2),
.be (VX_writeback_inter.wb_valid),
.wdata (VX_writeback_inter.write_data),
.q1 (out_a_reg_data),
.q2 (out_b_reg_data)
);
`ifndef SYN
byte_enabled_simple_dual_port_ram first_ram(
.we (write_enable),
.clk (clk),
.waddr (VX_writeback_inter.rd),
.raddr1(VX_gpr_read.rs1),
.raddr2(VX_gpr_read.rs2),
.be (VX_writeback_inter.wb_valid),
.wdata (VX_writeback_inter.write_data),
.q1 (out_a_reg_data),
.q2 (out_b_reg_data)
);
`else
wire[`NT_M1:0][31:0] write_bit_mask;
genvar curr_t;
for (curr_t = 0; curr_t < `NT; curr_t=curr_t+1) begin
wire local_write = write_enable & VX_writeback_inter.wb_valid[curr_t];
assign write_bit_mask[curr_t] = {32{~local_write}};
end
wire going_to_write = write_enable & (|VX_writeback_inter.wb_valid);
// wire[`NT_M1:0][31:0] write_bit_mask;
wire cenb = !going_to_write;
// genvar curr_t;
// for (curr_t = 0; curr_t < `NT; curr_t=curr_t+1) begin
// wire local_write = write_enable & VX_writeback_inter.wb_valid[curr_t];
// assign write_bit_mask[curr_t] = {32{~local_write}};
// end
wire cena_1 = (VX_gpr_read.rs1 == 0);
wire cena_2 = (VX_gpr_read.rs2 == 0);
// wire going_to_write = write_enable & (|VX_writeback_inter.wb_valid);
// wire[127:0] write_bit_mask = {{32{~(VX_writeback_inter.wb_valid[3])}}, {32{~(VX_writeback_inter.wb_valid[2])}}, {32{~(VX_writeback_inter.wb_valid[1])}}, {32{~(VX_writeback_inter.wb_valid[0])}}};
/* verilator lint_off PINCONNECTEMPTY */
rf2_32x128_wm1 first_ram (
.CENYA(),
.AYA(),
.CENYB(),
.WENYB(),
.AYB(),
.QA(out_a_reg_data),
.SOA(),
.SOB(),
.CLKA(clk),
.CENA(cena_1),
.AA(VX_gpr_read.rs1),
.CLKB(clk),
.CENB(cenb),
.WENB(write_bit_mask),
.AB(VX_writeback_inter.rd),
.DB(VX_writeback_inter.write_data),
.EMAA(3'b011),
.EMASA(1'b0),
.EMAB(3'b011),
.TENA(1'b1),
.TCENA(1'b0),
.TAA(5'b0),
.TENB(1'b1),
.TCENB(1'b0),
.TWENB(128'b0),
.TAB(5'b0),
.TDB(128'b0),
.RET1N(1'b1),
.SIA(2'b0),
.SEA(1'b0),
.DFTRAMBYP(1'b0),
.SIB(2'b0),
.SEB(1'b0),
.COLLDISN(1'b1)
);
/* verilator lint_on PINCONNECTEMPTY */
// wire cenb = !going_to_write;
// wire cena_1 = (VX_gpr_read.rs1 == 0);
// wire cena_2 = (VX_gpr_read.rs2 == 0);
// // wire[127:0] write_bit_mask = {{32{~(VX_writeback_inter.wb_valid[3])}}, {32{~(VX_writeback_inter.wb_valid[2])}}, {32{~(VX_writeback_inter.wb_valid[1])}}, {32{~(VX_writeback_inter.wb_valid[0])}}};
// /* verilator lint_off PINCONNECTEMPTY */
// rf2_32x128_wm1 first_ram (
// .CENYA(),
// .AYA(),
// .CENYB(),
// .WENYB(),
// .AYB(),
// .QA(out_a_reg_data),
// .SOA(),
// .SOB(),
// .CLKA(clk),
// .CENA(cena_1),
// .AA(VX_gpr_read.rs1),
// .CLKB(clk),
// .CENB(cenb),
// .WENB(write_bit_mask),
// .AB(VX_writeback_inter.rd),
// .DB(VX_writeback_inter.write_data),
// .EMAA(3'b011),
// .EMASA(1'b0),
// .EMAB(3'b011),
// .TENA(1'b1),
// .TCENA(1'b0),
// .TAA(5'b0),
// .TENB(1'b1),
// .TCENB(1'b0),
// .TWENB(128'b0),
// .TAB(5'b0),
// .TDB(128'b0),
// .RET1N(1'b1),
// .SIA(2'b0),
// .SEA(1'b0),
// .DFTRAMBYP(1'b0),
// .SIB(2'b0),
// .SEB(1'b0),
// .COLLDISN(1'b1)
// );
// /* verilator lint_on PINCONNECTEMPTY */
// /* verilator lint_off PINCONNECTEMPTY */
// rf2_32x128_wm1 second_ram (
// .CENYA(),
// .AYA(),
// .CENYB(),
// .WENYB(),
// .AYB(),
// .QA(out_b_reg_data),
// .SOA(),
// .SOB(),
// .CLKA(clk),
// .CENA(cena_2),
// .AA(VX_gpr_read.rs2),
// .CLKB(clk),
// .CENB(cenb),
// .WENB(write_bit_mask),
// .AB(VX_writeback_inter.rd),
// .DB(VX_writeback_inter.write_data),
// .EMAA(3'b011),
// .EMASA(1'b0),
// .EMAB(3'b011),
// .TENA(1'b1),
// .TCENA(1'b0),
// .TAA(5'b0),
// .TENB(1'b1),
// .TCENB(1'b0),
// .TWENB(128'b0),
// .TAB(5'b0),
// .TDB(128'b0),
// .RET1N(1'b1),
// .SIA(2'b0),
// .SEA(1'b0),
// .DFTRAMBYP(1'b0),
// .SIB(2'b0),
// .SEB(1'b0),
// .COLLDISN(1'b1)
// );
// /* verilator lint_on PINCONNECTEMPTY */
/* verilator lint_off PINCONNECTEMPTY */
rf2_32x128_wm1 second_ram (
.CENYA(),
.AYA(),
.CENYB(),
.WENYB(),
.AYB(),
.QA(out_b_reg_data),
.SOA(),
.SOB(),
.CLKA(clk),
.CENA(cena_2),
.AA(VX_gpr_read.rs2),
.CLKB(clk),
.CENB(cenb),
.WENB(write_bit_mask),
.AB(VX_writeback_inter.rd),
.DB(VX_writeback_inter.write_data),
.EMAA(3'b011),
.EMASA(1'b0),
.EMAB(3'b011),
.TENA(1'b1),
.TCENA(1'b0),
.TAA(5'b0),
.TENB(1'b1),
.TCENB(1'b0),
.TWENB(128'b0),
.TAB(5'b0),
.TDB(128'b0),
.RET1N(1'b1),
.SIA(2'b0),
.SEA(1'b0),
.DFTRAMBYP(1'b0),
.SIB(2'b0),
.SEB(1'b0),
.COLLDISN(1'b1)
);
/* verilator lint_on PINCONNECTEMPTY */
`endif
endmodule

View file

@ -82,7 +82,7 @@ module VX_gpr_stage (
wire flush_rest = schedule_delay;
wire stall_lsu = is_lsu && memory_delay;
wire stall_lsu = memory_delay;
wire flush_lsu = schedule_delay && !stall_lsu;

View file

@ -27,167 +27,169 @@ module VX_cache_data (
wire currently_writing = (|we);
wire update_dirty = ((!dirty_use) && currently_writing) || (evict);
/////////////////
// (3:0) 4 bytes
reg[`NUM_WORDS_PER_BLOCK-1:0][31:0] data[NUMBER_INDEXES-1:0]; // Actual Data
reg[16:0] tag[NUMBER_INDEXES-1:0];
reg valid[NUMBER_INDEXES-1:0];
reg dirty[NUMBER_INDEXES-1:0];
// 16 bytes
assign data_use = data[addr]; // Read Port
assign tag_use = tag[addr];
assign valid_use = valid[addr];
assign dirty_use = dirty[addr];
wire dirt_new = evict ? 0 : (|we);
integer f;
always @(posedge clk) begin : dirty_update
if (update_dirty) dirty[addr] <= dirt_new; // WRite Port
end
always @(posedge clk) begin : data_update
for (f = 0; f < `NUM_WORDS_PER_BLOCK; f = f + 1) begin
if (we[f]) data[addr][f] <= data_write[f];
end
end
`ifndef SYN
always @(posedge clk) begin : tag_update
if (evict) tag[addr] <= tag_write;
end
always @(posedge clk) begin : valid_update
if (evict) valid[addr] <= 1;
end
// (3:0) 4 bytes
reg[`NUM_WORDS_PER_BLOCK-1:0][31:0] data[NUMBER_INDEXES-1:0]; // Actual Data
reg[16:0] tag[NUMBER_INDEXES-1:0];
reg valid[NUMBER_INDEXES-1:0];
reg dirty[NUMBER_INDEXES-1:0];
//////////////////////////////
// 16 bytes
assign data_use = data[addr]; // Read Port
assign tag_use = tag[addr];
assign valid_use = valid[addr];
assign dirty_use = dirty[addr];
// wire cena = 1;
integer f;
always @(posedge clk) begin : dirty_update
if (update_dirty) dirty[addr] <= dirt_new; // WRite Port
end
// wire cenb_d = (|we);
// wire[`NUM_WORDS_PER_BLOCK-1:0][31:0] wdata_d = data_write;
// wire[`NUM_WORDS_PER_BLOCK-1:0][31:0] write_bit_mask_d;
// wire[`NUM_WORDS_PER_BLOCK-1:0][31:0] data_out_d;
// genvar cur_b;
// for (cur_b = 0; cur_b < `NUM_WORDS_PER_BLOCK; cur_b=cur_b+1) begin
// assign write_bit_mask_d[cur_b] = {32{~we[cur_b]}};
// end
// assign data_use = data_out_d;
always @(posedge clk) begin : data_update
for (f = 0; f < `NUM_WORDS_PER_BLOCK; f = f + 1) begin
if (we[f]) data[addr][f] <= data_write[f];
end
end
always @(posedge clk) begin : tag_update
if (evict) tag[addr] <= tag_write;
end
always @(posedge clk) begin : valid_update
if (evict) valid[addr] <= 1;
end
`else
// // Using ASIC MEM
// /* verilator lint_off PINCONNECTEMPTY */
// rf2_256x128_wm1 data (
// .CENYA(),
// .AYA(),
// .CENYB(),
// .WENYB(),
// .AYB(),
// .QA(data_out_d),
// .SOA(),
// .SOB(),
// .CLKA(clk),
// .CENA(cena),
// .AA(addr),
// .CLKB(clk),
// .CENB(cenb_d),
// .WENB(write_bit_mask_d),
// .AB(addr),
// .DB(wdata_d),
// .EMAA(3'b011),
// .EMASA(1'b0),
// .EMAB(3'b011),
// .TENA(1'b1),
// .TCENA(1'b0),
// .TAA(5'b0),
// .TENB(1'b1),
// .TCENB(1'b0),
// .TWENB(128'b0),
// .TAB(5'b0),
// .TDB(128'b0),
// .RET1N(1'b1),
// .SIA(2'b0),
// .SEA(1'b0),
// .DFTRAMBYP(1'b0),
// .SIB(2'b0),
// .SEB(1'b0),
// .COLLDISN(1'b1)
// );
// /* verilator lint_on PINCONNECTEMPTY */
wire cena = 1;
wire cenb_d = (|we);
wire[`NUM_WORDS_PER_BLOCK-1:0][31:0] wdata_d = data_write;
wire[`NUM_WORDS_PER_BLOCK-1:0][31:0] write_bit_mask_d;
wire[`NUM_WORDS_PER_BLOCK-1:0][31:0] data_out_d;
genvar cur_b;
for (cur_b = 0; cur_b < `NUM_WORDS_PER_BLOCK; cur_b=cur_b+1) begin
assign write_bit_mask_d[cur_b] = {32{~we[cur_b]}};
end
assign data_use = data_out_d;
// Using ASIC MEM
/* verilator lint_off PINCONNECTEMPTY */
rf2_256x128_wm1 data (
.CENYA(),
.AYA(),
.CENYB(),
.WENYB(),
.AYB(),
.QA(data_out_d),
.SOA(),
.SOB(),
.CLKA(clk),
.CENA(cena),
.AA(addr),
.CLKB(clk),
.CENB(cenb_d),
.WENB(write_bit_mask_d),
.AB(addr),
.DB(wdata_d),
.EMAA(3'b011),
.EMASA(1'b0),
.EMAB(3'b011),
.TENA(1'b1),
.TCENA(1'b0),
.TAA(5'b0),
.TENB(1'b1),
.TCENB(1'b0),
.TWENB(128'b0),
.TAB(5'b0),
.TDB(128'b0),
.RET1N(1'b1),
.SIA(2'b0),
.SEA(1'b0),
.DFTRAMBYP(1'b0),
.SIB(2'b0),
.SEB(1'b0),
.COLLDISN(1'b1)
);
/* verilator lint_on PINCONNECTEMPTY */
// wire[16:0] old_tag;
// wire old_valid;
// wire old_dirty;
wire[16:0] old_tag;
wire old_valid;
wire old_dirty;
// wire[16:0] new_tag = evict ? tag_write : old_tag;
// wire new_valid = evict ? 1 : old_valid;
// wire new_dirty = update_dirty ? new_dirty : old_dirty;
wire[16:0] new_tag = evict ? tag_write : old_tag;
wire new_valid = evict ? 1 : old_valid;
wire new_dirty = update_dirty ? dirt_new : old_dirty;
// wire cenb_m = (evict || update_dirty);
// wire[19-1:0][31:0] write_bit_mask_m = cenb_m ? 19'b0 : 19'b1;
wire cenb_m = (evict || update_dirty);
wire[19-1:0][31:0] write_bit_mask_m = cenb_m ? 19'b0 : 19'b1;
// wire[`NUM_WORDS_PER_BLOCK-1:0][31:0] wdata_m = {new_tag, new_dirty, new_valid};
// wire[`NUM_WORDS_PER_BLOCK-1:0][31:0] data_out_m;
wire[`NUM_WORDS_PER_BLOCK-1:0][31:0] wdata_m = {new_tag, new_dirty, new_valid};
wire[`NUM_WORDS_PER_BLOCK-1:0][31:0] data_out_m;
// assign {old_tag, old_dirty, old_valid} = data_out_m;
assign {old_tag, old_dirty, old_valid} = data_out_m;
// assign dirty_use = old_dirty;
// assign valid_use = old_valid;
// assign tag_use = old_tag;
assign dirty_use = old_dirty;
assign valid_use = old_valid;
assign tag_use = old_tag;
// /* verilator lint_off PINCONNECTEMPTY */
// rf2_256x19_wm0 meta (
// .CENYA(),
// .AYA(),
// .CENYB(),
// // .WENYB(),
// .AYB(),
// .QA(data_out_m),
// .SOA(),
// .SOB(),
// .CLKA(clk),
// .CENA(cena),
// .AA(addr),
// .CLKB(clk),
// .CENB(cenb_m),
// // .WENB(write_bit_mask_m),
// .AB(addr),
// .DB(wdata_m),
// .EMAA(3'b011),
// .EMASA(1'b0),
// .EMAB(3'b011),
// .TENA(1'b1),
// .TCENA(1'b0),
// .TAA(5'b0),
// .TENB(1'b1),
// .TCENB(1'b0),
// // .TWENB(128'b0),
// .TAB(5'b0),
// .TDB(128'b0),
// .RET1N(1'b1),
// .SIA(2'b0),
// .SEA(1'b0),
// .DFTRAMBYP(1'b0),
// .SIB(2'b0),
// .SEB(1'b0),
// .COLLDISN(1'b1)
// );
// /* verilator lint_on PINCONNECTEMPTY */
/* verilator lint_off PINCONNECTEMPTY */
rf2_256x19_wm0 meta (
.CENYA(),
.AYA(),
.CENYB(),
// .WENYB(),
.AYB(),
.QA(data_out_m),
.SOA(),
.SOB(),
.CLKA(clk),
.CENA(cena),
.AA(addr),
.CLKB(clk),
.CENB(cenb_m),
// .WENB(write_bit_mask_m),
.AB(addr),
.DB(wdata_m),
.EMAA(3'b011),
.EMASA(1'b0),
.EMAB(3'b011),
.TENA(1'b1),
.TCENA(1'b0),
.TAA(5'b0),
.TENB(1'b1),
.TCENB(1'b0),
// .TWENB(128'b0),
.TAB(5'b0),
.TDB(128'b0),
.RET1N(1'b1),
.SIA(2'b0),
.SEA(1'b0),
.DFTRAMBYP(1'b0),
.SIB(2'b0),
.SEB(1'b0),
.COLLDISN(1'b1)
);
/* verilator lint_on PINCONNECTEMPTY */
`endif
endmodule

View file

@ -1,7 +0,0 @@
# Dynamic Instructions: 14
# of total cycles: 26
# of forwarding stalls: 0
# of branch stalls: 0
# CPI: 1.85714
# time to simulate: 6.95313e-310 milliseconds
# GRADE: Failed on test: 4294967295

View file

@ -16,73 +16,84 @@ module VX_priority_encoder_sm
// To SM Module
output reg[NB:0] out_valid,
output reg[NB:0][31:0] out_address,
output reg[NB:0][31:0] out_data,
output reg[NB:0][31:0] out_data,
// To Processor
output wire[NB:0][1:0] req_num,
output reg stall,
output wire send_data // Finished all of the requests
output wire send_data // Finished all of the requests
);
wire[NB:0][`NT_M1:0] bank_valids;
wire[NB:0][`NT_M1:0] temp_bank_valids;
reg[NB:0][`NT_M1:0] temp_valid; // State - If there's any ones here, then stall
wire[NB:0] temp_stall;
integer counter[NB:0] ;
wire[NB:0][`NT_M1:0] mask;
wire[NB:0] update_temp_valid;
reg[NB:0] req_done;
reg[`NT_M1:0] left_requests;
VX_bank_valids #(.NB(NB), .BITS_PER_BANK(BITS_PER_BANK)) vx_bank_valid(
.in_valids(in_valid),
.in_addr(in_address),
.bank_valids(bank_valids)
);
genvar j;
for(j=0; j <= NB; j++) begin
assign temp_stall[j] = ($countones(temp_valid[j]) != 0);
assign temp_bank_valids[j] = (temp_stall[j] || req_done[j]) ? temp_valid[j] : bank_valids[j];
assign update_temp_valid[j] = !req_done[j] && ($countones(bank_valids[j]) > 1);
VX_generic_priority_encoder #(.N(4)) vx_priority_encoder(
.valids(temp_bank_valids[j]),
.index(req_num[j]),
.found(out_valid[j])
);
VX_set_bit vx_set_bit(
.index(req_num[j]),
.mask (mask[j])
);
assign out_address[j] = out_valid[j] ? in_address[req_num[j]] : 0;
assign out_data[j] = out_valid[j] ? in_data[req_num[j]] : 0;
end
wire[`NT_M1:0] use_valid;
assign stall = |temp_stall;
assign send_data = &req_done;
wire requests_left = (|left_requests);
genvar i;
always @(posedge clk) begin
for(i = 0; i <= NB; i = i+1) begin
if (update_temp_valid[i]) begin
counter[i] <= counter[i] + 1;
if(counter[i] == 0) temp_valid[i] <= bank_valids[i] & mask[i];
else if (counter[i] > 0) temp_valid[i] <= temp_bank_valids[i] & mask[i];
end
if(($countones(in_valid) > 0) && ($countones(bank_valids[i]) == 0)) begin
req_done[i] <= 1;
end
else if((counter[i][2:0] == ($countones(bank_valids[i])-1))) begin
req_done[i] <= 1;
counter[i] <= 0;
end
else begin
req_done[i] <= 0;
assign use_valid = (requests_left) ? left_requests : in_valid;
wire[NB:0][`NT_M1:0] bank_valids;
VX_bank_valids #(.NB(NB), .BITS_PER_BANK(BITS_PER_BANK)) vx_bank_valid(
.in_valids(use_valid),
.in_addr(in_address),
.bank_valids(bank_valids)
);
wire[NB:0] more_than_one_valid;
genvar curr_bank;
for (curr_bank = 0; curr_bank <= NB; curr_bank = curr_bank + 1)
begin
assign more_than_one_valid[curr_bank] = $countones(bank_valids[curr_bank]) > 1;
end
assign stall = (|more_than_one_valid);
assign send_data = (!stall) && (|in_valid); // change
wire[NB:0][1:0] internal_req_num;
wire[NB:0] internal_out_valid;
// There's one or less valid per bank
genvar curr_bank_o;
for (curr_bank_o = 0; curr_bank_o <= NB; curr_bank_o = curr_bank_o + 1)
begin
VX_generic_priority_encoder #(.N(4)) vx_priority_encoder(
.valids(bank_valids[curr_bank_o]),
.index(internal_req_num[curr_bank_o]),
.found(internal_out_valid[curr_bank_o])
);
assign out_address[curr_bank_o] = internal_out_valid[curr_bank_o] ? in_address[internal_req_num[curr_bank_o]] : 0;
assign out_data[curr_bank_o] = internal_out_valid[curr_bank_o] ? in_data[internal_req_num[curr_bank_o]] : 0;
end
reg[`NT_M1:0] serviced;
genvar curr_b;
always @(*) begin
serviced = 0;
for (curr_b = 0; curr_b <= NB; curr_b=curr_b+1) begin
serviced[internal_req_num[curr_b]] = 1;
end
end
end
assign req_num = internal_req_num;
assign out_valid = internal_out_valid;
wire[`NT_M1:0] serviced_qual = in_valid & (serviced);
wire[`NT_M1:0] new_left_requests = (left_requests == 0) ? (in_valid & ~serviced_qual) : (left_requests & ~ serviced_qual);
// wire[`NT_M1:0] new_left_requests = left_requests & ~(serviced_qual);
always @(posedge clk) begin
if (!stall) left_requests <= 0;
else left_requests <= new_left_requests;
end
endmodule

View file

@ -9,73 +9,78 @@ module VX_shared_memory_block (
);
logic [3:0][31:0] shared_memory[127:0];
//wire need_to_write = (|we);
`ifndef SYN
always @(posedge clk) begin
if(shm_write) begin
if (we == 2'b00) shared_memory[addr][0][31:0] <= wdata[0][31:0];
if (we == 2'b01) shared_memory[addr][1][31:0] <= wdata[1][31:0];
if (we == 2'b10) shared_memory[addr][2][31:0] <= wdata[2][31:0];
if (we == 2'b11) shared_memory[addr][3][31:0] <= wdata[3][31:0];
logic [3:0][31:0] shared_memory[127:0];
//wire need_to_write = (|we);
always @(posedge clk) begin
if(shm_write) begin
if (we == 2'b00) shared_memory[addr][0][31:0] <= wdata[0][31:0];
if (we == 2'b01) shared_memory[addr][1][31:0] <= wdata[1][31:0];
if (we == 2'b10) shared_memory[addr][2][31:0] <= wdata[2][31:0];
if (we == 2'b11) shared_memory[addr][3][31:0] <= wdata[3][31:0];
end
end
end
assign data_out = shm_write ? 0 : shared_memory[addr];
assign data_out = shm_write ? 0 : shared_memory[addr];
`else
wire cena = 1;
wire cenb = shm_write;
wire[3:0][31:0] write_bit_mask;
assign write_bit_mask[0] = (we == 2'b00) ? 1 : {32{1'b0}};
assign write_bit_mask[1] = (we == 2'b01) ? 1 : {32{1'b0}};
assign write_bit_mask[2] = (we == 2'b10) ? 1 : {32{1'b0}};
assign write_bit_mask[3] = (we == 2'b11) ? 1 : {32{1'b0}};
// Using ASIC MEM
/* verilator lint_off PINCONNECTEMPTY */
rf2_128x128_wm1 first_ram (
.CENYA(),
.AYA(),
.CENYB(),
.WENYB(),
.AYB(),
.QA(data_out),
.SOA(),
.SOB(),
.CLKA(clk),
.CENA(cena),
.AA(addr),
.CLKB(clk),
.CENB(cenb),
.WENB(write_bit_mask),
.AB(addr),
.DB(wdata),
.EMAA(3'b011),
.EMASA(1'b0),
.EMAB(3'b011),
.TENA(1'b1),
.TCENA(1'b0),
.TAA(5'b0),
.TENB(1'b1),
.TCENB(1'b0),
.TWENB(128'b0),
.TAB(5'b0),
.TDB(128'b0),
.RET1N(1'b1),
.SIA(2'b0),
.SEA(1'b0),
.DFTRAMBYP(1'b0),
.SIB(2'b0),
.SEB(1'b0),
.COLLDISN(1'b1)
);
/* verilator lint_on PINCONNECTEMPTY */
// wire cena = 1;
// wire cenb = shm_write;
// wire[3:0][31:0] write_bit_mask;
// assign write_bit_mask[0] = (we == 2'b00) ? 1 : {32{1'b0}};
// assign write_bit_mask[1] = (we == 2'b01) ? 1 : {32{1'b0}};
// assign write_bit_mask[2] = (we == 2'b10) ? 1 : {32{1'b0}};
// assign write_bit_mask[3] = (we == 2'b11) ? 1 : {32{1'b0}};
// // Using ASIC MEM
// /* verilator lint_off PINCONNECTEMPTY */
// rf2_128x128_wm1 first_ram (
// .CENYA(),
// .AYA(),
// .CENYB(),
// .WENYB(),
// .AYB(),
// .QA(data_out),
// .SOA(),
// .SOB(),
// .CLKA(clk),
// .CENA(cena),
// .AA(addr),
// .CLKB(clk),
// .CENB(cenb),
// .WENB(write_bit_mask),
// .AB(addr),
// .DB(wdata),
// .EMAA(3'b011),
// .EMASA(1'b0),
// .EMAB(3'b011),
// .TENA(1'b1),
// .TCENA(1'b0),
// .TAA(5'b0),
// .TENB(1'b1),
// .TCENB(1'b0),
// .TWENB(128'b0),
// .TAB(5'b0),
// .TDB(128'b0),
// .RET1N(1'b1),
// .SIA(2'b0),
// .SEA(1'b0),
// .DFTRAMBYP(1'b0),
// .SIB(2'b0),
// .SEB(1'b0),
// .COLLDISN(1'b1)
// );
// /* verilator lint_on PINCONNECTEMPTY */
`endif
endmodule

View file

@ -1 +1 @@
#define VCD_OFF
#define VCD_OUTPUT