0

私は半導体メーカーで働いています。多くの場合、設計をテストして、パーツで実行するシーケンスが回路図の 2 つのポイント (たとえば、signal_a と signal_b) を適切に接続していることを確認します。2 つの信号には通常、2 つの信号を接続するためにオンにする必要がある複数のパス ゲートがあります。これが正しく行われることを確認するために、通常、回路図とシミュレーションを調べて、すべてのパス ゲートが正しくオンになっていることを確認します。Verilog には、これをチェックするためのコマンドが組み込まれているようです。たとえば、次のようなものです。

@triggering_signal
begin
  connected=check_connection(signal_a,signal_b)
end

connected は、接続されている場合は 1 に設定され、接続されていない場合は 0 に設定されます。このようなものが存在する場合、誰かが私を正しい方向に向けることができれば幸いです。コードに強制信号を入れて signal_a をトグルし、それがカウンターを使用して signal_b に現れるかどうかを確認することを考えましたが、signal_a が 1 以外の状態にあるという事実のために、これは必要なすべてのケースで機能しません。ダイをオフにします。

4

1 に答える 1

0

シーケンスを使用して SV アサーションを使用して、signal_a の値が常に signal_b と同じであることをテストできます。

assert (signal_a == signal_b) else $error("It's gone wrong");
于 2016-04-24T04:33:02.877 に答える