blob: b27820f23641a987e4c49e7a55518d64e4788b49 [file] [log] [blame]
module top(
input clk,
input rst,
output wire din_ready,
input wire din_valid,
input wire [2:0] din_data,
input wire dout_ready,
output wire dout_valid,
output wire [2:0] dout_data
);
wire dout1_ready;
wire dout1_valid;
wire [0:0] dout1_data;
wire dout2_ready;
wire dout2_valid;
wire [1:0] dout2_data;
wire [1:0] din_bc_ready;
wire [1:0] din_bc_valid;
wire [5:0] din_bc_data;
bc #(
.SIZE(2'd2),
.WIDTH(2'd3)
)
bc_din (
.clk(clk),
.rst(rst),
.din_valid(din_valid),
.din_ready(din_ready),
.din_data(din_data),
.dout_valid(din_bc_valid),
.dout_ready(din_bc_ready),
.dout_data(din_bc_data)
);
demux demux (
.clk(clk),
.rst(rst),
.din_valid(din_bc_valid[0]),
.din_ready(din_bc_ready[0]),
.din_data(din_bc_data[2:0]),
.dout0_valid(dout1_valid),
.dout0_ready(dout1_ready),
.dout0_data(dout1_data),
.dout1_valid(dout2_valid),
.dout1_ready(dout2_ready),
.dout1_data(dout2_data)
);
mux mux (
.clk(clk),
.rst(rst),
.ctrl_valid(din_bc_valid[1]),
.ctrl_ready(din_bc_ready[1]),
.ctrl_data(din_bc_data[2]),
.din0_valid(dout1_valid),
.din0_ready(dout1_ready),
.din0_data(dout1_data),
.din1_valid(dout2_valid),
.din1_ready(dout2_ready),
.din1_data(dout2_data),
.dout_valid(dout_valid),
.dout_ready(dout_ready),
.dout_data(dout_data)
);
endmodule