mirror of https://github.com/YosysHQ/yosys.git
76 lines
990 B
Verilog
76 lines
990 B
Verilog
module SLE (
|
|
output Q,
|
|
input ADn,
|
|
input ALn,
|
|
input CLK,
|
|
input D,
|
|
input LAT,
|
|
input SD,
|
|
input EN,
|
|
input SLn
|
|
);
|
|
reg q_latch, q_ff;
|
|
|
|
always @(posedge CLK, negedge ALn) begin
|
|
if (!ALn) begin
|
|
q_ff <= !ADn;
|
|
end else if (EN) begin
|
|
if (!SLn)
|
|
q_ff <= SD;
|
|
else
|
|
q_ff <= D;
|
|
end
|
|
end
|
|
|
|
always @* begin
|
|
if (!ALn) begin
|
|
q_latch <= !ADn;
|
|
end else if (CLK && EN) begin
|
|
if (!SLn)
|
|
q_ff <= SD;
|
|
else
|
|
q_ff <= D;
|
|
end
|
|
end
|
|
|
|
assign Q = LAT ? q_latch : q_ff;
|
|
endmodule
|
|
|
|
module CFG1 (
|
|
output Y,
|
|
input A
|
|
);
|
|
parameter [1:0] INIT = 2'h0;
|
|
assign Y = INIT >> A;
|
|
endmodule
|
|
|
|
module CFG2 (
|
|
output Y,
|
|
input A,
|
|
input B
|
|
);
|
|
parameter [3:0] INIT = 4'h0;
|
|
assign Y = INIT >> {B, A};
|
|
endmodule
|
|
|
|
module CFG3 (
|
|
output Y,
|
|
input A,
|
|
input B,
|
|
input C
|
|
);
|
|
parameter [7:0] INIT = 8'h0;
|
|
assign Y = INIT >> {C, B, A};
|
|
endmodule
|
|
|
|
module CFG4 (
|
|
output Y,
|
|
input A,
|
|
input B,
|
|
input C,
|
|
input D
|
|
);
|
|
parameter [15:0] INIT = 16'h0;
|
|
assign Y = INIT >> {D, C, B, A};
|
|
endmodule
|