0

4 対 2 のプライオリティ エンコーダーを使用して 16to4 ビットのプライオリティ エンコーダーを作成したいですか? 私は Verilog コードを使用しており、4 対 2 のエンコーダーを 6 つ使用しました。最初は 4 つのエンコーダーを使用し、その後、それらの出力を他の 2 つのエンコーダーの入力に配置しました。しかし、それはまったく正しく動作しません!

4

1 に答える 1

0
module pri16to4
   (input  wire[15:0] in,
    output wire       valid,
    output wire [3:0] out);

   wire[1:0] pe3, pe2, pe1, pe0;

   U3(in[15:12], pe3);
   U2(in[11:8],  pe2);
   U1(in[7:4],   pe1);
   U0(in[3:0],   pe0);

   assign valid = (in != 0);
   assign out = (in[15:12] != 0)? {2'b11, pe3} :
                (in[11:8]  != 0)? {2'b10, pe2} :
                (in[7:4]   != 0)? {2'b01, pe1} :
                (in[3:0]   != 0)? {2'b00, pe0} : 0;

endmodule

今後の参考のために - Verilog に問題がある場合は、何らかの作業を行ったことを示し、動作しないコードを投稿してください。宿題に問題がある場合は、教授に尋ねてください。

于 2013-10-07T11:28:50.167 に答える