Demuxer:未连接的电线/ firrtl错误

詹姆士

我正在尝试使用Chisel制作一个解复用器,但是代码无法编译并抛出imgur链接中所示的错误

[1] https://i.stack.imgur.com/oW0Rv.png

class Demuxer extends Module {
  val io = IO(new Bundle {
    val datain = Input(UInt(8.W))
    val dataout1 = Output(UInt(8.W))
    val dataout2 = Output(UInt(8.W))
    val dataout3 = Output(UInt(8.W))
    val dataout4 = Output(UInt(8.W))
    val dataout5 = Output(UInt(8.W))  
    val selector = Input((UInt(3.W)))  
  })
  when(io.selector === 1.U){
        io.dataout1 := io.datain
  }.elsewhen(io.selector === 2.U){
      io.dataout2 := io.datain
  }.elsewhen(io.selector === 3.U){
      io.dataout3 := io.datain
  }.elsewhen(io.selector === 4.U){
      io.dataout4 := io.datain
  }.elsewhen(io.selector === 5.U){
      io.dataout5 := io.datain
  }.otherwise{
       
  }
}

我阅读了有关未连接元素的Wiki https://www.chisel-lang.org/chisel3/docs/wiki-deprecated/unconnected-wires.html

如果我在IO上使用use io.outs <> DontCare,则代码会编译,但是生成的Verilog会将我的输入短接到所有输出,这不是我想要的此模块的行为。有人可以建议我解决此问题吗?

提前致谢

塞尔德里奇

Chisel和Scala FIRRTL编译器要求在所有情况下都驱动所有输出。这有助于避免设计人员忘记驱动某些端口/电线/寄存器的错误。问题是代码需要DontCare为所有模块输出设置一些默认值(或使用)。

DontCare通常,将所有输出设置为以下两种情况之一:

  1. 默认连接为0.U
  2. 默认连接将是其他一些合法值或连接。

(2)这里正在发生什么。在编写时io.dataout1 := DontCare,是向编译器指示可以将其设置为任何值。然后,编译器选择将其设置为io.dataout1 := io.datain(将输入缩短为输出)。

除了使用外,DontCare您可以使用显式的东西,例如,0.U将为每个输出创建一个多路复用器。用一行完成此操作看起来像:

  Seq(io.dataout1, io.dataout2, io.dataout3, io.dataout4, io.dataout5).foreach(
    _ := 0.U
  )

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用FIRRTL注释连接多位电线和引脚

来自分类Dev

连接未关闭错误

来自分类Dev

使用Cat运算符维护FIRRTL上的连接顺序

来自分类Dev

与重复器的电线连接

来自分类Dev

Informatica未连接查找解析错误

来自分类Dev

Informatica未连接查找解析错误

来自分类Dev

(数字+“大于5”)未运行“连接错误”

来自分类Dev

Java RMI 连接错误:未连接到本地主机

来自分类Dev

CQLSH连接错误:错误的请求:未配置的columnfamily本地

来自分类Dev

<错误>:[CoreBluetooth] API错误:取消未使用外设的连接

来自分类Dev

凿子/ FIRRTL DefnameDifferentPortsException

来自分类Dev

未连接调试器时的Autofac解析错误

来自分类Dev

为什么会出现错误“尝试打开未关闭的连接”?

来自分类Dev

未连接USB时Grub读取错误[13.10]

来自分类Dev

错误:传输端点未连接(Python套接字)

来自分类Dev

错误:由于未连接表单而取消了表单提交

来自分类Dev

连接断开时未检测到QNetworkReply错误信号

来自分类Dev

未建立连接Firebase Firestore和grpc中的错误

来自分类Dev

Docker for Flask应用程序未运行-连接错误

来自分类Dev

未连接USB时Grub读取错误[13.10]

来自分类Dev

未连接调试器时的Autofac解析错误

来自分类Dev

SocketRocket在连接无效主机时未引发错误

来自分类Dev

Quickblox错误:您未连接且未获得授权

来自分类Dev

RecyclerView 错误:未连接适配器;跳过布局

来自分类Dev

windbg首先连接,然后卡在“ Debuggee未连接”上。内核调试期间的错误消息

来自分类Dev

RecyclerView适配器连接错误:未连接适配器

来自分类Dev

空闲的Oracle连接给出错误消息“ ORA-03114:未连接到ORACLE”

来自分类Dev

Teamviewer连接错误:“伙伴未连接到路由器”,“ WaitforConnectFailed”

来自分类Dev

由于错误718,Reliance宽带网络连接未连接

Related 相关文章

  1. 1

    使用FIRRTL注释连接多位电线和引脚

  2. 2

    连接未关闭错误

  3. 3

    使用Cat运算符维护FIRRTL上的连接顺序

  4. 4

    与重复器的电线连接

  5. 5

    Informatica未连接查找解析错误

  6. 6

    Informatica未连接查找解析错误

  7. 7

    (数字+“大于5”)未运行“连接错误”

  8. 8

    Java RMI 连接错误:未连接到本地主机

  9. 9

    CQLSH连接错误:错误的请求:未配置的columnfamily本地

  10. 10

    <错误>:[CoreBluetooth] API错误:取消未使用外设的连接

  11. 11

    凿子/ FIRRTL DefnameDifferentPortsException

  12. 12

    未连接调试器时的Autofac解析错误

  13. 13

    为什么会出现错误“尝试打开未关闭的连接”?

  14. 14

    未连接USB时Grub读取错误[13.10]

  15. 15

    错误:传输端点未连接(Python套接字)

  16. 16

    错误:由于未连接表单而取消了表单提交

  17. 17

    连接断开时未检测到QNetworkReply错误信号

  18. 18

    未建立连接Firebase Firestore和grpc中的错误

  19. 19

    Docker for Flask应用程序未运行-连接错误

  20. 20

    未连接USB时Grub读取错误[13.10]

  21. 21

    未连接调试器时的Autofac解析错误

  22. 22

    SocketRocket在连接无效主机时未引发错误

  23. 23

    Quickblox错误:您未连接且未获得授权

  24. 24

    RecyclerView 错误:未连接适配器;跳过布局

  25. 25

    windbg首先连接,然后卡在“ Debuggee未连接”上。内核调试期间的错误消息

  26. 26

    RecyclerView适配器连接错误:未连接适配器

  27. 27

    空闲的Oracle连接给出错误消息“ ORA-03114:未连接到ORACLE”

  28. 28

    Teamviewer连接错误:“伙伴未连接到路由器”,“ WaitforConnectFailed”

  29. 29

    由于错误718,Reliance宽带网络连接未连接

热门标签

归档