我浏览了互联网,找不到我的问题的清晰简洁的答案。我想知道如果我将相同强度的信号驱动到同一根电线上会发生什么,其中一个是逻辑 1,另一个是逻辑 0?如果我想要一个“获胜”的信号,我该怎么办,因为没有更好的词,这取决于情况?
问问题
7680 次
2 回答
2
根据您的评论,听起来您想要一辆三态巴士。驱动三态总线的基本结构是:
assign bus = enable ? out : 1'bz;
驱动总线的每个模块都有这种形式的驱动程序。任何时候只有一个模块可以断言其启用;总线协议应该定义如何决定总线的所有权。例如,像 I2C 这样的串行总线有一个“主”和一个“从”;主人总是先说话,奴隶只有在主人要求后才说话。
如果您不希望总线在没有任何驱动时浮动(在模拟中,这显示为 Z 值),您可以将总线声明为tri0
ortri1
而不是常规的wire
.
如果多个模块同时声明启用,或者如果您有多个标准assign bus = out;
驱动程序试图在总线上驱动不同的值,则称为“争用”。这将在模拟中显示为 X 值,并可能导致物理设备中的驱动程序损坏。
于 2011-04-17T20:44:05.877 回答
1
我想知道如果我将相同强度的信号驱动到同一根电线上会发生什么,其中一个是逻辑 1,另一个是逻辑 0?
如果负载是一个简单的网络,它将被分配 StX(Strong X)。
如果我想要一个“获胜”的信号,我该怎么办,因为没有更好的词,这取决于情况?
您是在问如何在 Verilog 中对此建模或如何使用 MOS 设备进行建模?
于 2011-04-17T22:40:33.297 回答