Вопрос по поводу ленивых оценок для Дипломатии (ракета-чип)?

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

Мой вопрос: это единственный подход? Можно ли создать в Scala прокси-объект, который регистрирует эти метасвойства и оценивает их при вызове конкретной функции? Затем эта функция может быть вызвана перед оценкой для согласования.

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


person Anmol Sahoo    schedule 28.10.2019    source источник


Ответы (1)


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

person Chick Markley    schedule 29.10.2019