私はインターネットを調べましたが、私の質問に対する明確で簡潔な答えを見つけることができませんでした。同じ強度の信号を同じワイヤに駆動するとどうなるか知りたいのですが、そのうちの1つはロジック1で、もう1つはロジック0です。状況に応じて、より良い言葉がないために「勝つ」ための合図が必要な場合はどうすればよいですか?
2 に答える
あなたのコメントに基づくと、スリーステート バスが必要なようです。スリーステート バスを駆動するための基本構造は次のとおりです。
assign bus = enable ? out : 1'bz;
バスを駆動する各モジュールには、この形式のドライバーがあります。一度に有効にできるモジュールは 1 つだけです。バス プロトコルは、バスの所有権を決定する方法を定義する必要があります。たとえば、I2C のようなシリアル バスには「マスター」と「スレーブ」があります。マスターは常に最初に話し、スレーブはマスターから要求された後にのみ話します。
何も駆動していないときにバスをフロートさせたくない場合 (シミュレーションでは、これは Z 値として表示されます)、バスを通常の として宣言するtri0
かtri1
、通常のとして宣言することができますwire
。
複数のモジュールが同時に有効になっている場合、または複数の標準assign bus = out;
ドライバーがバス上で異なる値を駆動しようとしている場合、これは「競合」と呼ばれます。これはシミュレーションで X 値として表示され、物理デバイスのドライバーに損傷を与える可能性があります。
同じワイヤに同じ強さの信号をドライブするとどうなるか知りたいのですが、そのうちの 1 つはロジック 1 で、もう 1 つはロジック 0 です。
負荷が単純なネットの場合、StX(Strong X) が割り当てられます。
状況に応じて、より適切な言葉がないため、「勝つ」合図が必要な場合はどうすればよいですか?
これを Verilog でモデル化する方法、または MOS デバイスでこれを行う方法を尋ねていますか?