微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

连接单个模块 - Chisel

如何解决连接单个模块 - Chisel

您好,我有一个关于如何连接和映射两个模块之间的端口的问题,我将仅描述输入和输出,而排除每个模块的控制逻辑。第一个模块是一个简单的寄存器,其输出是第二个模块的输入,该模块是一个解复用器

class simpleRegister extends Module {
    val io = IO( new Bundle { 
    val enable = Input(UInt(1.W))
    val in    = Input(UInt(8.W))
    val out   = Output(UInt(8.W))
    })
}

class demultiplexer 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)) 
  })

当我在 github 上阅读“接口和批量连接”时,我不确定是否应该使用什么方法

解决方法

您需要构建一个调用两个模块并执行构建的顶层模块。这很简单。

您的顶部模块将如下所示

class Top extends Module{
    //You can expose a top level IO bundle if you will
    val smplReg = Module(new simpleRegister)
    val dmux = Module(new demultiplexer)
    //connection of interest here is
    dmux.io.datain := smplReg.io.out
    //Make other connections as necessary
}

接口和批量连接是指两个 IO 包具有相似的字段,而不是将每个输入/输出连接到相应的输入/输出,而是将包作为一个整体连接。这只是优化代码的一种方式。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。