1

2ビットの2対1マルチプレクサを1つのLUTに適合させようとしています。LUT5_D5つの入力と2つの出力があるようです。LUTを希望どおりにプログラムできますか?

私は以前に使用LUT3LUT4ました。virtex-5ライブラリガイドから、インスタンス化するLUT5_Dには、適切なinit値をプログラムする必要があるようですが、プログラムするinit値は1つしかないため、実際に使用される出力は1つだけですか?または、両方の出力がいつでも同じ値を示しますか?

LUT5_D #(
.INIT(32'h55550f0f),
) LUT5_D_inst
(.O(O), // General LUT output (1-bit)
.LO(LO), // Local LUT output (1-bit)
.I0(I0), // LUT input (1-bit)
.I1(I1), // LUT input (1-bit)
.I2(I2), // LUT input (1-bit)
.I3(I3), // LUT input (1-bit)
.I4(SEL));
4

2 に答える 2

1

LUT5_Dあなたが望むことをするつもりはありません:2つの出力は同一です(ライブラリガイドの表はこれを示しています)。

2つの出力オプションはLUT6_2:です。

LUT6_2

アプリケーションには、それぞれ2ビット(0,1)の2つの入力(AとB)と、同じく2ビットの出力(Y)があります。

  • I0選択入力として使用
  • I5常に一番上のLUT5(ロジック1 IIRC)を選択するように配線します。
  • 、、、、I4:1として配線A0B0ます。 A1B1
  • O6ですY0O5ですY1

興味のある読者に、次のようなINIT値を考え出すための演習として残しておきます。

  • 最上位のLUT5をMUXに変換しI4ますI3I0
  • 下部のLUT5をMUXに変換しI2ますI1I0
于 2011-10-07T15:37:44.220 に答える
1

INIT値をプログラムしないでください。LUT_MAPははるかに簡単で、保守しやすくなっています。

(* LUT_MAP="yes" *)
module mux2(sel, a, b, o);
    input  sel;
    input  a;
    input  b;
    output o;

    assign o = (~sel&a) | (sel & b);
endmodule

共通のsel入力信号を使用すると、上記のmux2は、4つの6-LUTをそれぞれ2つの5-LUTに分割することにより、8から(4つの6-LUT)スライスにパックできます。

于 2011-10-24T18:59:19.057 に答える