Я был удивлен и в некоторой степени шокирован, обнаружив, что не существует должным образом установленного инструмента для проектирования и создания прототипов асинхронных схем.
Я продолжаю искать, используя Google и другие средства, чтобы найти хороший метод для проектирования асинхронных схем VLSI, но пока поиск не дал ответа.
Есть некоторые заброшенные инструменты, такие как Balsa и т. Д. Для автоматизации конструкций VLSI, но они полностью недокументированы и сложны в использовании. То, что я ищу, это что-то вроде ПЛИС, которые мы имеем в синхронном мире.
В любом случае, я буду признателен, если вы поделитесь именем надежного инструмента и прототипом аппаратного обеспечения, которое облегчает бремя проектирования асинхронных схем.
Ответы:
Упоминалась логика Тесея NCL, были также системы рукопожатия (спин-офф Philips), а также Fulcrum Microsystems и Caltech. Был также асинхронный процессор ARM под названием Amulet. И для этого у SUN Microsystems была команда разработчиков процессоров для SPARC без часов.
Я бы назвал эти часы без часов, чтобы избежать путаницы между логикой, такой как счетчики пульсаций, и схемами такого типа. Но в целом используется любой термин.
DC (Design Compiler) от Synopsys, а также Merlin из систем FTL также были доступны.
Однако, если у вас есть правильно спроектированная библиотека основных ячеек, эта абстракция / описание верхнего уровня может стать тривиальной. Основная проблема заключается в том, что если вы разработали систему, которая позволяет каждой ячейке распространять вперед сигнал, который говорит «хороший результат», а также распространяет «доступную систему» назад, система автоматически синхронизируется и, таким образом, может быть просто очень похожа на программное обеспечение без учета условий гонки или времени в этом отношении.
Таким образом, используемые инструменты будут такими же простыми, как SPICE для проектирования на уровне ячеек (транзисторный уровень) и C для компиляции в набор примитивов, которые будут размещены. Для жизни я не могу найти инструмент на основе Си (с открытым исходным кодом), который был использован.
Посмотрите на таких людей, как Уэсли Кларк (он недавно скончался), а также на Ивана Сазерленда и Карла Фанта (также упоминаемых в других местах).
источник
Если регистр синхронизируется с системными часами, он считается синхронным. Если бы этот же регистр был синхронизирован непосредственно от логического элемента, логической схемы или вообще чего-либо, кроме системных часов, он был бы асинхронным. Регистры Альтера могут быть синхронизированы от нескольких системных часов или с помощью логики. Вы можете построить любой тип схемы затвора, который пожелаете. , , Мой опыт работы с большинством типов ASIC или FPGA заключается в том, что каждый раз, когда он компилируется, что-то маршрутизируется по-разному. Таким образом, задержки распространения постоянно меняются.
источник
ПЛИС - это правильное оборудование. Но вы не сможете использовать программное обеспечение для синхронного синтеза, потому что оно делает неправильные преобразования.
Например, FPGA прекрасно способна формировать генератор, построенный с цепью инвертора. Но если вы определите эту цепочку инверторов, например, в VHDL, и будете использовать один из стандартных компиляторов, то «NOT-gate pushback» удалит инверторы попарно и оставит только один, и устройство не будет колебаться.
Возможно, вам придется написать некоторые из ваших собственных программ синтеза, что будет возможно, если вы получите достаточно информации о битовом потоке. Я хотел бы взглянуть на другие исследовательские работы, которые работают с битовым потоком, а не с поведенческим описанием - такие вещи, как обнаружение сбоев и анализ надежности, сильно зависят от отображения, выбранного синтезатором. Вероятно, некоторая работа в области избыточной отказоустойчивой логики уже разработала некоторые пользовательские методы отображения, поскольку исключение термина общего продукта является одним из стандартных преобразований, выполняемых традиционным синтезатором, и полностью разрушает избыточную конструкцию.
Когда вы контролируете использование примитивов логических элементов FPGA, таких как таблицы поиска и локальное и глобальное межсоединение, вы сможете использовать внутренние задержки для реализации своего асинхронного проекта. Ваша задача оптимизации намного сложнее, чем согласование с целью соблюдения сроков установки и удержания, но именно это и делает ее исследованиями.
источник
В зависимости от сложности схемы. Если ваш дизайн в основном цифровой, вы можете использовать систему Altera Quartus. Введите свой дизайн с помощью графических инструментов и / или инструментов VHDL, используя асинхронно синхронизированные регистры, или используйте только логические элементы. При необходимости добавьте фиктивные буферы, вентили, сигнальные штыри и т. Д., Чтобы задержать пути прохождения сигнала в соответствии с вашими потребностями. (при условии, что ваш дизайн медленнее, чем самые быстрые задержки в CPLD, <5 нс)
Много лет разработки с их чипами, я никогда не нашел ошибочного результата симулятора. Меньшие проекты могут быть сделаны с их бесплатными инструментами.
источник