Add some UltraPlus cells to ice40 techlib
authorDavid Shah <davey1576@gmail.com>
Thu, 16 Nov 2017 12:24:35 +0000 (12:24 +0000)
committerDavid Shah <davey1576@gmail.com>
Thu, 16 Nov 2017 12:24:35 +0000 (12:24 +0000)
techlibs/ice40/cells_sim.v

index 7778b551939bf676229d3b402aeccda7f6e3397d..fb74ea4f3e24da43f9701c95c168fdeb6dc90619 100644 (file)
@@ -881,3 +881,106 @@ module SB_WARMBOOT (
        input S0
 );
 endmodule
+
+// UltraPlus feature cells
+(* blackbox, keep *)
+module SB_MAC16 (
+       input CLK,
+       input CE,
+       input [15:0] C,
+       input [15:0] A,
+       input [15:0] B,
+       input [15:0] D,
+       input AHOLD,
+       input BHOLD,
+       input CHOLD,
+       input DHOLD,
+       input IRSTTOP,
+       input IRSTBOT,
+       input ORSTTOP,
+       input ORSTBOT,
+       input OLOADTOP,
+       input OLOADBOT,
+       input ADDSUBTOP,
+       input ADDSUBBOT,
+       input OHOLDTOP,
+       input OHOLDBOT,
+       input CI,
+       input ACCUMCI,
+       input SIGNEXTIN,
+       output [31:0] O,
+       output CO,
+       output ACCUMCO,
+       output SIGNEXTOUT
+); 
+parameter NEG_TRIGGER = 1'b0;
+parameter C_REG = 1'b0;
+parameter A_REG = 1'b0;
+parameter B_REG = 1'b0;
+parameter D_REG = 1'b0;
+parameter TOP_8x8_MULT_REG = 1'b0;
+parameter BOT_8x8_MULT_REG = 1'b0;
+parameter PIPELINE_16x16_MULT_REG1 = 1'b0;
+parameter PIPELINE_16x16_MULT_REG2 = 1'b0;
+parameter TOPOUTPUT_SELECT =  2'b00;
+parameter TOPADDSUB_LOWERINPUT = 2'b00;
+parameter TOPADDSUB_UPPERINPUT = 1'b0;
+parameter TOPADDSUB_CARRYSELECT = 2'b00;
+parameter BOTOUTPUT_SELECT =  2'b00;
+parameter BOTADDSUB_LOWERINPUT = 2'b00;
+parameter BOTADDSUB_UPPERINPUT = 1'b0;
+parameter BOTADDSUB_CARRYSELECT = 2'b00;
+parameter MODE_8x8 = 1'b0;
+parameter A_SIGNED = 1'b0;
+parameter B_SIGNED = 1'b0;
+endmodule
+
+(* blackbox, keep *)
+module SB_SPRAM256KA(
+       input [13:0] ADDRESS,
+       input [15:0] DATAIN,
+       input [3:0] MASKWREN,
+       input WREN,
+       input CHIPSELECT,
+       input CLOCK,
+       input STANDBY,
+       input SLEEP,
+       input POWEROFF,
+       output [15:0] DATAOUT
+);
+endmodule
+
+(* blackbox, keep *)
+module SB_HFOSC(
+       input CLKHFPU,
+       input CLKHFEN,
+       output CLKHF
+);
+parameter CLKHF_DIV = "0b00";
+endmodule
+
+(* blackbox, keep *)
+module SB_LFOSC(
+       input CLKLFPU,
+       input CLKLFEN,
+       output CLKLF
+);
+endmodule
+
+(* blackbox, keep *)
+module SB_RGBA_DRV(
+       input CURREN,
+       input RGBLEDEN,
+       input RGB0PWM,
+       input RGB1PWM,
+       input RGB2PWM,
+       output RGB0,
+       output RGB1,
+       output RGB2
+);
+parameter CURRENT_MODE = "0b0";
+parameter RGB0_CURRENT = "0b000000";
+parameter RGB1_CURRENT = "0b000000";
+parameter RGB2_CURRENT = "0b000000";
+endmodule
+