//
// Written by Synplify Pro 
// Product Version "O-2018.09G-Beta1"
// Program "Synplify Pro", Mapper "mapgw, Build 1167R"
// Fri Sep 14 17:27:25 2018
//
// Source file index table:
// Object locations will have the form <file>:<line>
// file 0 "\c:\gowin\1.8\synplifypro\lib\generic\gw2a.v "
// file 1 "\c:\gowin\1.8\synplifypro\lib\vlog\hypermods.v "
// file 2 "\c:\gowin\1.8\synplifypro\lib\vlog\umr_capim.v "
// file 3 "\c:\gowin\1.8\synplifypro\lib\vlog\scemi_objects.v "
// file 4 "\c:\gowin\1.8\synplifypro\lib\vlog\scemi_pipes.svh "
// file 5 "\d:\user-bak\users\fdell\desktop\gowin_ram_based_shift_register_ip_refdesign\lossless_ex\project\src\top.v "
// file 6 "\d:\user-bak\users\fdell\desktop\gowin_ram_based_shift_register_ip_refdesign\lossless_ex\project\src\gw_pll\gw_pll.v "
// file 7 "\d:\user-bak\users\fdell\desktop\gowin_ram_based_shift_register_ip_refdesign\lossless_ex\project\src\gw_osc\gw_osc.v "
// file 8 "\d:\user-bak\users\fdell\desktop\gowin_ram_based_shift_register_ip_refdesign\lossless_ex\project\src\ram_based_shift_reg_top\ram_based_shift_reg_top.v "
// file 9 "\c:\gowin\1.8\synplifypro\lib\nlconst.dat "

`timescale 100 ps/100 ps
module GW_OSC (
  clk_osc
)
;
output clk_osc ;
wire clk_osc ;
wire GND ;
wire VCC ;
// @7:17
  OSC osc_inst (
	.OSCOUT(clk_osc)
);
defparam osc_inst.FREQ_DIV=10;
defparam osc_inst.DEVICE="GW2A-55";
  GND GND_cZ (
	.G(GND)
);
  VCC VCC_cZ (
	.V(VCC)
);
endmodule /* GW_OSC */

module GW_PLL (
  clk_osc,
  clk
)
;
input clk_osc ;
output clk ;
wire clk_osc ;
wire clk ;
wire clkoutp_o ;
wire clkoutd_o ;
wire clkoutd3_o ;
wire lock_o ;
wire GND ;
wire VCC ;
//@5:25
// @6:26
  PLL pll_inst (
	.CLKOUT(clk),
	.CLKOUTP(clkoutp_o),
	.CLKOUTD(clkoutd_o),
	.CLKOUTD3(clkoutd3_o),
	.LOCK(lock_o),
	.CLKIN(clk_osc),
	.CLKFB(GND),
	.FBDSEL({GND, GND, GND, GND, GND, GND}),
	.IDSEL({GND, GND, GND, GND, GND, GND}),
	.ODSEL({GND, GND, GND, GND, GND, GND}),
	.DUTYDA({GND, GND, GND, GND}),
	.PSDA({GND, GND, GND, GND}),
	.FDLY({GND, GND, GND, GND}),
	.RESET(GND),
	.RESET_P(GND),
	.RESET_I(GND),
	.RESET_S(GND)
);
defparam pll_inst.FCLKIN="25";
defparam pll_inst.DYN_IDIV_SEL="false";
defparam pll_inst.IDIV_SEL=4;
defparam pll_inst.DYN_FBDIV_SEL="false";
defparam pll_inst.FBDIV_SEL=35;
defparam pll_inst.DYN_ODIV_SEL="false";
defparam pll_inst.ODIV_SEL=4;
defparam pll_inst.PSDA_SEL="0000";
defparam pll_inst.DYN_DA_EN="true";
defparam pll_inst.DUTYDA_SEL="1000";
defparam pll_inst.CLKOUT_FT_DIR=1'b1;
defparam pll_inst.CLKOUTP_FT_DIR=1'b1;
defparam pll_inst.CLKOUT_DLY_STEP=0;
defparam pll_inst.CLKOUTP_DLY_STEP=0;
defparam pll_inst.CLKFB_SEL="internal";
defparam pll_inst.CLKOUT_BYPASS="false";
defparam pll_inst.CLKOUTP_BYPASS="false";
defparam pll_inst.CLKOUTD_BYPASS="false";
defparam pll_inst.DYN_SDIV_SEL=2;
defparam pll_inst.CLKOUTD_SRC="CLKOUT";
defparam pll_inst.CLKOUTD3_SRC="CLKOUT";
defparam pll_inst.DEVICE="GW2A-55";
  GND GND_cZ (
	.G(GND)
);
  VCC VCC_cZ (
	.V(VCC)
);
endmodule /* GW_PLL */

`pragma protect begin_protected
`pragma protect version=1
`pragma protect author="default"
`pragma protect author_info="default"
`pragma protect encrypt_agent="Synplify encryptP1735.pl"
`pragma protect encrypt_agent_info="Synplify encryptP1735.pl Version 1.1"

`pragma protect encoding=(enctype="base64", line_length=76, bytes=256)
`pragma protect key_keyowner="Synplicity"
`pragma protect key_keyname="SYNP05_001"
`pragma protect key_method="rsa"
`pragma protect key_block
e7kIgsY6LFQys7z4ACENn0MYW9XEfJqB5YiWJKSookQRXWTtH6DqKON+uoKc7oY8R+bL5i0WrJ2D
Pi+MyJ5ypGPr4N+A7aBsfH4RQka8KLeRnYZ9L5VAIO78Tn6D36N94yzjwUBn1nlVIMu3JhP20Dql
MxPIE2phCoAiv7fRwXoxPbt/0cKIKp3FpBgn6D+l60wVfAWlgXiAbCYhMQ7ufxXipQ9UAau3hR29
vjXcV0dFgWUkaaqZf3AbZ09J5xB7ZzH58VyZAaqYTaft2ba7Woc5ma0xNoJ57EY7XE50o8I4UvXh
nX0YmIhWd5+RiWQglzPkv1wKl/yQkUs3Hsl9ig==

`pragma protect encoding=(enctype="base64", line_length=76, bytes=256)
`pragma protect key_keyowner="GoWin"
`pragma protect key_keyname="GoWin2016"
`pragma protect key_method="rsa"
`pragma protect key_block
EoI70kz77QxfvYwkHewbgPbYqvH7rZu17eupFlPZvyIn/tuQXNuB4kCztOOcZ9A40m14eYNIr5b6
n5hsZR2bftLF2IUxGdMjOAXf9e15HtxyExmBeoirAk6nkFQvqVE4XuynNjnl9Wsu6Tge9EKTfsl+
fkXTkQImHpO+gt5n3+HZy+M7k+mAsIi8Boo0tNZph3x2UL/RWvzfzYPS0ABOSbXjlwrc3YE5iEYw
f7v4aSFGU5Sx88ZDQRHuQRiSscWZXpw2sfecUMMbg6RZ22TOC3jfBpCTpYrAaOnYHJW/rr2YdD8S
CIygNs7OrG/W3NBUWXN3ufgRsafxrLaaRW1PJA==

`pragma protect data_keyowner="default-ip-vendor"
`pragma protect data_keyname="default-ip-key"
`pragma protect data_method="aes128-cbc"
`pragma protect encoding=(enctype="base64", line_length=76, bytes=21424)
`pragma protect data_block
[encoded data, 28568 characters]
`pragma protect end_protected
module RAM_based_shift_reg_top (
  Q_c,
  ADDR,
  Din,
  ADDR_3,
  reset_c,
  clk
)
;
output [7:0] Q_c ;
input [8:1] ADDR ;
input [7:0] Din ;
input ADDR_3 ;
input reset_c ;
input clk ;
wire ADDR_3 ;
wire reset_c ;
wire clk ;
wire VCC ;
wire GND ;
// @8:1113
  \~RAM_based_shift_reg.RAM_based_shift_reg_top__  u_RAM_based_shift_reg (
	.clk(clk),
	.Reset(reset_c),
	.Din(Din[7:0]),
	.ADDR({ADDR[8:1], ADDR_3}),
	.Q(Q_c[7:0])
);
// @8:1109
  GSR GSR_INST (
	.GSRI(VCC)
);
  GND GND_cZ (
	.G(GND)
);
  VCC VCC_cZ (
	.V(VCC)
);
endmodule /* RAM_based_shift_reg_top */

module TOP (
  reset,
  Q
)
;

/*  Synopsys
.origName=TOP
.langParams="DSIZE ASIZE"
DSIZE=8
ASIZE=9
 */
input reset ;
output [7:0] Q ;
wire reset ;
wire [7:0] Din;
wire [8:1] ADDR;
wire [9:0] cnt;
wire [8:2] cnt_3;
wire [8:0] ADDR_3;
wire [7:0] Q_c;
wire [6:0] Din_cry;
wire [7:0] Din_s;
wire [7:7] Din_s_0_COUT;
wire clk_osc ;
wire clk ;
wire ADDR_3_scalar ;
wire VCC ;
wire GND ;
wire reset_c ;
wire un5_cnt_cry_0_0_SUM ;
wire un5_cnt_cry_1_0_SUM ;
wire un5_cnt_cry_2_0_SUM ;
wire un5_cnt_cry_3_0_SUM ;
wire un5_cnt_cry_4_0_SUM ;
wire un5_cnt_cry_5_0_SUM ;
wire un5_cnt_cry_6_0_SUM ;
wire un5_cnt_cry_7_0_SUM ;
wire un5_cnt_cry_8_0_SUM ;
wire un5_cnt_s_9_0_SUM ;
wire un5_cnt_cry_0 ;
wire un5_cnt_cry_1 ;
wire un5_cnt_cry_2 ;
wire un5_cnt_cry_3 ;
wire un5_cnt_cry_4 ;
wire un5_cnt_cry_5 ;
wire un5_cnt_cry_6 ;
wire un5_cnt_cry_7 ;
wire un5_cnt_cry_8 ;
wire ADDR_3_cry_0 ;
wire ADDR_3_cry_1 ;
wire ADDR_3_cry_2 ;
wire ADDR_3_cry_3 ;
wire ADDR_3_cry_4 ;
wire ADDR_3_cry_5 ;
wire ADDR_3_cry_6 ;
wire ADDR_3_cry_7 ;
wire cnt12_4 ;
wire cnt12_5 ;
wire cnt12_6 ;
wire ADDR_3_cry_0_0_RNO ;
wire ADDR_3_cry_1_0_RNO ;
wire ADDR_3_s_8_0_COUT ;
wire un5_cnt_s_9_0_COUT ;
// @5:40
  LUT4 \cnt_3_cZ[2]  (
	.I0(un5_cnt_cry_2_0_SUM),
	.I1(cnt12_4),
	.I2(cnt12_5),
	.I3(cnt12_6),
	.F(cnt_3[2])
);
defparam \cnt_3_cZ[2] .INIT=16'h2AAA;
// @5:40
  LUT4 \cnt_3_cZ[4]  (
	.I0(un5_cnt_cry_4_0_SUM),
	.I1(cnt12_4),
	.I2(cnt12_5),
	.I3(cnt12_6),
	.F(cnt_3[4])
);
defparam \cnt_3_cZ[4] .INIT=16'h2AAA;
// @5:40
  LUT4 \cnt_3_cZ[5]  (
	.I0(un5_cnt_cry_5_0_SUM),
	.I1(cnt12_4),
	.I2(cnt12_5),
	.I3(cnt12_6),
	.F(cnt_3[5])
);
defparam \cnt_3_cZ[5] .INIT=16'h2AAA;
// @5:40
  LUT4 \cnt_3_cZ[6]  (
	.I0(un5_cnt_cry_6_0_SUM),
	.I1(cnt12_4),
	.I2(cnt12_5),
	.I3(cnt12_6),
	.F(cnt_3[6])
);
defparam \cnt_3_cZ[6] .INIT=16'h2AAA;
// @5:40
  LUT4 \cnt_3_cZ[7]  (
	.I0(un5_cnt_cry_7_0_SUM),
	.I1(cnt12_4),
	.I2(cnt12_5),
	.I3(cnt12_6),
	.F(cnt_3[7])
);
defparam \cnt_3_cZ[7] .INIT=16'h2AAA;
// @5:40
  LUT4 \cnt_3_cZ[8]  (
	.I0(un5_cnt_cry_8_0_SUM),
	.I1(cnt12_4),
	.I2(cnt12_5),
	.I3(cnt12_6),
	.F(cnt_3[8])
);
defparam \cnt_3_cZ[8] .INIT=16'h2AAA;
// @5:45
  LUT4 cnt12_5_cZ (
	.I0(cnt[0]),
	.I1(cnt[1]),
	.I2(cnt[2]),
	.I3(cnt[3]),
	.F(cnt12_5)
);
defparam cnt12_5_cZ.INIT=16'h0008;
// @5:45
  LUT4 cnt12_6_cZ (
	.I0(cnt[4]),
	.I1(cnt[5]),
	.I2(cnt[6]),
	.I3(cnt[7]),
	.F(cnt12_6)
);
defparam cnt12_6_cZ.INIT=16'h8000;
// @5:45
  LUT2 cnt12_4_cZ (
	.I0(cnt[8]),
	.I1(cnt[9]),
	.F(cnt12_4)
);
defparam cnt12_4_cZ.INIT=4'h2;
  LUT3 ADDR_3_cry_0_0_RNO_cZ (
	.I0(cnt12_4),
	.I1(cnt12_5),
	.I2(cnt12_6),
	.F(ADDR_3_cry_0_0_RNO)
);
defparam ADDR_3_cry_0_0_RNO_cZ.INIT=8'h80;
  LUT3 ADDR_3_cry_1_0_RNO_cZ (
	.I0(cnt12_4),
	.I1(cnt12_5),
	.I2(cnt12_6),
	.F(ADDR_3_cry_1_0_RNO)
);
defparam ADDR_3_cry_1_0_RNO_cZ.INIT=8'h80;
// @5:30
  DFFC \Din_Z[7]  (
	.Q(Din[7]),
	.D(Din_s[7]),
	.CLK(clk),
	.CLEAR(reset_c)
);
// @5:30
  DFFC \Din_Z[6]  (
	.Q(Din[6]),
	.D(Din_s[6]),
	.CLK(clk),
	.CLEAR(reset_c)
);
// @5:30
  DFFC \Din_Z[5]  (
	.Q(Din[5]),
	.D(Din_s[5]),
	.CLK(clk),
	.CLEAR(reset_c)
);
// @5:30
  DFFC \Din_Z[4]  (
	.Q(Din[4]),
	.D(Din_s[4]),
	.CLK(clk),
	.CLEAR(reset_c)
);
// @5:30
  DFFC \Din_Z[3]  (
	.Q(Din[3]),
	.D(Din_s[3]),
	.CLK(clk),
	.CLEAR(reset_c)
);
// @5:30
  DFFC \Din_Z[2]  (
	.Q(Din[2]),
	.D(Din_s[2]),
	.CLK(clk),
	.CLEAR(reset_c)
);
// @5:30
  DFFC \Din_Z[1]  (
	.Q(Din[1]),
	.D(Din_s[1]),
	.CLK(clk),
	.CLEAR(reset_c)
);
// @5:30
  DFFC \Din_Z[0]  (
	.Q(Din[0]),
	.D(Din_s[0]),
	.CLK(clk),
	.CLEAR(reset_c)
);
// @5:38
  DFFC \ADDR[0]  (
	.Q(ADDR_3_scalar),
	.D(ADDR_3[0]),
	.CLK(clk),
	.CLEAR(reset_c)
);
// @5:38
  DFFC \cnt_Z[5]  (
	.Q(cnt[5]),
	.D(cnt_3[5]),
	.CLK(clk),
	.CLEAR(reset_c)
);
// @5:38
  DFFC \cnt_Z[4]  (
	.Q(cnt[4]),
	.D(cnt_3[4]),
	.CLK(clk),
	.CLEAR(reset_c)
);
// @5:38
  DFFC \cnt_Z[3]  (
	.Q(cnt[3]),
	.D(un5_cnt_cry_3_0_SUM),
	.CLK(clk),
	.CLEAR(reset_c)
);
// @5:38
  DFFC \cnt_Z[2]  (
	.Q(cnt[2]),
	.D(cnt_3[2]),
	.CLK(clk),
	.CLEAR(reset_c)
);
// @5:38
  DFFC \cnt_Z[1]  (
	.Q(cnt[1]),
	.D(un5_cnt_cry_1_0_SUM),
	.CLK(clk),
	.CLEAR(reset_c)
);
// @5:38
  DFFC \cnt_Z[0]  (
	.Q(cnt[0]),
	.D(un5_cnt_cry_0_0_SUM),
	.CLK(clk),
	.CLEAR(reset_c)
);
// @5:38
  DFFC \ADDR_Z[8]  (
	.Q(ADDR[8]),
	.D(ADDR_3[8]),
	.CLK(clk),
	.CLEAR(reset_c)
);
// @5:38
  DFFC \ADDR_Z[7]  (
	.Q(ADDR[7]),
	.D(ADDR_3[7]),
	.CLK(clk),
	.CLEAR(reset_c)
);
// @5:38
  DFFC \ADDR_Z[6]  (
	.Q(ADDR[6]),
	.D(ADDR_3[6]),
	.CLK(clk),
	.CLEAR(reset_c)
);
// @5:38
  DFFC \ADDR_Z[5]  (
	.Q(ADDR[5]),
	.D(ADDR_3[5]),
	.CLK(clk),
	.CLEAR(reset_c)
);
// @5:38
  DFFC \ADDR_Z[4]  (
	.Q(ADDR[4]),
	.D(ADDR_3[4]),
	.CLK(clk),
	.CLEAR(reset_c)
);
// @5:38
  DFFC \ADDR_Z[3]  (
	.Q(ADDR[3]),
	.D(ADDR_3[3]),
	.CLK(clk),
	.CLEAR(reset_c)
);
// @5:38
  DFFC \ADDR_Z[2]  (
	.Q(ADDR[2]),
	.D(ADDR_3[2]),
	.CLK(clk),
	.CLEAR(reset_c)
);
// @5:38
  DFFP \ADDR_Z[1]  (
	.Q(ADDR[1]),
	.D(ADDR_3[1]),
	.CLK(clk),
	.PRESET(reset_c)
);
// @5:38
  DFFC \cnt_Z[9]  (
	.Q(cnt[9]),
	.D(un5_cnt_s_9_0_SUM),
	.CLK(clk),
	.CLEAR(reset_c)
);
// @5:38
  DFFC \cnt_Z[8]  (
	.Q(cnt[8]),
	.D(cnt_3[8]),
	.CLK(clk),
	.CLEAR(reset_c)
);
// @5:38
  DFFC \cnt_Z[7]  (
	.Q(cnt[7]),
	.D(cnt_3[7]),
	.CLK(clk),
	.CLEAR(reset_c)
);
// @5:38
  DFFC \cnt_Z[6]  (
	.Q(cnt[6]),
	.D(cnt_3[6]),
	.CLK(clk),
	.CLEAR(reset_c)
);
// @5:10
  IBUF reset_ibuf (
	.O(reset_c),
	.I(reset)
);
// @5:17
  OBUF \Q_obuf[0]  (
	.O(Q[0]),
	.I(Q_c[0])
);
// @5:17
  OBUF \Q_obuf[1]  (
	.O(Q[1]),
	.I(Q_c[1])
);
// @5:17
  OBUF \Q_obuf[2]  (
	.O(Q[2]),
	.I(Q_c[2])
);
// @5:17
  OBUF \Q_obuf[3]  (
	.O(Q[3]),
	.I(Q_c[3])
);
// @5:17
  OBUF \Q_obuf[4]  (
	.O(Q[4]),
	.I(Q_c[4])
);
// @5:17
  OBUF \Q_obuf[5]  (
	.O(Q[5]),
	.I(Q_c[5])
);
// @5:17
  OBUF \Q_obuf[6]  (
	.O(Q[6]),
	.I(Q_c[6])
);
// @5:17
  OBUF \Q_obuf[7]  (
	.O(Q[7]),
	.I(Q_c[7])
);
// @5:51
  ALU un5_cnt_s_9_0 (
	.CIN(un5_cnt_cry_8),
	.I0(cnt[9]),
	.I1(GND),
	.I3(GND),
	.COUT(un5_cnt_s_9_0_COUT),
	.SUM(un5_cnt_s_9_0_SUM)
);
defparam un5_cnt_s_9_0.ALU_MODE=0;
// @5:51
  ALU un5_cnt_cry_8_0 (
	.CIN(un5_cnt_cry_7),
	.I0(cnt[8]),
	.I1(GND),
	.I3(GND),
	.COUT(un5_cnt_cry_8),
	.SUM(un5_cnt_cry_8_0_SUM)
);
defparam un5_cnt_cry_8_0.ALU_MODE=0;
// @5:51
  ALU un5_cnt_cry_7_0 (
	.CIN(un5_cnt_cry_6),
	.I0(cnt[7]),
	.I1(GND),
	.I3(GND),
	.COUT(un5_cnt_cry_7),
	.SUM(un5_cnt_cry_7_0_SUM)
);
defparam un5_cnt_cry_7_0.ALU_MODE=0;
// @5:51
  ALU un5_cnt_cry_6_0 (
	.CIN(un5_cnt_cry_5),
	.I0(cnt[6]),
	.I1(GND),
	.I3(GND),
	.COUT(un5_cnt_cry_6),
	.SUM(un5_cnt_cry_6_0_SUM)
);
defparam un5_cnt_cry_6_0.ALU_MODE=0;
// @5:51
  ALU un5_cnt_cry_5_0 (
	.CIN(un5_cnt_cry_4),
	.I0(cnt[5]),
	.I1(GND),
	.I3(GND),
	.COUT(un5_cnt_cry_5),
	.SUM(un5_cnt_cry_5_0_SUM)
);
defparam un5_cnt_cry_5_0.ALU_MODE=0;
// @5:51
  ALU un5_cnt_cry_4_0 (
	.CIN(un5_cnt_cry_3),
	.I0(cnt[4]),
	.I1(GND),
	.I3(GND),
	.COUT(un5_cnt_cry_4),
	.SUM(un5_cnt_cry_4_0_SUM)
);
defparam un5_cnt_cry_4_0.ALU_MODE=0;
// @5:51
  ALU un5_cnt_cry_3_0 (
	.CIN(un5_cnt_cry_2),
	.I0(cnt[3]),
	.I1(GND),
	.I3(GND),
	.COUT(un5_cnt_cry_3),
	.SUM(un5_cnt_cry_3_0_SUM)
);
defparam un5_cnt_cry_3_0.ALU_MODE=0;
// @5:51
  ALU un5_cnt_cry_2_0 (
	.CIN(un5_cnt_cry_1),
	.I0(cnt[2]),
	.I1(GND),
	.I3(GND),
	.COUT(un5_cnt_cry_2),
	.SUM(un5_cnt_cry_2_0_SUM)
);
defparam un5_cnt_cry_2_0.ALU_MODE=0;
// @5:51
  ALU un5_cnt_cry_1_0 (
	.CIN(un5_cnt_cry_0),
	.I0(cnt[1]),
	.I1(GND),
	.I3(GND),
	.COUT(un5_cnt_cry_1),
	.SUM(un5_cnt_cry_1_0_SUM)
);
defparam un5_cnt_cry_1_0.ALU_MODE=0;
// @5:51
  ALU un5_cnt_cry_0_0 (
	.CIN(VCC),
	.I0(cnt[0]),
	.I1(GND),
	.I3(GND),
	.COUT(un5_cnt_cry_0),
	.SUM(un5_cnt_cry_0_0_SUM)
);
defparam un5_cnt_cry_0_0.ALU_MODE=0;
// @5:40
  ALU ADDR_3_s_8_0 (
	.CIN(ADDR_3_cry_7),
	.I0(ADDR[8]),
	.I1(GND),
	.I3(GND),
	.COUT(ADDR_3_s_8_0_COUT),
	.SUM(ADDR_3[8])
);
defparam ADDR_3_s_8_0.ALU_MODE=0;
// @5:40
  ALU ADDR_3_cry_7_0 (
	.CIN(ADDR_3_cry_6),
	.I0(ADDR[7]),
	.I1(GND),
	.I3(GND),
	.COUT(ADDR_3_cry_7),
	.SUM(ADDR_3[7])
);
defparam ADDR_3_cry_7_0.ALU_MODE=0;
// @5:40
  ALU ADDR_3_cry_6_0 (
	.CIN(ADDR_3_cry_5),
	.I0(ADDR[6]),
	.I1(GND),
	.I3(GND),
	.COUT(ADDR_3_cry_6),
	.SUM(ADDR_3[6])
);
defparam ADDR_3_cry_6_0.ALU_MODE=0;
// @5:40
  ALU ADDR_3_cry_5_0 (
	.CIN(ADDR_3_cry_4),
	.I0(ADDR[5]),
	.I1(GND),
	.I3(GND),
	.COUT(ADDR_3_cry_5),
	.SUM(ADDR_3[5])
);
defparam ADDR_3_cry_5_0.ALU_MODE=0;
// @5:40
  ALU ADDR_3_cry_4_0 (
	.CIN(ADDR_3_cry_3),
	.I0(ADDR[4]),
	.I1(GND),
	.I3(GND),
	.COUT(ADDR_3_cry_4),
	.SUM(ADDR_3[4])
);
defparam ADDR_3_cry_4_0.ALU_MODE=0;
// @5:40
  ALU ADDR_3_cry_3_0 (
	.CIN(ADDR_3_cry_2),
	.I0(ADDR[3]),
	.I1(GND),
	.I3(GND),
	.COUT(ADDR_3_cry_3),
	.SUM(ADDR_3[3])
);
defparam ADDR_3_cry_3_0.ALU_MODE=0;
// @5:40
  ALU ADDR_3_cry_2_0 (
	.CIN(ADDR_3_cry_1),
	.I0(ADDR[2]),
	.I1(GND),
	.I3(GND),
	.COUT(ADDR_3_cry_2),
	.SUM(ADDR_3[2])
);
defparam ADDR_3_cry_2_0.ALU_MODE=0;
// @5:40
  ALU ADDR_3_cry_1_0 (
	.CIN(ADDR_3_cry_0),
	.I0(ADDR_3_cry_1_0_RNO),
	.I1(ADDR[1]),
	.I3(GND),
	.COUT(ADDR_3_cry_1),
	.SUM(ADDR_3[1])
);
defparam ADDR_3_cry_1_0.ALU_MODE=0;
// @5:40
  ALU ADDR_3_cry_0_0 (
	.CIN(GND),
	.I0(ADDR_3_cry_0_0_RNO),
	.I1(ADDR_3_scalar),
	.I3(GND),
	.COUT(ADDR_3_cry_0),
	.SUM(ADDR_3[0])
);
defparam ADDR_3_cry_0_0.ALU_MODE=0;
// @5:30
  ALU \Din_s_0[7]  (
	.CIN(Din_cry[6]),
	.I0(Din[7]),
	.I1(GND),
	.I3(GND),
	.COUT(Din_s_0_COUT[7]),
	.SUM(Din_s[7])
);
defparam \Din_s_0[7] .ALU_MODE=0;
// @5:30
  ALU \Din_cry_0[6]  (
	.CIN(Din_cry[5]),
	.I0(Din[6]),
	.I1(GND),
	.I3(GND),
	.COUT(Din_cry[6]),
	.SUM(Din_s[6])
);
defparam \Din_cry_0[6] .ALU_MODE=0;
// @5:30
  ALU \Din_cry_0[5]  (
	.CIN(Din_cry[4]),
	.I0(Din[5]),
	.I1(GND),
	.I3(GND),
	.COUT(Din_cry[5]),
	.SUM(Din_s[5])
);
defparam \Din_cry_0[5] .ALU_MODE=0;
// @5:30
  ALU \Din_cry_0[4]  (
	.CIN(Din_cry[3]),
	.I0(Din[4]),
	.I1(GND),
	.I3(GND),
	.COUT(Din_cry[4]),
	.SUM(Din_s[4])
);
defparam \Din_cry_0[4] .ALU_MODE=0;
// @5:30
  ALU \Din_cry_0[3]  (
	.CIN(Din_cry[2]),
	.I0(Din[3]),
	.I1(GND),
	.I3(GND),
	.COUT(Din_cry[3]),
	.SUM(Din_s[3])
);
defparam \Din_cry_0[3] .ALU_MODE=0;
// @5:30
  ALU \Din_cry_0[2]  (
	.CIN(Din_cry[1]),
	.I0(Din[2]),
	.I1(GND),
	.I3(GND),
	.COUT(Din_cry[2]),
	.SUM(Din_s[2])
);
defparam \Din_cry_0[2] .ALU_MODE=0;
// @5:30
  ALU \Din_cry_0[1]  (
	.CIN(Din_cry[0]),
	.I0(Din[1]),
	.I1(GND),
	.I3(GND),
	.COUT(Din_cry[1]),
	.SUM(Din_s[1])
);
defparam \Din_cry_0[1] .ALU_MODE=0;
// @5:30
  ALU \Din_cry_0[0]  (
	.CIN(VCC),
	.I0(Din[0]),
	.I1(GND),
	.I3(GND),
	.COUT(Din_cry[0]),
	.SUM(Din_s[0])
);
defparam \Din_cry_0[0] .ALU_MODE=0;
// @5:21
  GW_OSC osc_inst (
	.clk_osc(clk_osc)
);
// @5:25
  GW_PLL GW_PLL_inst (
	.clk_osc(clk_osc),
	.clk(clk)
);
// @5:54
  RAM_based_shift_reg_top u_RAM_based_shift_reg (
	.Q_c(Q_c[7:0]),
	.ADDR(ADDR[8:1]),
	.Din(Din[7:0]),
	.ADDR_3(ADDR_3_scalar),
	.reset_c(reset_c),
	.clk(clk)
);
  GND GND_cZ (
	.G(GND)
);
  VCC VCC_cZ (
	.V(VCC)
);
endmodule /* TOP */

