Что означают аргументы (сайт, здесь, вверху) при создании конфигураций с ракетным чипом?

При создании нового «Config» мы определяем функцию, которая принимает в качестве аргументов три «View» (site, here, up). Что означают эти три взгляда?


person Ben Reynwar    schedule 10.11.2018    source источник


Ответы (2)


В качестве чисто исторической справки взгляните на Chisel2 Advanced Руководство по параметризации (с огромной оговоркой, чтобы не воспринимать это слишком буквально как старое). Однако я считаю, что мотивация и обсуждение site, here и up все еще сохраняется в разделах 2.6, 2.7, 2.8 и 3.6.

Грубо говоря, site, here и up помогают в обработке и разрешении зависимостей от других параметров.

site позволяет устранять неоднозначность различных параметров, которые могут иметь одно и то же имя, например, Width, в зависимости от определенного местоположения. here позволяет параметрам запрашивать другие параметры, определенные в той же группе. up позволяет вам получить доступ к объекту параметра родительской конфигурации с предполагаемой целью, если вы хотите скопировать его при изменении параметров.

person seldridge    schedule 10.11.2018
comment
Этот документ - именно то, что я искал. Спасибо! - person Ben Reynwar; 11.11.2018
comment
Эта ссылка мертва :( Может кто подскажет, где я могу ее найти? - person josecm; 27.01.2020
comment
Извините! Ссылка должна быть исправлена. - person seldridge; 05.02.2020

class Blah extends Config ((site, here, up)) {..}

- это кортеж параметров, который позволяет частичное применение функции. Это позволяет частично настроить ядро ​​Rocket и установить параметры по умолчанию, сохраняя эластичность и правильность типа.

Вы можете проверить его реализацию person Tampler    schedule 10.11.2018

comment
Я просмотрел реализацию. Я не понимаю, почему используются три представления, а не одно представление. В репозитории rocket-chip я вижу множество примеров использования сайта, пару примеров использования up и никаких примеров того, где здесь используются. Предположительно, есть причина, по которой используются три набора параметров, а не один. - person Ben Reynwar; 10.11.2018
comment
Возможно, это артефакт дизайна из ранней жизни Rocket. Он находится в активной разработке около 5 лет, поэтому вы можете открыть Pull Request и улучшить / реорганизовать его, если считаете, что это важная функция. - person Tampler; 10.11.2018
comment
Я просто пытаюсь понять цель. Я подумал, может быть, они связаны с глобальными параметрами уровня модуля по сравнению с локальными или чем-то в этом роде. - person Ben Reynwar; 11.11.2018