我有一些奇怪的问题,我的设计中没有连接一些电线。
我正在尝试创建一个简单的寄存器文件(我正在使用Xilinx ISE)。该寄存器文件包含32个寄存器,每个寄存器的大小为32位。寄存器文件有两个用于读取选择的MUX(两个并行读数)和一个用于写选择的解码器。当我尝试将来自每个寄存器的信号连接到2个MUX时,信号出现在仅连接到其中一个MUX的RTL中。例如,让信号reg2out
成为reg2
的输出。我将reg2out
连接到I1
的{{1}}个引脚,然后再次mux1
连接到reg2out
的{{1}}个引脚。 RTL然后显示正确连接的第二个多路复用器,但第一个多路复用器出现时没有输入,没有选择器,也没有连接到它的输出。下一张图显示了RTL。
注意:ISE在合成时会生成以下警告
“警告:Xst:1348 - 合并单元多路复用器(输出接口有 三态)“
我不明白。
可以找到主模块源“RegisterFile.vhd”here。我已经尝试了十几种修改来纠正,包括添加新信号,将寄存器输出存储在D-FF中,以及将寄存器输出存储在过程变量中;而问题仍然存在。该设计包含另外两个文件:“dec.vhd”和“mux.vhd”。我相信这些模块的设计是正确的。
如何解决问题?这是ISE中的一个错误吗?
答案 0 :(得分:1)
这是ISE 12.1中的一个错误。然而,似乎它只是RTL原理图可视化中的一个错误,因为综合报告正确地提到了使用过的组件。 使用ISE版本12.2,该问题不再可再现。