凿子库和测试台

时间:2016-12-13 10:11:57

标签: chisel

我现在正在学习凿子,所以我得到很多问题。

我知道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}

提前致谢。

`

1 个答案:

答案 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,但我不确定。