diff options
author | David Shah <davey1576@gmail.com> | 2018-07-08 12:35:27 +0200 |
---|---|---|
committer | David Shah <davey1576@gmail.com> | 2018-07-11 10:42:09 +0200 |
commit | c33aa259ad822d9c4ce3f46922504a70e730704c (patch) | |
tree | 026d74c691cf431341b2e2dd8e6b793bbeb50c72 /ecp5/synth/simple_map.v | |
parent | 738b410bf84d5508942014a14344593ac99ce3b7 (diff) | |
download | nextpnr-c33aa259ad822d9c4ce3f46922504a70e730704c.tar.gz nextpnr-c33aa259ad822d9c4ce3f46922504a70e730704c.tar.bz2 nextpnr-c33aa259ad822d9c4ce3f46922504a70e730704c.zip |
ecp5: Adding a simple prepacked synth script
Signed-off-by: David Shah <davey1576@gmail.com>
Diffstat (limited to 'ecp5/synth/simple_map.v')
-rw-r--r-- | ecp5/synth/simple_map.v | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/ecp5/synth/simple_map.v b/ecp5/synth/simple_map.v new file mode 100644 index 00000000..4a50fd01 --- /dev/null +++ b/ecp5/synth/simple_map.v @@ -0,0 +1,68 @@ +module \$_DFF_P_ (input D, C, output Q); + TRELLIS_SLICE #( + .MODE("LOGIC"), + .CLKMUX("CLK"), + .CEMUX("1"), + .REG0_SD("0"), + .REG0_REGSET("RESET"), + .SRMODE("LSR_OVER_CE"), + .GSR("DISABLED") + ) _TECHMAP_REPLACE_ ( + .CLK(C), + .M0(D), + .Q0(Q) + ); +endmodule + +module \$lut (A, Y); + parameter WIDTH = 0; + parameter LUT = 0; + + input [WIDTH-1:0] A; + output Y; + + generate + if (WIDTH == 1) begin + TRELLIS_SLICE #( + .MODE("LOGIC"), + .LUT0_INITVAL(LUT) + ) _TECHMAP_REPLACE_ ( + .A0(A[0]), + .F0(Y) + ); + end + if (WIDTH == 2) begin + TRELLIS_SLICE #( + .MODE("LOGIC"), + .LUT0_INITVAL(LUT) + ) _TECHMAP_REPLACE_ ( + .A0(A[0]), + .B0(A[1]), + .F0(Y) + ); + end + if (WIDTH == 3) begin + TRELLIS_SLICE #( + .MODE("LOGIC"), + .LUT0_INITVAL(LUT) + ) _TECHMAP_REPLACE_ ( + .A0(A[0]), + .B0(A[1]), + .C0(A[2]), + .F0(Y) + ); + end + if (WIDTH == 4) begin + TRELLIS_SLICE #( + .MODE("LOGIC"), + .LUT0_INITVAL(LUT) + ) _TECHMAP_REPLACE_ ( + .A0(A[0]), + .B0(A[1]), + .C0(A[2]), + .D0(A[3]), + .F0(Y) + ); + end + endgenerate +endmodule |