1
0
mirror of https://github.com/aolofsson/oh.git synced 2025-01-30 02:32:53 +08:00
oh/common/hdl/oh_tristate.v

27 lines
970 B
Coq
Raw Normal View History

//#############################################################################
//# Function: Bidirectional port with output-enable #
//#############################################################################
//# Author: Ola Jeppsson #
//# SPDX-License-Identifier: MIT #
//#############################################################################
module oh_tristate #(parameter N = 1) // width of port
(
inout [N-1:0] io, // bidirectional port
input [N-1:0] oe, // output enable (1 = output, 0 = input)
output [N-1:0] in, // port as input
input [N-1:0] out // port as output
);
assign in[N-1:0] = io[N-1:0];
genvar i;
generate
for (i = 0; i < N; i = i + 1)
begin : gen_oh_tristate
assign io[i] = oe[i] ? out[i] : 1'bZ;
end
endgenerate
endmodule // oh_tristate