Я пытаюсь создать мультиплексор в проекте в Verilog. Вот кодЯ думаю, что я получил правильный код мультиплексора, но что-то не так с моим экземпляром. Где я ошибся?
module top_module (
input clk,
input [7:0] d,
input [1:0] sel,
output [7:0] q
);
wire d1, d2, d3;
my_dff8 dff1 (.clk(clk), .d(d), .q(d1));
my_dff8 dff2 (.clk(clk), .d(d1), .q(d2));
my_dff8 dff3 (.clk(clk), .d(d2), .q(d3));
mux4to1 mux (.w(d), .x(d3), .y(d2), .z(d1), .q1(q));
endmodule
module mux4to1 (input [7:0] w,
input [7:0] x,
input [7:0] y,
input [1:0] sel,
input [7:0] z,
output reg [7:0] q1
);
assign q1 = sel[1] ? (sel[0] ? z: y) : (sel[0] ? x : w);
endmodule
несоответствия в выходных данных после предложенных изменений: