module top_module (
input [3:0] SW,
input [3:0] KEY,
output [3:0] LEDR
); //
MUXDFF md1(KEY[1],SW[3],KEY[2],KEY[0],KEY[3],LEDR[3]);
MUXDFF md2(KEY[1],SW[2],KEY[2],KEY[0],LEDR[3],LEDR[2]);
MUXDFF md3(KEY[1],SW[1],KEY[2],KEY[0],LEDR[2],LEDR[1]);
MUXDFF md4(KEY[1],SW[0],KEY[2],KEY[0],LEDR[1],LEDR[0]);
endmodule
module MUXDFF (input e,r,l,clk,w,output Q);
wire m1,d;
always@(posedge clk)
begin
Q<=l?r:e?w:Q ;
end
endmodule
错误原因:定义子模块时错误,定义了input q,output Q,实际上 Q就是下一个的输入,只需要在内部逻辑把Qn-1(Qn-1就是Q)作为输入即可,不需要再次定义。