Руководство разработчика для долота? - PullRequest
3 голосов
/ 22 октября 2019

В принципе, я хотел бы начать взламывать внутренности Chisel / FIRRTL. Было бы полезно, если бы кто-то мог указать мне, куда я мог бы начать смотреть.

Я читал исходный код. Я до сих пор понимаю, что Chisel был реализован как библиотека Scala. Каждый объект Chisel имеет несколько методов для генерации FIRRTL. После запуска конкретной программы Scala объекты пересекаются и генерируется FIRRTL.

То, что я хотел знать, это то, смотрю ли я в правильном направлении. Я до сих пор не понял, где происходит формирование AST для модулей Chisel и вывод типа. В конце концов я доберусь туда, но было бы замечательно, если бы кто-то суммировал мне места, которые я должен посмотреть.

Конечно, это слишком много вопросов от разработчиков Chisel, но даже некоторая базовая информация поможет!

1 Ответ

3 голосов
/ 22 октября 2019

Я бы сказал, что есть два основных места для начала. Firrtl - хорошее начало, потому что он новее долота, и в целом база кода новее. Firrtl - это анализатор, преобразователи и излучатели, и они довольно просты. Преобразования довольно хорошо инкапсулируют большинство операций

Долото, поскольку EDSL намного сложнее и причудливее. Место для начала находится в долотоFrontend. Класс Builder является корнем магии для построения внутреннего графа, который используется для генерации chirrtl / high-firrtl. Он использует динамическую переменную, чтобы обеспечить место, где модули и их компоненты регистрируют свои создания и подключения к графу.

Надеюсь, что поможет вам начать работу, счастливого завершения

...