一般的な関係演算子(縮小オペレーター)

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中存在零,那么输出结果由于“逻辑与”会得到低电平。

 

おすすめ

転載: www.cnblogs.com/mengyi1989/p/11515976.html