compiler-errors - 是否可以在一条线上允许多个驱动程序?
问题描述
我正在尝试在 FPGA 上创建 CPU,但我不知道如何创建主数据总线。理想情况下,我将有一个具有多个输入和输出的线阵列,这些输入和输出在不同时间启用,但如果这样做,我会收到“多个驱动程序网络”错误。
我已经尝试使用电线、寄存器和不同的分配方法来实现这个结果,但我无法让它工作,因为它总是具有多个输入连接。
module Top(
input [7:0] sw,
output [7:0] led,
input we,
input oe,
input clk
);
wire [7:0] regData;
Register register (regData, we, oe, clk);
assign led = regData;
assign regData = sw;
endmodule
确切的错误消息是“[DRC MDRV-1] Multiple Driver Nets: Net led_OBUF[0] has multiple drivers: register/led_OBUF[0]_inst_i_1/O, and sw_IBUF[0]_inst/O.”每个驱动程序之一寄存器中的位(8 位)
解决方案
不,不在 FPGA 内部。
唯一的方法是将数据总线连接到“三态”驱动程序。但是所有现代 FPGA(和 ASIC)都禁止在芯片上使用三态。您会发现 FPGA 不再具有内部三态驱动程序(或共享总线)。要共享总线,您必须使用多路复用来组合信号。
一种方法是在总线未使用/未激活时将总线设置为全零。然后,您可以对所有总线进行逻辑或。这实际上与多路复用相同,但以更分散的方式。
推荐阅读
- java - 使用 Xpath 或 CSS 选择器单击带有 Selenium 的按钮
- css - CSS:如何从最后一个子元素的一个 brfore 标记 i 类的颜色
- flutter - Flutter Web - 缺少请求标头
- laravel - 全新 Laravel 安装后作曲家转储自动加载错误
- amazon-web-services - 如何测试接受 Http POST 中发送的表单参数的 AWS API 网关?
- c# - 将任何 Vector3 (x,y,z) 拟合到线性数组索引中
- azure-active-directory - 如何使用 PostMan 获取名册?
- vb.net - 在 app.config 中指定dependentAssembly 和在 .net 项目中引用 dll 有什么区别?
- python - python中的base64到numpy数组
- excel - Excel 中的匹配值最多为 8 位