Библиотека Chisel и испытательные стенды

Сейчас я изучаю долото, поэтому у меня много вопросов.

Я знаю, что import chsel3._ может добавлять файлы библиотеки Chisel в коды.

И я вижу коды долота в учебнике долота, в котором есть import chisel3._, а также import chisel3.util._

У меня вопрос: когда нужно добавить import chisel3.util._ или что-то исключает import chisel3_?

Другой вопрос: когда я пишу testbench, что мне расширять?

class XXTests (c: XX) расширяет PeekPokeTester (c) {....}

or

class XXTests (c: XX) расширяет Tester (c) {....}

Когда мне добавлять import chisel3.iotesters.{PeekPokeTester, Driver, ChiselFlatSpec}?

Заранее спасибо.

`


person jjlin    schedule 13.12.2016    source источник


Ответы (1)


По сути, пакет chisel3 содержит основные примитивы Chisel, такие как Module, UInt и Reg, тогда как chisel3.util содержит полезные утилиты, такие как Arbiter, Queue и PriorityEncoder. Различие не всегда очевидно, поэтому лучше посмотреть документацию по API, чтобы узнать, что доступно в каждом из них: https://chisel.eecs.berkeley.edu/api/index.html (обратите внимание, что пакет chisel3 фактически указывает на элементы, которые в основном находятся в chisel3.core).

Что касается второго вопроса, обратите внимание на шаблон chisel (который является хорошим отправная точка для новых проектов Chisel). Дизайн находится в /main/scala/example/GCD.scala. Вы можете заметить, что он импортирует только chisel3._, потому что он ничего не использует в chisel3.util. Тест находится в src / test / scala / examples / test / GCDUnitTest.scala и импортирует Chisel.iotesters (это должен быть chisel3.iotesters - это устаревший импорт, но он все еще работает). Тест использует PeekPokeTester для проверки конструкции. Вы должны расширять PeekPokeTester или другие тестеры, расположенные в chisel-testers. Я считаю, что расширение Tester - это старый Chisel 2 API, но я не уверен.

person Jack Koenig    schedule 13.12.2016