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


