1、这个题倒没什么难度按照逻辑门的图一步步来就行。注意Q1跟Q2中间有个异或门这里要重新设置一下输入。
完整代码如下:
module top_module (
input [2:0] SW, // R
input [1:0] KEY, // L and clk
output [2:0] LEDR); // Q
reg q3;
assign q3=LEDR[2]^LEDR[1];
djk djk_u2(.R(SW[0]), .q1(LEDR[2]),.L(KEY[1]),.clock(KEY[0]),.Q(LEDR[0]));
djk djk_u1(.R(SW[1]), .q1(LEDR[0]),.L(KEY[1]),.clock(KEY[0]),.Q(LEDR[1]));
djk djk_u0(.R(SW[2]), .q1(q3),.L(KEY[1]),.clock(KEY[0]),.Q(LEDR[2]));
endmodule
module djk(
input R,
input q1,
input L,
input clock,
output Q
);
always@(posedge clock)begin
Q<=L==1?R:q1;
end
endmodule