better handling of lut and begin/end add

This commit is contained in:
Miodrag Milanovic 2019-09-18 17:45:07 +02:00
parent 3487b95224
commit 8badd4d812
1 changed files with 10 additions and 4 deletions

View File

@ -6,7 +6,11 @@ module EFX_LUT4(
input I3 input I3
); );
parameter LUTMASK = 16'h0000; parameter LUTMASK = 16'h0000;
assign O = LUTMASK >> {I3, I2, I1, I0};
wire [7:0] s3 = I3 ? LUTMASK[15:8] : LUTMASK[7:0];
wire [3:0] s2 = I2 ? s3[ 7:4] : s3[3:0];
wire [1:0] s1 = I1 ? s2[ 3:2] : s2[1:0];
assign O = I0 ? s1[1] : s1[0];
endmodule endmodule
module EFX_ADD( module EFX_ADD(
@ -71,12 +75,14 @@ module EFX_FF(
begin begin
always @(posedge clk) always @(posedge clk)
if (ce) if (ce)
begin
if (sr) if (sr)
Q <= SR_VALUE; Q <= SR_VALUE;
else else
Q <= d; Q <= d;
end end
end end
end
else else
begin begin
always @(posedge clk or posedge sr) always @(posedge clk or posedge sr)