ice40: Add CIN_CONST and CIN_SET parameters to ICESTORM_LC
authorDavid Shah <davey1576@gmail.com>
Fri, 13 Jul 2018 11:09:18 +0000 (13:09 +0200)
committerDavid Shah <davey1576@gmail.com>
Fri, 13 Jul 2018 11:09:18 +0000 (13:09 +0200)
Signed-off-by: David Shah <davey1576@gmail.com>
techlibs/ice40/cells_sim.v

index 45a02111f0a200b0c2668ecbe37b37bc832051fa..9f73aeb075dddee019f2f71c88f2b4ffb03bdc5f 100644 (file)
@@ -657,7 +657,12 @@ module ICESTORM_LC (
        parameter [0:0] SET_NORESET  = 0;
        parameter [0:0] ASYNC_SR     = 0;
 
-       assign COUT = CARRY_ENABLE ? (I1 && I2) || ((I1 || I2) && CIN) : 1'bx;
+       parameter [0:0] CIN_CONST    = 0;
+       parameter [0:0] CIN_SET      = 0;
+
+       wire mux_cin = CIN_CONST ? CIN_SET : CIN;
+
+       assign COUT = CARRY_ENABLE ? (I1 && I2) || ((I1 || I2) && mux_cin) : 1'bx;
 
        wire [7:0] lut_s3 = I3 ? LUT_INIT[15:8] : LUT_INIT[7:0];
        wire [3:0] lut_s2 = I2 ?   lut_s3[ 7:4] :   lut_s3[3:0];
@@ -1226,4 +1231,3 @@ module SB_IO_OD (
        endgenerate
 `endif
 endmodule
-