ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

ΠœΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ процСссора (ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΎΠ²) для выполнСния Π½Π°Π±ΠΎΡ€Π° ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄

ΠšΡƒΡ€ΡΠΎΠ²Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

ПослС окончания Ρ„Π°Π·Ρ‹ извлСчСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ начинаСтся Ρ„Π°Π·Π° ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Π’ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ эта Ρ„Π°Π·Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ собой, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· ΠΏΠ°ΠΌΡΡ‚ΠΈ константы, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΉ для выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈΠ»ΠΈ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· ΠΏΠ°ΠΌΡΡ‚ΠΈ Π½ΠΎΠΌΠ΅Ρ€Π° рСгистра. Π’ ΠΊΠΎΠ½Ρ†Π΅ этой Ρ„Π°Π·Ρ‹ процСссор Π³ΠΎΡ‚ΠΎΠ² ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. На ΡΡ‚ΠΎΠΌ начинаСтся Ρ„Π°Π·Π° выполнСния. Π€Π°Π·Π° извлСчСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· ΠΏΠ°ΠΌΡΡ‚ΠΈ присутствуСт… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ΠœΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ процСссора (ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΎΠ²) для выполнСния Π½Π°Π±ΠΎΡ€Π° ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π’ Π΄Π°Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° структурная схСма процСссора (ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΎΠ²) для выполнСния Π½Π°Π±ΠΎΡ€Π° ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄. НСобходимо ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ описаниС процСссора Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ 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, Ρ‡Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ°Π»ΠΎ.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ