Класс абстрактный; не может быть создана ошибка на долото - PullRequest
0 голосов
/ 04 июля 2018

Я только что начал использовать chisel3 и хочу поменять местами цифры. Это код для испытательного стенда:

class LengthTest(c: Length) extends PeekPokeTester(c) {
  poke(c.io.x, 12)
  expect(c.io.z, 21)
}



abstract class LengthTester extends ChiselFlatSpec {
  behavior of "Length" 
  backends foreach { backend =>
    it should s"demonstrate usage of functions that generate code in $backend" in {
      Driver(() => new Length, backend)((c) => new LengthTest(c)) should  be (true)
    }
  }
}

И это основной код

abstract class Length extends Module {
  val io = IO(new Bundle {
    val x   = Input(UInt(16.W))
    val z   = Output(UInt(16.W))
  })
  def Reverse(a: UInt) : UInt 
  io.z := Reverse(io.x)
}

Это выдает ошибку, говорящую, что класс не может быть создан. Пожалуйста, помогите !!

1 Ответ

0 голосов
/ 04 июля 2018

Вам необходимо удалить ключевое слово abstract и удалить def Reverse(a: UInt) : UInt) или предоставить для него некоторую реализацию

Кажется, что Реверс - это объект, определенный в утилитах долота - поэтому вам просто нужно его импортировать, и тогда вы можете просто io.z: = Reverse (io.x)

...