【问题标题】:Linking (2) bidr ports between (2) modules in VHDL在 VHDL 中的 (2) 个模块之间链接 (2) 个bidr 端口
【发布时间】:2020-09-17 09:57:27
【问题描述】:

我有一个 FPGA,它接受来自两个微控制器的 8 位地址和数据总线(1 个总线用于两者)。使用 2:1 多路复用器,我的 FPGA 一次只选择一个设备输入(地址和数据),选择基于 FPGA 的外部信号。我还有一个单独的解码器和寄存器模块,微可以读取和写入。所以我的问题是,如何使用端口映射分配将来自多路复用器的双向输出信号链接到更高级别的解码器/寄存器双向输入模块。使用 std_logic_vector(7..0) 将不起作用,因为我收到错误“此信号已连接到多个驱动程序”。我想我需要对这两者进行三态,但我不确定。看下面的图片,绿色圆圈是我试图粘在一起的。由于我是新人,暂时无法嵌入图片。

My FPGA Project

【问题讨论】:

  • 您的问题显示缺少minimal reproducible example(包括完整的错误消息,它将告诉您的读者使用什么工具)。如果您指的是综合工具,那么只有有限数量的 FPGA 器件系列 (Xilinx) 具有接受内部双向网络信号描述的映射工具,这些将被映射到单向网络。这里有一个潜在的主题,FPGA 不支持内部双向网络(具有多个驱动程序)。见How to Ask

标签: vhdl fpga bidirectional mux inout


【解决方案1】:

您认为您需要三态是正确的,但这需要在 FPGA 的边缘,即在 IO 引脚上。 FPGA 内不能有双向端口。因此,对于每个 bidir 引脚,您都有三个信号,传入传出和一个方向。如果所有引脚始终具有相同的方向,则可以对所有引脚使用相同的信号。四个你这意味着你不需要多路复用输入信号,因为它们可以被拆分(一个信号到多个实例),但你需要一个用于输出信号(多个实例到一个信号)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-21
    • 2020-10-22
    • 1970-01-01
    • 2013-06-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多