CPU - Stavba
Doporučuji si CPU rozdělit na 5 částí:
- Registry - vnitřní paměti CPU
- CU (Control Unit) - něco co vaši instrukci přijme a podle toho vykoná kroky
- Control room - debug část pro čtení obsahů registrů a podobných věcí
- Input/Output - vstupy,výstupy...
- Paměť (RAM/ROM) - v harvardské architektuře typicky ROM pro program a RAM pro data, ve Von Neumannově architektuře pouze RAM
Hrdinské komponenty pro vaše CPU
Gates/Controlled Buffer
- rozhoduje jestli pouštíte proud nebo ne, v parametrech navolíte pouze vstupní a výstupníData Bits
Wiring/Tunnel
- komponenta pro přehlednost, vytvoříte n komponent se stejným labelem (Label
) a bude vám přenášet vstup bez nutných kabelů přes celou plochuWiring/Probe
- debug věc, pro zjištění hodnoty na kabelu...Memory/Register
- nejpoužívanější paměťová buňka
Stepper
Stepper vám "stepuje" (krokuje) vaše instrukce. Jelikož některé instrukce zaberou více cyklů...
Jedná se o jednoduchý n-bitový counter s n-bitovým decoderem. Se vstupem CLK
(Clock) a RST
(Reset) a n-výstupy.
2 bitový stepper vypadá následovně:
Registry
Ovládání registru může vypadat následovně
Velmi doporučuji použití tunelů (Wiring/Tunnel
) a vytvořit konvence jako například <registr>_set
apod..
Ovládání pro register A:
a_set
- 1, když setujeme register Aa_ena
- 1, když pouštíme register A na sběrnicirst
- 1, když chceme provést reset registrů
Program Counter (PC)
Program counter je komponenta CPU, která vám říká, na jakém řádku programu (instrukce) se nacházíte. Potřebujete pro něj 2 věci:
- zvětšit o 1
- změnit hodnotu pro
jmp
Na obrázku jsou piny na ovládání, to je jen pro testování.