Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
6502:extra_counter [2013/09/09 22:36] org |
6502:extra_counter [2020/02/10 13:09] (текущий) org |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | # Расширенный счетчик циклов | ||
+ | |||
У 6502 есть 3 счетчика циклов. Один (базовый) используется для коротких инструкций (2 такта), второй - расширенный, о котором тут пойдёт речь - используется для длинных инструкций (до 6 тактов) и третий - используется для очень длинных инструкций, которые работают 6-7 тактов. | У 6502 есть 3 счетчика циклов. Один (базовый) используется для коротких инструкций (2 такта), второй - расширенный, о котором тут пойдёт речь - используется для длинных инструкций (до 6 тактов) и третий - используется для очень длинных инструкций, которые работают 6-7 тактов. | ||
- | === Транзисторная схема === | + | ## Транзисторная схема |
{{6502:extended_cycle_counter_trans.jpg}} {{6502:extended_cycle_counter_flow.jpg}} | {{6502:extended_cycle_counter_trans.jpg}} {{6502:extended_cycle_counter_flow.jpg}} | ||
+ | |||
+ | {{6502:extended_cycle_counter_nice.jpg?400}} | ||
Вся схема представляет собой сдвиговый регистр, на вход которого подается **T1** ((T0, T1, T2 и так далее - это названия циклов. Минимальное количество циклов инструкций процессора 6502 равно 2 (T0-T1), а максимальное - 7 (T0-T6) )). Потом этот T1 сдвигается и выходит на выход T2 и так далее. Причем выходы T2-T5 идут на декодер в инверсной логике. | Вся схема представляет собой сдвиговый регистр, на вход которого подается **T1** ((T0, T1, T2 и так далее - это названия циклов. Минимальное количество циклов инструкций процессора 6502 равно 2 (T0-T1), а максимальное - 7 (T0-T6) )). Потом этот T1 сдвигается и выходит на выход T2 и так далее. Причем выходы T2-T5 идут на декодер в инверсной логике. | ||
Строка 11: | Строка 15: | ||
В состав схемы входят мультиплексоры по сигналу **ready**. Сделано это для того, чтобы когда процессор не готов (ready=0) - регистр сдвига "залочивался" на текущем состоянии. | В состав схемы входят мультиплексоры по сигналу **ready**. Сделано это для того, чтобы когда процессор не готов (ready=0) - регистр сдвига "залочивался" на текущем состоянии. | ||
- | === Логическая схема === | + | ## Логическая схема |
{{6502:extended_cycle_counter_logic.jpg?700}} | {{6502:extended_cycle_counter_logic.jpg?700}} | ||
- | === Симуляция === | + | ## Симуляция |
Для работы схемы необходимо наличие трёх контрольных линий : **T1**, **TRES2** и **ready**, которые генерирует рандомная логика. | Для работы схемы необходимо наличие трёх контрольных линий : **T1**, **TRES2** и **ready**, которые генерирует рандомная логика. | ||
Строка 120: | Строка 124: | ||
В реальных боевых условиях симуляция на самом деле происходит в двух режимах: отдельно для PHI1 и отдельно для PHI2. | В реальных боевых условиях симуляция на самом деле происходит в двух режимах: отдельно для PHI1 и отдельно для PHI2. | ||
+ | |||
+ | {{template>6502_blocks}} |