module top(
input clk,
input rd,
input wr,
inout data
);
reg data_out;
wire data_in;
always @(posedge clk)
if (wr)
data_out = data_in;
assign data = rd ? data_out : 1'bz;
assign data_in = data;
endmodule
schematic.pdf
- - - Добавлено - - -
module top(
input clk,
input csA,
input csB,
input dataA,
input dataB,
output data
);
reg data;
always @(posedge clk)
begin
case ({csA,csB})
2'b10: data = dataA;
2'b01: data = dataB;
2'b00: data = data;
default: data = 1'b1;
endcase
end
endmodule
schematic1.pdf schematic2.pdf
- - - Добавлено - - -
Ну или вот такое извр
always @(posedge clk)
begin
data <= csA ? dataA : csB ? dataB : 1'bz;
end
schematic3.pdf schematic4.pdf
- - - Добавлено - - -
Можно - но НЕ нужно использовать значение 1'bz внутри схемы.
1'bz - это для ВНЕШНИХ буферов (физический вывод).
ПС: примеры не самые изящные - айэмсорри (с)




Ответить с цитированием