-1

質問があります。誰かが問題を解決するためのヒントを教えてくれることを願っています。

入力信号 "in" の期間が tmax より大きい場合、信号 "reset" をすぐに High にする Verilog コードが必要です。

信号「リセット」は、「in」の次の正のエッジで再びローになる必要があります (次の正のエッジがある場合)

入力信号「in」の期間が tmax よりも小さい場合、信号「reset」はローのままにする必要があります。

例 1。

tmax=100ns
period(in) = 80ns
  • リセットは常にローのままです

例 2。

tmax=100ns
period(in) = 130ns
  • リセットは、「in」の最初の立ち上がりエッジから 100ns 後に高くなります
  • 2 番目のパルスがある場合、リセットは "in" の次のポジティブ エッジでローになります。

添付画像を参照

どこから始めればよいですか?

4

1 に答える 1

0

これはどう。Tmax を超えているかどうかを確認するためにチェックを行う必要がありますが、結果間のタイムスケール解像度は 1 になります。

always @ (*)
    begin
        while(1)
            begin
            current_time = $realtime; 
            if (last_time > 0.0) freq = 1.0e9 / (current_time - last_time); 
            last_time = current_time; 
            # 1;  // This allows for 1 timescale between loops.  If you leave
                  // this out, most simulators become non-responsive in the loop.
            end
    end
于 2016-08-31T17:33:27.103 に答える