WolfTheGrey писал(а):ак нельзя! Суть не в кнопках, код кнопок приведен всего лишь как упрощеный пример. Суть вопроса в конфликте драйверов. Как правильно думать при написания кода.
Вот более сложная задача:
этап 1 - записать звук с АЦП wm8731 в SDRAM
этап2 - воспроизвести звук из SDRAM в ЦАП wm8731.
Уже 5 клоков насчитал с куево тучей независимых алвайс блоков. Как такое пишется?
Я описываю на vhdl, но сути не меняет.
Подход такой. Есть одна системная частота, например 200 МГц. Из нее формируются сигналы управления АЦП, управления процессами записи во внутреннюю/внешнюю память, она же используется для формирования таймерных меток при опросе кнопок, все сигналы требующие анализа фронтов проводятся через триггерные цепи тактированные этой системной частотой.
В вашем примере получилось так
процесс 1 - инкремент счетчика
процесс 2 - декремент счетчика
при этом реакция на кнопки по сути равноценна подачи нескольких тактовых импульсов.
Как правильно делать - я написал, одна переменная для счетчика и триггера для формирования разрешения счета.
bfgroup писал(а):юзайте тристейты или мультиплексоры
Внутри ПЛИС нет трехстабильных элементов, они только на выводах, внутри допускается только мультиплексор.
То есть если вдруг захотелось с нескольких счетчиков подавать сигналы на выход, то нужно использовать только мультиплексор, а после него, если надо то ставить трехстабильные элементы.
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже