
██████╗ ██╗██████╗ ███████╗██╗ ██╗███╗ ██╗███████╗ ██████╗
██╔══██╗██║██╔══██╗██╔════╝██║ ██║████╗ ██║██╔════╝██╔════╝
██████╔╝██║██████╔╝█████╗ ██║ ██║██╔██╗ ██║█████╗ ██║
██╔═══╝ ██║██╔═══╝ ██╔══╝ ██║ ██║██║╚██╗██║██╔══╝ ██║
██║ ██║██║ ███████╗███████╗██║██║ ╚████║███████╗╚██████╗
╚═╝ ╚═╝╚═╝ ╚══════╝╚══════╝╚═╝╚═╝ ╚═══╝╚══════╝ ╚═════╝
Пожалуйста, не стесняйтесь, чтобы сообщить - очень рад заставить Pipelinec работать за вас! Всегда ищу помощь. -Джулианский
Начиная
Начните с прочтения вики.
Что такое Pipelinec?
C-подобный (1) Аппаратный описание языка (HDL) (2) Добавление синтеза высокого уровня (HLS)-Подобное автоматическому трубопроводу (3) в качестве языковой конструкции/компилятора.
- На самом деле не регулярно C., но может быть частично составлен с помощью GCC/LLVM для выполнения основной функциональной проверки/«моделирования». Обратитесь, если заинтересован в разработке более сложного языкового синтаксиса!
- Может разумно заменить Verilog/VHDL. Компилятор производит синтезируемый и человеческий читаемый+отладкий VHDL. Существуют крючки для вставки необработанных VHDL / существующих IP / черных ящиков.
- Если вычисление может быть записано как чистая функция без побочных эффектов (то есть нет глобальных/статических переменных), то оно будет автопипелирован. Концептуально похож на такие технологии, как переменная задержка Intel, и варианты примечания Xilinx. Обмен некоторыми из целей проектирования конвейеров, управляемых компиляторами, проекта Google XLS, языка DFIANTHDL и некоторых крутых диалектов.
Что такое Pipelinec?
- Синтез высокого уровня произвольного C -кода с глобальной моделью памяти / потоков / и т. Д.
- Не могу сделать «вложенные петли для архитектуры памяти» для вас.
- Скомпилированный симулятор оборудования на основе C:
- Только части кода Pipelinec могут быть скомпилированы компиляторами C и выполняются (рекомендуется).
- Но весь мультимодульный, мультипинка-домен и т. Д. Целые конструкции не могут быть просто скомпилированы и запускаются как обычные программы C.
- Метапрограммирование аппаратного генератора (например, использует систему типа C и препроцессор).
- Инструмент для сшивания автоматизации поток сборки из кода/модулей в Bitstream:
- Инструмент делает частично автоматизируйте синтез, но автоматизация до окончательного бита остается пользователю.
Основные функции/преимущества
Легкий для понимания языка описания аппаратного обеспечения с мощным компилятором с автопипелий и растущим набором реальных функций оборудования для оборудования.
- Знакомый синтаксис C, который устраняет многие причуды HDL, которые новички (и эксперты) могут стать жертвой (например, блокировка/неблокирующие назначения, рассуждая о последовательном упорядочении комбинаторной логики).
- Совместим со всеми симуляторами HDL. Бывший. Может запустить модели в секундах и импортировать ЧЕЛОВЕЧЕСКИЙ ЧЕРТНЫЙ+ОТЧЕТНЫЙ VHDL с рабочими печатными изделиями. Также может создать пользовательские ультрабыточные скомпилированные «моделирование» на основе C. Преобразование в Verilog также включена по мере необходимости, т.е. для Verilator.
- Полезная обратная связь с временем, полученная из отчетов инструментов синтеза, чтобы помочь определить логику критического пути, которая не может быть автоматически оформлена, особенно полезна для новой для проектирования цифровой логики.
- Легко интегрируется со стороной программного обеспечения C; Полезное встроенное генерация кода. (Исх. Для/упаковочных структур из массивов DE/сериализованных байтов при перемещении данных с хоста <-> FPGA).
- Полное оборудование описания языка замена. Может начать с клонирования существующих дизайнов VHDL/Verilog или включить сырой VHDL - не вынужден использовать весь язык в любое время.
- Глобально видимые провода точек-точка, многократные/ширины тактовые доменные переходы и сложные FSMS, являются лишь частью растущего списка функций композиции, вдохновленных реальными требованиями/задачами для проектирования аппаратного обеспечения.
- Автоматическое трубопровод как особенность компилятора. Основное использование инструмента может состоять в том, чтобы генерировать отдельные трубопроводы для падения в существующие конструкции в других местах. Устранение практики логики трубопровода вручную = не портативная (полагается на рабочую частоту и часть).
Фундаментальными элементами дизайна являются государственные машины/государственные элементы (регистры, RAMS и т. Д.), Автопипелированные чистые функции без сохранения состояния и межсоединения (провода, CDC, Async FIFO и т. Д.). Конструкции могут быть структурированы так, чтобы выглядеть как «передача последовательных процессов/потоков» по мере необходимости.
Изолируя сложную логику в автопипелинизируемые функции, и только написание буквальных часов с помощью описания оборудования часов, когда это абсолютно необходимо, конструкции Pipelinec не нужно переписать для каждого нового целевого устройства / частоты работы. Надежда состоит в том, чтобы построить общие, высокопроизводительные, агностические устройства, оборудование, описанные в знакомого и мощном композиционном языке.
Для программного обеспечения люди, пишущие Pipelinec, должны чувствовать себя как решение головоломки программирования в C - правила головоломки скрыть/подразумевать аппаратные концепции. Для оборудования люди Pipelinec - лучший язык для оборудования, пытаясь найти среднюю почву между традиционными RTL и HLS. Это мой язык выбора в качестве инженера FPGA :).