4 bitový počítač
Moderátor: Moderátoři
S GALem /B v matici funkce tak jednoduše nejde, ale dá se to udělat jako příprava, že naplníš registr B hodnotou /B.lesana87 píše:A pro výpočet A - B je výhodné použít borrow = /carry, pak stačí do sčítačky pustit A a /B. Ušetří se dva XORy. Proto je to v těch diskrétních ALU tak zaonačené.
Mikroprogram obslouží maximálně 16 instrukcí, resp. NOP (fetch fáze) a 15 instrukcí.
NOP bude trvat 1 mikroinstrukci, ostatní budou NOP + 2 mikroinstrukce.
Instrukce bude mít format Instr, Par1, Par2.
Parametry Par1, Par2 budou při skoku adresa.
Horních 16 adres bude rezervováno na pracovní registry.
Do těch se bude přistupovat zkráceně, takže na adresaci stačí jeden parametr.
Instrukce SET C a CLR C žádný parametr nepotřebují.
Pokud ale pracuji nad A akumulátorem a B je druhý operand, tak to tak nepotřebuji.
Zkrácená adresace pro registry je nutnost, protože jinak to se 3-mi takty mikroinstrukcí nenaadresuji.
Ale protože je adresní prostor pro program celých 8 bitů, tak můžu na ty registry skákat a zapisovat do nich program
Ale možná to pro verzi s CPLD upravím na delší délku mikroprogramu, než co by odpovídalo MH74188.
V CPLD to dekódovaní mikroinstrukce vypadá spíš, jako diodová matice, takže prázdnými mikroinstrukcemi nic moc nepřibude.
Takže ins, adr1, provedu IN/OUT na adr1 s A, nebo by šlo taky ins, adr1, par2 - OUT na adr1.
Počítám, že případná aplikace by bylo řízení nějaké mašinky, takže řídící pulzy můžou být přímo dekódované adresy I/O bez dat přes 74HCT137, případně by tam byl 74HCT259 a na vstupy 74HCT151.
Na zobrazení by byl samostatnej modul s pamětí čísla i dekódováním.
Musí to umět podprogram (do nějaké hloubky), nepřímé, nebo indexové adresování a pokud to má fungovat v reálném čase, tak interrupt.
A nejlepší podpora je dlouhá délka mikroinstrukcí a dat.
Musíš umět počítat adresaci a to nepoměr mezi délkou dat a adresací značně ztěžuje.
Takže velmi rychle se přišlo na to, že 8 bitů dat a 16 bitů adresace je pro jednoduché CPU optimum - 6502
Větší počet registrů a zdvojené registry, 16 bit operace - 8080
A zdvojené prostředí pro interrupt - Z80
Já jdu opačným směrem, jde mi o to, co se dá nacpat do nějakého minimálního prostoru, tím, že se to optimalizuje.
Začínal jsem před 50-ti lety na Wang 2200