From 9d0bca97755c928b803ebfa0d70ec21c4977e631 Mon Sep 17 00:00:00 2001 From: YRabbit Date: Sat, 6 Jul 2024 18:58:21 +1000 Subject: [PATCH] Gowin. Add an energy saving primitive We add a BANDGAP primitive used to turn off power to OSC, PLL and other things on some GOWIN chips. We also mark this primitive and GSR as keep. Signed-off-by: YRabbit --- techlibs/gowin/cells_sim.v | 6 +++++- techlibs/gowin/cells_xtra.py | 2 +- techlibs/gowin/cells_xtra.v | 4 ---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/techlibs/gowin/cells_sim.v b/techlibs/gowin/cells_sim.v index b26869080..4c017e2ab 100644 --- a/techlibs/gowin/cells_sim.v +++ b/techlibs/gowin/cells_sim.v @@ -867,8 +867,12 @@ module ODDRC(D0, D1, CLEAR, TX, CLK, Q0, Q1); parameter INIT = 0; endmodule +(* blackbox, keep *) module GSR (input GSRI); - wire GSRO = GSRI; +endmodule + +(* blackbox, keep *) +module BANDGAP (input BGEN); endmodule (* abc9_box, lib_whitebox *) diff --git a/techlibs/gowin/cells_xtra.py b/techlibs/gowin/cells_xtra.py index 4d117e428..224ece02f 100644 --- a/techlibs/gowin/cells_xtra.py +++ b/techlibs/gowin/cells_xtra.py @@ -13,7 +13,7 @@ class State(Enum): IN_MODULE = auto() IN_PARAMETER = auto() -_skip = { 'ALU', 'DFF', 'DFFC', 'DFFCE', 'DFFE', 'DFFN', 'DFFNC', 'DFFNCE', +_skip = { 'ALU', 'BANDGAP', 'DFF', 'DFFC', 'DFFCE', 'DFFE', 'DFFN', 'DFFNC', 'DFFNCE', 'DFFNE', 'DFFNP', 'DFFNPE', 'DFFNR', 'DFFNRE', 'DFFNS', 'DFFNSE', 'DFFP', 'DFFPE', 'DFFR', 'DFFRE', 'DFFS', 'DFFSE', 'DP', 'DPX9', 'ELVDS_OBUF', 'GND', 'GSR', 'IBUF', 'IDDR', 'IDDRC', 'IDES10', diff --git a/techlibs/gowin/cells_xtra.v b/techlibs/gowin/cells_xtra.v index 4b89b8098..639014dc1 100644 --- a/techlibs/gowin/cells_xtra.v +++ b/techlibs/gowin/cells_xtra.v @@ -1687,10 +1687,6 @@ endmodule module ADC (...); endmodule -module BANDGAP (...); -input BGEN; -endmodule - module CLKDIV2 (...); parameter GSREN = "false"; input HCLKIN, RESETN;