ΠΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° (ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΏΡΠ°Π²Π»ΡΡΡΠ΅Π³ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΎΠ²) Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π°Π±ΠΎΡΠ° ΠΌΠ°ΡΠΈΠ½Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄
ΠΠΎΡΠ»Π΅ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΡΠ°Π·Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΡΠ°Π·Π° ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ. Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΡΠ° ΡΠ°Π·Π° ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΠΏΠ°ΠΌΡΡΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠΉ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈΠ»ΠΈ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΠΏΠ°ΠΌΡΡΠΈ Π½ΠΎΠΌΠ΅ΡΠ° ΡΠ΅Π³ΠΈΡΡΡΠ°. Π ΠΊΠΎΠ½ΡΠ΅ ΡΡΠΎΠΉ ΡΠ°Π·Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Π³ΠΎΡΠΎΠ² ΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ. ΠΠ° ΡΡΠΎΠΌ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΡΠ°Π·Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. Π€Π°Π·Π° ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° (ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΏΡΠ°Π²Π»ΡΡΡΠ΅Π³ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΎΠ²) Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π°Π±ΠΎΡΠ° ΠΌΠ°ΡΠΈΠ½Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
Π Π΄Π°Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π° ΡΡΡΡΠΊΡΡΡΠ½Π°Ρ ΡΡ Π΅ΠΌΠ° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° (ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΏΡΠ°Π²Π»ΡΡΡΠ΅Π³ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΎΠ²) Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π°Π±ΠΎΡΠ° ΠΌΠ°ΡΠΈΠ½Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄. ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Π½Π° ΡΠ·ΡΠΊΠ΅ VHDL ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. Π£ΠΏΡΠ°Π²Π»ΡΡΡΠΈΠΉ Π°Π²ΡΠΎΠΌΠ°Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Ρ Ρ ΡΠ°Π½ΠΈΠΌΡΠΌΠΈ Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΌΠΈΠΊΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Ρ ΠΎΠ΄ΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΌΠ°ΡΠΈΠ½Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄.
ΠΠΠ Ρ Ρ ΡΠ°Π½ΠΈΠΌΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ (stored program electronic computer) ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΠΊΠ°ΠΊ ΠΌΠ°ΡΠΈΠ½Π°, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΠ°Ρ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ Π·Π°ΡΠ°Π½Π΅Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌΠΈ (ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ); ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° (Π½Π°Π±ΠΎΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ) ΠΈ Π΄Π°Π½Π½ΡΠ΅ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΌΠ°ΡΠΈΠ½Ρ. ΠΠ»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ Π΄Π°Π½Π½ΡΡ Π² ΠΏΠ°ΠΌΡΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ· ΠΏΠ°ΠΌΡΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΡΠΏΠΎΡΠΎΠ± ΡΠ²ΡΠ·ΠΈ Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ. ΠΡΠΎΠΉ ΡΠ΅Π»ΠΈ ΡΠ»ΡΠΆΠ°Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°.
Π£ΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΠΠ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ°Π±ΠΎΡΠΎΠΉ Π²ΡΠ΅ΠΉ ΠΌΠ°ΡΠΈΠ½Ρ Π² ΡΠ΅Π»ΠΎΠΌ. ΠΠ½ΠΎ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΡ ΠΏΠ°ΠΌΡΡΠΈ, ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π½Π°Π΄ΠΎ ΠΎΡΡΡΠ΅ΡΡΠ²ΠΈΡΡ ΠΈ Π³Π΄Π΅ Π² ΠΏΠ°ΠΌΡΡΠΈ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ Π΄Π°Π½Π½ΡΠ΅, Π½Π°Π΄ ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡΡ ΡΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ. ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡ, ΠΊΠ°ΠΊΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΡ, ΠΎΠ½ΠΎ Π²ΡΠ΄Π°Π΅Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΡΠΈΠ³Π½Π°Π»Ρ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ ΠΎΡΠΊΡΡΡΡ ΠΈ Π·Π°ΠΊΡΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π²Π΅Π½ΡΠΈΠ»ΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠ΅Π³ΠΎ Π΄Π°Π½Π½ΡΠ΅, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ Π² Π²ΠΈΠ΄Π΅ ΡΠ»Π΅ΠΊΡΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΈΠ³Π½Π°Π»ΠΎΠ², ΡΠΌΠΎΠ³ΡΡ ΠΏΠΎΡΡΡΠΏΠ°ΡΡ ΠΎΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΊ Π΄ΡΡΠ³ΠΎΠΌΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ALU Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ²ΠΎΡ ΡΠ°ΡΡΡ Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ΄Π°ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΡΠ°Π·ΡΠ΅ΡΠ°ΡΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² ΠΏΠ°ΠΌΡΡΡ ΠΈΠ»ΠΈ Π½Π°ΠΏΡΠ°Π²Π»ΡΡΡΡΡ ΡΡΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡ-Π½ΠΈΠ±ΡΠ΄Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Ρ Π²ΡΠ²ΠΎΠ΄Π°; ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π½Π° Π΄ΡΡΠ³ΠΎΠΌ Π½ΠΎΡΠΈΡΠ΅Π»Π΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π½Π° Π΄ΠΈΡΠΊΠ΅. Π ΠΊΠΎΠ½ΡΠ΅ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΌΠ°ΡΠΈΠ½Ρ Π²ΡΠ±ΡΠ°ΡΡ ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½ΠΎΠΉ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠΉ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ. ΠΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΡΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΡΠΎΡΡΠΎΠ΅ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΡΡΡΡΠΎΠΉΡΡΠ²Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, ΡΠ΄Π΅Π»Π°Π½Π½ΠΎΠ΅ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ Π² ΠΌΠ°ΡΠΈΠ½Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΠ·Π»Ρ (ΡΡΠΌΠΌΠ°ΡΠΎΡ, ΡΠ΅Π³ΠΈΡΡΡΡ, ΡΡΠ΅ΡΡΠΈΠΊΠΈ), Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠΊΡΡΡΡ ΠΈ Π·Π°ΠΊΡΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π²Π΅Π½ΡΠΈΠ»ΠΈ Π² ΡΠ΅ΠΏΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ ; ΠΊΠΎΠΌΠΌΡΡΠ°ΡΠΈΡ ΡΡΠΈΡ Π²Π΅Π½ΡΠΈΠ»Π΅ΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π²ΠΎΠ΄ΠΈΡΡ Π² ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠ½ΡΠ΅ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΠ·Π»Ρ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠ΅ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Ρ, ΠΏΡΠΈΡΠ΅ΠΌ Π²Π²ΠΎΠ΄ ΠΈΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΈ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΡΡ ΡΠΈΠΊΠ»ΠΎΠ².
Π£ΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΡΡΡΠΎΠΈΡΡ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅ΠΌΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠ΅. ΠΠΎΠ½ΠΊΡΠ΅ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π² Π·Π°Π΄Π°ΡΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ, ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΡΡ Π΅ΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, ΠΈ ΡΡ Π΅ΠΌΡ ΡΠΏΡΠ°Π²Π»ΡΡΡΠ΅Π³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. Π Π΄Π°Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° ΡΡ Π΅ΠΌΠ° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ°Π³ΠΈΡΡΡΠ°Π»ΡΡ.
1. ΠΠ½Π°Π»ΠΈΠ· Π·Π°Π΄Π°Π½ΠΈΡ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΡΡΡΠΊΡΡΡΠ½ΠΎΠΉ (ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΉ) ΡΡ Π΅ΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°
Π Π°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΡΡΡΠΊΡΡΡΠ½ΡΡ ΡΡ Π΅ΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° (ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΏΡΠ°Π²Π»ΡΡΡΠ΅Π³ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΎΠ²) Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π°Π±ΠΎΡΠ° ΠΌΠ°ΡΠΈΠ½Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄. Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Π½Π° ΡΠ·ΡΠΊΠ΅ VHDL, ΠΏΡΠΎΠ²Π΅ΡΡΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
Π£ΠΏΡΠ°Π²Π»ΡΡΡΠΈΠΉ Π°Π²ΡΠΎΠΌΠ°Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Ρ Ρ ΡΠ°Π½ΠΈΠΌΡΠΌΠΈ Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΌΠΈΠΊΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Ρ ΠΎΠ΄ΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΌΠ°ΡΠΈΠ½Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ΄Π½ΠΎΠΌΠ°Π³ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΡΡΡΡΠΊΡΡΡΡ.
ΠΠΈΠΊΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ Π°Π²ΡΠΎΠΌΠ°Ρ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠΎΠ»Π΅ΠΌ Π°Π΄ΡΠ΅ΡΠ°.
Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅:
1. MOV A, #d; ΠΠ°Π³ΡΡΠ·ΠΊΠ° Π² Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ
2. MOV Rn, #d; ΠΠ°Π³ΡΡΠ·ΠΊΠ° Π² ΡΠ΅Π³ΠΈΡΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ
3. ADD A, Rn; ΠΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡΠ° ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ°
4. JBΠ‘ bit, rel; Π£ΡΠ»ΠΎΠ²Π½ΡΠΉ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° Π°Π΄ΡΠ΅Ρ ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅:
— ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΠΌΠ½Π΅ΠΌΠΎΠΊΠΎΠ΄Π°ΠΌ ΡΠ·ΡΠΊΠ° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° ΠΠ51.
— ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΌΠΎΠ³ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ Π² Π»ΡΠ±ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ;
— ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° #d ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΠΎ ΠΏΠΎΡΡΠ΄ΠΊΡ Π±Π°ΠΉΡΠ΅ ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ;
— n — Π½ΠΎΠΌΠ΅Ρ ΡΠ΅Π³ΠΈΡΡΡΠ° 0, 1, 2, 3.
Π‘ΡΡΡΠΊΡΡΡΠ½Π°Ρ ΡΡ Π΅ΠΌΠ° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π½Π° ΡΠΈΡ. 1. ΠΠ· ΡΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠ΅Π³ΠΈΡΡΡ-Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ, ΡΠ΅Π³ΠΈΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΈ ΡΠ΅Π³ΠΈΡΡΡΡ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ, ΠΏΠ°ΠΌΡΡΡ ΠΌΠΈΠΊΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠΊΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΠΌΠΈΠΊΡΠΎΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, Π° ΡΠ°ΠΊ ΠΆΠ΅ ΡΠ΅Π³ΠΈΡΡΡ Π½Π° 1 Π±ΠΈΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ «JBC bit, rel», Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π² ΡΠ΅Π³ΠΈΡΡΡ Π·Π°Π½ΠΎΡΠΈΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ»Π°Π³Π° FC, ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π² Π»ΠΎΠ³. 1 ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°Π·ΡΡΠ΄Π½ΠΎΠΉ ΡΠ΅ΡΠΊΠΈ, ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΡΠΎΡΠ΅ΡΡΠΎΡ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠ΅ΡΡΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ° ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ R0-R3. ΠΡΠΈ ΡΡΠΎΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠ±ΠΈΡΠ°ΡΡ Π½ΠΎΠΌΠ΅Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°, ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ.
ΠΡΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌ, ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Π²ΠΎΡΡΠΌΠΈΡΠ°Π·ΡΡΠ΄Π½ΡΠΉ, Ρ. Π΅. ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΡΠ»ΠΎΠ²Π° ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ Π² Π²ΠΎΡΠ΅ΠΌΡ Π±ΠΈΡ. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ Π°Π΄ΡΠ΅ΡΠ° ΠΈ Π΄Π°Π½Π½ΡΠ΅ Π±ΡΠ΄ΡΡ Π²ΠΎΡΡΠΌΠΈΡΠ°Π·ΡΡΠ΄Π½ΡΠ΅, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°ΠΊΠΆΠ΅ Π²ΠΎΡΡΠΌΠΈΡΠ°Π·ΡΡΠ΄Π½ΠΎΠΉ ΡΠΈΠ½Π΅.
2. ΠΠ±ΡΠ΅Π΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ° ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°
ΠΠ°Π½Π½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Ρ ΠΎΠ΄Π½ΠΎΠΌΠ°Π³ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠΎΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π² Π·Π°Π΄Π°Π½ΠΈΠΈ Π½Π°Π±ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄.
Π Π΄Π°Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΡΠ΅ΡΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΠΎΠ΄Π½Ρ ΠΎΠ±ΡΡΡ ΡΠΈΠ½Ρ Π°Π΄ΡΠ΅ΡΠ° ΠΈ Π΄Π°Π½Π½ΡΡ .
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠΌ ΡΠ°ΠΊΠΎΠΉ ΡΡ Π΅ΠΌΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½ΠΈΠ·ΠΊΠ°Ρ, ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΌΠ½ΠΎΠ³ΠΎΡΠΈΠ½Π½ΡΠΌΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°ΠΌΠΈ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΈ Π΄Π»Ρ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΈ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½Π°Ρ ΡΠΈΠ½Π°.
ΠΠ»ΠΎΠΊ «ΠΠ°ΠΌΡΡΡ» ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ. ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ Π½Π° Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ΅ Π±Π΅Π· Π½Π΅Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ Π΄ΠΎΡΠ°Π±ΠΎΡΠΎΠΊ Π±ΡΠ΄Π΅Ρ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.
ΠΡΠ±ΠΎΡΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈΠ· ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ: Π°Π΄ΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΌ ΡΡΠ΅ΡΡΠΈΠΊΠ΅ Π°Π΄ΡΠ΅ΡΠ°, Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π² ΡΠ΅Π³ΠΈΡΡΡ Π°Π΄ΡΠ΅ΡΠ°, Π° Π·Π°ΡΠ΅ΠΌ Π²ΡΠ΄Π°Π΅ΡΡΡ Π½Π° Π°Π΄ΡΠ΅ΡΠ½ΡΠ΅ Π²Ρ ΠΎΠ΄Ρ Π±Π»ΠΎΠΊΠ° ΠΏΠ°ΠΌΡΡΠΈ, ΡΡΠΎ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°Π΅ΡΡΡ Π²ΡΠ΄Π°ΡΠ΅ΠΉ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ ΡΠΈΠ³Π½Π°Π»Π° ΡΡΠ΅Π½ΠΈΡ ΠΈΠ· ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ°Π½Π½ΡΠ΅ ΠΈΠ· ΠΏΠ°ΠΌΡΡΠΈ ΡΡΠΈΡΡΠ²Π°ΡΡΡΡ Π² Π±ΡΡΠ΅ΡΠ½ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ. ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²ΡΠ±ΡΠ°Π½Π½Π°Ρ ΠΈΠ· ΠΏΠ°ΠΌΡΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ Π² Π±ΡΡΠ΅ΡΠ½ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ, ΠΎΠ½Π° Π²ΡΠ΄Π°Π΅ΡΡΡ Π½Π° Π²Π½ΡΡΡΠΈΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΡΡ ΡΠΈΠ½Ρ, ΠΎΡΠΊΡΠ΄Π° ΠΎΠ½Π° Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π² ΡΠ΅Π³ΠΈΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ IR. ΠΠ° ΡΡΠΎΠΌ Π²ΡΠ±ΠΎΡΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ.
ΠΠΎΡΠ»Π΅ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΡΠ°Π·Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΡΠ°Π·Π° ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ. Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΡΠ° ΡΠ°Π·Π° ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΠΏΠ°ΠΌΡΡΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠΉ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈΠ»ΠΈ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΠΏΠ°ΠΌΡΡΠΈ Π½ΠΎΠΌΠ΅ΡΠ° ΡΠ΅Π³ΠΈΡΡΡΠ°. Π ΠΊΠΎΠ½ΡΠ΅ ΡΡΠΎΠΉ ΡΠ°Π·Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Π³ΠΎΡΠΎΠ² ΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ. ΠΠ° ΡΡΠΎΠΌ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΡΠ°Π·Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. Π€Π°Π·Π° ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π·Π°Π½Π΅ΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π² Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ, Π² ΡΠ΅Π³ΠΈΡΡΡΡ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π΅ Π½Π° Π°Π΄ΡΠ΅Ρ.
3. ΠΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΌΠΈΠΊΡΠΎΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
ΠΡΠΎΠ½ΡΠΌΠ΅ΡΡΠ΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°:
ΠΠΎΠ΄ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ | ΠΠΎΠΌΠ°Π½Π΄Π° | |||
Mov A,#d | ||||
Mov Rn,#d | ||||
ADD Rn, A | ||||
JBC bit, rel | ||||
ΠΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° ΠΌΠΈΠΊΡΠΎΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ MOV A, #d:
ΠΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° ΠΌΠΈΠΊΡΠΎΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ MOV Rn, #d:
ΠΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° ΠΌΠΈΠΊΡΠΎΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Add A, Rn:
4. Π‘ΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΌΠΈΠΊΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
ΠΠ»Π³ΠΎΡΠΈΡΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΠ°ΠΊΠΈΡ ΡΠ°Π·:
1. ΠΡΠ±ΠΎΡΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈΠ· ΠΏΠ°ΠΌΡΡΠΈ ΠΏΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΌΡ Π°Π΄ΡΠ΅ΡΡ
2. ΠΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ (Π΄Π΅ΡΠΈΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅) ΠΈ ΠΏΠΎΠ΄Π°ΡΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΡ ΡΠΈΠ³Π½Π°Π»ΠΎΠ²
3. ΠΠ°Π³ΡΡΠ·ΠΊΠ° Π΄Π°Π½Π½ΡΡ
4. ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
5. ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° ΠΊ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π ΡΠ»ΡΡΠ°Π΅ Ρ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΡΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠΌ ΠΎΠ±ΡΠΈΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
1. ΠΠ°ΠΏΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ΅ΡΡΠΈΠΊΠ° Π² MAR (Memory Address Register).
2. ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ MAR Π½Π° Π°Π΄ΡΠ΅ΡΠ½ΡΠ΅ Π²Ρ ΠΎΠ΄Ρ ΠΏΠ°ΠΌΡΡΠΈ.
3. ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° ΡΠΈΠ³Π½Π°Π»Π° ΡΡΠ΅Π½ΠΈΡ ΠΈ Π²ΡΠ±ΠΎΡΠ° ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ ΠΏΠ°ΠΌΡΡΠΈ.
4. ΠΠ°ΠΏΠΈΡΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΠΏΠ°ΠΌΡΡΠΈ Π² MBR (Memory Buffer Register).
5. ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ MBR Π½Π° ΡΠΈΠ½Ρ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΈ Π·Π°ΠΏΠΈΡΡ Π΅Π³ΠΎ Π² ΡΠ΅Π³ΠΈΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ IR (Instruction Register).
6. ΠΡΠ±ΠΎΡ ΠΈΠ· ΠΏΠ°ΠΌΡΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
7. Π£Π²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΡΡΡΡΡΠΈΠΊΠ°
8. ΠΠ°ΠΏΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ΅ΡΡΠΈΠΊΠ° Π² MAR (Memory Address Register).
9. ΠΡΠ΄Π°ΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ MAR Π½Π° Π°Π΄ΡΠ΅ΡΠ½ΡΠ΅ Π²Ρ ΠΎΠ΄Ρ ΠΏΠ°ΠΌΡΡΠΈ.
10. ΠΡΠ΄Π°ΡΠ° ΡΠΈΠ³Π½Π°Π»Π° ΡΡΠ΅Π½ΠΈΡ ΠΈ Π²ΡΠ±ΠΎΡΠ° ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ ΠΏΠ°ΠΌΡΡΠΈ.
11. ΠΠ°ΠΏΠΈΡΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΠΏΠ°ΠΌΡΡΠΈ Π² MBR (Memory Buffer Register).
12. ΠΡΠ΄Π°ΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ MBR Π½Π° ΡΠΈΠ½Ρ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°.
13. ΠΡΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° mov, ΡΠΎ Π·Π°ΠΏΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Ρ ΡΠΈΠ½Ρ Π΄Π°Π½Π½ΡΡ Π² Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ ΠΈΠ»ΠΈ Π² ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΡΡΡΡΡΠΈΠΊΠ° ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΊ ΠΏΡΠ½ΠΊΡΡ 1.
14. ΠΡΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° ADD ΠΈΠ»ΠΈ SUB, ΡΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π½Π° ΡΠΈΠ½Ρ Π΄Π°Π½Π½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π½Π΅Π΅ ΡΠ΅Π³ΠΈΡΡΡΠ° ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΠ΄Π°ΡΠΌ Π½Π° ΠΠΠ£ ΡΠΈΠ³Π½Π°Π» ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π»ΠΈΠ±ΠΎ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡ Π½Π°Π΄ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΈΠ· Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡΠ° ΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ Ρ ΡΠΈΠ½Ρ. Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π·Π°Π½ΠΎΡΠΈΡΡΡ Π² ΡΠ΅Π³ΠΈΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°, Π° Π·Π°ΡΠ΅ΠΌ Ρ ΡΠ΅Π³ΠΈΡΡΡΠ° ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π² Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ. Π£Π²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΡΡΡΡΡΠΈΠΊΠ° ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΊ ΠΏΡΠ½ΠΊΡΡ 1.
15. ΠΡΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° JBC, ΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΎΠ΄Π½ΠΎΠ±ΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ°, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΎ ΡΠ°Π²Π½ΠΎ Π΅Π΄ΠΈΠ½ΠΈΡΠ΅, ΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ rel ΠΈ ΡΠ΅Π³ΠΈΡΡΡ ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅ΡΡΡ Π² Π½ΠΎΠ»Ρ.
5. Π‘ΠΈΠ½ΡΠ΅Π· ΡΠΏΡΠ°Π²Π»ΡΡΡΠ΅Π³ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠ° Π½Π° ΠΏΠ°ΠΌΡΡΠΈ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠΎΠ»Π΅ΠΌ Π°Π΄ΡΠ΅ΡΠ°
Π‘ΡΡΡΠΊΡΡΡΠ½Π°Ρ ΡΡ Π΅ΠΌΠ° ΡΠΏΡΠ°Π²Π»ΡΡΡΠ΅Π³ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠ°ΠΌΡΡΠΈ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠΎΠ»Π΅ΠΌ Π°Π΄ΡΠ΅ΡΠ° ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π½Π° ΡΠΈΡ. 2.
Π ΠΈΡ. 2. Π‘ΡΡΡΠΊΡΡΡΠ½Π°Ρ ΡΡ Π΅ΠΌΠ° ΡΠΏΡΠ°Π²Π»ΡΡΡΠ΅Π³ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠ°ΠΌΡΡΠΈ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠΎΠ»Π΅ΠΌ Π°Π΄ΡΠ΅ΡΠ° Π‘Π»Π΅Π΄ΡΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π½Π°Π±ΠΎΡ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΡ ΡΠΈΠ³Π½Π°Π»ΠΎΠ², Π²ΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ. ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , ΡΡΠΎ ΡΠΈΠ³Π½Π°Π»Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°ΠΏΠΈΡΠΈ Π² ΡΠ΅Π³ΠΈΡΡΡΡ MAR, MBR, R0-R1, RzIn, IRIn. ΠΠΎ-Π²ΡΠΎΡΡΡ — ΡΠΈΠ³Π½Π°Π»Ρ Π²ΡΠ΄Π°ΡΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² MAR, MBR, R0-R1 ΠΈ Z. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ — ΡΠΈΠ³Π½Π°Π» ΡΡΠ΅Π½ΠΈΡ ΠΈΠ· ΠΏΠ°ΠΌΡΡΠΈ, ΡΠΈΠ³Π½Π°Π» ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ΅ΡΡΠΈΠΊΠ° ΠΈ ΡΠΈΠ³Π½Π°Π» Π²ΡΠ±ΠΎΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΠΠ£. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΡΠΈΡ ΡΠΈΠ³Π½Π°Π»ΠΎΠ²:
Instr0 — ΡΠΈΠ³Π½Π°Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΎΠΌ
Instr1
Instr2
ADR — Π°Π΄ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π°
PCIn — ΡΠΈΠ³Π½Π°Π» Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π² ΡΠ΅Π³ΠΈΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄
IncPC — ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΡΡΡΠΈΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄
IrIn — Π·Π°Π³ΡΡΠ·ΠΊΠ° Π² ΡΠ΅Π³ΠΈΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ
MarIn — Π·Π°Π³ΡΡΠ·ΠΊΠ° Π² ΡΠ΅Π³ΠΈΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄
RdWr — ΡΠΈΠ³Π½Π°Π» ΡΡΠ΅Π½ΠΈΡ-Π·Π°ΠΏΠΈΡΠΈ ΠΏΠ°ΠΌΡΡΠΈ
CS — ΡΠΈΠ³Π½Π°Π» Π²ΡΠ±ΠΎΡΠ° ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ ΠΏΠ°ΠΌΡΡΠΈ
MbrIn — Π·Π°Π³ΡΡΠ·ΠΊΠ° Π² Π±ΡΡΠ΅ΡΠ½ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ ΠΈΠ· ΠΏΠ°ΠΌΡΡΠΈ
MbrOut — Π²ΡΠ΄Π°ΡΠ° Π½Π° ΡΠΈΠ½Ρ ΠΈΠ· Π±ΡΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ°
MbrInD — Π·Π°Π³ΡΡΠ·ΠΊΠ° Π² Π±ΡΡΠ΅ΡΠ½ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ Ρ ΡΠΈΠ½Ρ
MbrOutD — Π²ΡΠ΄Π°ΡΠ° Π² ΠΏΠ°ΠΌΡΡΡ ΠΈΠ· Π±ΡΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ°
RzIn — Π·Π°Π³ΡΡΠ·ΠΊΠ° Π² ΡΠ΅Π³ΠΈΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°
RzOut — Π²ΡΠ²ΠΎΠ΄ ΠΈΠ· ΡΠ΅Π³ΠΈΡΡΡΠ° ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°
Inv — ΠΈΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Π² ΠΠΠ£ ΠΈΠ· Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡΠ°
RAIn — Π·Π°Π³ΡΡΠ·ΠΊΠ° Π² Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ
RIn — ΡΠΈΠ³Π½Π°Π» Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π² ΡΠ΅Π³ΠΈΡΡΡΡ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ
ROut — ΡΠΈΠ³Π½Π°Π» Π²ΡΠ²ΠΎΠ΄Π° ΠΈΠ· ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ
RDCIn — ΡΠΈΠ³Π½Π°Π» Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΠΌΡΠ»ΡΡΠΈΠΏΠ»Π΅ΠΊΡΠΎΡ Π½ΠΎΠΌΠ΅ΡΠ° ΡΠ΅Π³ΠΈΡΡΡΠ°
SADD — ΡΠΈΠ³Π½Π°Π» ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΠΠ£
InvZ — ΠΈΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°
6. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠ·Π»ΠΎΠ² ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΈ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ Active HDL
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΠ΅ΡΡΠΈΠΊΠ° Add:
library IEEE;
use IEEE. STD_LOGIC_1164.all;
use IEEE. STD_LOGIC_signed.all;
use IEEE. STD_LOGIC_arith.all;
entity Add is
port (SIn: in std_logic_vector (5 downto 0);
Inc: in std_logic;
Reset: in std_logic;
SOut: out std_logic_vector (5 downto 0));
end Add;
architecture Add of Add is
begin
process (Inc, reset)
begin
if Inc='1' and Inc’event then
SOut<=CONV_STD_LOGIC_VECTOR (((CONV_INTEGER ('0'& SIn))+1), 6);
end if;
if Reset='1'then Sout<= «0»;
end if;
end process;
end Add;
ΠΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° ΡΠ°Π±ΠΎΡΡ ΡΡΠ΅ΡΡΠΈΠΊΠ° Add Π΄Π»Ρ Π£Π£:
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ALU:
library IEEE;
use IEEE. STD_LOGIC_1164.all;
use IEEE. STD_LOGIC_signed.all;
use IEEE. std_logic_arith.all;
entity ALU is
port (B: in std_logic_vector (7 downto 0);
A: in std_logic_vector (7 downto 0);
SADD: in std_logic;
CLK: in std_logic;
Q: out std_logic_vector (7 downto 0);
FC: out std_logic;
FZ: out std_logic);
end ALU;
architecture ALU of ALU is
signal rez: std_logic_vector (7 downto 0):= «0»;
begin
process (CLK)
begin
if CLK='0' and CLK’event then FC<='0';
if SADD='1' then
Q<= CONV_STD_LOGIC_VECTOR ((CONV_INTEGER ('0'& A)+CONV_INTEGER ('0'& B)), 9) (7 downto 0) after 4 ns;
FC<= CONV_STD_LOGIC_VECTOR ((CONV_INTEGER ('0'& A)+CONV_INTEGER ('0'& B)), 9) (8) after 4 ns;
else Q<= «0»;
end if;
if A= «0» then FZ<='0';
else FZ<='1';
end if;
end if;
end process;
end ALU;
ΠΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° ΡΠ°Π±ΠΎΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ALU:
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΠ΅ΡΡΠΈΠΊΠ° ΠΌΠΈΠΊΡΠΎΠΊΠΎΠΌΠ°Π½Π΄ PC:
library IEEE;
use IEEE. STD_LOGIC_1164.all;
use IEEE. STD_LOGIC_signed.all;
entity PC is
port (RST: in std_logic;
CLK: in std_logic;
PCIn: in std_logic;
IncPC: in std_logic;
AdrIn: in std_logic_vector (7 downto 0);
AdrOut: out std_logic_vector (7 downto 0));
end PC;
architecture PC of PC is
signal reg: std_logic_vector (7 downto 0);
begin
process (CLK, RST)
begin
If CLK='0' and CLK’event and PCIn='1' then reg<=AdrIn;
end if;
If CLK='0' and CLK’event and IncPC='1' then reg<=reg+ «1» after 2ns;
end if;
If CLK='1' and CLK’event then AdrOut<=reg after 2ns;
end if;
if RST='1' then reg<= «0»;
end if;
end process;
end PC;
ΠΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° ΡΠ°Π±ΠΎΡΡ ΡΡΠ΅ΡΡΠΈΠΊΠ° ΠΌΠΈΠΊΡΠΎΠΊΠΎΠΌΠ°Π½Π΄ PC:
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² Π ΠΠ ΠΈ ΠΈΡ Π²ΡΠ±ΠΎΡΠ°:
library IEEE;
use IEEE. STD_LOGIC_1164.all;
entity R0 is
port (RST: in std_logic;
CLK: in std_logic;
C: in std_logic;
RIn: in std_logic;
ROut: in std_logic;
DataIn: in std_logic_vector (7 downto 0);
DataOut: out std_logic_vector (7 downto 0));
end R0;
architecture R0 of R0 is
signal regist: std_logic_vector (7 downto 0);
begin
process (CLK, RST)
begin
if CLK='0' and CLK’event and RIn='1'and C='1' then regist<=DataIN;
end if;
if CLK='0' and CLK’event and ROut='1'and C='1' then DataOut<=regist after 3 ns;
end if;
if CLK='0' and CLK’event and ROut='0' then DataOut<= «ZZZZZZZZ» after 3 ns;
end if;
if RST='1' then regist<= «0»;
end if;
end process;
end R0;
;
library IEEE;
use IEEE. STD_LOGIC_1164.all;
entity RDC is
port (Number: in std_logic_vector (7 downto 0);
RDCIn: in std_logic;
R1: out std_logic;
R2: out std_logic;
R3: out std_logic;
R4: out std_logic);
end RDC;
architecture RDC of RDC is
begin
process (RDCIn)
begin
if RDCIn='1' and RDCIn’event then
R1<='0';
R2<='0';
R3<='0';
R4<='0';
if Number= «1» then R1<='1'after 2ns;
end if;
if Number= «10» then R2<='1'after 2ns;
end if;
if Number= «11» then R3<='1'after 2ns;
end if;
if Number= «100» then R4<='1'after 2ns;
end if;
end if;
end process;
end RDC;
ΠΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° ΡΠ°Π±ΠΎΡΡ Π²ΡΠ±ΠΎΡΠ° ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² Π ΠΠ RDC:
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ RAM:
library IEEE;
use IEEE. STD_LOGIC_1164.all;
use IEEE. STD_LOGIC_signed.all;
entity RAM is
port (RdWr: in std_logic;
CS: in std_logic;
Adr: in std_logic_vector (7 downto 0);
Data: inout std_logic_vector (7 downto 0));
end RAM;
architecture RAM of RAM is
type MemoryType is array (0 to 8) of std_logic_vector (7 downto 0);
signal Memory: MemoryType:=(
«0», — mov A,#d
«110 011», -#d
«1», — mov R,#d
«1», — number R
«11 110 110», -#d
«10», — add A, Rn
«1», — number R
«100», — JBC bit, rel
«0»); - restart
begin
process (RdWr, CS, Adr)
begin
if RdWr='1' and CS='1' then Data<=Memory (CONV_INTEGER ('0'& Adr)) after 3ns;
end if;
if RdWr='0' and CS='1' then Memory (CONV_INTEGER ('0'& Adr))<=Data;
end if;
end process;
end RAM;
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ° Π² ΠΎΠ΄ΠΈΠ½ Π±ΠΈΡ:
library IEEE;
use IEEE. STD_LOGIC_1164.all;
entity R_1bit is
port (reg_in, IE: in std_logic;
CLK, Zero: in std_logic;
reg_out: out std_logic);
end R_1bit;
architecture R_1bit of R_1bit is
signal regist: std_logic;
begin
process (CLK)
begin
reg_out<= regist;
if CLK='0' and CLK’event and IE='1' then regist<=reg_in after 2ns;
elsif Zero='1' then regist<='0' after 2ns;
end if;
end process;
end R_1bit;
;
ΠΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° ΡΠ°Π±ΠΎΡΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΠΠ RAM:
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ°-Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡΠ° RA:
library IEEE;
use IEEE. STD_LOGIC_1164.all;
entity RA is
port (
CLK: in std_logic;
RAIn: in std_logic;
DIn: in std_logic_vector (7 downto 0);
DOut: out std_logic_vector (7 downto 0)
);
end RA;
architecture RA of RA is
signal reg: std_logic_vector (7 downto 0):= «0»;
begin
process (CLK, RAIn)
begin
DOut<=reg after 3 ns;
if CLK='0' and CLK’event and RAIn='1' then
reg<=DIn;
end if;
end process;
end RA;
ΠΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° ΡΠ°Π±ΠΎΡΡ ΡΠ΅Π³ΠΈΡΡΡΠ°-Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡΠ° RA:
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ·Π»Π° ΠΏΠ°ΠΌΡΡΠΈ Memory:
library IEEE;
use IEEE. STD_LOGIC_1164.all;
use IEEE. STD_LOGIC_signed.all;
entity Memory is
port (Adr: in std_logic_vector (5 downto 0);
RD: in std_logic;
MrOut: out std_logic;
InstrCom: out std_logic_vector (0 to 27));
end Memory;
architecture Memory of Memory is
type MemoryType is array (0 to 59) of std_logic_vector (0 to 27);
signal Memory: MemoryType;
begin
Memory (0)<= «000"& «0"& «0"& «0"& «0000"& «0»;
Memory (1)<= «000"& «0"& «1 000"& «0"& «0000"& «0»; - MarIn
Memory (2)<= «000"& «0"& «110"& «0"& «0000"& «0»; - RdWr, CS
Memory (3)<= «000"& «0"& «1"& «0"& «0000"& «0»; - MbrIn
Memory (4)<= «000"& «0"& «0"& «1 000 000"& «0000"& «0»; - MbrOut
Memory (5)<= «000"& «0"& «10 000"& «0"& «0000"& «0»; - IrIn
Memory (6)<= «100"& «0"& «0"& «0"& «0000"& «0»; - Instr0
— mov A,#d
Memory (7) <= «000"& «0"& «100 000"& «0"& «0000"& «0»; - IncPC
Memory (8) <= «000"& «0"& «1 000"& «0"& «0000"& «0»; - MarIn
Memory (9) <= «000"& «0"& «110"& «0"& «0000"& «0»; - RdWr, CS
Memory (10)<= «000"& «0"& «1"& «0"& «0000"& «0»; - MbrIn
Memory (11)<= «000"& «0"& «0"& «1 000 000"& «0000"& «0»; - MbrOut
Memory (12)<= «000"& «0"& «0"& «1"& «0000"& «0»; - RAin
Memory (13)<= «001"& «0"& «100 000"& «0"& «0000"& «0»; - Instr2, IncPC
— mov Rn,#d
Memory (14)<= «000"& «0"& «100 000"& «0"& «0000"& «0»; - IncPC
Memory (15)<= «000"& «0"& «1 000"& «0"& «0000"& «0»; - MarIn
Memory (16)<= «000"& «0"& «110"& «0"& «0000"& «0»; - RdWr, CS
Memory (17)<= «000"& «0"& «1"& «0"& «0000"& «0»; - MbrIn
Memory (18)<= «000"& «0"& «0"& «1 000 000"& «0000"& «0»; - MbrOut
Memory (19)<= «000"& «0"& «0"& «0"& «0010"& «0»; - RDCIn
Memory (20)<= «000"& «0"& «100 000"& «0"& «0000"& «0»; - IncPC
Memory (21)<= «000"& «0"& «1 000"& «0"& «0000"& «0»; - MarIn
Memory (22)<= «000"& «0"& «110"& «0"& «0000"& «0»; - RdWr, CS
Memory (23)<= «000"& «0"& «1"& «0"& «0000"& «0»; - MbrIn
Memory (24)<= «000"& «0"& «0"& «1 000 000"& «0000"& «0»; - MbrOut
Memory (25)<= «000"& «0"& «0"& «0"& «1000"& «0»; - RIn
Memory (26)<= «001"& «0"& «100 000"& «0"& «0000"& «0»; - Instr2, IncPC
— add A, Rn
Memory (27)<= «000"& «0"& «100 000"& «0"& «0000"& «0»; - IncPC
Memory (28)<= «000"& «0"& «1 000"& «0"& «0000"& «0»; - MarIn
Memory (29)<= «000"& «0"& «110"& «0"& «0000"& «0»; - RdWr, CS
Memory (30)<= «000"& «0"& «1"& «0"& «0000"& «0»; - MbrIn
Memory (31)<= «000"& «0"& «0"& «1 000 000"& «0000"& «0»; - MbrOut
Memory (32)<= «000"& «0"& «0"& «0"& «0010"& «0»; - RDCIn
Memory (33)<= «000"& «0"& «0"& «0"& «0100"& «0»; - ROut
Memory (34)<= «000"& «0"& «0"& «0"& «0001"& «0»; - SADD
Memory (35)<= «000"& «0"& «0"& «1 000"& «0000"& «0»; - RZin
Memory (36)<= «000"& «0"& «0"& «100"& «0000"& «0»; - RZout
Memory (37)<= «000"& «0"& «0"& «1"& «0000"& «0»; - RAin
Memory (38)<= «001"& «0"& «100 000"& «0"& «0000"& «0»; - Instr2, IncPC
— JBC
Memory (51)<= «010"& «110 110"& «0"& «0"& «0000"& «0»; - perexod na adres 36H ili 54 v dec s/s
Memory (52)<= «000"& «0"& «0"& «0"& «0000"& «0»; - any value
Memory (53)<= «000"& «0"& «0"& «0"& «0000"& «0»; - any value
Memory (54)<= «000"& «0"& «100 000"& «0"& «0000"& «0»; - IncPC
Memory (55)<= «000"& «0"& «1 000"& «0"& «0000"& «0»; - MarIn
Memory (56)<= «000"& «0"& «110"& «0"& «0000"& «0»; - RdWr, CS
Memory (57)<= «000"& «0"& «1"& «0"& «0000"& «0»; - MbrIn
Memory (58)<= «000"& «0"& «0"& «1 000 000"& «0000"& «0»; - MbrOut
Memory (59)<= «001"& «0"& «1 000 000"& «0"& «0000"& «0»; - Instr2, PCIn
process (RD)
begin
if RD='1' and RD’event then
InstrCom<=Memory (CONV_INTEGER ('0'& Adr));
MrOut<='1';
end if;
if RD='0' and RD’event then MrOut<='0';
end if;
end process;
end Memory;
ΠΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° ΡΠ°Π±ΠΎΡΡ ΠΏΠ°ΠΌΡΡΠΈ Π£Π£ Memory:
VHDL — ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΡ Π΅ΠΌΡ (ΡΠ΅Π³ΠΈΡΡΡΠ° CAR ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ° Π‘BR, ΡΠ΅Π³ΠΈΡΡΡΠ° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, ΠΌΡΠ»ΡΡΠΈΠΏΠ»Π΅ΠΊΡΠΎΡΠ°, Π΄Π΅ΠΊΠΎΠ΄Π΅ΡΠ°, ΠΏΡΠΎΡΡΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² MAR ΠΈ MBR):
library IEEE;
use IEEE. STD_LOGIC_1164.all;
entity CAR is
port (D: in std_logic_vector (5 downto 0);
CarIn: in std_logic;
CarOut: out std_logic;
Q: out std_logic_vector (5 downto 0));
end CAR;
architecture CAR of CAR is
begin
process (CarIn)
begin
if CarIn='0' and CarIn’event then
Q<=D;
CarOut<='1';
end if;
if CarIn='1' and CarIn’event then CarOut<='0';
end if;
end process;
end CAR;
;
library IEEE;
use IEEE. STD_LOGIC_1164.all;
entity CBR is
port (InstrCom: in std_logic_vector (0 to 27);
CbrIn: in std_logic;
Adr: out std_logic_vector (5 downto 0);
Instr0: out std_logic;
Instr1: out std_logic;
Instr2: out std_logic;
PCIn: out std_logic;
IncPC: out std_logic;
IrIn: out std_logic;
MarIn:out std_logic;
RdWr:out std_logic;
CS:out std_logic;
MbrIn:out std_logic;
MbrOut:out std_logic;
MbrInD:out std_logic;
MbrOutD:out std_logic;
RzIn:out std_logic;
RzOut:out std_logic;
Inv:out std_logic;
RAIn:out std_logic;
RIn:out std_logic;
ROut:out std_logic;
RDCIn:out std_logic;
SADD:out std_logic;
InvZ: out std_logic);
end CBR;
architecture CBR of CBR is
begin
process (CbrIN)
begin
if CbrIN='1' and CbrIN’event then
Instr0<=InstrCom (2) after 1ns;
Instr1<=InstrCom (1) after 1ns;
Instr2<=InstrCom (0) after 1ns;
ADR<=InstrCom (3 to 8) after 1ns;
PCIn <=InstrCom (9) after 1ns;
IncPC<=InstrCom (10) after 1ns;
IrIn <=InstrCom (11) after 1ns;
MarIn <=InstrCom (12) after 1ns;
RdWr <=InstrCom (13) after 1ns;
CS <=InstrCom (14) after 1ns;
MbrIn<=InstrCom (15) after 1ns;
MbrOut<=InstrCom (16) after 1ns;
MbrInD<=InstrCom (17) after 1ns;
MbrOutD<=InstrCom (18) after 1ns;
RzIn <=InstrCom (19) after 1ns;
RzOut<=InstrCom (20) after 1ns;
Inv<=InstrCom (21) after 1ns;
RAIn<=InstrCom (22) after 1ns;
RIn <=InstrCom (23) after 1ns;
ROut<=InstrCom (24) after 1ns;
RDCIn <=InstrCom (25) after 1ns;
SADD<=InstrCom (26) after 1ns;
InvZ<=InstrCom (27) after 1ns;
end if;
end process;
end CBR;
;
library IEEE;
use IEEE. STD_LOGIC_1164.all;
entity IR is
port (Command: in std_logic_vector (7 downto 0);
IRin: in std_logic;
Reset: in std_logic;
IrOut: out std_logic;
Com: out std_logic_vector (7 downto 0));
end IR;
architecture IR of IR is
begin
process (IrIn, Reset)
begin
if IrIn='1' and Irin’event then
Com<=Command after 2ns;
IrOut<='1'after 2ns;
end if;
if IrIn='0' and Irin’event then IrOut<='0';
end if;
if Reset='1' then
Com<= «0»;
IrOut<='1';
end if;
end process;
end IR;
;
library IEEE;
use IEEE. STD_LOGIC_1164.all;
entity DC1 is
port (Ale:in std_logic;
Com: in std_logic_vector (7 downto 0);
ComAdr: out std_logic_vector (5 downto 0));
end DC1;
architecture DC1 of DC1 is
begin
process (Ale)
begin
if Ale='1' and Ale’event then
if Com= «0» then ComAdr <= «111»;
elsif Com= «1» then ComAdr <= «1 110»;
elsif Com= «10» then ComAdr <= «11 011»;
elsif Com= «11» then ComAdr <= «100 111»;
elsif Com= «100» then ComAdr <= «110 011»;
else ComAdr <= «0»;
end if;
end if;
end process;
end DC1;
;
library IEEE;
use IEEE. STD_LOGIC_1164.all;
entity INV is
port (DIn: in std_logic_vector (7 downto 0);
Inv: in std_logic;
DOut: out std_logic_vector (7 downto 0));
end INV;
architecture INV of INV is
begin
DOut<=not DIn when Inv='1'else DIn;
end INV;
;
library IEEE;
use IEEE. STD_LOGIC_1164.all;
entity LogAnd is
port (in1: in std_logic;
in2: in std_logic;
Sout: out std_logic);
end LogAnd;
architecture LogAnd of LogAnd is
begin
Sout<=in1 and in2 after 1ns;
end LogAnd;
;
library IEEE;
use IEEE. STD_LOGIC_1164.all;
entity LogOR is
port (in1: in std_logic;
in2: in std_logic;
SOut: out std_logic);
end LogOR;
architecture LogOR of LogOR is
begin
SOut<=in1 or in2 after 1ns;
end LogOR;
;
library IEEE;
use IEEE. STD_LOGIC_1164.all;
entity MUX is
port (IN1: in std_logic_vector (5 downto 0);
IN2: in std_logic_vector (5 downto 0);
IN3: in std_logic_vector (5 downto 0);
Adr0: in std_logic;
Adr1: in std_logic;
CLK: in std_logic;
MuxOut: out std_logic;
OUT1: out std_logic_vector (5 downto 0));
end MUX;
architecture MUX of MUX is
begin
process (CLK)
begin
if CLK='1' and CLK’event then
if Adr1='0' and Adr0='0' then OUT1 <= IN1;
elsif Adr1='1' then OUT1 <= IN2;
elsif Adr1='0' and Adr0='1' then OUT1 <= IN3;
else Out1<= «0»;
end if;
MuxOut<='1';
end if;
if CLK='0' and CLK’event then MuxOut<='0';
end if;
end process;
end MUX;
;
library IEEE;
use IEEE. STD_LOGIC_1164.all;
entity MAR is
port (RST: in std_logic;
CLK: in std_logic;
MarIn: in std_logic;
AdrIn: in std_logic_vector (7 downto 0);
AdrOut: out std_logic_vector (7 downto 0));
end MAR;
architecture MAR of MAR is
signal reg: std_logic_vector (7 downto 0):= «0»;
begin
process (CLK, RST)
begin
if CLK='0' and CLK’event and MarIn='1' then reg<=AdrIn;
end if;
if CLK='1' and CLK’event then AdrOut<=reg;
end if;
if RST='1' then reg<= «0»;
end if;
end process;
end MAR;
;
library IEEE;
use IEEE. STD_LOGIC_1164.all;
entity MBR is
port (RST: in std_logic;
CLK: in std_logic;
MbrIn: in std_logic;
MbrOut: in std_logic;
MbrInD: in std_logic;
MbrOutD: in std_logic;
DataIn: inout std_logic_vector (7 downto 0);
DataOut: inout std_logic_vector (7 downto 0));
end MBR;
architecture MBR of MBR is
signal reg: std_logic_vector (7 downto 0);
begin
Process (CLK, RST)
begin
if CLK='0' and CLK’event then
if MbrIn='1' then reg<=DataIn;
elsif MbrOut='1' then DataOut<=reg;
elsif MbrInD='1' then reg<=DataOut;
elsif MbrOutD='1' then DataIn<=reg;
end if;
if MbrIn='0' and MbrOutD='0' then DataIn<= «ZZZZZZZZ»;
end if;
if MbrOut='0' and MbrInD='0' then DataOut<= «ZZZZZZZZ»;
end if;
end if;
if RST='1' then reg<= «0»;
end if;
end process;
end MBR;
;
library IEEE;
use IEEE. STD_LOGIC_1164.all;
entity RZ is
port (DIn: in std_logic_vector (7 downto 0);
CLK: in std_logic;
RST: in std_logic;
RZOut: in std_logic;
RZIn: in std_logic;
InvZ: in std_logic;
DOut: out std_logic_vector (7 downto 0));
end RZ;
architecture RZ of RZ is
signal regist: std_logic_vector (7 downto 0);
begin
process (CLK, RST)
begin
if CLK='0' and CLK’event and RZIn='1' then regist<=DIN;
end if;
if CLK='0' and CLK’event and RZOut='1' then
if InvZ='1'then DOut<=not regist after 3 ns;
else DOut<=regist after 3 ns;
end if;
end if;
if CLK='0' and CLK’event and RZOut='0' then DOut<= «ZZZZZZZZ» after 3 ns;
end if;
if RST='1' then regist<= «0»;
end if;
end process;
end RZ;
7. Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΈ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΠΈ Π΅Π³ΠΎ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌ
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Π½Π° ΡΠ·ΡΠΊΠ΅ Active VHDL:
library IEEE;
use IEEE. std_logic_1164.all;
entity MPA is
port (CLK: in STD_LOGIC;
Reset: in std_logic;
FC, bit_out: out std_logic;
DataBus: inout std_logic_vector (7 downto 0));
end MPA;
architecture MPA of MPA is
;
component Add
port (Inc: in STD_LOGIC;
Reset: in STD_LOGIC;
SIn: in std_logic_vector (5 downto 0);
SOut: out std_logic_vector (5 downto 0));
end component;
;
component ALU
port (A: in std_logic_vector (7 downto 0);
B: in std_logic_vector (7 downto 0);
CLK: in std_logic;
SADD: in std_logic;
FC: out std_logic;
FZ: out std_logic;
Q: out std_logic_vector (7 downto 0));
end component;
;
component CAR
port (CarIn: in std_logic;
D: in std_logic_vector (5 downto 0);
CarOut: out STD_LOGIC;
Q: out std_logic_vector (5 downto 0));
end component;
;
component CBR
port (CbrIn: in std_logic;
InstrCom: in std_logic_vector (0 to 27);
Adr: out std_logic_vector (5 downto 0);
CS: out STD_LOGIC;
IncPC: out STD_LOGIC;
Instr0: out std_logic;
Instr1: out std_logic;
Instr2: out std_logic;
Inv: out STD_LOGIC;
InvZ: out STD_LOGIC;
IrIn: out std_logic;
MarIn: out STD_LOGIC;
MbrIn: out STD_LOGIC;
MbrInD: out STD_LOGIC;
MbrOut: out STD_LOGIC;
MbrOutD: out STD_LOGIC;
PCin: out STD_LOGIC;
RAIn: out STD_LOGIC;
RDCIn: out STD_LOGIC;
RIn: out STD_LOGIC;
ROut: out STD_LOGIC;
RdWr: out STD_LOGIC;
RzIn: out STD_LOGIC;
RzOut: out STD_LOGIC;
SADD: out STD_LOGIC);
end component;
;
component DC1
port (Ale: in STD_LOGIC;
Com: in std_logic_vector (7 downto 0);
ComAdr: out std_logic_vector (5 downto 0));
end component;
;
component INV
port (DIn: in std_logic_vector (7 downto 0);
Inv: in std_logic;
DOut: out std_logic_vector (7 downto 0));
end component;
;
component IR
port (Command: in std_logic_vector (7 downto 0);
IRin: in std_logic;
Reset: in std_logic;
Com: out std_logic_vector (7 downto 0);
IrOut: out STD_LOGIC);
end component;
;
component LogAnd
port (in1: in std_logic;
in2: in std_logic;
Sout: out std_logic);
end component;
;
component LogOR
port (in1: in std_logic;
in2: in std_logic;
SOut: out std_logic);
end component;
;
component MAR
port (AdrIn: in std_logic_vector (7 downto 0);
CLK: in std_logic;
MarIn: in std_logic;
RST: in std_logic;
AdrOut: out std_logic_vector (7 downto 0));
end component;
;
component MBR
port (CLK: in STD_LOGIC;
MbrIn: in STD_LOGIC;
MbrInD: in STD_LOGIC;
MbrOut: in STD_LOGIC;
MbrOutD: in STD_LOGIC;
RST: in STD_LOGIC;
DataIn: inout STD_LOGIC_VECTOR (7 downto 0);
DataOut: inout STD_LOGIC_VECTOR (7 downto 0));
end component;
;
component Memory
port (Adr: in std_logic_vector (5 downto 0);
RD: in std_logic;
InstrCom: out std_logic_vector (0 to 27);
MrOut: out STD_LOGIC);
end component;
;
component MUX
port (Adr0: in std_logic;
Adr1: in std_logic;
CLK: in STD_LOGIC;
IN1: in std_logic_vector (5 downto 0);
IN2: in std_logic_vector (5 downto 0);
IN3: in std_logic_vector (5 downto 0);
MuxOut: out STD_LOGIC;
OUT1: out std_logic_vector (5 downto 0));
end component;
;
component PC
port (AdrIn: in STD_LOGIC_VECTOR (7 downto 0);
CLK: in STD_LOGIC;
IncPC: in STD_LOGIC;
PCIn: in STD_LOGIC;
RST: in STD_LOGIC;
AdrOut: out STD_LOGIC_VECTOR (7 downto 0));
end component;
;
component R0
port (C: in STD_LOGIC;
CLK: in std_logic;
DataIn: in std_logic_vector (7 downto 0);
RIn: in std_logic;
ROut: in std_logic;
RST: in std_logic;
DataOut: out std_logic_vector (7 downto 0));
end component;
;
component RA
port (
CLK: in STD_LOGIC;
DIn: in std_logic_vector (7 downto 0);
RAIn: in std_logic;
DOut: out std_logic_vector (7 downto 0));
end component;
;
component RAM
port (Adr: in STD_LOGIC_VECTOR (7 downto 0);
CS: in STD_LOGIC;
RdWr: in STD_LOGIC;
Data: inout STD_LOGIC_VECTOR (7 downto 0));
end component;
;
component RDC
port (Number: in std_logic_vector (7 downto 0);
RDCIn: in std_logic;
R1: out std_logic;
R2: out std_logic;
R3: out std_logic;
R4: out std_logic);
end component;
;
component RZ
port (CLK: in STD_LOGIC;
DIn: in STD_LOGIC_VECTOR (7 downto 0);
InvZ: in STD_LOGIC;
RST: in STD_LOGIC;
RZIn: in STD_LOGIC;
RZOut: in STD_LOGIC;
DOut: out STD_LOGIC_VECTOR (7 downto 0));
end component;
;
component R_1bit is
port (reg_in, IE: in std_logic;
CLK, Zero: in std_logic;
reg_out: out std_logic);
end component;
;
signal CS, IncPC, IrIn, MarIn, MbrIn, MbrOut, JB: STD_LOGIC;
signal S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, SR1, SR2, SR3, SR4: STD_LOGIC;
signal N1, N2, N3, FC_sig, bit_outs: STD_LOGIC;
signal PCIN, RaIn, RDCIn, RdWr, RIn, ROut, RzIn, RzOut, SADD: STD_LOGIC;
signal Adr: std_logic_vector (7 downto 0);
signal BUS2, BUS6, BUS7, BUS8, BUS11: std_logic_vector (5 downto 0);
signal BUS10: std_logic_vector (27 downto 0);
signal BUS0, BUS1, BUS3, BUS4, BUS5: std_logic_vector (7 downto 0);
signal MemOut: STD_LOGIC_VECTOR (7 downto 0);
;
begin
DD0: IR port map (Com => BUS1, Command => DataBus, IRin => IrIn, IrOut => S3,
Reset => Reset);
DD1: LogAnd port map (Sout => S5, in1 => bit_outs, in2 =>S4);
DD2: MAR port map (AdrIn => BUS0, AdrOut => Adr, CLK => CLK, MarIn => MarIn,
RST => Reset);
DD3: RAM port map (Adr => Adr, CS => CS, Data => MemOut, RdWr => RdWr);
DD4: MBR port map (CLK => CLK, DataIn => MemOut, DataOut => DataBus,
MbrIn => MbrIn, MbrInD => S6, MbrOut => MbrOut,
MbrOutD => S7, RST => Reset);
DD5: R0 port map (C => SR1, CLK => CLK, DataIn => DataBus, DataOut => DataBus,
RIn => RIn, ROut => ROut, RST => Reset);
DD6: R0 port map (C => SR2, CLK => CLK, DataIn => DataBus, DataOut => DataBus,
RIn => RIn, ROut => ROut, RST => Reset);
DD7: R0 port map (C => SR3, CLK => CLK, DataIn => DataBus, DataOut => DataBus,
RIn => RIn, ROut => ROut, RST => Reset);
DD8: R0 port map (C => SR4, CLK => CLK, DataIn => DataBus, DataOut => DataBus,
RIn => RIn, ROut => ROut, RST => Reset);
DD9: RA port map (CLK => CLK, DIn => DataBus, DOut => BUS3, RAIn => RaIn);
DD10: ALU port map (A => BUS4, B => DataBus, CLK => CLK, FC => FC_sig, FZ => S1,
Q => BUS5, SADD => SADD);
DD11: DC1 port map (Ale => S3, Com => BUS1, ComAdr => BUS2);
DD12: RZ port map (CLK => CLK, DIn => BUS5, DOut => DataBus, InvZ => JB,
RST => Reset, RZIn => RzIn, RZOut => RzOut);
DD13: INV port map (DIn => BUS3, DOut => BUS4, Inv => S2);
DD14: RDC port map (Number => DataBus, R1 => SR1, R2 => SR2, R3 => SR3,
R4 => SR4, RDCIn => RDCIn);
DD15: MUX port map (Adr0 => S9, Adr1 => S10, CLK => CLK, IN1 => BUS11,
IN2 => BUS2, IN3 => BUS6, MuxOut => N2, OUT1 => BUS7);
DD16: Add port map (Inc => N2, Reset => Reset, SIn => BUS7, SOut => BUS11);
DD17: CAR port map (CarIn => CLK, CarOut => N3, D => BUS7, Q => BUS8);
DD18: Memory port map (Adr => BUS8, InstrCom => BUS10, MrOut => N1, RD => N3);
DD19: CBR port map (Adr => BUS6, CS => CS, CbrIn => N1, IncPC => IncPC, Instr0 => S8,
Instr1 => S4, Instr2 => S10, InstrCom => BUS10, Inv => S2, InvZ => JB, IrIn => IrIn,
MarIn => MarIn, MbrIn => MbrIn, MbrInD => S6, MbrOut => MbrOut, MbrOutD => S7,
PCin => PCIN, RAIn => RaIn, RDCIn => RDCIn, Rin => RIn, ROut => ROut,
RdWr => RdWr,
RzIn => RzIn, RzOut => RzOut, SADD => SADD);
DD20: PC port map (AdrIn => DataBus, AdrOut => BUS0, CLK => CLK, IncPC => IncPC,
PCIn => PCIN, RST => Reset);
DD21: LogOR port map (SOut => S9, in1 => S5, in2 => S8);
DD22: R_1bit port map (CLK => CLK, reg_in =>FC_sig, reg_out => bit_outs, IE =>RzIn,
Zero=>S5);
FC<=FC_sig;
bit_out<=bit_outs;
end MPA;
ΠΡΠ²ΠΎΠ΄Ρ
ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΠ°Π±ΠΎΡΡ Π±ΡΠ»ΠΎ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Ρ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠ°ΠΌΡΡΠΈ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠΎΠ»Π΅ΠΌ Π°Π΄ΡΠ΅ΡΠ°, ΠΈΠΌΠ΅ΡΡΠ΅Π³ΠΎ ΡΡΠ΄ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅ΡΡΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ° ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ. Π’Π΅ΡΡΠΎΠ²Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π±ΡΠ»Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π°, ΡΡΠΎ Π²ΠΏΠΎΠ»Π½Π΅ ΡΠ²ΠΈΠ΄Π΅ΡΠ΅Π»ΡΡΡΠ²ΡΠ΅Ρ ΠΎ Π΅Π³ΠΎ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅.
Π‘ΡΡΡΠΊΡΡΡΠ½Π°Ρ ΡΡ Π΅ΠΌΠ°, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½Π°Ρ Π² ΡΡΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅, Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ. ΠΠΎ Π½Π° Π΅Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ²ΠΎΠΈΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΡΠΈΡΡΠΎΠ²ΡΡ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΌΠΈΠΊΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠ½ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ Π²ΡΡΠ΅ΠΊΠ°ΡΡΠΈΠΌΠΈ ΠΎΡΡΡΠ΄Π° ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌΠΈ ΠΊ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ ΡΡΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²: ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ, ΡΠΈΠ½Π³ΡΠ»ΡΡΠ½ΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ.
ΠΠ°Π½Π½Π°Ρ ΡΡ Π΅ΠΌΠ° ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ°Π³ΠΈΡΡΡΠ°Π»ΡΡ, ΠΎΠ½Π° Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠ° Π² ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ, Ρ ΠΎΡΡ ΠΎΠ΄Π½ΠΎΠΌΠ°Π³ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊΠ°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½ΡΡΠ΅ ΠΌΠ΅ΡΡΠ° Π½Π° ΠΏΠ΅ΡΠ°ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΠ΅, ΡΠ΅ΠΌ Π΄Π²ΡΡ ΠΌΠ°Π³ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ (ΠΈ ΡΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅ ΡΡΠ΅Ρ ΠΌΠ°Π³ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ), ΡΡΠΎ ΠΈ Π΄Π°Π΅Ρ Π΅ΠΉ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΏΡΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ².
ΠΠΎ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ΅ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ JBC Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π² ΡΡΠ΅Π΄Π½Π΅ΠΌ 90 ns, ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»ΡΡΠ΅ 183 ns, ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΠ΅ΡΠ΅ΡΡΠ»ΠΊΠΈ — 140ns. ΠΠΎΠ»Π½ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΠΎ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π·Π° 630 ns. ΠΠ°ΡΠ°Π»ΡΠ½Π°Ρ Π·Π°Π΄Π΅ΡΠΆΠΊΠ° ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Ρ ΡΠ΅ΡΠΎΠΌ Π²ΡΠ΅Ρ Π·Π°Π΄Π΅ΡΠΆΠ΅ΠΊ Π½Π° Π²ΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°Ρ ΡΠΎΡΡΠ°Π²ΠΈΠ»Π° Π²ΡΠ΅Π³ΠΎ 1 ns, ΡΡΠΎ ΠΎΡΠ΅Π½Ρ ΠΌΠ°Π»ΠΎ.