Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Запись от Hrethgir размещена 07.01.2025 в 16:22
Показов 4709
Комментарии 5
|
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть проверяться будет их общая база основанная на подходе внутренней синхронизации и локальной асинхронности. Тактирование применяется в целях согласования цепи, сигналы согласования генерируются генератором с продолжительностью нуля 4, и единицы 1. Проект отлажен в программе Logisim Evolution, на плате возможны некоторые улучшения и сокращения, потому что виртуальный симулятор имеет специфику упрощения своей работы и пришлось усложнять некоторые модули чисто для него. Так как обработка знаков переноса практически не ведятся, и в задачу не входит вычисление числа, счётчик оставлен на этапе ведущего отсчёт до шестнадцати и возобновляющего его по новой. На FPGA планируется что генератором сигнала согласования для следующих по цепи счётчиков будет являться сигнал о том, что предыдущий отсчитал 16 своих рабочих опреаций сложения. Регистры, по замыслу, имеют такую-же скорость работы что и полный сумматор, возможно с небольшими отличиями. То-есть отсчёт происходит за две операции - сложение+ запись в регистр. Отсчёт до 16 происходит за 32 операции. Проект в зиппапке, анимация тут. Для запуска нужно отключить симуляцию CTRL+E , сбросить состояния CTRL+R, произвести нажатий CTRL+I (i заглавная) до тех пор, пока на выходах регистров не установятся нули, и потом на вход нижнего сумматора установить единицу, далее производить симуляцию в пошаговом режиме нажатиями CTRL+I , иначе симулятор обнаруживает цикл и отказывается выполнять его. Файл [url]https://www.cyberforum.ru/blog_attachment.php?attachmentid=9165&stc=1&d=1736256081[/url] анимация [IMG]https://www.cyberforum.ru/blog_attachment.php?attachmentid=9166&stc=1&d=1736256081[/IMG] В ближайшем будущем испытается на FPGA. |
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 5
Комментарии
-
Хотя нет, можно сделать проще - цепочку увеличить, то -есть разрядность, такого счётчика, например до 32 или 64, и тогда вообще откроется отличный вид на сканирование сигналов через осцилоскоп. Потому что например на пятый разряд уже сигнал передаётся не через 16, а через 32 операции сложения, и это только при четырёх предыдущих разрядах. Каждый следующий разряд - увеличение вдвое числа операций счётчика. Так проще. И так проще будет отследить тайминги внутри сумматора, потому что buf и OBUF имеют разное время срабатывания. В общем это как-то упростит задачу - уже хорошо. К тому-же предполагаемые fast триггеры уже тестированы были с диодами - работают. И на скорость тут [url]https://www.cyberforum.ru/blogs/223907/8763.html[/url], слишком быстро, но работают и компилятор не вырезает логику. Остаётся немного - протестировать счётчик, и разумеется регистры с диодами тоже. В общем задача сократилась так или иначе.Запись от Hrethgir размещена 09.01.2025 в 12:11
-
Триггеры работают - железно и стабильно (на той-же базе что и регистры), перепроверял. А вот регистры никак пока не сделаю. Думаю сегодня вечером закончу их.Запись от Hrethgir размещена 10.01.2025 в 21:53
-
Если-бы, думал что запустил, на самом деле не понятно что в них пишется при запуске, работают диоды и на 1 и на 0, а не должно быть так...просто не там записал единицу вместо нуля.[QUOTE]Запустил регистры на плате - работают железно, проверено диодами и сменой установочного сигнала при запуске в двух вариантах - с нулём и единицею. Стартер получился минимальным , регистр содержит для установки один буфер и один буфер и буфер трёх состояний. Завтра выложу проект для платы, на котором проверял регистры. Сделать его экономичнее триггера не получилось, но зато хоть работает. Можно сказать что это тот-же триггер, только вид сбоку.[/QUOTE].
Нужно работать на регистром...Запись от Hrethgir размещена 10.01.2025 в 22:41
-
Это удивительно, но оказывается на танге работа кода может меняться от имен, не смотря на то что меняются просто имена экземпляров элементов и экземпляров модулей в топ модуле. Просто изменил имя, казалось-бы как захочу так и назову, а нет - в корне меняется работа схемы. Это надо выяснить. Что это вообще такое и как это может быть. Глюк пропал, просто поменял имена, но с глюком и пропала работа схемы. Надо выкладывать сие открытие с проектом. Это не сегодня, завтра под вопросом - в пути буду. Посмотрим в общем.Запись от Hrethgir размещена 11.01.2025 в 00:13
-
Регистры тоже работают, но правда как-то не понятно сброс происходит. Похоже снова проблема с объявлением константы внутри модуля. Но в общем он работает, это проверено, но только сброс происходит весьма странно, константа с сигналом равным логической единице почему-то не объявялется внутри модуля и работает как константа логического нуля. Это просто проверял. А сам регистр работает и сбрасывается, проверял задавая значения через дата вход и директ, и сброс проверял так-же элементом not, то-есть там внутри не сигнал ошибки после сброса, а как положено - сигнал нуля. Немного странновато, но вообще и раньше с объявлением констант проблемы обнаруживались и приходилось ставить регистры для запитывания логики. Думаю, что лучше не спешить с публикацией, анормально приготовить материал, сложить всё в зиппапки, чтобы можно было пояснить проблемы и решения. Ну в общем дальше не спеша, потому что всё это в малый праймтайм делается, и в спешке легко потерять время на ошибках ей сопутствующих.Запись от Hrethgir размещена 12.01.2025 в 22:35


