Я пытаюсь создать в проекте мультиплексор 4: 1, но есть некоторые несоответствия выходных данных. - PullRequest
0 голосов
/ 11 октября 2019

Я пытаюсь создать мультиплексор в проекте в 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

несоответствия в выходных данных после предложенных изменений:

mismatched output

...