Реализации алгоритмов оценки цепей - PullRequest
5 голосов
/ 27 августа 2010

Рассмотрим проблему оценки схемы, где вход является булевой схемой C и входной строкой x, и вы хотите вычислить C (x). (Примите фан-ин 2, если хотите.)

Это «тривиальная» проблема с алгоритмической точки зрения, однако реализовать ее нетривиально, когда C может быть огромным (подумайте о нескольких миллионах гейтов) и управление памятью становится проблемой.

Есть несколько способов решения этой проблемы: обмен памяти, времени и доступа к диску. Но прежде чем сам пройти всю эту работу, кто-нибудь знает какие-либо существующие реализации алгоритмов для этой проблемы? Было бы удивительно для меня, если бы не существует ...

Ответы [ 2 ]

1 голос
/ 27 августа 2010

Для C / C ++ стандартная система проектирования и моделирования цифровых цепей уже более 10 лет - SystemC .

Это библиотека, которая позволяет вам проектировать цифровую логику в C ++. Есть вспомогательное программное обеспечение, которое позволяет вам проводить анализ времени и даже создавать схематический список соединений для кода C.

Я только немного поиграл с этим, прежде чем решил, что с Verilog мне удобнее. Но это зрелая часть программного обеспечения с большой отраслевой поддержкой. Поиск в Интернете даст много информации, включая несколько страниц с учебниками.

0 голосов
/ 30 августа 2010

Похоже, Диаграммы двоичных решений может быть использовано для вашей задачи?Существуют хорошо известные алгоритмы (и реализации), которые очень компактны с точки зрения использования памяти, учитывая, что они предназначены для использования в огромных пространствах состояний.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...