本文主要是介绍HDLbits: ece241 2013 q12 // Exams/m2014 q4k,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
两道题目,有一样的问题:
第一道:ece241 2013 q12
下面的代码错误,一直没看出来哪里有问题:
module top_module (input clk,input enable,input S,input A, B, C,output Z ); reg [7:0] q;dff dff_1(clk,enable,S,q[0]);dff dff_2(clk,enable,q[0],q[1]);dff dff_3(clk,enable,q[1],q[2]);dff dff_4(clk,enable,q[2],q[3]);dff dff_5(clk,enable,q[3],q[4]);dff dff_6(clk,enable,q[4],q[5]);dff dff_7(clk,enable,q[5],q[6]);dff dff_8(clk,enable,q[6],q[7]);always@(*)begincase({A,B,C})3'b000: Z=q[0];3'b001: Z=q[1];3'b010: Z=q[2];3'b011: Z=q[3];3'b100: Z=q[4];3'b101: Z=q[5];3'b110: Z=q[6];3'b111: Z=q[7];endcaseend
endmodulemodule dff (input clk,input ena,input d,output q ); always@(posedge clk)beginif(ena)q <= d;elseq <= q; end
endmodule
同样思路的另外一套代码就没问题:
module top_module (input clk,input enable,input S,input A, B, C,output Z ); reg [7:0]Q;dfif dff_u0(.clk(clk), .d(S), .enable(enable), .q(Q[0]));dfif dff_u1(.clk(clk), .d(Q[0]), .enable(enable), .q(Q[1]));dfif dff_u2(.clk(clk), .d(Q[1]), .enable(enable), .q(Q[2]));dfif dff_u3(.clk(clk), .d(Q[2]), .enable(enable), .q(Q[3]));dfif dff_u4(.clk(clk), .d(Q[3]), .enable(enable), .q(Q[4]));dfif dff_u5(.clk(clk), .d(Q[4]), .enable(enable), .q(Q[5]));dfif dff_u6(.clk(clk), .d(Q[5]), .enable(enable), .q(Q[6]));dfif dff_u7(.clk(clk), .d(Q[6]), .enable(enable), .q(Q[7]));always@(*)begincase({A,B,C})3'd0:Z=Q[0];3'd1:Z=Q[1];3'd2:Z=Q[2];3'd3:Z=Q[3];3'd4:Z=Q[4];3'd5:Z=Q[5];3'd6:Z=Q[6];3'd7:Z=Q[7];endcaseendendmodulemodule dfif(input clk,input d,input enable,output q
);always@(posedge clk)beginif(enable)beginq<=d; endelse beginq<=q;endend
endmodule
第二道题目:Exams/m2014 q4k,也是这种情况
下面的代码错误,一直没看出来哪里有问题:
module top_module (input clk,input resetn, // synchronous resetinput in,output out);wire q1,q2,q3;dff dff_1(clk, resetn, in, q1);dff dff_2(clk, resetn, q1, q2);dff dff_3(clk, resetn, q2, q3);dff dff_4(clk, resetn, q3, out);endmodulemodule dff(input clk,input r,input d,output q);always@(posedge clk)beginif(!r)q <= 0;elseq <= d;end
endmodule
同样思路的另外一套代码就没问题:
module top_module (input clk,input resetn, // synchronous resetinput in,output out);wire q0,q1,q2;my_sr inst0(in,clk,resetn,q0);my_sr inst1(q0,clk,resetn,q1);my_sr inst2(q1,clk,resetn,q2);my_sr inst3(q2,clk,resetn,out);endmodulemodule my_sr(input D,input clk,input R,output Q
);always@(posedge clk)beginif(R==1'b0)Q<=0;elseQ<=D;end
endmodule
这篇关于HDLbits: ece241 2013 q12 // Exams/m2014 q4k的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!