Малость теории.
1) В плисах есть два типа сигналов: дата и тактовый. они разводятся каждый по своим дорожкам. Дата условно "абы кабы". Тактовый по своим "чтоб тактовый был там где надо вовремя" (очень условное описание). Дата - потому что длина цепей относительно мала, а тактовые по всей плисе на тысячи триггеров "одновременно".
2) К примеру асинхронный счётчик на Д-триггере
https://studfile.net/html/2706/245/h...img-7f5rW6.png
его быстродействие равно длительности распространения от первого C до последнего Q. Пока сигнал "бежит" - выход счётчика может принимать все фантастические значения. А если по этим выходам формируются "обратные связи" на эти же триггера - результат вообще не предсказуемый.
Посему делают только синхронные счётчики - это на С поступает только тактовый сигнал. на Д - через "внешнюю логику, описывающую поведение счётчика".
Другой случай когда на тысячу триггеров заводят "тактовый с выхода Q" - а так как он будет разводится абы кабы (однако есть способы как сделать более правильно - но это будет "грязно выглядеть") - то и поведение такой схемы будет "очень волшебным", а быстродействие упадёт на порядок другой...
Сиё максимально упрощённое описание...
ПС: Особый кайф, это когда берут выход условной К155ЛР3 и подают на С-вход. Пока логика устаканится - выход 100500 раз поменяет своё значение - а триггер (или даже синхронный счётчик) всё ЭТО посчитает... 8-0
Последний раз редактировалось AlexG; 14.09.2024 в 23:00.
Titus (15.09.2024)
AlexG, всё верно. И именно поэтому надо смотреть в условный TimeQuest на Clock Skew или хотя-бы Fmax чтобы понимать, что фиттер положил насинтезированное так, что задержки укладываются в твой такт. Тогда проект будет работать на всех указанных тобой чипах в любых условиях, а не глючить в зависимости от фазы луны и желанию твоей левой пятки.
Побольше синих и отсутствие красных. И ещё, если попытаешься комбинаторику в такты зарулить без правильного преобразования оно тебе прокричит про ripple clock.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Есть несколько методов разного рода, когда действительно надо сформировать вторичный тактовый домен. Например, синхронизация через общую тактовую частоту. Но чаще проще просто оставаться в одном тактовом домене используя условия. Тогда при правильном описании синтезатор сам вместо муксов заюзает специальный сигнал ENA.
PS В самом примитивном варианте, такты должны выходить из триггера. Точка.
Titus (15.09.2024)
В общем, что касается правильного тактирования схемотехнически, мне все более-менее понятно.
В плане реализации этого на Verilo'е могут быть вопросы, но это спрошу, если понадобится.
п.с.: Никто так и не заметил, что я накосячил, и случайно обьединил все 8-битные половинки регистров в 16-битные, из-за чего нельзя записывать половинки) Ну да, кому нужны схемы-то) Всем нужна готовая модель или эмулятор) Или какие-то вскрытые тайны и особенности простым языком)
такие вещи взглядом не заметишь. Это как программа написанная, но ни разу не скомпилированная. Смотришь вроде все правильно, а начнешь компилировать и дебажить и вылезут ошибки.
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
Эту тему просматривают: 8 (пользователей: 0 , гостей: 8)