module D_ff(d,q,clk,q_n);
input d,clk;
output reg q;
output reg q_n;
always @(posedge clk)
begin
q_n<=~d;
q<=d;
end
endmodule
module seq_gen(cp,seq_out);
input cp;
output seq_out;
wire d1,d2,d3,q1,q2,q3,q1_n,q2_n,q3_n;
wire c1,c2,c3;
and(c1,~q2,~q3);
and(c2,~q3,q1);
and(c3,q3,q2,~q1);
or(d1,c1,c2,c3);
assign d2=q1;
assign d3=q2;
assign seq_out=q3;
D_ff D1(
.clk(cp),
.d (d1),
.q(q1),
.q_n(q1_n));
D_ff D2(
.d (d2),
.clk(cp),
.q(q2),
.q_n(q2_n));
D_ff D3(
.d (d3),
.clk(cp),
.q(q3),
.q_n(q3_n));
endmodule
附上完整代码 |