EDITORIAL言葉
削減演算子は単項演算子ですが、また、NOR動作と。どの操作ルールやビット演算子と非運用ルールに似ていますが、さまざまな操作手順について。ビット演算はオペランドが演算の結果は、いくつかの桁数の数であり、NOR動作とオペランドの対応するビットです。縮小操作が異なり、単一の非再帰的な操作を用いて行われる演算の数、進数の演算の最終結果を減少させます。次のように減少し、特定の操作プロセスである計算:第ように第一段階、第三NOR動作と、演算結果の第二ステップ、及び第一の操作の第二ビットのA NOR動作最後のビットまで。例えば:
REG [3:0] B。
REG C;
C =&B。
に相当
C =((B [0]とB [1])&B [2])&B [3]。
プロジェクト
以下は、シニアの翼は、私たちが言うように、シミュレーション波形の計算結果が検証する例を記述するために皆のための夢。次のように統合されたモジュールのコードは、することができ
/ ************************************************* *** *エンジニア: ドリーム・ブラザーウイング * QQ:761664056 *モジュール機能:減少文計算モジュール ************************************************** *** / 01 モジュールを 減らす( CLK 、 RST_N 、 C )。 02 入力 CLKを、 // システム・クロック入力 03 INPUTの RST_Nを; // リセット 04 05 出力 REG C ; // 出力レジスタの定義 06 07 REG [ 3 : 0 ] B ; // 内部レジスタ定義 08 09 常に(@ posedgeの CLK または negedgeの RST_N ) 10 始めます 11 もし(! RST_N ) 12 始めます 13個のC <= 0 。 14 B <= 4'b1111 。 15 終了 16 他 17 始めます 18個のC <=& B 。 19 終了 20 終了 21 22 ENDMODULE |
次のようにテストコードを書きます
/ ************************************************* *** *エンジニア: ドリーム・ブラザーウイング * QQ:761664056 *モジュール機能:減少文のテストモジュール ************************************************** *** / 01 `タイムスケール1nsの/ 1PS 02 モジュール TB 。 03 REGの CLK ; 04 REGの RST_N 。 05 06 ワイヤ C 。 07 08 initial 09 begin 10 clk=0; 11 rst_n=0; 12 # 1000.1 rst_n=1; 13 end 14 15 always #10 clk=~clk; 16 17 reduce reduce( 18 .clk(clk), 19 .rst_n(rst_n), 20 .c(c) 21 ); 22 endmodule |
查看仿真波形如下:
通过该波形可以看出,当变量B的四个位全部为高时,由于是“逻辑与”的运算,所以最终输出的变量C为高电平。
那么如果我们在变量B中加入一个零,结果会如何呢?我们仿真如下:
可以看到,如果变量B中存在零,那么输出结果由于“逻辑与”会得到低电平。