Skip to content

Instantly share code, notes, and snippets.

@kbeckmann
Last active November 10, 2020 14:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kbeckmann/db5ca074c5926c78dedf53dd0e9d5bdd to your computer and use it in GitHub Desktop.
Save kbeckmann/db5ca074c5926c78dedf53dd0e9d5bdd to your computer and use it in GitHub Desktop.
IO_LOC "led" 18;
IO_LOC "clk24" 35;
module top(clk24, led);
input clk24;
output led;
reg [8:0] counter;
always @(posedge clk24) begin
counter <= counter + 1;
end
assign led = counter == 1'b0;
endmodule
/* Generated by Yosys 0.9+3656 (git sha1 dfeff65c, gcc 10.2.0 -march=x86-64 -mtune=generic -O2 -fstack-protector-strong -fno-plt -fPIC -Os) */
/* top = 1 */
/* src = "top.v:1.1-13.10" */
module top(clk24, led);
/* src = "top.v:2.9-2.14" */
input clk24;
wire clk24_IBUF_I_O;
/* src = "top.v:5.13-5.20" */
wire \counter[0] ;
/* src = "top.v:8.16-8.27|/usr/bin/../share/yosys/gowin/arith_map.v:34.28-34.29" */
wire \counter[0]_DFF_Q_D ;
/* src = "top.v:8.16-8.27|/usr/bin/../share/yosys/gowin/arith_map.v:38.25-38.27" */
wire \counter[0]_DFF_Q_D_ALU_SUM_COUT ;
wire \counter[0]_DFF_Q_D_ALU_SUM_I0 ;
/* src = "top.v:5.13-5.20" */
wire \counter[1] ;
/* src = "top.v:8.16-8.27|/usr/bin/../share/yosys/gowin/arith_map.v:34.28-34.29" */
wire \counter[1]_DFF_Q_D ;
/* src = "top.v:8.16-8.27|/usr/bin/../share/yosys/gowin/arith_map.v:38.25-38.27" */
wire \counter[1]_DFF_Q_D_ALU_SUM_COUT ;
wire \counter[1]_DFF_Q_D_ALU_SUM_I0 ;
/* src = "top.v:5.13-5.20" */
wire \counter[2] ;
/* src = "top.v:8.16-8.27|/usr/bin/../share/yosys/gowin/arith_map.v:34.28-34.29" */
wire \counter[2]_DFF_Q_D ;
/* src = "top.v:8.16-8.27|/usr/bin/../share/yosys/gowin/arith_map.v:38.25-38.27" */
wire \counter[2]_DFF_Q_D_ALU_SUM_COUT ;
/* src = "top.v:5.13-5.20" */
wire \counter[3] ;
/* src = "top.v:8.16-8.27|/usr/bin/../share/yosys/gowin/arith_map.v:34.28-34.29" */
wire \counter[3]_DFF_Q_D ;
/* src = "top.v:8.16-8.27|/usr/bin/../share/yosys/gowin/arith_map.v:38.25-38.27" */
wire \counter[3]_DFF_Q_D_ALU_SUM_COUT ;
/* src = "top.v:5.13-5.20" */
wire \counter[4] ;
/* src = "top.v:8.16-8.27|/usr/bin/../share/yosys/gowin/arith_map.v:34.28-34.29" */
wire \counter[4]_DFF_Q_D ;
/* src = "top.v:8.16-8.27|/usr/bin/../share/yosys/gowin/arith_map.v:38.25-38.27" */
wire \counter[4]_DFF_Q_D_ALU_SUM_COUT ;
/* src = "top.v:5.13-5.20" */
wire \counter[5] ;
/* src = "top.v:8.16-8.27|/usr/bin/../share/yosys/gowin/arith_map.v:34.28-34.29" */
wire \counter[5]_DFF_Q_D ;
/* src = "top.v:8.16-8.27|/usr/bin/../share/yosys/gowin/arith_map.v:38.25-38.27" */
wire \counter[5]_DFF_Q_D_ALU_SUM_COUT ;
/* src = "top.v:5.13-5.20" */
wire \counter[6] ;
/* src = "top.v:8.16-8.27|/usr/bin/../share/yosys/gowin/arith_map.v:34.28-34.29" */
wire \counter[6]_DFF_Q_D ;
/* src = "top.v:8.16-8.27|/usr/bin/../share/yosys/gowin/arith_map.v:38.25-38.27" */
wire \counter[6]_DFF_Q_D_ALU_SUM_COUT ;
/* src = "top.v:5.13-5.20" */
wire \counter[7] ;
/* src = "top.v:8.16-8.27|/usr/bin/../share/yosys/gowin/arith_map.v:34.28-34.29" */
wire \counter[7]_DFF_Q_D ;
/* src = "top.v:8.16-8.27|/usr/bin/../share/yosys/gowin/arith_map.v:38.25-38.27" */
wire \counter[7]_DFF_Q_D_ALU_SUM_COUT ;
/* src = "top.v:5.13-5.20" */
wire \counter[8] ;
/* src = "top.v:8.16-8.27|/usr/bin/../share/yosys/gowin/arith_map.v:34.28-34.29" */
wire \counter[8]_DFF_Q_D ;
/* src = "top.v:8.16-8.27|/usr/bin/../share/yosys/gowin/arith_map.v:38.25-38.27" */
/* unused_bits = "0" */
wire \counter[8]_DFF_Q_D_ALU_SUM_COUT ;
/* src = "top.v:3.10-3.13" */
output led;
wire led_OBUF_O_I;
/* force_downto = 1 */
/* src = "/usr/bin/../share/yosys/gowin/cells_map.v:131.20-131.21" */
wire [3:0] led_OBUF_O_I_LUT4_F_I2;
/* keep = 1 */
IBUF clk24_IBUF_I (
.I(clk24),
.O(clk24_IBUF_I_O)
);
/* module_not_derived = 1 */
/* src = "top.v:7.3-9.6|/usr/bin/../share/yosys/gowin/cells_map.v:13.6-13.47" */
DFF \counter[0]_DFF_Q (
.CLK(clk24_IBUF_I_O),
.D(\counter[0]_DFF_Q_D ),
.Q(\counter[0] )
);
/* module_not_derived = 1 */
/* src = "top.v:8.16-8.27|/usr/bin/../share/yosys/gowin/arith_map.v:57.7-63.5" */
ALU \counter[0]_DFF_Q_D_ALU_SUM (
.CIN(\counter[1]_DFF_Q_D_ALU_SUM_I0 ),
.COUT(\counter[0]_DFF_Q_D_ALU_SUM_COUT ),
.I0(\counter[0]_DFF_Q_D_ALU_SUM_I0 ),
.I1(\counter[0] ),
.I3(\counter[0]_DFF_Q_D_ALU_SUM_I0 ),
.SUM(\counter[0]_DFF_Q_D )
);
defparam \counter[0]_DFF_Q_D_ALU_SUM .ALU_MODE = 2;
VCC \counter[0]_DFF_Q_D_ALU_SUM_I0_VCC_V (
.V(\counter[0]_DFF_Q_D_ALU_SUM_I0 )
);
/* module_not_derived = 1 */
/* src = "top.v:7.3-9.6|/usr/bin/../share/yosys/gowin/cells_map.v:13.6-13.47" */
DFF \counter[1]_DFF_Q (
.CLK(clk24_IBUF_I_O),
.D(\counter[1]_DFF_Q_D ),
.Q(\counter[1] )
);
/* module_not_derived = 1 */
/* src = "top.v:8.16-8.27|/usr/bin/../share/yosys/gowin/arith_map.v:57.7-63.5" */
ALU \counter[1]_DFF_Q_D_ALU_SUM (
.CIN(\counter[0]_DFF_Q_D_ALU_SUM_COUT ),
.COUT(\counter[1]_DFF_Q_D_ALU_SUM_COUT ),
.I0(\counter[1]_DFF_Q_D_ALU_SUM_I0 ),
.I1(\counter[1] ),
.I3(\counter[0]_DFF_Q_D_ALU_SUM_I0 ),
.SUM(\counter[1]_DFF_Q_D )
);
defparam \counter[1]_DFF_Q_D_ALU_SUM .ALU_MODE = 2;
GND \counter[1]_DFF_Q_D_ALU_SUM_I0_GND_G (
.G(\counter[1]_DFF_Q_D_ALU_SUM_I0 )
);
/* module_not_derived = 1 */
/* src = "top.v:7.3-9.6|/usr/bin/../share/yosys/gowin/cells_map.v:13.6-13.47" */
DFF \counter[2]_DFF_Q (
.CLK(clk24_IBUF_I_O),
.D(\counter[2]_DFF_Q_D ),
.Q(\counter[2] )
);
/* module_not_derived = 1 */
/* src = "top.v:8.16-8.27|/usr/bin/../share/yosys/gowin/arith_map.v:57.7-63.5" */
ALU \counter[2]_DFF_Q_D_ALU_SUM (
.CIN(\counter[1]_DFF_Q_D_ALU_SUM_COUT ),
.COUT(\counter[2]_DFF_Q_D_ALU_SUM_COUT ),
.I0(\counter[1]_DFF_Q_D_ALU_SUM_I0 ),
.I1(\counter[2] ),
.I3(\counter[0]_DFF_Q_D_ALU_SUM_I0 ),
.SUM(\counter[2]_DFF_Q_D )
);
defparam \counter[2]_DFF_Q_D_ALU_SUM .ALU_MODE = 2;
/* module_not_derived = 1 */
/* src = "/usr/bin/../share/yosys/gowin/cells_map.v:148.23-149.48" */
LUT4 \counter[2]_LUT4_I0 (
.F(led_OBUF_O_I_LUT4_F_I2[3]),
.I0(\counter[2] ),
.I1(\counter[3] ),
.I2(\counter[4] ),
.I3(\counter[5] )
);
defparam \counter[2]_LUT4_I0 .INIT = 16'h0001;
/* module_not_derived = 1 */
/* src = "top.v:7.3-9.6|/usr/bin/../share/yosys/gowin/cells_map.v:13.6-13.47" */
DFF \counter[3]_DFF_Q (
.CLK(clk24_IBUF_I_O),
.D(\counter[3]_DFF_Q_D ),
.Q(\counter[3] )
);
/* module_not_derived = 1 */
/* src = "top.v:8.16-8.27|/usr/bin/../share/yosys/gowin/arith_map.v:57.7-63.5" */
ALU \counter[3]_DFF_Q_D_ALU_SUM (
.CIN(\counter[2]_DFF_Q_D_ALU_SUM_COUT ),
.COUT(\counter[3]_DFF_Q_D_ALU_SUM_COUT ),
.I0(\counter[1]_DFF_Q_D_ALU_SUM_I0 ),
.I1(\counter[3] ),
.I3(\counter[0]_DFF_Q_D_ALU_SUM_I0 ),
.SUM(\counter[3]_DFF_Q_D )
);
defparam \counter[3]_DFF_Q_D_ALU_SUM .ALU_MODE = 2;
/* module_not_derived = 1 */
/* src = "top.v:7.3-9.6|/usr/bin/../share/yosys/gowin/cells_map.v:13.6-13.47" */
DFF \counter[4]_DFF_Q (
.CLK(clk24_IBUF_I_O),
.D(\counter[4]_DFF_Q_D ),
.Q(\counter[4] )
);
/* module_not_derived = 1 */
/* src = "top.v:8.16-8.27|/usr/bin/../share/yosys/gowin/arith_map.v:57.7-63.5" */
ALU \counter[4]_DFF_Q_D_ALU_SUM (
.CIN(\counter[3]_DFF_Q_D_ALU_SUM_COUT ),
.COUT(\counter[4]_DFF_Q_D_ALU_SUM_COUT ),
.I0(\counter[1]_DFF_Q_D_ALU_SUM_I0 ),
.I1(\counter[4] ),
.I3(\counter[0]_DFF_Q_D_ALU_SUM_I0 ),
.SUM(\counter[4]_DFF_Q_D )
);
defparam \counter[4]_DFF_Q_D_ALU_SUM .ALU_MODE = 2;
/* module_not_derived = 1 */
/* src = "top.v:7.3-9.6|/usr/bin/../share/yosys/gowin/cells_map.v:13.6-13.47" */
DFF \counter[5]_DFF_Q (
.CLK(clk24_IBUF_I_O),
.D(\counter[5]_DFF_Q_D ),
.Q(\counter[5] )
);
/* module_not_derived = 1 */
/* src = "top.v:8.16-8.27|/usr/bin/../share/yosys/gowin/arith_map.v:57.7-63.5" */
ALU \counter[5]_DFF_Q_D_ALU_SUM (
.CIN(\counter[4]_DFF_Q_D_ALU_SUM_COUT ),
.COUT(\counter[5]_DFF_Q_D_ALU_SUM_COUT ),
.I0(\counter[1]_DFF_Q_D_ALU_SUM_I0 ),
.I1(\counter[5] ),
.I3(\counter[0]_DFF_Q_D_ALU_SUM_I0 ),
.SUM(\counter[5]_DFF_Q_D )
);
defparam \counter[5]_DFF_Q_D_ALU_SUM .ALU_MODE = 2;
/* module_not_derived = 1 */
/* src = "top.v:7.3-9.6|/usr/bin/../share/yosys/gowin/cells_map.v:13.6-13.47" */
DFF \counter[6]_DFF_Q (
.CLK(clk24_IBUF_I_O),
.D(\counter[6]_DFF_Q_D ),
.Q(\counter[6] )
);
/* module_not_derived = 1 */
/* src = "top.v:8.16-8.27|/usr/bin/../share/yosys/gowin/arith_map.v:57.7-63.5" */
ALU \counter[6]_DFF_Q_D_ALU_SUM (
.CIN(\counter[5]_DFF_Q_D_ALU_SUM_COUT ),
.COUT(\counter[6]_DFF_Q_D_ALU_SUM_COUT ),
.I0(\counter[1]_DFF_Q_D_ALU_SUM_I0 ),
.I1(\counter[6] ),
.I3(\counter[0]_DFF_Q_D_ALU_SUM_I0 ),
.SUM(\counter[6]_DFF_Q_D )
);
defparam \counter[6]_DFF_Q_D_ALU_SUM .ALU_MODE = 2;
/* module_not_derived = 1 */
/* src = "/usr/bin/../share/yosys/gowin/cells_map.v:144.23-145.37" */
LUT3 \counter[6]_LUT3_I0 (
.F(led_OBUF_O_I_LUT4_F_I2[2]),
.I0(\counter[6] ),
.I1(\counter[7] ),
.I2(\counter[8] )
);
defparam \counter[6]_LUT3_I0 .INIT = 8'h01;
/* module_not_derived = 1 */
/* src = "top.v:7.3-9.6|/usr/bin/../share/yosys/gowin/cells_map.v:13.6-13.47" */
DFF \counter[7]_DFF_Q (
.CLK(clk24_IBUF_I_O),
.D(\counter[7]_DFF_Q_D ),
.Q(\counter[7] )
);
/* module_not_derived = 1 */
/* src = "top.v:8.16-8.27|/usr/bin/../share/yosys/gowin/arith_map.v:57.7-63.5" */
ALU \counter[7]_DFF_Q_D_ALU_SUM (
.CIN(\counter[6]_DFF_Q_D_ALU_SUM_COUT ),
.COUT(\counter[7]_DFF_Q_D_ALU_SUM_COUT ),
.I0(\counter[1]_DFF_Q_D_ALU_SUM_I0 ),
.I1(\counter[7] ),
.I3(\counter[0]_DFF_Q_D_ALU_SUM_I0 ),
.SUM(\counter[7]_DFF_Q_D )
);
defparam \counter[7]_DFF_Q_D_ALU_SUM .ALU_MODE = 2;
/* module_not_derived = 1 */
/* src = "top.v:7.3-9.6|/usr/bin/../share/yosys/gowin/cells_map.v:13.6-13.47" */
DFF \counter[8]_DFF_Q (
.CLK(clk24_IBUF_I_O),
.D(\counter[8]_DFF_Q_D ),
.Q(\counter[8] )
);
/* module_not_derived = 1 */
/* src = "top.v:8.16-8.27|/usr/bin/../share/yosys/gowin/arith_map.v:57.7-63.5" */
ALU \counter[8]_DFF_Q_D_ALU_SUM (
.CIN(\counter[7]_DFF_Q_D_ALU_SUM_COUT ),
.COUT(\counter[8]_DFF_Q_D_ALU_SUM_COUT ),
.I0(\counter[1]_DFF_Q_D_ALU_SUM_I0 ),
.I1(\counter[8] ),
.I3(\counter[0]_DFF_Q_D_ALU_SUM_I0 ),
.SUM(\counter[8]_DFF_Q_D )
);
defparam \counter[8]_DFF_Q_D_ALU_SUM .ALU_MODE = 2;
/* keep = 1 */
OBUF led_OBUF_O (
.I(led_OBUF_O_I),
.O(led)
);
/* module_not_derived = 1 */
/* src = "/usr/bin/../share/yosys/gowin/cells_map.v:148.23-149.48" */
LUT4 led_OBUF_O_I_LUT4_F (
.F(led_OBUF_O_I),
.I0(\counter[0] ),
.I1(\counter[1] ),
.I2(led_OBUF_O_I_LUT4_F_I2[2]),
.I3(led_OBUF_O_I_LUT4_F_I2[3])
);
defparam led_OBUF_O_I_LUT4_F.INIT = 16'h1000;
assign led_OBUF_O_I_LUT4_F_I2[1:0] = { \counter[1] , \counter[0] };
endmodule
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment