我现在正在学习凿子,所以我得到很多问题。
我知道import chsel3._
可以将Chisel库文件添加到代码中。
我看到凿子教程中的凿子代码有import chisel3._
以及import chisel3.util._
我的问题是我何时需要添加import chisel3.util._
或排除import chisel3_
的内容?
另一个问题是当我编写测试平台时,我应该扩展什么?
类XXTests(c:XX)扩展了PeekPokeTester(c){....}
或
类XXTests(c:XX)扩展Tester(c){....}
我应该何时添加import chisel3.iotesters.{PeekPokeTester, Driver, ChiselFlatSpec}
?
提前致谢。
`
答案 0 :(得分:1)
基本上,包chisel3包含主要的Chisel原语,如Module,UInt和Reg,而chisel3.util包含有用的实用程序,如Arbiter,Queue和PriorityEncoder。区别并不总是显而易见的,因此最好查看API文档以查看每个文档中可用的内容:https://chisel.eecs.berkeley.edu/api/index.html(请注意,包chisel3实际上指向主要位于chisel3中的成员。核心)。
关于第二个问题,请查看chisel-template(这是新Chisel项目的一个很好的起点)。该设计位于src/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,但我不确定。