-2

信号に依存するカウンターを作成しようとしています。信号は 2 サイクルの間ハイになり、次の 2 サイクルの間ローになり、これが最後まで続きます。ハイパルスの間、カウントは 0、1 から開始する必要があります。パルスがロー カウントの場合、カウントは 'x であり、次のハイからは 2、3 から続き、再び 'x が 2 サイクル (パルスがハイの場合のみアップカウント)、次に再び 4、5 になります。私は Verilog を初めて使用します。割り当て。

次のコードを作成すると、常に 1 2 x 1 2 x のカウントが得られます。何か助けはありますか?

always@(posedge clk or posedge rst)
If(rst)
Count <= 0;
else 
Count <= signal; 

assign signal  = pulse ? Count + 1: 'x; 

代わりに 1 2 x x1 2 xx を取得しています。1 2 xx 3 4 xx 5 6 xx など。

4

2 に答える 2

0

カウントレジスタを広くするだけです。今は1ビットなので(1 + 1 = ) 2になったらロールオーバーする。もっと広くすれば状態を格納できる。

于 2018-09-02T15:10:33.037 に答える