【问题标题】:verilog driving signals on the same wire同一根线上的verilog驱动信号
【发布时间】:2011-04-17 19:52:04
【问题描述】:

我浏览了互联网,找不到一个清晰简洁的答案来回答我的问题。我想知道如果我将相同强度的信号驱动到同一根电线上会发生什么,其中一个是逻辑 1,另一个是逻辑 0?如果我想要一个“获胜”的信号,我该怎么办,因为没有更好的词,这取决于情况?

【问题讨论】:

  • 你能描述一下你想要做什么吗?还是这是作业?
  • 这不是家庭作业。我正在尝试将两个不同的信号驱动到同一根电线上。我希望一次通过电线发送一个信号。哪个信号,那要看情况了。我怎么知道哪个信号通过了?以及如何实现只传输一个特定的信号?

标签: conflict verilog drive signal-strength


【解决方案1】:

根据您的评论,听起来您想要一辆三态巴士。驱动三态总线的基本结构是:

assign bus = enable ? out : 1'bz;

驱动总线的每个模块都有这种形式的驱动程序。任何时候只有一个模块可以断言其启用;总线协议应该定义如何决定总线的所有权。例如,像I2C这样的串行总线有一个“主”和一个“从”;主人总是先说话,奴隶只有在主人要求后才说话。

如果您不希望总线在没有驱动时浮动(在模拟中,这显示为 Z 值),您可以将总线声明为 tri0tri1 而不是常规的 wire .

如果多个模块同时断言启用,或者如果您有多个标准assign bus = out; 驱动程序试图在总线上驱动不同的值,则称为“争用”。这将在模拟中显示为 X 值,并可能导致物理设备中的驱动程序损坏。

【讨论】:

  • 出现争用时是否总是 x?如果两个不同的信号有两种不同的强度,为什么更强的信号不通过?
  • 如果实力不同,则实力高者获胜
【解决方案2】:

我想知道如果我 将相同强度的信号驱动到 同一根电线,其中一根是逻辑 1 另一个是逻辑0?

如果负载是一个简单的网络,它将被分配 StX(Strong X)。

如果我想要一个信号怎么办 “赢”,因为没有更好的词, 视情况而定?

您是在问如何在 Verilog 中对此进行建模,或者如何使用 MOS 设备进行建模?

【讨论】:

  • 如何在verilog中做到这一点。这就是我要问的
  • 也许使用 wand / wor 类型来获得有线 And 和 Wired Or 效果?
猜你喜欢
  • 2020-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多