Такая вот программа работает гладко: start start '1' xta '77755' ; читаем из GPIO (Switches) atx '77756' ; пишем в GPIO (Leds) uj start
Привожу ее диаграмму сигналов из SignalTap (хорошо что он есть, пусть и базовый!)
Там конечно что-то мелькает, но работает. То есть программа считывается корректно.
Но с памятью данных возникли проблемы. Если код сделать таким: start start '1' xta '77755' atx '200' xta '200' atx '77756' uj start
Получается такая диаграмма:
При этом читается и пишется в разные места. Пробовал задерживать сигнал готовности - работает, но там видно что по шине адреса что-то нехорошее бегает. А так как сигнал i_read или i_write включен, то память считывает и с "мусорных" адресов.
Может реагировать только на первый переход i_read или i_write в активное состояние а потом ждать когда он придет в ноль...
no subject
Date: 2019-05-02 03:14 am (UTC)Такая вот программа работает гладко:
start start '1'
xta '77755' ; читаем из GPIO (Switches)
atx '77756' ; пишем в GPIO (Leds)
uj start
Привожу ее диаграмму сигналов из SignalTap (хорошо что он есть, пусть и базовый!)
Там конечно что-то мелькает, но работает. То есть программа считывается корректно.
Но с памятью данных возникли проблемы.
Если код сделать таким:
start start '1'
xta '77755'
atx '200'
xta '200'
atx '77756'
uj start
Получается такая диаграмма:
При этом читается и пишется в разные места. Пробовал задерживать сигнал готовности - работает, но там видно что по шине адреса что-то нехорошее бегает. А так как сигнал i_read или i_write включен, то память считывает и с "мусорных" адресов.
Может реагировать только на первый переход i_read или i_write в активное состояние а потом ждать когда он придет в ноль...