Rework the output fifo to be a bit more correct about the sync signals, which

in turn allows the sequencer to lose less time --- this gets the effective
clock rate down to about 1.01us. However we still seem to lose the last sector
on 18-sector disks and there are some disk reads so something is still wrong.
This commit is contained in:
David Given
2020-02-17 00:13:13 +01:00
parent 89a27619ff
commit df8d45bf66
8 changed files with 160 additions and 116 deletions

View File

@@ -17,22 +17,22 @@
:4004000002F0E4FBB54801F0E5FE02F0C5FA02F097F9002002F0B8FB01F000FF0221002000F0A4FFAE4D0321084602F04BF82E462C46DFF8D4B202F065F8AB7F73B12A6A46
:40044000EB689B1A41F28832934207D9002001F075FE002002F098FB0023AB7700F0BEFF18B9A048FFF743FF04E000F0BDFF0028F7D109E000F0B2FF0028FBD09A48FFF7F1
:4004800036FF032001F016F8032000F0B9FF0128D1D19648FFF764FE95490320FFF782FE94F838109348FFF722FF94F83830023B122B00F2F583DFE813F01300F3031C0015
:4004C000F3032200F3034400F3036800F303A001F3033503F3035403F3035A03F303650303238DF828308DF829300B238DF82A3044E394F83A00FFF731FF7F4B3BE3FFF7AA
:4004C000F3032200F3034400F3036800F303A001F3033503F3035403F3035A03F303650303238DF828308DF829300C238DF82A3044E394F83A00FFF731FF7F4B3BE3FFF7A9
:4005000065FE00236372E068627A02F0FF0132B9EB681B1AB3F57A7FF6DD0B4608E03BB100227272F168627A12B9EB685B1AFAE707228DF8282004228DF82920ADF82A30A6
:400540001CE30220FFF7E0FD4FF000090DF1280A4FF480780027C8EB0903DA1907F80A200137402FF9D10220FFF7CEFD3A465146022000F061FFB8F10108EBD109F1010983
:40058000B9F1400FE4D15D4BC7E294F83A0001F0F9FD606BFFF7E2FE02F09AFB584BDFF86C811A78002742F004021A701A7842F001021A701A7802F0FE021A701A7802F0A2
:40058000B9F1400FE4D15D4BC7E294F83A0001F0F9FD606BFFF7E2FE02F09AFB584BDFF86C811A78002702F0FB021A701A7842F001021A701A7802F0FE021A701A7802F0EB
:4005C000FE021A7002F088FB0220FFF79DFD41F6FF734FF480420121022002F0DBFA84F8780001F0FDFE08F807000137102FF8D1DFF81CA100270AF15D081FFA88F901377D
:40060000102F14BF3A4600221AF8010F2244062392F82420402101F017FF4A4646F242419AF8000001F022FF09F14009102F1FFA89F9E4D196F83B3033B100237372637A9C
:40060000102F14BF3A4600221AF8010F2244062392F82420402101F017FF4A4646F244419AF8000001F022FF09F14009102F1FFA89F9E4D196F83B3033B100237372637A9A
:40064000002BFCD000237372142200210AA802F09FFB40234FF0FF320D9300232360626023722368274F234493F8241094F878000C9701F06DFE94F8780001F02BFE01210C
:4006800094F8780001F0FEFD04972368002BFCD000277760D6F80CA0237A7BB901F032FFA98F04E0EB68CAEB03038B4206D2626823689A422ED12B7A002BF3D094F808801C
:4006C000042194F878005FFA88F801F04DFE54E019010000F900000091000000C50000008081FF1F793600008C3600009881FF1FB881FF1F963600002C3600002E3600006F
:40070000926400400086FF1F9B650040A481FF1FA381FF1F4FF0000962680AA808EB82124A440A92C9F140020B9200F0DBFA0B9A0137C2F1400209EB02030D9A5FFA83F900
:40070000946400400086FF1F98650040A481FF1FA381FF1F4FF0000962680AA808EB82124A440A92C9F140020B9200F0DBFA0B9A0137C2F1400209EB02030D9A5FFA83F901
:400740005AB90220FFF7E0FC4022BD49022000F073FE049B0C9340230D93B9F13F0FDBD96268B84B01321340002BBEBF03F1FF3363F00F03013363608EE794F8780001F0B3
:4007800003FE0028F9D10AA800F0E0FA0220FFF7BBFC0D9B402B07D002204022A84900F04BFE0220FFF7B0FC0D9B022033F040021DBFC3F1400292B2A149114600F03CFEEF
:4007C0000220FFF7A1FCFFF745FDB8F1000F06D09D48FFF78CFD0220FFF7B0FD06E09B4B09A81B88ADF82430FFF796FD627A3946237A9748FFF77BFD55E29648FFF777FDEF
:40080000E76B17F03F0701D003204AE2012001F0BFFC95F83A0001F0B5FC02F059FA9BF80030DFF8348203F0FB038BF800309BF8003043F001038BF800309BF8003003F027
:40080000E76B17F03F0701D003204AE2012001F0BFFC95F83A0001F0B5FC02F059FA9BF80030DFF8348243F004038BF800309BF8003043F001038BF800309BF8003003F0DE
:40084000FE038BF800309BF8003003F0FE038BF8003002F041FA686BFFF780FD01214FF4804341F6FF72084601F098FC85F8780001F0B6FD08F807000137102FF8D1DFF88D
:40088000DC91002709F15D031FFA83F807930137102F14BF3A46002219F8010F2244052392F82420402101F0CFFD414646F24B5299F8000001F0DAFD08F14008102F1FFA47
:40088000DC91002709F15D031FFA83F807930137102F14BF3A46002219F8010F2244052392F82420402101F0CFFD414646F2485299F8000001F0DAFD08F14008102F1FFA4A
:4008C00088F8E4D10027B946BA46F36B4FF0FF389B09142239460AA837600493C6F80480377202F055FA402301200D9300F0E2FDCDF81880059701F005FE2268514B01322B
:400900001340002BBCBF03F1FF3363F00F036168B8BF01338B4200F0A380BAF1000F07D0237A002B40F0B0806B7A002B40F0AC800B9B002B34D1B9F1000F0BD07F22404926
:400940005A540133402BFAD10A910B9328E0BAF1000F06D1012000F053FD01288046F6D107E0237A002B40F08F806B7A002BF1D08AE03349FFF716FC8146314B0B90404665
@@ -61,9 +61,9 @@
:400F000043F002031370137C43F0020313742378A2F5863243F040032370413A137843F010031370444A454B07CA03C31A80444A2833106843F8250C127903F8212C414A6C
:400F400007CA03C31A80404AE83B07CA03C31A803E4A083307CA03C31A803D4A3D4BA2F5616203CBC2F8100EC2F8141E1378042043F008031370384B02F5AA521B783D7845
:400F8000DBB298F80060EDB203F007010C321B091170F6B2537045F003033B7046F0030388F800302D4B48221A702D4A402313702C49937013729372082382F81F322022F7
:400FC0000A7048710A72284A0A20137001F072FA264B88F8006044223D70254D1A7094E80F0007C52B80BDE8F08100BF00480040541000480F010049A14600402542004034
:40100000224200400440004006400040A2430040A04300403B370000E8460040FCFFFF47A4000048007600405C100048F8460040087600400350014014100048C0510040B6
:4010400020100048281000483410004840100048325100404C100048CF0100491D51004001590040235B0040585B004076580040B0430040F946004008B501F05DFE0368A7
:400FC0000A7048710A72284A0A20137001F072FA264B88F8006044223D70254D1A7094E80F0007C52B80BDE8F08100BF004800400C1100480F010049A1460040254200407B
:40100000224200400440004006400040A2430040A04300403B370000E8460040FCFFFF47A40000480076004014110048F84600400876004003500140CC100048C051004045
:40104000D8100048E0100048EC100048F81000483251004004110048CF0100491D51004001590040235B0040585B004076580040B0430040F946004008B501F05DFE03680E
:401080000C2B00D1FEE7FEE7084908B50B68084A1844821A802A01DC086005E001F04CFE0C2303604FF0FF33184608BDCC80FF1F4087FF1F80B51148114B0025C0B1A3F1FB
:4010C000100192C922460439161BB74204D051F8046F42F8046BF7E7114653F8046C8C1AA64202D041F8045BF9E701381033E5E701F028FEFFF776F9FEE700BF010000004B
:401100000C390000124A134B10B51A60124A134C1368134843F4007313600023032B98BF54F823204FEA830188BF0E4A0133302B4250F3D10C4B1A780C4B1A700C4B084AD8
@@ -131,10 +131,10 @@
:402080001FD1114B9B78E3B9BDE83840FFF77EBE0D4B9B78012B14D1154A137843F0020313700AE0084B1A795AB998781B791749DBB2CA5C22EA0002CA54BDE83840FFF7DC
:4020C000D9BA002038BD00BF006000407086FF1F7C86FF1FC83700002C380000B43700009F3800001487FF1F8886FF1F4186FF1F7F86FF1F8186FF1F6E86FF1F6C86FF1F4C
:402100008086FF1F7D86FF1FF686FF1F8386FF1F074B1A78120609D55B78012B06D1054B054A5A6012781A80FFF7C4BB00207047006000407086FF1F8C370000014B1870D5
:40214000704700BF75650040014B1878704700BF6C640040014B1870704700BF79650040064A0123136002F688321268E0211064034A1170A2F540721360704780E100E0FB
:4021800000E400E0014B1870704700BF7A640040014B1870704700BF7C64004073B515461E460B4C01230022019200920A4601461846237000F0F4F832462946207800F00D
:40214000704700BF74650040014B1878704700BF6A640040014B1870704700BF75650040064A0123136002F688321268E0211064034A1170A2F540721360704780E100E002
:4021800000E400E0014B1870704700BF7A640040014B1870704700BF7B64004073B515461E460B4C01230022019200920A4601461846237000F0F4F832462946207800F00E
:4021C000AFF80221207800F099F8207802B070BDD080FF1F064A0423136002F688321268E0219064034A1170A2F202321360704780E100E002E400E0014B04221A607047A2
:4022000000E100E0014B04221A60704780E100E0014B1870704700BF78650040704738B505460078012428B100F0F2FC285D0134E4B2F8E738BD08B50D2000F0E9FCBDE8C7
:4022000000E100E0014B04221A60704780E100E0014B1870704700BF75640040704738B505460078012428B100F0F2FC285D0134E4B2F8E738BD08B50D2000F0E9FCBDE8CB
:4022400008400A2000F0E4BC024B1878C0F38010704700BF8F450040074A7F23802113705170064A013BDBB202F80839002BF9D1034A1370704700BFE080FF1FF87B00401A
:402280000078004017280FD8084B0001C25C11B142F0200201E002F0DF02C254C25C42F00102C25400207047012070471070004017280BD8064B0001C25C02F0FE02C2547C
:4022C000C25C02F0DF02C25400207047012070471070004017280DD8074900010B4603441A7942F004021A71435C43F00103435400207047012070471070004017280BD807
@@ -172,8 +172,8 @@
:402AC0001A7070470059004010B5084B1C7814F0010403D10028F9D0002404E02046FFF7E9FC024B1B78204610BD00BF01590040034A044B1B881088181A00B2704700BF9C
:402B00000887FF1FA05B00400E4A13881BB223B111880A2309B2594301E00B4B19680B4B1B88C01A42F2107300B203FB00F2022391FBF3F30028D8BF5B42134493FBF1F05F
:402B400000B270470A87FF1F1087FF1F0C87FF1F70470000034A00F0F800137803431370704700BF02410040034A00F0F800137803431370704700BF06410040014B187044
:402B8000704700BF70640040014B1870704700BF7465004073B515461E460B4C0023019300930A46014618462370FFF7F9FB324629462078FFF7B4FB02212078FFF79EFBC0
:402BC000207802B070BD00BFF880FF1F074A0223136002F688321268E0215064044A11706FF440710A441360704700BF80E100E001E400E0014B1870704700BF78640040B9
:402B8000704700BF77650040014B1870704700BF7B65004073B515461E460B4C0023019300930A46014618462370FFF7F9FB324629462078FFF7B4FB02212078FFF79EFBB1
:402BC000207802B070BD00BFF880FF1F074A0223136002F688321268E0215064044A11706FF440710A441360704700BF80E100E001E400E0014B1870704700BF79650040B7
:402C0000014B1870704700BF7464004000000000FEB5494652465B460EB40746244909688A46244A12682448022100F071F8030020480068C018204900F06AF814388346AF
:402C40000121C9430C460125002600F041F8814651460B7823400B705846013000F030F83800F04028400B78234003430B70584600F026F80136072EF2D9002001300138D5
:402C8000013001200B78234003430B705846043000F016F8484600F01FF800BF00BF00BF0EBC894692469B46FEBD00BFAFF30080D480FF1FF480FF1F00C2010000000000C4
@@ -4098,75 +4098,75 @@
:40FF80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041
:40FFC0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
:0200000480007A
:400000000145004008520040015B00400164004050000140320101404F020140470301404E040140490501404F0601404C0701405808014057090140470A0140500B014081
:40004000450C01404A0D01404E0E0140310F014042140140541501404C160140441701404E180140531901404B1A01405C1B01400C4001400F4101400B4201400D430140C9
:400080000444014008450140084601400C4701400A48014012490140174C01400D4D014008500140045101407E0208060944108011801802601361197C402721290A02012C
:4000C00003300509060409090A010D890E010F241109120113121512160217091A011B0E1D401E0120072309258026012A072B092E012F09313832073380350737403B22FF
:400100003E043F40580459045B045C905F01801981788302841985088A698B388C198E448F80914092199311960E99219A199B409E199F43A019A222A619A822A908AA19FE
:40014000AB40AE19AF04B008B207B470B5F8B707BA28BB80BE01D804D904DC99DF0100840280030404840512060207010A110B480C010EA10F0411821316161017A6190877
:400180001D141E241F0520022109221023F4240225102680284129082A102E102F01310832523682372038A439023C043D203E42451046086A80C0FFC2FFC4FFCA3FCCBF6C
:4001C000CEFF0108022903820501060909840A090B280C3F112F1209163F17081A091B071E09210122092328261927102A322B402C382E04302831603207331F341835802B
:400200003E153F104202460E480449FF4AFF4BFF4F83580459045A045B045C905D095F018001810182048302850186028B018D019001910195019B019C049D019E01A10159
:40024000A501A901AA01AD01AF02B004B204B503B603BA80BE05BF10D804D904DC09DF01000A040205140601070109010A020C400E010F5413101410152017461820194287
:400280001A321E401F2820082490251126022750285029502D022F283104329237153A013B543C043D023F10451057405C505E0A652066086782834090029204935C9424DA
:4002C000965199149A089C409D029F05A280A541A642AC41AE04C0FCC2F9C4F2CAEFCCEFCEEFD020D6F0D8F0E202E601EC080002020104020601080209F10A010C070F221A
:40030000100716061744180219881A011D011E05220124022601271129AA2A072B442C022DCC2E012F22330F360737F03E405608580459085B045C905D905F01800381017A
:40034000830884038512880389208B138C038F12900391129344960397609803990A9B059C03A003A310A403A912AA02AD13AE01AF20B203B307B570B708BB28BE04BF401F
:40038000D804D904DB04DC90DF010108028003050482051C09010A550E010F54135615A017091B401E202032224025402640272E28042A402B182E513028324037293810CF
:4003C00039403C043D803F1244014540584061406302680C69406F017B018308888889408D40908291809234935C944495209601978299149D209F07A101A282A401A5401F
:40040000A645A940AA10C0FFC2FFC4FFCABECCEECEFCD608D808DE08E248E6010001030204010702080109200B040C010E020F02100113101601170218011B281C011F02A9
:4004400020012101240127022A012B022C012E022F0232033320351F39203E043F14580459045F01818082088301850486428720881089108B218E078F1C9007912193081A
:4004800094A5964299049A109C079D3CA0C6A221A340A484A501A780A807AB02AE21AF20B00FB17CB4F0B580B60FB703BA82BB80BF10D804D904DC99DF01002A0180040224
:4004C0000554070108860A080E410F14102011501240158016801728188019831A081B101F082044215022202301272428202B492C012E042F443140321236A03719384429
:400500003B113C103EB13F468060880289108B208D03900291409274935C9444952096019782988599149B099D209E40A034A101A292A340A605A710B040B420C0FFC2FFA0
:40054000C4FFCAFFCCFDCEFFE001E208E606E880EE0800C6022106080A100C071007110D1407150119101A421C841F05200724A526422A212D0A30E03103321F330C34E0AF
:4005800035103E013F10580459095B045C995F0181028204844085088606870189028A028C7F8D029087911C920893039406950298569AA19B029C119D109EA6A102A20108
:4005C000A503A601A704A806A902AC06AD02AE78B07FB31FB680BE41BF04C052C502C801C9FFCAFFCBFFCD20CEF0D110D804D904DA04DD09DF01E108E240E340E480E6408A
:40060000E740012003A104020504070908400A520B080D050E200F151001110612081448170419421E201F16220424042606282129212B812F0131183201334036A6382100
:400640003B88400449404A205C025E026C076F047D10802081408204870289018B148C208E018F40911092169385942895C596089708988899B19B099C349EA69F40A20154
:40068000A320A460A51DA610A709AF40B210B380B548B701C0FFC2FFC47FCA1FCCFFCE0FD004D208DE20E040E2A0E440E602EE1A020103040601073F0801093F0C010D0139
:4006C0001202133F140117101A041B021C011F3F2001213F2401253F28012B202C082F083008333F360738803E013F04580459045B045C095F0181028402850289028A1006
:400700008C048D0290049103960498049B039C049D01A102A208A502A604A902AA03AE04AF02B201B402B503B61CBA80BE10BF10D608D804D904DB04DC09DD90DF0101880C
:400740000240030804100504070108450A080C200E220F80100211011214151216201740188019801A021B401D141E061F602010270828222B482C402EAA300432023350F8
:400780003401361037413AF23B083D65460C47104A035C025D015F4067016802804489108A018B048C08910292109420958596029788988099219B019C149D109EA49F4061
:4007C000A460A51DA610A7E1C0EFC2FFC4FFCAFFCCBFCEFFD610D810E0C1E228E42000010108050806020A3F0B020C3F0D08103F110F163F170F19011A201C3F1D04210371
:400800002208230C2508261029082A042E3F2F08310F323F3E043F01580459045B045F018101823F833085DD863F89DD8A048E088F4791CC923F932295019610978899DD1D
:400840009A209C3F9D1DA03FA3DDA43FA5DDAA02ABDDAC01ADDDB103B23FB33CB5C0BE04BF15D804D904DF01008001020215052006A10720081409010A020C500D400E202C
:400880000F801021110113201505160C17401A201C20200821012204248029142B412C012EA82F8030203108324033113514374138223A403B983C803D853F105E806610F3
:4008C00067086D406F01788079409002929094A09541962A970899279C409D109E409F51A240A434A55DA7E1C0FFC2FFC4FFCAFFCCFFCEFFD610E202E601EC0802010301F3
:4009000004080506070109060A040C010D030F081101120113061408150619071A021E011F0120012101230C2401270628082B022C012D063008330F340736073AA33F04C4
:40094000580459045C095F01820183088403850E8A038B018D218E048F4E917F9203950E9602977098039B0E9C109F01A003A304A403A50FA710A803A92EAB41AE08AF02F3
:40098000B010B17FB20FBE01BF01D608D804D904DB04DC09DD90DF0100280140038004840510064009410A280D080F85104112181795180219A31A801D041E902208278034
:4009C00029212A102B212C202D822F04302131043201334435143741382039413B0C3C043D283F825E4067018E40C0FFC2FFC4FFCAFFCCFFCEFFD610D8100003020C030827
:400A0000077F0B100F3F113F150117401B041D3F1E05213F273F280C2A032B202F023004314032023401353F360838AA3E553F115608580459045B045D905F01802084015C
:400A4000850189048B088C0F8F0892079307940496089A089B10A008A108A202A302A401A608A901AA10AB08AD0FB01FB11FB220B41FBE04D804D904DB04DC99DF01000233
:400A800004040640070109400E800F14100815011620172019421A081B081EA821222601288029202A802B202D012E202F0230803119362138883A113C043F5058105A40BB
:400AC0005D405E206240630868096D8080508140820183048565868088A089028A108B088D38900C9101924093549420950A9608989099019A209B219D109E80A220A322DE
:400B0000A4A0A502A605A804B010B204B640C0B8C271C472CABFCCAFCE7FD63CD80CE2AFE602EA01EE030020011F0401070908010A080B1F0E070F03111F14E017011A086B
:400B40001B1E1C481E021F01200F2280230124E0270528042A482B112E102F01301F31053309350336E0371138803F55580459045C095F0181018409870189018A388C7922
:400B80008D018E048F0292019301940995019640970299019A409D019E06A041A101A212A701A822A901AA41AD01AE80B4F8B607B703BA80BF40D804D904DC09DF0100040D
:400BC00001200301045508010A110B080C400E241040118213101510174519201A011C411F412002254026202760288029102A802B202C012E052F0430A031063680371960
:400C000038A0390A3D133F5443038104880490949214935C96019782988199019A209B1D9D20A004A101A290A320A401A605AE40B580C0F7C2EFC4FBCAFFCCFFCEFFE220DC
:400C4000E601EA08EE0400320402066008320C010E380F011033110112041432150419101A321C321D0C201F211022402433260C28322C022D022E103104320F331034700B
:400C8000350837033B083E143F015608580459045B045C905D905F018105820884038505892C8A028B028C038D088F029113920193209403950599059A039D0F9E049F1042
:400CC000A105A203A403A505A803A910AC03AF05B00FB40FB53FBF10D804D904DB04DC09DF0100040102030505E1061008020A160E140F82104011081201131014821508B5
:400D0000171018441B011D041F102220242025472688275829102A822B202F4130183140330136223788382039413A043D804508461047045F40670269906C018080850152
:400D40008B4091089214931894209545970298C299B39A019B019C149D049EA69F40A020A202A340A440A51DA688A70DAB04AC02B401B670C0FFC2FFC4FFCA9FCCFFCE1FDB
:400D8000D610D810E402EC40010202080602080809010E0F1004160118031A0C1C0F2008240828082C0831013502360F3E403F11580459045F018080830184808704888008
:400DC0008B018C3D8D488EC08F20903091019480954999409A039B309C809D489F10A056A101A40CA640A702A8A9AB49AC80AD49B140B307B538B6FFBB08BE40C001C60CB8
:400E0000C70EC814C9FFCAFFCBFFD004D601D804D904DA04DB04DC90DD09DF01E2C000400240031805A10720088009010A100B080C200D020E180F0210881201130814C27A
:400E4000150817101A021F40200821012508262027A02C402D802F1436263780380239103C203D0A3F804780574458045A046C806D656E046F2A745876F7770880808108B5
:400E8000820284108610870A88048A048B088D048E829042911892109328954796029780988299A19B109C149EA69F80A020A103A301A448A518A72CA940AB40C0FFC2FF58
:400EC000C4FFCAF0CCF0CEF5D010E240E440E6B0E880EA20EE4212801704312033043402368038023B403E40C430CCF0CE703180320435803602800282408602940296404A
:400F000097409C02A520CCF0E260E6805320542085808E809402960897409D80A5A0D460E21085A094029740A280A420A5A0A610A720AE04B210E210E640EE1014808E019F
:400F4000C404E602670882408510930898809E01AF04D8011A80820284049520968098809E01C6080B280C040D108710952097089C049E01A202AC80AF04C20F26108B0880
:400F80009740A280A420A610A720A801C820EE205280570875087880872088808908A280A308A720A820AF40D460DC80DE20E610EA80EE40060108020C800D011F105220BF
:400FC00057105F406202862089019E01A202A310B710C001C20DC601D406D604D802E204E80875028B4097409902AF10B002B102B480DE04E004E801EA04EE02010109013A
:401000000B010D010F0111011B011D0100FF01AB02021005BF0000A09F001F000000000000000000100000004000000000000000C0000000FF0000B8470047000001000003
:401040008000000080008000000000000003030003000000270018012700180100010000000000000000000000000000000000000000000000000000000000000000000066
:401080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030
:4010C00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F0
:4011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000AF
:400000000145004009520040015B00400165004050000140410101404E0201404D0301404704014057050140440601405C0701404F0801405A090140430A0140520B014067
:40004000490C0140510D01404D0E0140370F0140441401405A1501404A1601405D1701404218014070190140551A0140561B01400B4001400E4101400C4201400D43014086
:4000800002440140074501400A460140114701400948014010490140184C01400B4D014008500140045101407E02080409421080110218011902600361197C4027212A0AA6
:4000C000012102090528060B07420A090B070E090FC0112F125613801609170819211A491B081E0D1F20227F23102447262029442A092B282C7F3003320533E03438351F3E
:40010000364137E03B883E55580459045C905F01811985198607872288018A088B0E8F19900F924093699680971999199A689E109F19A122A319A408A622A719A824AA088E
:40014000AB19AC01AD19AF44B21FB307B4E0B508B770BA20BB88BF10D804D904DC99DF010002018003140504070809410A040B200C020E2510A21110120814041610174060
:40018000180419021A011B081C081D041E041F202170220823112432254826902712280429022C822D102F1030023108322033803660370639A13B043C103D033F846104F2
:4001C00063208140842186528704880289408B108C10C06FC2FFC4EFCAF5CCFFCEFFE001E20A0001040105080602070409200A010B010C010D040F08100112021302140178
:400200001501172018011C012001240125092A012B092C012F10310433033520360337183B883E403F11580459045C905F018001830284018520870488018B028C018E0230
:400240008F029001920293109401970298019B029E019F28A001A302A401A702A804AA01AB02AC01AD01AE04B004B120B31FB603B908BE41BF05D804D904DB04DF010008A2
:400280000280030504020601072808100A820B200C020D480E0810041108120213011445170419801A401E0220202201241425412630276928022A202BA02CA42D8130126E
:4002C00033543609380639803B203C103D803E0468026A8087048C849002918093119720984599409A719B109F4CA024A12CA282A370A403A501A660A780A984AA21AB4032
:40030000B0C4B140B328B414C0FFC2FFC4FFCA7FCCCFCE7FE208EA04003F01F1043F05880A3F0B440C3F0F221208150116021A3F1DAA1E3F1F44220426102A202B112C011D
:400340002DCC2F22310F33F0363F3E404204470E481049FF4AFF4BFF4F83580459085A045B045C905D095F018011860188508A288C088E4090119101922496019A069E113E
:40038000A011A601A802AA19AC19AE02B040B238B407B501B640BA28BE41BF10D804D904DB04DC09DF010020010202200302041005800620074008280B810C020E0A0F1064
:4003C000104011201201130414051501170418021C121E8A1F90208021012208240829202A80318032083701395A4240530459455B105C805D8061206240636069506A10F4
:400400006B026F017880842085888B228C0491019240935096049728981599409A709B409F04A006A121A292A350A401A64CA780AC02AF40B010B402B501C0FFC2FFC4FFF2
:40044000CA0CCC8ACE0FD001D60FD80FDE08E20AE602EE02030E070108070B010F05110F170318041B011F012301260527092B0F2C0A2D0F3105320C3303340337093F4582
:40048000580859045C095F018011830484188620870188118B588C018D0191089204950196019A119B019C109D489E289F20A010A302A401A711A911AA01AD11AE02B0074C
:4004C000B140B308B408B530B630B707BA02BB80BE10BF04D804D904DC99DF01004401020208041008280A410E0410A0136014021708184019401A011B101C101E041F08BF
:40050000202421D0220523212504274128A02A202B012C062F9031483221341036823704380239A03B083C083D033F9048024A015A205B207A107B207E047F0583108740A0
:4005400089828A408B018D10900291409210933095089604978598149A109C689DA79E819F34A066A109A2D6A3C0A410A510A620A702AF10B110B601B704C04FC24FC4AFEA
:40058000CAFFCCFFCEFFDE10E208E401E60CEA04EC02EE04004A01520211048005530642070409520A010D520E801002115F121C13A0150116011758184319521A041C022A
:4005C0001D531F0C20DF2102232024092512265227802A202B522C802D52303F32C0330F35C037303A083F54580459045C095F018204830F84048508880189038B0C8C07C8
:400600008D089004930894029501980499049E079F02A004A108A404A508A804A908AC01AD0FAE06B007B50FBE01BF10D804D904DF010108034904020584070409180A0172
:400640000B800D0A0E010F081080118412041401152017091A401D061F092110250426602AA62F99316533203440352036803709388039043A103B023CE03D013E013F18DC
:400680005A205B10660267808002820484808540861089818B1092019404951496C09702989099409A809B019C609D2D9E2E9F08A051A180A210A4A4A502A68AA70EA80403
:4006C000AC02B080B210B348B440B511B710C0FFC2FFC4FFCAFFCCFFCEFFE060E480E608E890EC10EE0402070301060207040A040B080D4F0E070F901110120813E0170F9D
:4007000018071B0F1C071F0220012150238F24072710291F2A072B202DFF2E1031FF361F3F01580459045B045C095F018001813F86028704880F8B028F3F9101920F953F69
:40074000960F980F993F9E109F3FA20FA308A40FA710AA04AB20AE08AF3FB13FB21FBA08BF01D804D904DB04DC09DF01010802840302050106200708082009400A400C01AF
:400780000D080F0A1208134A14401504160A19401A031C201D0823402601284029042A802B042C802D142F0230A03209342035013680370A39143A023B803C803E2A428064
:4007C00043015A8068016DC06F0184048701881194809554960197029C229D209E029F09A040A180A301A4B0A51BA683A71CAF12B310B501B620B740C07FC2FBC4FFCAFF08
:40080000CCFFCEFFD608E030E208E420E810ECC0010202080503060409020C020D010F0411031304140E15011702180E19021C011D021F0120042301240127012B022D023D
:400840003001340E350738203A033F10580459045C095F0180088103820784068503860189038A088D038E0790089103940196169703980F99039C089F02A103A202A40774
:40088000A503A608AA04AB01AC09AD03AE10B01FB503BE01BF10D608D804D904DB04DD90DF01010402820308050507020820090A0A010D200E020F101080115013081640E2
:4008C00017041B011C801F10212027042802290B2A202C202E022F0931043352352036803709388039203A083B813CA03E013F085840618084408C028E20912093019480E6
:400900009780990C9A489B109D029E209F40A302A402A511A620A710A920AA40AB10B051B118B206B310B609C0BFC2EFC43FCAFFCCFFCEFFD608D808E208E440E608E8B05C
:40094000EC60EE80020103050601070709020A010B010D020E010F0111021201130115021607170119021A011B011C071D07210222012301260427012A012B062D072E02B2
:40098000310734073E103F01580459045F0180AF8320848087088B208E408FC09008912F9202938094049628970799449A079B289D219E08A210A320A401A620A710A921F7
:4009C000AB08AC01AD28AE08AF42B060B280B3E0B41FB51FBB08D804D904DC99DF010086030804080502060109290B020D020E280F01100211201220130115021620174062
:400A000018081C201D0E1E281F27210127182A622B122E202F52308031013318350236103748388039203B093E443F2183018502870888808B288C048D01C0BFC2FFC4BF14
:400A4000CAFFCCFFCEFFE020E280E4C000BF01010501061008BF0B010D010E3F12081301143F1501170219011A7F1D011E042101222023022602270129012ABF2C012D011A
:400A80002E40303F3480364037033E513F40580459045B045F0182018602880189048A028E40903C91029404962097019A209E1CA004A420A608A810A901AA20B07CB40316
:400AC000B503B704BF40D608D804D904DB04DC99DD90DF0100480112020804040640070508480A880C020E291221132114041501161019101A421C041D011E04228025807F
:400B00002708282829022B012F083108326133043402370838203B853D2059015A015E80640268016DA084018664874089C08E18906091019298930595109640986C9902C9
:400B40009A519B219C029D119E209F08A006A108A234A309A680A950AA01AB01AC20AD04AF40B040B104B208B305B580C0FFC2FFC47FCA2FCCCFCE2FD610D810E002E288B0
:400B8000E408E6B2EA0DEE0A0210060707100B201128120813421401160817C81B071C0F1F20200121212408252126022708280429442A082B282D2F2F80321F331F35E00E
:400BC0003B205608580459045B045C995D905F01810282078502861088C689028A218C108D049084910295039642980799019C079D02A208A302A4A5A642A703A807A902F2
:400C0000AD02AE21B00FB303B4F0B504B6E0BA02BF14D804D904DB04DC09DF010084010202040504074008200A110B800E220F8011541280140415011610180419221A01BB
:400C40001D0421102208271428282A012B012C062D012F2031883250330236423714382039803B053D083F1058205B205F40658066406702698081028220840887428804DA
:400C800089108A018C108E84904091419238931095089640970698049A109B419C6A9DB79EE19F1CA042A10CA257A368A510A620A8C0AE08AF42B090B720C03FC2BFC47F96
:400CC000CAFFCCFFCE6FD610D810E208E404E609EA0CEC04EE0B00080184020104020708080209A50B420C020D07100211C613211402150718101B421C0220022310241C62
:400D00002603272129072A022C032D072E04341F35E0371F3E103F104001450C46E0480949FF4AFF4BFF50045609580459045A045B045C905D995F0162C080019D01A102C3
:400D4000AD04B201B302B504B701BE04BF54D608D804D904DB04DD90DF0100020442052007100D220E010F101562170818101F102104225024062540268029422C142E805E
:400D80002F403180361037093D883E103F014108422044024C10571059105B805C806008614066406701680469806A106B016CC06D366E046F8674507509762E77407920A8
:400DC0007B08802081408208830484108508884C89048C108D508E088F02904091039201931094A69514968098929A809B109C219D299E2E9F4CA001A1A6A212A328A48491
:400E0000A550A68CA714A810AA10AB90AE40AF08B120B220B302B420B508B602C0F8C2F0C4F0CAF9CCE8CEF0D010D61CD81CE220E4A0E650EA20EC90EE0800010104050180
:400E4000061F070A081F09040D170E081104122016021702181F19031B141D041E1F1F13201F21022301261027032A042B042D052E1F2F083110343F370F3A203F414043F4
:400E80004520480249FF4AFF4BFF4D204EF05110580459045A045B045C095D095F016108624063406480664067408302840A8501860589018D019005920A950199019F01DF
:400EC000A101A704A901AA06AF01B004B202B408B507B601B8AAB920BE55D804D904DB04DC90DF0100940340040809680A800E801080110412061408180419201E091F05ED
:400F0000210122402520262027082A802BA92D102F92312232803304350836203740380439413B103CA03D043F024105490258405A205C306C046E808301840985208A0184
:400F40008B048F08915D92209330986099089A849B449C019D229F08A0D0A14AA282A3AAA604A903AB04AEC0AF80B004B206B340B501C02FC21FC44FCAFFCC7FCEFFD00335
:400F8000D60CE020E280E404E6C2EAB2EC84EE221280170431203304368438083B403D10C430CCF0CE70320433803580360885108608940895109740A520A604CCF0E21028
:400FC000E6105280540885809408960897409D80A520A604A780D460E21082808604940896089740A408A680A780A920AA04E630EA20EE201410C404530166808540860131
:401000009810D401D6011B0484048F109601970298109D409E80C608E00808080B080C040E0187048F01960197029C049D409E80A310AB04B010C20FE002EA042640864076
:401040009740A408A804AF80C820E440EE905102572072207508880889088A208D02A320A408AB20AF40D4C0DC80DE20EE6005400A200D100E801F105001530857106080B4
:401080008A808C808E109D409E80A310AC08C001C20DC601D407D802E008E202E4047001800186408B08A240A708A801AD10AF10DC01E004010109010B010D010F01110150
:4010C0001B011D0100FF01AB02021005BF0000A09F001F000000000000000000100000004000000000000000C0000000FF0000B847004700000100008000000282008200F9
:401100000000000000030300030000002700180127001801000100000000000000000000000000000000000000000000000000000000000000000000000000000000000025
:40114000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006F
:40118000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002F
:4011C00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000EF
@@ -4615,12 +4615,12 @@
:0200000490105A
:04000000BC90ACAF55
:0200000490303A
:020000004F07A8
:020000006DABE6
:0200000490402A
:4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000C0
:400040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080
:400080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040
:4000C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
:0200000490501A
:0C00000000012E16106900002E305F7009
:0C00000000012E16106900002E307E1446
:00000001FF

View File

@@ -20,33 +20,34 @@ module FIFOout (
wire [7:0] po;
assign d = po;
localparam STATE_WAIT = 1'b0;
localparam STATE_READ = 1'b1;
localparam STATE_WAITFORREQ = 0;
localparam STATE_READFROMFIFO = 1;
localparam STATE_WAITFORNREQ = 2;
reg state;
reg oldreq;
reg [1:0] state;
wire readfromfifo;
assign ack = (state != STATE_READ);
assign ack = (state == STATE_WAITFORNREQ);
assign readfromfifo = (state == STATE_READFROMFIFO);
always @(posedge clk)
begin
case (state)
STATE_WAIT:
/* opcode is not valid; req is low; wait for req to go high. */
STATE_WAITFORREQ:
begin
if (!empty)
begin
if (req && !oldreq)
begin
state <= STATE_READ;
end
oldreq <= req;
end
if (!empty && req)
state <= STATE_READFROMFIFO;
end
STATE_READ:
begin
state <= STATE_WAIT;
end
/* Fetch a single value from the FIFO. */
STATE_READFROMFIFO:
state <= STATE_WAITFORNREQ;
/* opcode is valid; ack is high. Wait for req to go low. */
STATE_WAITFORNREQ:
if (!req)
state <= STATE_WAITFORREQ;
endcase
end
@@ -55,11 +56,11 @@ cy_psoc3_dp #(.cy_dpconfig(
`CS_ALU_OP_PASS, `CS_SRCA_A0, `CS_SRCB_D0,
`CS_SHFT_OP_PASS, `CS_A0_SRC_NONE, `CS_A1_SRC_NONE,
`CS_FEEDBACK_DSBL, `CS_CI_SEL_CFGA, `CS_SI_SEL_CFGA,
`CS_CMP_SEL_CFGA, /*CFGRAM0: STATE_WAITFORREQ*/
`CS_CMP_SEL_CFGA, /*CFGRAM0: idle */
`CS_ALU_OP_PASS, `CS_SRCA_A0, `CS_SRCB_D0,
`CS_SHFT_OP_PASS, `CS_A0_SRC___F0, `CS_A1_SRC_NONE,
`CS_FEEDBACK_DSBL, `CS_CI_SEL_CFGA, `CS_SI_SEL_CFGA,
`CS_CMP_SEL_CFGA, /*CFGRAM1: STATE_LOAD*/
`CS_CMP_SEL_CFGA, /*CFGRAM1: read from fifo */
`CS_ALU_OP_PASS, `CS_SRCA_A0, `CS_SRCB_D0,
`CS_SHFT_OP_PASS, `CS_A0_SRC_NONE, `CS_A1_SRC_NONE,
`CS_FEEDBACK_DSBL, `CS_CI_SEL_CFGA, `CS_SI_SEL_CFGA,
@@ -102,7 +103,7 @@ cy_psoc3_dp #(.cy_dpconfig(
)) dp(
/* input */ .reset(1'b0),
/* input */ .clk(clk),
/* input [02:00] */ .cs_addr({2'b0, state}),
/* input [02:00] */ .cs_addr({2'b0, readfromfifo}),
/* input */ .route_si(1'b0),
/* input */ .route_ci(1'b0),
/* input */ .f0_load(1'b0),

View File

@@ -851,6 +851,7 @@
<Data key="4a398466-709f-4228-9500-96178658e13e" value="RDATA" />
<Data key="5a3407c1-b434-4438-a7b4-b9dfd2280495" value="MOTEA" />
<Data key="8d318d8b-cf7b-4b6b-b02c-ab1c5c49d0ba" value="SW1" />
<Data key="8fc20a4f-e4d1-44b3-a5d4-546e8628d61e" value="LED" />
<Data key="12e00eac-69b5-4717-85c8-25ef6b224d4c" value="DEBUG_PINS" />
<Data key="41e2d8ed-5494-4d8c-8ff7-f4f789cece51" value="REDWC" />
<Data key="264be2d3-9481-494b-8d9c-c1905a45e9cc" value="FDD" />
@@ -3977,6 +3978,11 @@
<Data key="Port Format" value="2,2" />
</Group>
</Group>
<Group key="8fc20a4f-e4d1-44b3-a5d4-546e8628d61e">
<Group key="0">
<Data key="Port Format" value="2,1" />
</Group>
</Group>
<Group key="12e00eac-69b5-4717-85c8-25ef6b224d4c">
<Group key="0">
<Data key="Port Format" value="2,2" />

View File

@@ -2762,6 +2762,39 @@
</CyGuid_2f73275c-45bf-46ba-b3b1-00a2fe0c8dd8>
<filters />
</CyGuid_ebc4f06d-207f-49c2-a540-72acf4adabc0>
<CyGuid_ebc4f06d-207f-49c2-a540-72acf4adabc0 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFolderSerialize" version="3">
<CyGuid_2f73275c-45bf-46ba-b3b1-00a2fe0c8dd8 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtBaseContainerSerialize" version="1">
<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItemSerialize" version="2" name="LED" persistent="">
<Hidden v="False" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<CyGuid_0820c2e7-528d-4137-9a08-97257b946089 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItemListSerialize" version="2">
<dependencies>
<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileSerialize" version="3" xml_contents_version="1">
<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItemSerialize" version="2" name="LED_aliases.h" persistent="Generated_Source\PSoC5\LED_aliases.h">
<Hidden v="False" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<build_action v="HEADER;;;;" />
<PropertyDeltas />
</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>
<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileSerialize" version="3" xml_contents_version="1">
<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItemSerialize" version="2" name="LED.c" persistent="Generated_Source\PSoC5\LED.c">
<Hidden v="False" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<build_action v="SOURCE_C;CortexM3;;;" />
<PropertyDeltas />
</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>
<CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtFileSerialize" version="3" xml_contents_version="1">
<CyGuid_31768f72-0253-412b-af77-e7dba74d1330 type_name="CyDesigner.Common.ProjMgmt.Model.CyPrjMgmtItemSerialize" version="2" name="LED.h" persistent="Generated_Source\PSoC5\LED.h">
<Hidden v="False" />
</CyGuid_31768f72-0253-412b-af77-e7dba74d1330>
<build_action v="HEADER;;;;" />
<PropertyDeltas />
</CyGuid_8b8ab257-35d3-4473-b57b-36315200b38b>
</dependencies>
</CyGuid_0820c2e7-528d-4137-9a08-97257b946089>
</CyGuid_2f73275c-45bf-46ba-b3b1-00a2fe0c8dd8>
<filters />
</CyGuid_ebc4f06d-207f-49c2-a540-72acf4adabc0>
</dependencies>
</CyGuid_0820c2e7-528d-4137-9a08-97257b946089>
</CyGuid_2f73275c-45bf-46ba-b3b1-00a2fe0c8dd8>

View File

@@ -40,9 +40,7 @@ always @(posedge clock) olddataclock <= dataclock;
assign dataclocked = !olddataclock && dataclock;
reg oldsampleclock;
wire sampleclocked;
always @(posedge clock) oldsampleclock <= sampleclock;
assign sampleclocked = !oldsampleclock && sampleclock;
reg sampleclocked;
reg oldindex;
wire indexed;
@@ -57,11 +55,18 @@ begin
countdown <= 0;
end
else
begin
if (!oldsampleclock && sampleclock)
sampleclocked <= 1;
oldsampleclock <= sampleclock;
case (state)
STATE_IDLE:
state <= STATE_LOAD;
STATE_LOAD:
/* Wait for a posedge on dataclocked, indicating an opcode has
* arrived. */
if (dataclocked)
case (opcode)
OPCODE_PULSE:
@@ -80,10 +85,10 @@ begin
STATE_WAITING:
if (sampleclocked)
begin
sampleclocked <= 0;
countdown <= countdown - 1;
if (countdown == 0)
state <= STATE_LOAD;
else
countdown <= countdown - 1;
end
STATE_PULSING:
@@ -92,9 +97,8 @@ begin
STATE_INDEXING:
if (indexed)
state <= STATE_LOAD;
else
state <= STATE_INDEXING;
endcase
end
end
//`#end` -- edit above this line, do not edit this line

View File

Binary file not shown.

View File

@@ -334,7 +334,7 @@ static void cmd_read(struct read_frame* f)
{
uint8_t i = CyEnterCriticalSection();
SAMPLER_FIFO_SET_LEVEL_MID;
SAMPLER_FIFO_SET_LEVEL_NORMAL;
SAMPLER_FIFO_CLEAR;
SAMPLER_FIFO_SINGLE_BUFFER_UNSET;
CyExitCriticalSection(i);
@@ -490,7 +490,7 @@ static void cmd_write(struct write_frame* f)
SIDE_REG_Write(f->side);
{
uint8_t i = CyEnterCriticalSection();
REPLAY_FIFO_SET_LEVEL_NORMAL;
REPLAY_FIFO_SET_LEVEL_MID;
REPLAY_FIFO_CLEAR;
REPLAY_FIFO_SINGLE_BUFFER_UNSET;
CyExitCriticalSection(i);

View File

@@ -3,7 +3,7 @@
enum
{
FLUXENGINE_VERSION = 11,
FLUXENGINE_VERSION = 12,
FLUXENGINE_VID = 0x1209,
FLUXENGINE_PID = 0x6e00,