0

次のモジュール定義を持つ SPI マルチプレクサ用の Lattice Diamond プロジェクトがあります。

module spimux
(
input bmck,
input bssel,
input bmosi,
output bmiso,
input[3:0] a,
output[13:0] mck,
output[13:0] ssel,
output[13:0] mosi,
input[13:0] miso,
output reg[7:0] LED
);

OutputMux bmiso_mux (
    .clk(osc_clk),
    .out(bmiso),
    .a(a),
    .in(miso)
    );

// the idea here is that on each rising clock edge, the module will take
// the 4-bit address a and then set *one* of the 14 bits in "in".  One
// problem I see is that I don't prevent an invalid address of 0b1111 or
// 0b1110 from getting used.
module OutputMux
(
input clk,
output reg out,
input[3:0] a,
input[13:0] in
);

reg mask;

always @(posedge clk) begin
    // I tried this and it didn't help my situation
    //out <= (in & (14'b1 << a));
    // so I tried to assign to a temp variable and then do the bitmasking.. no change.
    mask = 14'b1 << a;
    out <= (in[13:0] & mask);
end

endmodule

endmodule

ピンを割り当てるためにスプレッドシート ビューに移動すると、すべてのピンが Signal Name ドロップリストに表示されません。たとえば、次のようになります。

ここに画像の説明を入力

miso[0] が入力ポートとしてそこにあることがわかりますが、他の 13 の miso ビットはすべてそうではありません。さらに、bmck、bssel、および bmosi がありません。それらはまだ他のピンに割り当てられていないので、なぜそこにないのか誰か説明できますか?

4

1 に答える 1