diff --git a/hsdaoh_nano9k_1bit_sdr/fifo_hs/fifo_hs.ipc b/hsdaoh_nano9k_1bit_sdr/fifo_hs/fifo_hs.ipc new file mode 100644 index 0000000..a65eb0c --- /dev/null +++ b/hsdaoh_nano9k_1bit_sdr/fifo_hs/fifo_hs.ipc @@ -0,0 +1,35 @@ +[General] +ipc_version=4 +file=fifo_hs +module=FIFO_HS_Top +target_device=gw1nr9c-004 +type=fifo_hs +version=1.0 + +[Config] +AlmostEmptyFlag=true +AlmostEmptyFlagItem=Empty_Single Threshold Constant Parameter +AlmostFullFlag=false +AlmostFullFlagItem=Full_Single Threshold Constant Parameter +BSRAM=true +ControlledByRdEn=false +ECCSelected=false +EmptyClear=1 +EmptySet=1 +EnReset=false +FirstWordFallThrough=false +FullClear=1 +FullSet=1 +LANG=0 +OutputRegistersSelected=false +REG=false +ReadDataNum=false +ReadDataWidth=16 +ReadDepth=8192 +ResetSynchronization=false +SSRAM=false +StandardFIFO=true +Synthesis_tool=GowinSynthesis +WriteDataNum=false +WriteDataWidth=16 +WriteDepth=8192 diff --git a/hsdaoh_nano9k_1bit_sdr/fifo_hs/fifo_hs.v b/hsdaoh_nano9k_1bit_sdr/fifo_hs/fifo_hs.v new file mode 100644 index 0000000..5a16676 --- /dev/null +++ b/hsdaoh_nano9k_1bit_sdr/fifo_hs/fifo_hs.v @@ -0,0 +1,811 @@ +// +//Written by GowinSynthesis +//Product Version "V1.9.9 Beta-4 Education" +//Tue Apr 30 01:00:04 2024 + +//Source file index table: +//file0 "\/home/miracle/Downloads/Gowin_V1.9.9Beta-4_Education/IDE/ipcore/FIFO_HS/data/fifo_hs.v" +//file1 "\/home/miracle/Downloads/Gowin_V1.9.9Beta-4_Education/IDE/ipcore/FIFO_HS/data/fifo_hs_top.v" +`pragma protect begin_protected +`pragma protect version="2.3" +`pragma protect author="default" +`pragma protect author_info="default" +`pragma protect encrypt_agent="GOWIN" +`pragma protect encrypt_agent_info="GOWIN Encrypt Version 2.3" + +`pragma protect encoding=(enctype="base64", line_length=76, bytes=256) +`pragma protect key_keyowner="GOWIN",key_keyname="GWK2023-09",key_method="rsa" +`pragma protect key_block +cFD6mgVY1usg3+48x9owyCEr+bdaJ29++StKKKabGFKo4aHUuJA3v9bgkwKAsDNUzhGfEEBDqjav +0sIOyrvvg5a9bc1Au6EWitkoSHP477PR2uwW3+Nqofiw9de9t4V3CZUOjGpf7i0h6U+2idzYnr2p +wu2lcZ1yLsYPtI3SZf+/8B8QTApNO+GKJhhUaKzqoxQmvycd8zu2mNnlTrgQynv+VcjDr7NuIgPy +CXYlOjz7YYND/4VvllKEqzYC+cOZF1/QLn/IBZWo88COe2r1HnWc4TvBUNA8Pmctj7AY/55YPKbX +CIE40q7O2knfx5yGqXnQsl1AJdeAMJs41TBAhQ== + +`pragma protect encoding=(enctype="base64", line_length=76, bytes=44512) +`pragma protect data_keyowner="default-ip-vendor" +`pragma protect data_keyname="default-ip-key" +`pragma protect data_method="aes128-cfb" +`pragma protect data_block +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 +`pragma protect end_protected diff --git a/hsdaoh_nano9k_1bit_sdr/fifo_hs/fifo_hs.vo b/hsdaoh_nano9k_1bit_sdr/fifo_hs/fifo_hs.vo new file mode 100644 index 0000000..e8c9018 --- /dev/null +++ b/hsdaoh_nano9k_1bit_sdr/fifo_hs/fifo_hs.vo @@ -0,0 +1,1967 @@ +//Copyright (C)2014-2023 Gowin Semiconductor Corporation. +//All rights reserved. +//File Title: Post-PnR Simulation Model file +//GOWIN Version: V1.9.9 Beta-4 Education +//Created Time: Tue Apr 30 01:00:04 2024 + +`timescale 100 ps/100 ps +module FIFO_HS_Top( + Data, + WrClk, + RdClk, + WrEn, + RdEn, + Almost_Empty, + Q, + Empty, + Full +); +input [15:0] Data; +input WrClk; +input RdClk; +input WrEn; +input RdEn; +output Almost_Empty; +output [15:0] Q; +output Empty; +output Full; +wire Almost_Empty; +wire [15:0] Data; +wire Empty; +wire Full; +wire GND; +wire [15:0] Q; +wire RdClk; +wire RdEn; +wire VCC; +wire WrClk; +wire WrEn; +wire \fifo_inst/n24_5 ; +wire \fifo_inst/n28_3 ; +wire \fifo_inst/n166_3 ; +wire \fifo_inst/wfull_val ; +wire \fifo_inst/n476_3 ; +wire \fifo_inst/Equal.rgraynext_3_4 ; +wire \fifo_inst/Equal.rgraynext_6_4 ; +wire \fifo_inst/Equal.rgraynext_8_4 ; +wire \fifo_inst/Equal.rgraynext_10_4 ; +wire \fifo_inst/Equal.rgraynext_11_4 ; +wire \fifo_inst/Equal.rgraynext_12_4 ; +wire \fifo_inst/Equal.wcount_r_6_4 ; +wire \fifo_inst/Equal.wcount_r_2_4 ; +wire \fifo_inst/Equal.wcount_r_1_4 ; +wire \fifo_inst/Equal.wgraynext_3_4 ; +wire \fifo_inst/Equal.wgraynext_6_4 ; +wire \fifo_inst/Equal.wgraynext_8_4 ; +wire \fifo_inst/Equal.wgraynext_9_4 ; +wire \fifo_inst/Equal.wgraynext_10_4 ; +wire \fifo_inst/Equal.wgraynext_11_4 ; +wire \fifo_inst/Equal.wgraynext_12_4 ; +wire \fifo_inst/wfull_val_4 ; +wire \fifo_inst/wfull_val_5 ; +wire \fifo_inst/wfull_val_6 ; +wire \fifo_inst/wfull_val_7 ; +wire \fifo_inst/n476_4 ; +wire \fifo_inst/rbin_num_next_2_8 ; +wire \fifo_inst/Equal.wbinnext_2_8 ; +wire \fifo_inst/Equal.rgraynext_6_5 ; +wire \fifo_inst/Equal.rgraynext_12_5 ; +wire \fifo_inst/Equal.wgraynext_6_5 ; +wire \fifo_inst/Equal.wgraynext_9_5 ; +wire \fifo_inst/Equal.wgraynext_10_5 ; +wire \fifo_inst/Equal.wgraynext_11_5 ; +wire \fifo_inst/Equal.wgraynext_12_5 ; +wire \fifo_inst/wfull_val_8 ; +wire \fifo_inst/wfull_val_9 ; +wire \fifo_inst/wfull_val_10 ; +wire \fifo_inst/wfull_val_11 ; +wire \fifo_inst/n476_5 ; +wire \fifo_inst/n476_6 ; +wire \fifo_inst/n476_7 ; +wire \fifo_inst/n473_61 ; +wire \fifo_inst/Equal.rgraynext_9_6 ; +wire \fifo_inst/Equal.wbinnext_0_9 ; +wire \fifo_inst/rbin_num_next_0_9 ; +wire \fifo_inst/rempty_val ; +wire \fifo_inst/rempty_val1 ; +wire \fifo_inst/wfull_val1 ; +wire \fifo_inst/Equal.rq1_wptr_0_5 ; +wire \fifo_inst/rcnt_sub_0_3 ; +wire \fifo_inst/rcnt_sub_1_3 ; +wire \fifo_inst/rcnt_sub_2_3 ; +wire \fifo_inst/rcnt_sub_3_3 ; +wire \fifo_inst/rcnt_sub_4_3 ; +wire \fifo_inst/rcnt_sub_5_3 ; +wire \fifo_inst/rcnt_sub_6_3 ; +wire \fifo_inst/rcnt_sub_7_3 ; +wire \fifo_inst/rcnt_sub_8_3 ; +wire \fifo_inst/rcnt_sub_9_3 ; +wire \fifo_inst/rcnt_sub_10_3 ; +wire \fifo_inst/rcnt_sub_11_3 ; +wire \fifo_inst/rcnt_sub_12_3 ; +wire \fifo_inst/rcnt_sub_13_0_COUT ; +wire \fifo_inst/n106_1_SUM ; +wire \fifo_inst/n106_3 ; +wire \fifo_inst/n107_1_SUM ; +wire \fifo_inst/n107_3 ; +wire \fifo_inst/n108_1_SUM ; +wire \fifo_inst/n108_3 ; +wire \fifo_inst/n109_1_SUM ; +wire \fifo_inst/n109_3 ; +wire \fifo_inst/n110_1_SUM ; +wire \fifo_inst/n110_3 ; +wire \fifo_inst/n111_1_SUM ; +wire \fifo_inst/n111_3 ; +wire \fifo_inst/n112_1_SUM ; +wire \fifo_inst/n112_3 ; +wire \fifo_inst/n113_1_SUM ; +wire \fifo_inst/n113_3 ; +wire \fifo_inst/n114_1_SUM ; +wire \fifo_inst/n114_3 ; +wire \fifo_inst/n115_1_SUM ; +wire \fifo_inst/n115_3 ; +wire \fifo_inst/n116_1_SUM ; +wire \fifo_inst/n116_3 ; +wire \fifo_inst/n117_1_SUM ; +wire \fifo_inst/n117_3 ; +wire \fifo_inst/n118_1_SUM ; +wire \fifo_inst/n118_3 ; +wire \fifo_inst/Equal.rq1_wptr_0_20 ; +wire [12:0] \fifo_inst/Equal.rgraynext ; +wire [12:0] \fifo_inst/Equal.wcount_r ; +wire [12:0] \fifo_inst/Equal.wgraynext ; +wire [13:1] \fifo_inst/rbin_num_next ; +wire [13:1] \fifo_inst/Equal.wbinnext ; +wire [12:0] \fifo_inst/rbin_num ; +wire [13:0] \fifo_inst/rptr ; +wire [13:0] \fifo_inst/wptr ; +wire [12:0] \fifo_inst/Equal.wbin ; +wire [13:0] \fifo_inst/Equal.wcount_r_d ; +wire [13:0] \fifo_inst/rcnt_sub_d ; +wire [13:0] \fifo_inst/Equal.rq2_wptr ; +wire [13:0] \fifo_inst/rcnt_sub ; +wire [31:2] \fifo_inst/DO ; +wire [31:2] \fifo_inst/DO_0 ; +wire [31:2] \fifo_inst/DO_1 ; +wire [31:2] \fifo_inst/DO_2 ; +wire [31:2] \fifo_inst/DO_3 ; +wire [31:2] \fifo_inst/DO_4 ; +wire [31:2] \fifo_inst/DO_5 ; +wire [31:2] \fifo_inst/DO_6 ; +wire [3:2] \fifo_inst/DO_7 ; +VCC VCC_cZ ( + .V(VCC) +); +GND GND_cZ ( + .G(GND) +); +GSR GSR ( + .GSRI(VCC) +); +LUT2 \fifo_inst/n24_s1 ( + .I0(Full), + .I1(WrEn), + .F(\fifo_inst/n24_5 ) +); +defparam \fifo_inst/n24_s1 .INIT=4'h4; +LUT2 \fifo_inst/n28_s0 ( + .I0(Empty), + .I1(RdEn), + .F(\fifo_inst/n28_3 ) +); +defparam \fifo_inst/n28_s0 .INIT=4'h4; +LUT3 \fifo_inst/Equal.rgraynext_3_s0 ( + .I0(\fifo_inst/rbin_num [4]), + .I1(\fifo_inst/rbin_num_next [3]), + .I2(\fifo_inst/Equal.rgraynext_3_4 ), + .F(\fifo_inst/Equal.rgraynext [3]) +); +defparam \fifo_inst/Equal.rgraynext_3_s0 .INIT=8'h96; +LUT3 \fifo_inst/Equal.rgraynext_4_s0 ( + .I0(\fifo_inst/rbin_num [4]), + .I1(\fifo_inst/Equal.rgraynext_3_4 ), + .I2(\fifo_inst/rbin_num [5]), + .F(\fifo_inst/Equal.rgraynext [4]) +); +defparam \fifo_inst/Equal.rgraynext_4_s0 .INIT=8'h1E; +LUT4 \fifo_inst/Equal.rgraynext_5_s0 ( + .I0(\fifo_inst/rbin_num [4]), + .I1(\fifo_inst/Equal.rgraynext_3_4 ), + .I2(\fifo_inst/rbin_num [5]), + .I3(\fifo_inst/rbin_num [6]), + .F(\fifo_inst/Equal.rgraynext [5]) +); +defparam \fifo_inst/Equal.rgraynext_5_s0 .INIT=16'h07F8; +LUT4 \fifo_inst/Equal.rgraynext_7_s0 ( + .I0(\fifo_inst/rbin_num [6]), + .I1(\fifo_inst/Equal.rgraynext_6_4 ), + .I2(\fifo_inst/rbin_num [7]), + .I3(\fifo_inst/rbin_num [8]), + .F(\fifo_inst/Equal.rgraynext [7]) +); +defparam \fifo_inst/Equal.rgraynext_7_s0 .INIT=16'h07F8; +LUT4 \fifo_inst/Equal.rgraynext_8_s0 ( + .I0(\fifo_inst/Equal.rgraynext_6_4 ), + .I1(\fifo_inst/Equal.rgraynext_8_4 ), + .I2(\fifo_inst/rbin_num [8]), + .I3(\fifo_inst/rbin_num [9]), + .F(\fifo_inst/Equal.rgraynext [8]) +); +defparam \fifo_inst/Equal.rgraynext_8_s0 .INIT=16'h07F8; +LUT4 \fifo_inst/Equal.rgraynext_9_s0 ( + .I0(\fifo_inst/Equal.rgraynext_6_4 ), + .I1(\fifo_inst/Equal.rgraynext_9_6 ), + .I2(\fifo_inst/rbin_num [9]), + .I3(\fifo_inst/rbin_num [10]), + .F(\fifo_inst/Equal.rgraynext [9]) +); +defparam \fifo_inst/Equal.rgraynext_9_s0 .INIT=16'h07F8; +LUT4 \fifo_inst/Equal.rgraynext_10_s0 ( + .I0(\fifo_inst/Equal.rgraynext_6_4 ), + .I1(\fifo_inst/Equal.rgraynext_10_4 ), + .I2(\fifo_inst/rbin_num [10]), + .I3(\fifo_inst/rbin_num [11]), + .F(\fifo_inst/Equal.rgraynext [10]) +); +defparam \fifo_inst/Equal.rgraynext_10_s0 .INIT=16'h07F8; +LUT4 \fifo_inst/Equal.rgraynext_11_s0 ( + .I0(\fifo_inst/Equal.rgraynext_6_4 ), + .I1(\fifo_inst/Equal.rgraynext_11_4 ), + .I2(\fifo_inst/rbin_num [11]), + .I3(\fifo_inst/rbin_num [12]), + .F(\fifo_inst/Equal.rgraynext [11]) +); +defparam \fifo_inst/Equal.rgraynext_11_s0 .INIT=16'h07F8; +LUT3 \fifo_inst/Equal.rgraynext_12_s0 ( + .I0(\fifo_inst/rbin_num [12]), + .I1(\fifo_inst/Equal.rgraynext_12_4 ), + .I2(\fifo_inst/rptr [13]), + .F(\fifo_inst/Equal.rgraynext [12]) +); +defparam \fifo_inst/Equal.rgraynext_12_s0 .INIT=8'h1E; +LUT2 \fifo_inst/Equal.wcount_r_12_s0 ( + .I0(\fifo_inst/Equal.rq2_wptr [13]), + .I1(\fifo_inst/Equal.rq2_wptr [12]), + .F(\fifo_inst/Equal.wcount_r [12]) +); +defparam \fifo_inst/Equal.wcount_r_12_s0 .INIT=4'h6; +LUT4 \fifo_inst/Equal.wcount_r_10_s0 ( + .I0(\fifo_inst/Equal.rq2_wptr [13]), + .I1(\fifo_inst/Equal.rq2_wptr [12]), + .I2(\fifo_inst/Equal.rq2_wptr [11]), + .I3(\fifo_inst/Equal.rq2_wptr [10]), + .F(\fifo_inst/Equal.wcount_r [10]) +); +defparam \fifo_inst/Equal.wcount_r_10_s0 .INIT=16'h6996; +LUT2 \fifo_inst/Equal.wcount_r_9_s0 ( + .I0(\fifo_inst/Equal.rq2_wptr [9]), + .I1(\fifo_inst/Equal.wcount_r [10]), + .F(\fifo_inst/Equal.wcount_r [9]) +); +defparam \fifo_inst/Equal.wcount_r_9_s0 .INIT=4'h6; +LUT2 \fifo_inst/Equal.wcount_r_6_s0 ( + .I0(\fifo_inst/Equal.wcount_r [10]), + .I1(\fifo_inst/Equal.wcount_r_6_4 ), + .F(\fifo_inst/Equal.wcount_r [6]) +); +defparam \fifo_inst/Equal.wcount_r_6_s0 .INIT=4'h6; +LUT3 \fifo_inst/Equal.wcount_r_5_s0 ( + .I0(\fifo_inst/Equal.rq2_wptr [5]), + .I1(\fifo_inst/Equal.wcount_r [10]), + .I2(\fifo_inst/Equal.wcount_r_6_4 ), + .F(\fifo_inst/Equal.wcount_r [5]) +); +defparam \fifo_inst/Equal.wcount_r_5_s0 .INIT=8'h96; +LUT3 \fifo_inst/Equal.wcount_r_3_s0 ( + .I0(\fifo_inst/Equal.rq2_wptr [4]), + .I1(\fifo_inst/Equal.rq2_wptr [3]), + .I2(\fifo_inst/Equal.wcount_r [5]), + .F(\fifo_inst/Equal.wcount_r [3]) +); +defparam \fifo_inst/Equal.wcount_r_3_s0 .INIT=8'h96; +LUT4 \fifo_inst/Equal.wcount_r_1_s0 ( + .I0(\fifo_inst/Equal.wcount_r [10]), + .I1(\fifo_inst/Equal.wcount_r_6_4 ), + .I2(\fifo_inst/Equal.wcount_r_2_4 ), + .I3(\fifo_inst/Equal.wcount_r_1_4 ), + .F(\fifo_inst/Equal.wcount_r [1]) +); +defparam \fifo_inst/Equal.wcount_r_1_s0 .INIT=16'h9669; +LUT2 \fifo_inst/Equal.wcount_r_0_s0 ( + .I0(\fifo_inst/Equal.rq2_wptr [0]), + .I1(\fifo_inst/Equal.wcount_r [1]), + .F(\fifo_inst/Equal.wcount_r [0]) +); +defparam \fifo_inst/Equal.wcount_r_0_s0 .INIT=4'h6; +LUT2 \fifo_inst/n166_s0 ( + .I0(\fifo_inst/rptr [13]), + .I1(\fifo_inst/Equal.wcount_r_d [13]), + .F(\fifo_inst/n166_3 ) +); +defparam \fifo_inst/n166_s0 .INIT=4'h6; +LUT3 \fifo_inst/Equal.wgraynext_3_s0 ( + .I0(\fifo_inst/Equal.wbin [4]), + .I1(\fifo_inst/Equal.wbinnext [3]), + .I2(\fifo_inst/Equal.wgraynext_3_4 ), + .F(\fifo_inst/Equal.wgraynext [3]) +); +defparam \fifo_inst/Equal.wgraynext_3_s0 .INIT=8'h96; +LUT3 \fifo_inst/Equal.wgraynext_4_s0 ( + .I0(\fifo_inst/Equal.wbin [4]), + .I1(\fifo_inst/Equal.wgraynext_3_4 ), + .I2(\fifo_inst/Equal.wbin [5]), + .F(\fifo_inst/Equal.wgraynext [4]) +); +defparam \fifo_inst/Equal.wgraynext_4_s0 .INIT=8'h1E; +LUT4 \fifo_inst/Equal.wgraynext_5_s0 ( + .I0(\fifo_inst/Equal.wbin [4]), + .I1(\fifo_inst/Equal.wgraynext_3_4 ), + .I2(\fifo_inst/Equal.wbin [5]), + .I3(\fifo_inst/Equal.wbin [6]), + .F(\fifo_inst/Equal.wgraynext [5]) +); +defparam \fifo_inst/Equal.wgraynext_5_s0 .INIT=16'h07F8; +LUT4 \fifo_inst/Equal.wgraynext_7_s0 ( + .I0(\fifo_inst/Equal.wbin [6]), + .I1(\fifo_inst/Equal.wgraynext_6_4 ), + .I2(\fifo_inst/Equal.wbin [7]), + .I3(\fifo_inst/Equal.wbin [8]), + .F(\fifo_inst/Equal.wgraynext [7]) +); +defparam \fifo_inst/Equal.wgraynext_7_s0 .INIT=16'h07F8; +LUT3 \fifo_inst/Equal.wgraynext_8_s0 ( + .I0(\fifo_inst/Equal.wbin [8]), + .I1(\fifo_inst/Equal.wgraynext_8_4 ), + .I2(\fifo_inst/Equal.wbin [9]), + .F(\fifo_inst/Equal.wgraynext [8]) +); +defparam \fifo_inst/Equal.wgraynext_8_s0 .INIT=8'h1E; +LUT3 \fifo_inst/Equal.wgraynext_9_s0 ( + .I0(\fifo_inst/Equal.wbin [9]), + .I1(\fifo_inst/Equal.wgraynext_9_4 ), + .I2(\fifo_inst/Equal.wbin [10]), + .F(\fifo_inst/Equal.wgraynext [9]) +); +defparam \fifo_inst/Equal.wgraynext_9_s0 .INIT=8'h1E; +LUT3 \fifo_inst/Equal.wgraynext_10_s0 ( + .I0(\fifo_inst/Equal.wbin [10]), + .I1(\fifo_inst/Equal.wgraynext_10_4 ), + .I2(\fifo_inst/Equal.wbin [11]), + .F(\fifo_inst/Equal.wgraynext [10]) +); +defparam \fifo_inst/Equal.wgraynext_10_s0 .INIT=8'h1E; +LUT3 \fifo_inst/Equal.wgraynext_11_s0 ( + .I0(\fifo_inst/Equal.wbin [11]), + .I1(\fifo_inst/Equal.wgraynext_11_4 ), + .I2(\fifo_inst/Equal.wbin [12]), + .F(\fifo_inst/Equal.wgraynext [11]) +); +defparam \fifo_inst/Equal.wgraynext_11_s0 .INIT=8'h1E; +LUT3 \fifo_inst/Equal.wgraynext_12_s0 ( + .I0(\fifo_inst/Equal.wbin [12]), + .I1(\fifo_inst/Equal.wgraynext_12_4 ), + .I2(\fifo_inst/wptr [13]), + .F(\fifo_inst/Equal.wgraynext [12]) +); +defparam \fifo_inst/Equal.wgraynext_12_s0 .INIT=8'h1E; +LUT4 \fifo_inst/wfull_val_s0 ( + .I0(\fifo_inst/wfull_val_4 ), + .I1(\fifo_inst/wfull_val_5 ), + .I2(\fifo_inst/wfull_val_6 ), + .I3(\fifo_inst/wfull_val_7 ), + .F(\fifo_inst/wfull_val ) +); +defparam \fifo_inst/wfull_val_s0 .INIT=16'h8000; +LUT4 \fifo_inst/n476_s0 ( + .I0(\fifo_inst/rcnt_sub_d [0]), + .I1(RdEn), + .I2(\fifo_inst/rcnt_sub_d [1]), + .I3(\fifo_inst/n476_4 ), + .F(\fifo_inst/n476_3 ) +); +defparam \fifo_inst/n476_s0 .INIT=16'h4000; +LUT2 \fifo_inst/rbin_num_next_2_s3 ( + .I0(\fifo_inst/rbin_num [2]), + .I1(\fifo_inst/rbin_num_next_2_8 ), + .F(\fifo_inst/rbin_num_next [2]) +); +defparam \fifo_inst/rbin_num_next_2_s3 .INIT=4'h6; +LUT3 \fifo_inst/rbin_num_next_3_s3 ( + .I0(\fifo_inst/rbin_num [2]), + .I1(\fifo_inst/rbin_num_next_2_8 ), + .I2(\fifo_inst/rbin_num [3]), + .F(\fifo_inst/rbin_num_next [3]) +); +defparam \fifo_inst/rbin_num_next_3_s3 .INIT=8'h78; +LUT3 \fifo_inst/rbin_num_next_5_s3 ( + .I0(\fifo_inst/rbin_num [4]), + .I1(\fifo_inst/Equal.rgraynext_3_4 ), + .I2(\fifo_inst/rbin_num [5]), + .F(\fifo_inst/rbin_num_next [5]) +); +defparam \fifo_inst/rbin_num_next_5_s3 .INIT=8'h78; +LUT2 \fifo_inst/rbin_num_next_12_s3 ( + .I0(\fifo_inst/rbin_num [12]), + .I1(\fifo_inst/Equal.rgraynext_12_4 ), + .F(\fifo_inst/rbin_num_next [12]) +); +defparam \fifo_inst/rbin_num_next_12_s3 .INIT=4'h6; +LUT3 \fifo_inst/rbin_num_next_13_s2 ( + .I0(\fifo_inst/rbin_num [12]), + .I1(\fifo_inst/Equal.rgraynext_12_4 ), + .I2(\fifo_inst/rptr [13]), + .F(\fifo_inst/rbin_num_next [13]) +); +defparam \fifo_inst/rbin_num_next_13_s2 .INIT=8'h78; +LUT2 \fifo_inst/Equal.wbinnext_2_s3 ( + .I0(\fifo_inst/Equal.wbin [2]), + .I1(\fifo_inst/Equal.wbinnext_2_8 ), + .F(\fifo_inst/Equal.wbinnext [2]) +); +defparam \fifo_inst/Equal.wbinnext_2_s3 .INIT=4'h6; +LUT3 \fifo_inst/Equal.wbinnext_3_s3 ( + .I0(\fifo_inst/Equal.wbin [2]), + .I1(\fifo_inst/Equal.wbinnext_2_8 ), + .I2(\fifo_inst/Equal.wbin [3]), + .F(\fifo_inst/Equal.wbinnext [3]) +); +defparam \fifo_inst/Equal.wbinnext_3_s3 .INIT=8'h78; +LUT3 \fifo_inst/Equal.wbinnext_5_s3 ( + .I0(\fifo_inst/Equal.wbin [4]), + .I1(\fifo_inst/Equal.wgraynext_3_4 ), + .I2(\fifo_inst/Equal.wbin [5]), + .F(\fifo_inst/Equal.wbinnext [5]) +); +defparam \fifo_inst/Equal.wbinnext_5_s3 .INIT=8'h78; +LUT2 \fifo_inst/Equal.wbinnext_8_s3 ( + .I0(\fifo_inst/Equal.wbin [8]), + .I1(\fifo_inst/Equal.wgraynext_8_4 ), + .F(\fifo_inst/Equal.wbinnext [8]) +); +defparam \fifo_inst/Equal.wbinnext_8_s3 .INIT=4'h6; +LUT2 \fifo_inst/Equal.wbinnext_9_s3 ( + .I0(\fifo_inst/Equal.wbin [9]), + .I1(\fifo_inst/Equal.wgraynext_9_4 ), + .F(\fifo_inst/Equal.wbinnext [9]) +); +defparam \fifo_inst/Equal.wbinnext_9_s3 .INIT=4'h6; +LUT2 \fifo_inst/Equal.wbinnext_11_s3 ( + .I0(\fifo_inst/Equal.wbin [11]), + .I1(\fifo_inst/Equal.wgraynext_11_4 ), + .F(\fifo_inst/Equal.wbinnext [11]) +); +defparam \fifo_inst/Equal.wbinnext_11_s3 .INIT=4'h6; +LUT2 \fifo_inst/Equal.wbinnext_12_s3 ( + .I0(\fifo_inst/Equal.wbin [12]), + .I1(\fifo_inst/Equal.wgraynext_12_4 ), + .F(\fifo_inst/Equal.wbinnext [12]) +); +defparam \fifo_inst/Equal.wbinnext_12_s3 .INIT=4'h6; +LUT3 \fifo_inst/Equal.wbinnext_13_s2 ( + .I0(\fifo_inst/Equal.wbin [12]), + .I1(\fifo_inst/Equal.wgraynext_12_4 ), + .I2(\fifo_inst/wptr [13]), + .F(\fifo_inst/Equal.wbinnext [13]) +); +defparam \fifo_inst/Equal.wbinnext_13_s2 .INIT=8'h78; +LUT3 \fifo_inst/Equal.rgraynext_3_s1 ( + .I0(\fifo_inst/rbin_num [2]), + .I1(\fifo_inst/rbin_num [3]), + .I2(\fifo_inst/rbin_num_next_2_8 ), + .F(\fifo_inst/Equal.rgraynext_3_4 ) +); +defparam \fifo_inst/Equal.rgraynext_3_s1 .INIT=8'h80; +LUT2 \fifo_inst/Equal.rgraynext_6_s1 ( + .I0(\fifo_inst/rbin_num_next_2_8 ), + .I1(\fifo_inst/Equal.rgraynext_6_5 ), + .F(\fifo_inst/Equal.rgraynext_6_4 ) +); +defparam \fifo_inst/Equal.rgraynext_6_s1 .INIT=4'h8; +LUT2 \fifo_inst/Equal.rgraynext_8_s1 ( + .I0(\fifo_inst/rbin_num [6]), + .I1(\fifo_inst/rbin_num [7]), + .F(\fifo_inst/Equal.rgraynext_8_4 ) +); +defparam \fifo_inst/Equal.rgraynext_8_s1 .INIT=4'h8; +LUT4 \fifo_inst/Equal.rgraynext_10_s1 ( + .I0(\fifo_inst/rbin_num [6]), + .I1(\fifo_inst/rbin_num [7]), + .I2(\fifo_inst/rbin_num [8]), + .I3(\fifo_inst/rbin_num [9]), + .F(\fifo_inst/Equal.rgraynext_10_4 ) +); +defparam \fifo_inst/Equal.rgraynext_10_s1 .INIT=16'h8000; +LUT2 \fifo_inst/Equal.rgraynext_11_s1 ( + .I0(\fifo_inst/rbin_num [10]), + .I1(\fifo_inst/Equal.rgraynext_10_4 ), + .F(\fifo_inst/Equal.rgraynext_11_4 ) +); +defparam \fifo_inst/Equal.rgraynext_11_s1 .INIT=4'h8; +LUT4 \fifo_inst/Equal.rgraynext_12_s1 ( + .I0(\fifo_inst/rbin_num_next_2_8 ), + .I1(\fifo_inst/Equal.rgraynext_6_5 ), + .I2(\fifo_inst/Equal.rgraynext_10_4 ), + .I3(\fifo_inst/Equal.rgraynext_12_5 ), + .F(\fifo_inst/Equal.rgraynext_12_4 ) +); +defparam \fifo_inst/Equal.rgraynext_12_s1 .INIT=16'h8000; +LUT4 \fifo_inst/Equal.wcount_r_6_s1 ( + .I0(\fifo_inst/Equal.rq2_wptr [9]), + .I1(\fifo_inst/Equal.rq2_wptr [8]), + .I2(\fifo_inst/Equal.rq2_wptr [7]), + .I3(\fifo_inst/Equal.rq2_wptr [6]), + .F(\fifo_inst/Equal.wcount_r_6_4 ) +); +defparam \fifo_inst/Equal.wcount_r_6_s1 .INIT=16'h6996; +LUT3 \fifo_inst/Equal.wcount_r_2_s1 ( + .I0(\fifo_inst/Equal.rq2_wptr [4]), + .I1(\fifo_inst/Equal.rq2_wptr [3]), + .I2(\fifo_inst/Equal.rq2_wptr [2]), + .F(\fifo_inst/Equal.wcount_r_2_4 ) +); +defparam \fifo_inst/Equal.wcount_r_2_s1 .INIT=8'h69; +LUT2 \fifo_inst/Equal.wcount_r_1_s1 ( + .I0(\fifo_inst/Equal.rq2_wptr [5]), + .I1(\fifo_inst/Equal.rq2_wptr [1]), + .F(\fifo_inst/Equal.wcount_r_1_4 ) +); +defparam \fifo_inst/Equal.wcount_r_1_s1 .INIT=4'h6; +LUT3 \fifo_inst/Equal.wgraynext_3_s1 ( + .I0(\fifo_inst/Equal.wbin [2]), + .I1(\fifo_inst/Equal.wbin [3]), + .I2(\fifo_inst/Equal.wbinnext_2_8 ), + .F(\fifo_inst/Equal.wgraynext_3_4 ) +); +defparam \fifo_inst/Equal.wgraynext_3_s1 .INIT=8'h80; +LUT2 \fifo_inst/Equal.wgraynext_6_s1 ( + .I0(\fifo_inst/Equal.wbinnext_2_8 ), + .I1(\fifo_inst/Equal.wgraynext_6_5 ), + .F(\fifo_inst/Equal.wgraynext_6_4 ) +); +defparam \fifo_inst/Equal.wgraynext_6_s1 .INIT=4'h8; +LUT4 \fifo_inst/Equal.wgraynext_8_s1 ( + .I0(\fifo_inst/Equal.wbin [6]), + .I1(\fifo_inst/Equal.wbin [7]), + .I2(\fifo_inst/Equal.wbinnext_2_8 ), + .I3(\fifo_inst/Equal.wgraynext_6_5 ), + .F(\fifo_inst/Equal.wgraynext_8_4 ) +); +defparam \fifo_inst/Equal.wgraynext_8_s1 .INIT=16'h8000; +LUT4 \fifo_inst/Equal.wgraynext_9_s1 ( + .I0(\fifo_inst/Equal.wbin [6]), + .I1(\fifo_inst/Equal.wbinnext_2_8 ), + .I2(\fifo_inst/Equal.wgraynext_6_5 ), + .I3(\fifo_inst/Equal.wgraynext_9_5 ), + .F(\fifo_inst/Equal.wgraynext_9_4 ) +); +defparam \fifo_inst/Equal.wgraynext_9_s1 .INIT=16'h8000; +LUT3 \fifo_inst/Equal.wgraynext_10_s1 ( + .I0(\fifo_inst/Equal.wbinnext_2_8 ), + .I1(\fifo_inst/Equal.wgraynext_6_5 ), + .I2(\fifo_inst/Equal.wgraynext_10_5 ), + .F(\fifo_inst/Equal.wgraynext_10_4 ) +); +defparam \fifo_inst/Equal.wgraynext_10_s1 .INIT=8'h80; +LUT4 \fifo_inst/Equal.wgraynext_11_s1 ( + .I0(\fifo_inst/Equal.wbin [6]), + .I1(\fifo_inst/Equal.wbinnext_2_8 ), + .I2(\fifo_inst/Equal.wgraynext_6_5 ), + .I3(\fifo_inst/Equal.wgraynext_11_5 ), + .F(\fifo_inst/Equal.wgraynext_11_4 ) +); +defparam \fifo_inst/Equal.wgraynext_11_s1 .INIT=16'h8000; +LUT4 \fifo_inst/Equal.wgraynext_12_s1 ( + .I0(\fifo_inst/Equal.wbinnext_2_8 ), + .I1(\fifo_inst/Equal.wgraynext_6_5 ), + .I2(\fifo_inst/Equal.wgraynext_11_5 ), + .I3(\fifo_inst/Equal.wgraynext_12_5 ), + .F(\fifo_inst/Equal.wgraynext_12_4 ) +); +defparam \fifo_inst/Equal.wgraynext_12_s1 .INIT=16'h8000; +LUT4 \fifo_inst/wfull_val_s1 ( + .I0(\fifo_inst/wptr [1]), + .I1(\fifo_inst/rptr [1]), + .I2(\fifo_inst/wptr [7]), + .I3(\fifo_inst/rptr [7]), + .F(\fifo_inst/wfull_val_4 ) +); +defparam \fifo_inst/wfull_val_s1 .INIT=16'h9009; +LUT4 \fifo_inst/wfull_val_s2 ( + .I0(\fifo_inst/wptr [5]), + .I1(\fifo_inst/rptr [5]), + .I2(\fifo_inst/wptr [12]), + .I3(\fifo_inst/rptr [12]), + .F(\fifo_inst/wfull_val_5 ) +); +defparam \fifo_inst/wfull_val_s2 .INIT=16'h0990; +LUT4 \fifo_inst/wfull_val_s3 ( + .I0(\fifo_inst/wptr [0]), + .I1(\fifo_inst/rptr [0]), + .I2(\fifo_inst/wptr [8]), + .I3(\fifo_inst/rptr [8]), + .F(\fifo_inst/wfull_val_6 ) +); +defparam \fifo_inst/wfull_val_s3 .INIT=16'h9009; +LUT4 \fifo_inst/wfull_val_s4 ( + .I0(\fifo_inst/wfull_val_8 ), + .I1(\fifo_inst/wfull_val_9 ), + .I2(\fifo_inst/wfull_val_10 ), + .I3(\fifo_inst/wfull_val_11 ), + .F(\fifo_inst/wfull_val_7 ) +); +defparam \fifo_inst/wfull_val_s4 .INIT=16'h8000; +LUT3 \fifo_inst/n476_s1 ( + .I0(\fifo_inst/n476_5 ), + .I1(\fifo_inst/n476_6 ), + .I2(\fifo_inst/n476_7 ), + .F(\fifo_inst/n476_4 ) +); +defparam \fifo_inst/n476_s1 .INIT=8'h80; +LUT4 \fifo_inst/rbin_num_next_2_s4 ( + .I0(Empty), + .I1(RdEn), + .I2(\fifo_inst/rbin_num [0]), + .I3(\fifo_inst/rbin_num [1]), + .F(\fifo_inst/rbin_num_next_2_8 ) +); +defparam \fifo_inst/rbin_num_next_2_s4 .INIT=16'h4000; +LUT4 \fifo_inst/Equal.wbinnext_2_s4 ( + .I0(Full), + .I1(WrEn), + .I2(\fifo_inst/Equal.wbin [0]), + .I3(\fifo_inst/Equal.wbin [1]), + .F(\fifo_inst/Equal.wbinnext_2_8 ) +); +defparam \fifo_inst/Equal.wbinnext_2_s4 .INIT=16'h4000; +LUT4 \fifo_inst/Equal.rgraynext_6_s2 ( + .I0(\fifo_inst/rbin_num [2]), + .I1(\fifo_inst/rbin_num [3]), + .I2(\fifo_inst/rbin_num [4]), + .I3(\fifo_inst/rbin_num [5]), + .F(\fifo_inst/Equal.rgraynext_6_5 ) +); +defparam \fifo_inst/Equal.rgraynext_6_s2 .INIT=16'h8000; +LUT2 \fifo_inst/Equal.rgraynext_12_s2 ( + .I0(\fifo_inst/rbin_num [10]), + .I1(\fifo_inst/rbin_num [11]), + .F(\fifo_inst/Equal.rgraynext_12_5 ) +); +defparam \fifo_inst/Equal.rgraynext_12_s2 .INIT=4'h8; +LUT4 \fifo_inst/Equal.wgraynext_6_s2 ( + .I0(\fifo_inst/Equal.wbin [2]), + .I1(\fifo_inst/Equal.wbin [3]), + .I2(\fifo_inst/Equal.wbin [4]), + .I3(\fifo_inst/Equal.wbin [5]), + .F(\fifo_inst/Equal.wgraynext_6_5 ) +); +defparam \fifo_inst/Equal.wgraynext_6_s2 .INIT=16'h8000; +LUT2 \fifo_inst/Equal.wgraynext_9_s2 ( + .I0(\fifo_inst/Equal.wbin [7]), + .I1(\fifo_inst/Equal.wbin [8]), + .F(\fifo_inst/Equal.wgraynext_9_5 ) +); +defparam \fifo_inst/Equal.wgraynext_9_s2 .INIT=4'h8; +LUT4 \fifo_inst/Equal.wgraynext_10_s2 ( + .I0(\fifo_inst/Equal.wbin [6]), + .I1(\fifo_inst/Equal.wbin [7]), + .I2(\fifo_inst/Equal.wbin [8]), + .I3(\fifo_inst/Equal.wbin [9]), + .F(\fifo_inst/Equal.wgraynext_10_5 ) +); +defparam \fifo_inst/Equal.wgraynext_10_s2 .INIT=16'h8000; +LUT4 \fifo_inst/Equal.wgraynext_11_s2 ( + .I0(\fifo_inst/Equal.wbin [7]), + .I1(\fifo_inst/Equal.wbin [8]), + .I2(\fifo_inst/Equal.wbin [9]), + .I3(\fifo_inst/Equal.wbin [10]), + .F(\fifo_inst/Equal.wgraynext_11_5 ) +); +defparam \fifo_inst/Equal.wgraynext_11_s2 .INIT=16'h8000; +LUT2 \fifo_inst/Equal.wgraynext_12_s2 ( + .I0(\fifo_inst/Equal.wbin [6]), + .I1(\fifo_inst/Equal.wbin [11]), + .F(\fifo_inst/Equal.wgraynext_12_5 ) +); +defparam \fifo_inst/Equal.wgraynext_12_s2 .INIT=4'h8; +LUT4 \fifo_inst/wfull_val_s5 ( + .I0(\fifo_inst/wptr [3]), + .I1(\fifo_inst/rptr [3]), + .I2(\fifo_inst/wptr [6]), + .I3(\fifo_inst/rptr [6]), + .F(\fifo_inst/wfull_val_8 ) +); +defparam \fifo_inst/wfull_val_s5 .INIT=16'h9009; +LUT4 \fifo_inst/wfull_val_s6 ( + .I0(\fifo_inst/wptr [2]), + .I1(\fifo_inst/rptr [2]), + .I2(\fifo_inst/wptr [13]), + .I3(\fifo_inst/rptr [13]), + .F(\fifo_inst/wfull_val_9 ) +); +defparam \fifo_inst/wfull_val_s6 .INIT=16'h0990; +LUT4 \fifo_inst/wfull_val_s7 ( + .I0(\fifo_inst/wptr [9]), + .I1(\fifo_inst/rptr [9]), + .I2(\fifo_inst/wptr [10]), + .I3(\fifo_inst/rptr [10]), + .F(\fifo_inst/wfull_val_10 ) +); +defparam \fifo_inst/wfull_val_s7 .INIT=16'h9009; +LUT4 \fifo_inst/wfull_val_s8 ( + .I0(\fifo_inst/wptr [4]), + .I1(\fifo_inst/rptr [4]), + .I2(\fifo_inst/wptr [11]), + .I3(\fifo_inst/rptr [11]), + .F(\fifo_inst/wfull_val_11 ) +); +defparam \fifo_inst/wfull_val_s8 .INIT=16'h9009; +LUT4 \fifo_inst/n476_s2 ( + .I0(\fifo_inst/rcnt_sub_d [10]), + .I1(\fifo_inst/rcnt_sub_d [11]), + .I2(\fifo_inst/rcnt_sub_d [12]), + .I3(\fifo_inst/rcnt_sub_d [13]), + .F(\fifo_inst/n476_5 ) +); +defparam \fifo_inst/n476_s2 .INIT=16'h0001; +LUT4 \fifo_inst/n476_s3 ( + .I0(\fifo_inst/rcnt_sub_d [6]), + .I1(\fifo_inst/rcnt_sub_d [7]), + .I2(\fifo_inst/rcnt_sub_d [8]), + .I3(\fifo_inst/rcnt_sub_d [9]), + .F(\fifo_inst/n476_6 ) +); +defparam \fifo_inst/n476_s3 .INIT=16'h0001; +LUT4 \fifo_inst/n476_s4 ( + .I0(\fifo_inst/rcnt_sub_d [2]), + .I1(\fifo_inst/rcnt_sub_d [3]), + .I2(\fifo_inst/rcnt_sub_d [4]), + .I3(\fifo_inst/rcnt_sub_d [5]), + .F(\fifo_inst/n476_7 ) +); +defparam \fifo_inst/n476_s4 .INIT=16'h0001; +LUT4 \fifo_inst/rbin_num_next_11_s4 ( + .I0(\fifo_inst/Equal.rgraynext_6_4 ), + .I1(\fifo_inst/rbin_num [10]), + .I2(\fifo_inst/Equal.rgraynext_10_4 ), + .I3(\fifo_inst/rbin_num [11]), + .F(\fifo_inst/rbin_num_next [11]) +); +defparam \fifo_inst/rbin_num_next_11_s4 .INIT=16'h7F80; +LUT3 \fifo_inst/Equal.wcount_r_11_s1 ( + .I0(\fifo_inst/Equal.rq2_wptr [11]), + .I1(\fifo_inst/Equal.rq2_wptr [13]), + .I2(\fifo_inst/Equal.rq2_wptr [12]), + .F(\fifo_inst/Equal.wcount_r [11]) +); +defparam \fifo_inst/Equal.wcount_r_11_s1 .INIT=8'h96; +LUT4 \fifo_inst/Equal.wcount_r_2_s2 ( + .I0(\fifo_inst/Equal.wcount_r [5]), + .I1(\fifo_inst/Equal.rq2_wptr [4]), + .I2(\fifo_inst/Equal.rq2_wptr [3]), + .I3(\fifo_inst/Equal.rq2_wptr [2]), + .F(\fifo_inst/Equal.wcount_r [2]) +); +defparam \fifo_inst/Equal.wcount_r_2_s2 .INIT=16'h6996; +LUT4 \fifo_inst/Equal.wbinnext_10_s4 ( + .I0(\fifo_inst/Equal.wbin [10]), + .I1(\fifo_inst/Equal.wbinnext_2_8 ), + .I2(\fifo_inst/Equal.wgraynext_6_5 ), + .I3(\fifo_inst/Equal.wgraynext_10_5 ), + .F(\fifo_inst/Equal.wbinnext [10]) +); +defparam \fifo_inst/Equal.wbinnext_10_s4 .INIT=16'h6AAA; +LUT4 \fifo_inst/n473_s43 ( + .I0(\fifo_inst/rcnt_sub_d [1]), + .I1(\fifo_inst/n476_5 ), + .I2(\fifo_inst/n476_6 ), + .I3(\fifo_inst/n476_7 ), + .F(\fifo_inst/n473_61 ) +); +defparam \fifo_inst/n473_s43 .INIT=16'h4000; +LUT3 \fifo_inst/Equal.rgraynext_9_s2 ( + .I0(\fifo_inst/rbin_num [8]), + .I1(\fifo_inst/rbin_num [6]), + .I2(\fifo_inst/rbin_num [7]), + .F(\fifo_inst/Equal.rgraynext_9_6 ) +); +defparam \fifo_inst/Equal.rgraynext_9_s2 .INIT=8'h80; +LUT4 \fifo_inst/rbin_num_next_8_s4 ( + .I0(\fifo_inst/Equal.rgraynext_6_4 ), + .I1(\fifo_inst/rbin_num [6]), + .I2(\fifo_inst/rbin_num [7]), + .I3(\fifo_inst/rbin_num [8]), + .F(\fifo_inst/rbin_num_next [8]) +); +defparam \fifo_inst/rbin_num_next_8_s4 .INIT=16'h7F80; +LUT3 \fifo_inst/Equal.wgraynext_2_s1 ( + .I0(\fifo_inst/Equal.wbin [2]), + .I1(\fifo_inst/Equal.wbinnext_2_8 ), + .I2(\fifo_inst/Equal.wbinnext [3]), + .F(\fifo_inst/Equal.wgraynext [2]) +); +defparam \fifo_inst/Equal.wgraynext_2_s1 .INIT=8'h96; +LUT3 \fifo_inst/Equal.wgraynext_1_s1 ( + .I0(\fifo_inst/Equal.wbinnext [1]), + .I1(\fifo_inst/Equal.wbin [2]), + .I2(\fifo_inst/Equal.wbinnext_2_8 ), + .F(\fifo_inst/Equal.wgraynext [1]) +); +defparam \fifo_inst/Equal.wgraynext_1_s1 .INIT=8'h96; +LUT4 \fifo_inst/Equal.wcount_r_7_s1 ( + .I0(\fifo_inst/Equal.rq2_wptr [8]), + .I1(\fifo_inst/Equal.rq2_wptr [7]), + .I2(\fifo_inst/Equal.rq2_wptr [9]), + .I3(\fifo_inst/Equal.wcount_r [10]), + .F(\fifo_inst/Equal.wcount_r [7]) +); +defparam \fifo_inst/Equal.wcount_r_7_s1 .INIT=16'h6996; +LUT3 \fifo_inst/Equal.wcount_r_8_s1 ( + .I0(\fifo_inst/Equal.rq2_wptr [8]), + .I1(\fifo_inst/Equal.rq2_wptr [9]), + .I2(\fifo_inst/Equal.wcount_r [10]), + .F(\fifo_inst/Equal.wcount_r [8]) +); +defparam \fifo_inst/Equal.wcount_r_8_s1 .INIT=8'h96; +LUT3 \fifo_inst/Equal.rgraynext_2_s1 ( + .I0(\fifo_inst/rbin_num [2]), + .I1(\fifo_inst/rbin_num_next_2_8 ), + .I2(\fifo_inst/rbin_num_next [3]), + .F(\fifo_inst/Equal.rgraynext [2]) +); +defparam \fifo_inst/Equal.rgraynext_2_s1 .INIT=8'h96; +LUT3 \fifo_inst/Equal.rgraynext_1_s1 ( + .I0(\fifo_inst/rbin_num_next [1]), + .I1(\fifo_inst/rbin_num [2]), + .I2(\fifo_inst/rbin_num_next_2_8 ), + .F(\fifo_inst/Equal.rgraynext [1]) +); +defparam \fifo_inst/Equal.rgraynext_1_s1 .INIT=8'h96; +LUT4 \fifo_inst/Equal.wcount_r_4_s1 ( + .I0(\fifo_inst/Equal.rq2_wptr [4]), + .I1(\fifo_inst/Equal.rq2_wptr [5]), + .I2(\fifo_inst/Equal.wcount_r [10]), + .I3(\fifo_inst/Equal.wcount_r_6_4 ), + .F(\fifo_inst/Equal.wcount_r [4]) +); +defparam \fifo_inst/Equal.wcount_r_4_s1 .INIT=16'h6996; +LUT4 \fifo_inst/Equal.wbinnext_7_s4 ( + .I0(\fifo_inst/Equal.wbin [6]), + .I1(\fifo_inst/Equal.wbinnext_2_8 ), + .I2(\fifo_inst/Equal.wgraynext_6_5 ), + .I3(\fifo_inst/Equal.wbin [7]), + .F(\fifo_inst/Equal.wbinnext [7]) +); +defparam \fifo_inst/Equal.wbinnext_7_s4 .INIT=16'h7F80; +LUT3 \fifo_inst/Equal.wbinnext_6_s4 ( + .I0(\fifo_inst/Equal.wbin [6]), + .I1(\fifo_inst/Equal.wbinnext_2_8 ), + .I2(\fifo_inst/Equal.wgraynext_6_5 ), + .F(\fifo_inst/Equal.wbinnext [6]) +); +defparam \fifo_inst/Equal.wbinnext_6_s4 .INIT=8'h6A; +LUT4 \fifo_inst/Equal.wgraynext_6_s3 ( + .I0(\fifo_inst/Equal.wbin [6]), + .I1(\fifo_inst/Equal.wbinnext_2_8 ), + .I2(\fifo_inst/Equal.wgraynext_6_5 ), + .I3(\fifo_inst/Equal.wbin [7]), + .F(\fifo_inst/Equal.wgraynext [6]) +); +defparam \fifo_inst/Equal.wgraynext_6_s3 .INIT=16'h15EA; +LUT4 \fifo_inst/rbin_num_next_4_s4 ( + .I0(\fifo_inst/rbin_num [4]), + .I1(\fifo_inst/rbin_num [2]), + .I2(\fifo_inst/rbin_num [3]), + .I3(\fifo_inst/rbin_num_next_2_8 ), + .F(\fifo_inst/rbin_num_next [4]) +); +defparam \fifo_inst/rbin_num_next_4_s4 .INIT=16'h6AAA; +LUT4 \fifo_inst/Equal.wbinnext_4_s4 ( + .I0(\fifo_inst/Equal.wbin [4]), + .I1(\fifo_inst/Equal.wbin [2]), + .I2(\fifo_inst/Equal.wbin [3]), + .I3(\fifo_inst/Equal.wbinnext_2_8 ), + .F(\fifo_inst/Equal.wbinnext [4]) +); +defparam \fifo_inst/Equal.wbinnext_4_s4 .INIT=16'h6AAA; +LUT4 \fifo_inst/Equal.wbinnext_1_s4 ( + .I0(\fifo_inst/Equal.wbin [0]), + .I1(Full), + .I2(WrEn), + .I3(\fifo_inst/Equal.wbin [1]), + .F(\fifo_inst/Equal.wbinnext [1]) +); +defparam \fifo_inst/Equal.wbinnext_1_s4 .INIT=16'hDF20; +LUT3 \fifo_inst/Equal.wbinnext_0_s4 ( + .I0(\fifo_inst/Equal.wbin [0]), + .I1(Full), + .I2(WrEn), + .F(\fifo_inst/Equal.wbinnext_0_9 ) +); +defparam \fifo_inst/Equal.wbinnext_0_s4 .INIT=8'h9A; +LUT4 \fifo_inst/rbin_num_next_1_s4 ( + .I0(\fifo_inst/rbin_num [0]), + .I1(Empty), + .I2(RdEn), + .I3(\fifo_inst/rbin_num [1]), + .F(\fifo_inst/rbin_num_next [1]) +); +defparam \fifo_inst/rbin_num_next_1_s4 .INIT=16'hDF20; +LUT3 \fifo_inst/rbin_num_next_0_s4 ( + .I0(\fifo_inst/rbin_num [0]), + .I1(Empty), + .I2(RdEn), + .F(\fifo_inst/rbin_num_next_0_9 ) +); +defparam \fifo_inst/rbin_num_next_0_s4 .INIT=8'h9A; +LUT4 \fifo_inst/rbin_num_next_10_s4 ( + .I0(\fifo_inst/rbin_num_next_2_8 ), + .I1(\fifo_inst/Equal.rgraynext_6_5 ), + .I2(\fifo_inst/Equal.rgraynext_10_4 ), + .I3(\fifo_inst/rbin_num [10]), + .F(\fifo_inst/rbin_num_next [10]) +); +defparam \fifo_inst/rbin_num_next_10_s4 .INIT=16'h7F80; +LUT4 \fifo_inst/rbin_num_next_9_s4 ( + .I0(\fifo_inst/rbin_num_next_2_8 ), + .I1(\fifo_inst/Equal.rgraynext_6_5 ), + .I2(\fifo_inst/Equal.rgraynext_9_6 ), + .I3(\fifo_inst/rbin_num [9]), + .F(\fifo_inst/rbin_num_next [9]) +); +defparam \fifo_inst/rbin_num_next_9_s4 .INIT=16'h7F80; +LUT4 \fifo_inst/rbin_num_next_7_s4 ( + .I0(\fifo_inst/rbin_num [6]), + .I1(\fifo_inst/rbin_num_next_2_8 ), + .I2(\fifo_inst/Equal.rgraynext_6_5 ), + .I3(\fifo_inst/rbin_num [7]), + .F(\fifo_inst/rbin_num_next [7]) +); +defparam \fifo_inst/rbin_num_next_7_s4 .INIT=16'h7F80; +LUT3 \fifo_inst/rbin_num_next_6_s4 ( + .I0(\fifo_inst/rbin_num [6]), + .I1(\fifo_inst/rbin_num_next_2_8 ), + .I2(\fifo_inst/Equal.rgraynext_6_5 ), + .F(\fifo_inst/rbin_num_next [6]) +); +defparam \fifo_inst/rbin_num_next_6_s4 .INIT=8'h6A; +LUT4 \fifo_inst/Equal.rgraynext_6_s3 ( + .I0(\fifo_inst/rbin_num [6]), + .I1(\fifo_inst/rbin_num_next_2_8 ), + .I2(\fifo_inst/Equal.rgraynext_6_5 ), + .I3(\fifo_inst/rbin_num [7]), + .F(\fifo_inst/Equal.rgraynext [6]) +); +defparam \fifo_inst/Equal.rgraynext_6_s3 .INIT=16'h15EA; +LUT3 \fifo_inst/rempty_val_s2 ( + .I0(\fifo_inst/wptr [13]), + .I1(\fifo_inst/rptr [13]), + .I2(\fifo_inst/n118_3 ), + .F(\fifo_inst/rempty_val ) +); +defparam \fifo_inst/rempty_val_s2 .INIT=8'h09; +LUT4 \fifo_inst/Equal.wgraynext_0_s1 ( + .I0(\fifo_inst/Equal.wbinnext [1]), + .I1(\fifo_inst/Equal.wbin [0]), + .I2(Full), + .I3(WrEn), + .F(\fifo_inst/Equal.wgraynext [0]) +); +defparam \fifo_inst/Equal.wgraynext_0_s1 .INIT=16'h6966; +LUT4 \fifo_inst/Equal.rgraynext_0_s1 ( + .I0(\fifo_inst/rbin_num_next [1]), + .I1(\fifo_inst/rbin_num [0]), + .I2(Empty), + .I3(RdEn), + .F(\fifo_inst/Equal.rgraynext [0]) +); +defparam \fifo_inst/Equal.rgraynext_0_s1 .INIT=16'h6966; +DFF \fifo_inst/rbin_num_12_s0 ( + .D(\fifo_inst/rbin_num_next [12]), + .CLK(RdClk), + .Q(\fifo_inst/rbin_num [12]) +); +defparam \fifo_inst/rbin_num_12_s0 .INIT=1'b0; +DFF \fifo_inst/rbin_num_11_s0 ( + .D(\fifo_inst/rbin_num_next [11]), + .CLK(RdClk), + .Q(\fifo_inst/rbin_num [11]) +); +defparam \fifo_inst/rbin_num_11_s0 .INIT=1'b0; +DFF \fifo_inst/rbin_num_10_s0 ( + .D(\fifo_inst/rbin_num_next [10]), + .CLK(RdClk), + .Q(\fifo_inst/rbin_num [10]) +); +defparam \fifo_inst/rbin_num_10_s0 .INIT=1'b0; +DFF \fifo_inst/rbin_num_9_s0 ( + .D(\fifo_inst/rbin_num_next [9]), + .CLK(RdClk), + .Q(\fifo_inst/rbin_num [9]) +); +defparam \fifo_inst/rbin_num_9_s0 .INIT=1'b0; +DFF \fifo_inst/rbin_num_8_s0 ( + .D(\fifo_inst/rbin_num_next [8]), + .CLK(RdClk), + .Q(\fifo_inst/rbin_num [8]) +); +defparam \fifo_inst/rbin_num_8_s0 .INIT=1'b0; +DFF \fifo_inst/rbin_num_7_s0 ( + .D(\fifo_inst/rbin_num_next [7]), + .CLK(RdClk), + .Q(\fifo_inst/rbin_num [7]) +); +defparam \fifo_inst/rbin_num_7_s0 .INIT=1'b0; +DFF \fifo_inst/rbin_num_6_s0 ( + .D(\fifo_inst/rbin_num_next [6]), + .CLK(RdClk), + .Q(\fifo_inst/rbin_num [6]) +); +defparam \fifo_inst/rbin_num_6_s0 .INIT=1'b0; +DFF \fifo_inst/rbin_num_5_s0 ( + .D(\fifo_inst/rbin_num_next [5]), + .CLK(RdClk), + .Q(\fifo_inst/rbin_num [5]) +); +defparam \fifo_inst/rbin_num_5_s0 .INIT=1'b0; +DFF \fifo_inst/rbin_num_4_s0 ( + .D(\fifo_inst/rbin_num_next [4]), + .CLK(RdClk), + .Q(\fifo_inst/rbin_num [4]) +); +defparam \fifo_inst/rbin_num_4_s0 .INIT=1'b0; +DFF \fifo_inst/rbin_num_3_s0 ( + .D(\fifo_inst/rbin_num_next [3]), + .CLK(RdClk), + .Q(\fifo_inst/rbin_num [3]) +); +defparam \fifo_inst/rbin_num_3_s0 .INIT=1'b0; +DFF \fifo_inst/rbin_num_2_s0 ( + .D(\fifo_inst/rbin_num_next [2]), + .CLK(RdClk), + .Q(\fifo_inst/rbin_num [2]) +); +defparam \fifo_inst/rbin_num_2_s0 .INIT=1'b0; +DFF \fifo_inst/rbin_num_1_s0 ( + .D(\fifo_inst/rbin_num_next [1]), + .CLK(RdClk), + .Q(\fifo_inst/rbin_num [1]) +); +defparam \fifo_inst/rbin_num_1_s0 .INIT=1'b0; +DFF \fifo_inst/rbin_num_0_s0 ( + .D(\fifo_inst/rbin_num_next_0_9 ), + .CLK(RdClk), + .Q(\fifo_inst/rbin_num [0]) +); +defparam \fifo_inst/rbin_num_0_s0 .INIT=1'b0; +DFF \fifo_inst/rptr_13_s0 ( + .D(\fifo_inst/rbin_num_next [13]), + .CLK(RdClk), + .Q(\fifo_inst/rptr [13]) +); +defparam \fifo_inst/rptr_13_s0 .INIT=1'b0; +DFF \fifo_inst/rptr_12_s0 ( + .D(\fifo_inst/Equal.rgraynext [12]), + .CLK(RdClk), + .Q(\fifo_inst/rptr [12]) +); +defparam \fifo_inst/rptr_12_s0 .INIT=1'b0; +DFF \fifo_inst/rptr_11_s0 ( + .D(\fifo_inst/Equal.rgraynext [11]), + .CLK(RdClk), + .Q(\fifo_inst/rptr [11]) +); +defparam \fifo_inst/rptr_11_s0 .INIT=1'b0; +DFF \fifo_inst/rptr_10_s0 ( + .D(\fifo_inst/Equal.rgraynext [10]), + .CLK(RdClk), + .Q(\fifo_inst/rptr [10]) +); +defparam \fifo_inst/rptr_10_s0 .INIT=1'b0; +DFF \fifo_inst/rptr_9_s0 ( + .D(\fifo_inst/Equal.rgraynext [9]), + .CLK(RdClk), + .Q(\fifo_inst/rptr [9]) +); +defparam \fifo_inst/rptr_9_s0 .INIT=1'b0; +DFF \fifo_inst/rptr_8_s0 ( + .D(\fifo_inst/Equal.rgraynext [8]), + .CLK(RdClk), + .Q(\fifo_inst/rptr [8]) +); +defparam \fifo_inst/rptr_8_s0 .INIT=1'b0; +DFF \fifo_inst/rptr_7_s0 ( + .D(\fifo_inst/Equal.rgraynext [7]), + .CLK(RdClk), + .Q(\fifo_inst/rptr [7]) +); +defparam \fifo_inst/rptr_7_s0 .INIT=1'b0; +DFF \fifo_inst/rptr_6_s0 ( + .D(\fifo_inst/Equal.rgraynext [6]), + .CLK(RdClk), + .Q(\fifo_inst/rptr [6]) +); +defparam \fifo_inst/rptr_6_s0 .INIT=1'b0; +DFF \fifo_inst/rptr_5_s0 ( + .D(\fifo_inst/Equal.rgraynext [5]), + .CLK(RdClk), + .Q(\fifo_inst/rptr [5]) +); +defparam \fifo_inst/rptr_5_s0 .INIT=1'b0; +DFF \fifo_inst/rptr_4_s0 ( + .D(\fifo_inst/Equal.rgraynext [4]), + .CLK(RdClk), + .Q(\fifo_inst/rptr [4]) +); +defparam \fifo_inst/rptr_4_s0 .INIT=1'b0; +DFF \fifo_inst/rptr_3_s0 ( + .D(\fifo_inst/Equal.rgraynext [3]), + .CLK(RdClk), + .Q(\fifo_inst/rptr [3]) +); +defparam \fifo_inst/rptr_3_s0 .INIT=1'b0; +DFF \fifo_inst/rptr_2_s0 ( + .D(\fifo_inst/Equal.rgraynext [2]), + .CLK(RdClk), + .Q(\fifo_inst/rptr [2]) +); +defparam \fifo_inst/rptr_2_s0 .INIT=1'b0; +DFF \fifo_inst/rptr_1_s0 ( + .D(\fifo_inst/Equal.rgraynext [1]), + .CLK(RdClk), + .Q(\fifo_inst/rptr [1]) +); +defparam \fifo_inst/rptr_1_s0 .INIT=1'b0; +DFF \fifo_inst/rptr_0_s0 ( + .D(\fifo_inst/Equal.rgraynext [0]), + .CLK(RdClk), + .Q(\fifo_inst/rptr [0]) +); +defparam \fifo_inst/rptr_0_s0 .INIT=1'b0; +DFF \fifo_inst/wptr_13_s0 ( + .D(\fifo_inst/Equal.wbinnext [13]), + .CLK(WrClk), + .Q(\fifo_inst/wptr [13]) +); +defparam \fifo_inst/wptr_13_s0 .INIT=1'b0; +DFF \fifo_inst/wptr_12_s0 ( + .D(\fifo_inst/Equal.wgraynext [12]), + .CLK(WrClk), + .Q(\fifo_inst/wptr [12]) +); +defparam \fifo_inst/wptr_12_s0 .INIT=1'b0; +DFF \fifo_inst/wptr_11_s0 ( + .D(\fifo_inst/Equal.wgraynext [11]), + .CLK(WrClk), + .Q(\fifo_inst/wptr [11]) +); +defparam \fifo_inst/wptr_11_s0 .INIT=1'b0; +DFF \fifo_inst/wptr_10_s0 ( + .D(\fifo_inst/Equal.wgraynext [10]), + .CLK(WrClk), + .Q(\fifo_inst/wptr [10]) +); +defparam \fifo_inst/wptr_10_s0 .INIT=1'b0; +DFF \fifo_inst/wptr_9_s0 ( + .D(\fifo_inst/Equal.wgraynext [9]), + .CLK(WrClk), + .Q(\fifo_inst/wptr [9]) +); +defparam \fifo_inst/wptr_9_s0 .INIT=1'b0; +DFF \fifo_inst/wptr_8_s0 ( + .D(\fifo_inst/Equal.wgraynext [8]), + .CLK(WrClk), + .Q(\fifo_inst/wptr [8]) +); +defparam \fifo_inst/wptr_8_s0 .INIT=1'b0; +DFF \fifo_inst/wptr_7_s0 ( + .D(\fifo_inst/Equal.wgraynext [7]), + .CLK(WrClk), + .Q(\fifo_inst/wptr [7]) +); +defparam \fifo_inst/wptr_7_s0 .INIT=1'b0; +DFF \fifo_inst/wptr_6_s0 ( + .D(\fifo_inst/Equal.wgraynext [6]), + .CLK(WrClk), + .Q(\fifo_inst/wptr [6]) +); +defparam \fifo_inst/wptr_6_s0 .INIT=1'b0; +DFF \fifo_inst/wptr_5_s0 ( + .D(\fifo_inst/Equal.wgraynext [5]), + .CLK(WrClk), + .Q(\fifo_inst/wptr [5]) +); +defparam \fifo_inst/wptr_5_s0 .INIT=1'b0; +DFF \fifo_inst/wptr_4_s0 ( + .D(\fifo_inst/Equal.wgraynext [4]), + .CLK(WrClk), + .Q(\fifo_inst/wptr [4]) +); +defparam \fifo_inst/wptr_4_s0 .INIT=1'b0; +DFF \fifo_inst/wptr_3_s0 ( + .D(\fifo_inst/Equal.wgraynext [3]), + .CLK(WrClk), + .Q(\fifo_inst/wptr [3]) +); +defparam \fifo_inst/wptr_3_s0 .INIT=1'b0; +DFF \fifo_inst/wptr_2_s0 ( + .D(\fifo_inst/Equal.wgraynext [2]), + .CLK(WrClk), + .Q(\fifo_inst/wptr [2]) +); +defparam \fifo_inst/wptr_2_s0 .INIT=1'b0; +DFF \fifo_inst/wptr_1_s0 ( + .D(\fifo_inst/Equal.wgraynext [1]), + .CLK(WrClk), + .Q(\fifo_inst/wptr [1]) +); +defparam \fifo_inst/wptr_1_s0 .INIT=1'b0; +DFF \fifo_inst/wptr_0_s0 ( + .D(\fifo_inst/Equal.wgraynext [0]), + .CLK(WrClk), + .Q(\fifo_inst/wptr [0]) +); +defparam \fifo_inst/wptr_0_s0 .INIT=1'b0; +DFF \fifo_inst/Equal.wbin_12_s0 ( + .D(\fifo_inst/Equal.wbinnext [12]), + .CLK(WrClk), + .Q(\fifo_inst/Equal.wbin [12]) +); +defparam \fifo_inst/Equal.wbin_12_s0 .INIT=1'b0; +DFF \fifo_inst/Equal.wbin_11_s0 ( + .D(\fifo_inst/Equal.wbinnext [11]), + .CLK(WrClk), + .Q(\fifo_inst/Equal.wbin [11]) +); +defparam \fifo_inst/Equal.wbin_11_s0 .INIT=1'b0; +DFF \fifo_inst/Equal.wbin_10_s0 ( + .D(\fifo_inst/Equal.wbinnext [10]), + .CLK(WrClk), + .Q(\fifo_inst/Equal.wbin [10]) +); +defparam \fifo_inst/Equal.wbin_10_s0 .INIT=1'b0; +DFF \fifo_inst/Equal.wbin_9_s0 ( + .D(\fifo_inst/Equal.wbinnext [9]), + .CLK(WrClk), + .Q(\fifo_inst/Equal.wbin [9]) +); +defparam \fifo_inst/Equal.wbin_9_s0 .INIT=1'b0; +DFF \fifo_inst/Equal.wbin_8_s0 ( + .D(\fifo_inst/Equal.wbinnext [8]), + .CLK(WrClk), + .Q(\fifo_inst/Equal.wbin [8]) +); +defparam \fifo_inst/Equal.wbin_8_s0 .INIT=1'b0; +DFF \fifo_inst/Equal.wbin_7_s0 ( + .D(\fifo_inst/Equal.wbinnext [7]), + .CLK(WrClk), + .Q(\fifo_inst/Equal.wbin [7]) +); +defparam \fifo_inst/Equal.wbin_7_s0 .INIT=1'b0; +DFF \fifo_inst/Equal.wbin_6_s0 ( + .D(\fifo_inst/Equal.wbinnext [6]), + .CLK(WrClk), + .Q(\fifo_inst/Equal.wbin [6]) +); +defparam \fifo_inst/Equal.wbin_6_s0 .INIT=1'b0; +DFF \fifo_inst/Equal.wbin_5_s0 ( + .D(\fifo_inst/Equal.wbinnext [5]), + .CLK(WrClk), + .Q(\fifo_inst/Equal.wbin [5]) +); +defparam \fifo_inst/Equal.wbin_5_s0 .INIT=1'b0; +DFF \fifo_inst/Equal.wbin_4_s0 ( + .D(\fifo_inst/Equal.wbinnext [4]), + .CLK(WrClk), + .Q(\fifo_inst/Equal.wbin [4]) +); +defparam \fifo_inst/Equal.wbin_4_s0 .INIT=1'b0; +DFF \fifo_inst/Equal.wbin_3_s0 ( + .D(\fifo_inst/Equal.wbinnext [3]), + .CLK(WrClk), + .Q(\fifo_inst/Equal.wbin [3]) +); +defparam \fifo_inst/Equal.wbin_3_s0 .INIT=1'b0; +DFF \fifo_inst/Equal.wbin_2_s0 ( + .D(\fifo_inst/Equal.wbinnext [2]), + .CLK(WrClk), + .Q(\fifo_inst/Equal.wbin [2]) +); +defparam \fifo_inst/Equal.wbin_2_s0 .INIT=1'b0; +DFF \fifo_inst/Equal.wbin_1_s0 ( + .D(\fifo_inst/Equal.wbinnext [1]), + .CLK(WrClk), + .Q(\fifo_inst/Equal.wbin [1]) +); +defparam \fifo_inst/Equal.wbin_1_s0 .INIT=1'b0; +DFF \fifo_inst/Equal.wbin_0_s0 ( + .D(\fifo_inst/Equal.wbinnext_0_9 ), + .CLK(WrClk), + .Q(\fifo_inst/Equal.wbin [0]) +); +defparam \fifo_inst/Equal.wbin_0_s0 .INIT=1'b0; +DFF \fifo_inst/Equal.wcount_r_d_13_s0 ( + .D(\fifo_inst/Equal.rq2_wptr [13]), + .CLK(RdClk), + .Q(\fifo_inst/Equal.wcount_r_d [13]) +); +defparam \fifo_inst/Equal.wcount_r_d_13_s0 .INIT=1'b0; +DFF \fifo_inst/Equal.wcount_r_d_12_s0 ( + .D(\fifo_inst/Equal.wcount_r [12]), + .CLK(RdClk), + .Q(\fifo_inst/Equal.wcount_r_d [12]) +); +defparam \fifo_inst/Equal.wcount_r_d_12_s0 .INIT=1'b0; +DFF \fifo_inst/Equal.wcount_r_d_11_s0 ( + .D(\fifo_inst/Equal.wcount_r [11]), + .CLK(RdClk), + .Q(\fifo_inst/Equal.wcount_r_d [11]) +); +defparam \fifo_inst/Equal.wcount_r_d_11_s0 .INIT=1'b0; +DFF \fifo_inst/Equal.wcount_r_d_10_s0 ( + .D(\fifo_inst/Equal.wcount_r [10]), + .CLK(RdClk), + .Q(\fifo_inst/Equal.wcount_r_d [10]) +); +defparam \fifo_inst/Equal.wcount_r_d_10_s0 .INIT=1'b0; +DFF \fifo_inst/Equal.wcount_r_d_9_s0 ( + .D(\fifo_inst/Equal.wcount_r [9]), + .CLK(RdClk), + .Q(\fifo_inst/Equal.wcount_r_d [9]) +); +defparam \fifo_inst/Equal.wcount_r_d_9_s0 .INIT=1'b0; +DFF \fifo_inst/Equal.wcount_r_d_8_s0 ( + .D(\fifo_inst/Equal.wcount_r [8]), + .CLK(RdClk), + .Q(\fifo_inst/Equal.wcount_r_d [8]) +); +defparam \fifo_inst/Equal.wcount_r_d_8_s0 .INIT=1'b0; +DFF \fifo_inst/Equal.wcount_r_d_7_s0 ( + .D(\fifo_inst/Equal.wcount_r [7]), + .CLK(RdClk), + .Q(\fifo_inst/Equal.wcount_r_d [7]) +); +defparam \fifo_inst/Equal.wcount_r_d_7_s0 .INIT=1'b0; +DFF \fifo_inst/Equal.wcount_r_d_6_s0 ( + .D(\fifo_inst/Equal.wcount_r [6]), + .CLK(RdClk), + .Q(\fifo_inst/Equal.wcount_r_d [6]) +); +defparam \fifo_inst/Equal.wcount_r_d_6_s0 .INIT=1'b0; +DFF \fifo_inst/Equal.wcount_r_d_5_s0 ( + .D(\fifo_inst/Equal.wcount_r [5]), + .CLK(RdClk), + .Q(\fifo_inst/Equal.wcount_r_d [5]) +); +defparam \fifo_inst/Equal.wcount_r_d_5_s0 .INIT=1'b0; +DFF \fifo_inst/Equal.wcount_r_d_4_s0 ( + .D(\fifo_inst/Equal.wcount_r [4]), + .CLK(RdClk), + .Q(\fifo_inst/Equal.wcount_r_d [4]) +); +defparam \fifo_inst/Equal.wcount_r_d_4_s0 .INIT=1'b0; +DFF \fifo_inst/Equal.wcount_r_d_3_s0 ( + .D(\fifo_inst/Equal.wcount_r [3]), + .CLK(RdClk), + .Q(\fifo_inst/Equal.wcount_r_d [3]) +); +defparam \fifo_inst/Equal.wcount_r_d_3_s0 .INIT=1'b0; +DFF \fifo_inst/Equal.wcount_r_d_2_s0 ( + .D(\fifo_inst/Equal.wcount_r [2]), + .CLK(RdClk), + .Q(\fifo_inst/Equal.wcount_r_d [2]) +); +defparam \fifo_inst/Equal.wcount_r_d_2_s0 .INIT=1'b0; +DFF \fifo_inst/Equal.wcount_r_d_1_s0 ( + .D(\fifo_inst/Equal.wcount_r [1]), + .CLK(RdClk), + .Q(\fifo_inst/Equal.wcount_r_d [1]) +); +defparam \fifo_inst/Equal.wcount_r_d_1_s0 .INIT=1'b0; +DFF \fifo_inst/Equal.wcount_r_d_0_s0 ( + .D(\fifo_inst/Equal.wcount_r [0]), + .CLK(RdClk), + .Q(\fifo_inst/Equal.wcount_r_d [0]) +); +defparam \fifo_inst/Equal.wcount_r_d_0_s0 .INIT=1'b0; +DFF \fifo_inst/rcnt_sub_d_13_s0 ( + .D(\fifo_inst/rcnt_sub [13]), + .CLK(RdClk), + .Q(\fifo_inst/rcnt_sub_d [13]) +); +defparam \fifo_inst/rcnt_sub_d_13_s0 .INIT=1'b0; +DFF \fifo_inst/rcnt_sub_d_12_s0 ( + .D(\fifo_inst/rcnt_sub [12]), + .CLK(RdClk), + .Q(\fifo_inst/rcnt_sub_d [12]) +); +defparam \fifo_inst/rcnt_sub_d_12_s0 .INIT=1'b0; +DFF \fifo_inst/rcnt_sub_d_11_s0 ( + .D(\fifo_inst/rcnt_sub [11]), + .CLK(RdClk), + .Q(\fifo_inst/rcnt_sub_d [11]) +); +defparam \fifo_inst/rcnt_sub_d_11_s0 .INIT=1'b0; +DFF \fifo_inst/rcnt_sub_d_10_s0 ( + .D(\fifo_inst/rcnt_sub [10]), + .CLK(RdClk), + .Q(\fifo_inst/rcnt_sub_d [10]) +); +defparam \fifo_inst/rcnt_sub_d_10_s0 .INIT=1'b0; +DFF \fifo_inst/rcnt_sub_d_9_s0 ( + .D(\fifo_inst/rcnt_sub [9]), + .CLK(RdClk), + .Q(\fifo_inst/rcnt_sub_d [9]) +); +defparam \fifo_inst/rcnt_sub_d_9_s0 .INIT=1'b0; +DFF \fifo_inst/rcnt_sub_d_8_s0 ( + .D(\fifo_inst/rcnt_sub [8]), + .CLK(RdClk), + .Q(\fifo_inst/rcnt_sub_d [8]) +); +defparam \fifo_inst/rcnt_sub_d_8_s0 .INIT=1'b0; +DFF \fifo_inst/rcnt_sub_d_7_s0 ( + .D(\fifo_inst/rcnt_sub [7]), + .CLK(RdClk), + .Q(\fifo_inst/rcnt_sub_d [7]) +); +defparam \fifo_inst/rcnt_sub_d_7_s0 .INIT=1'b0; +DFF \fifo_inst/rcnt_sub_d_6_s0 ( + .D(\fifo_inst/rcnt_sub [6]), + .CLK(RdClk), + .Q(\fifo_inst/rcnt_sub_d [6]) +); +defparam \fifo_inst/rcnt_sub_d_6_s0 .INIT=1'b0; +DFF \fifo_inst/rcnt_sub_d_5_s0 ( + .D(\fifo_inst/rcnt_sub [5]), + .CLK(RdClk), + .Q(\fifo_inst/rcnt_sub_d [5]) +); +defparam \fifo_inst/rcnt_sub_d_5_s0 .INIT=1'b0; +DFF \fifo_inst/rcnt_sub_d_4_s0 ( + .D(\fifo_inst/rcnt_sub [4]), + .CLK(RdClk), + .Q(\fifo_inst/rcnt_sub_d [4]) +); +defparam \fifo_inst/rcnt_sub_d_4_s0 .INIT=1'b0; +DFF \fifo_inst/rcnt_sub_d_3_s0 ( + .D(\fifo_inst/rcnt_sub [3]), + .CLK(RdClk), + .Q(\fifo_inst/rcnt_sub_d [3]) +); +defparam \fifo_inst/rcnt_sub_d_3_s0 .INIT=1'b0; +DFF \fifo_inst/rcnt_sub_d_2_s0 ( + .D(\fifo_inst/rcnt_sub [2]), + .CLK(RdClk), + .Q(\fifo_inst/rcnt_sub_d [2]) +); +defparam \fifo_inst/rcnt_sub_d_2_s0 .INIT=1'b0; +DFF \fifo_inst/rcnt_sub_d_1_s0 ( + .D(\fifo_inst/rcnt_sub [1]), + .CLK(RdClk), + .Q(\fifo_inst/rcnt_sub_d [1]) +); +defparam \fifo_inst/rcnt_sub_d_1_s0 .INIT=1'b0; +DFF \fifo_inst/rcnt_sub_d_0_s0 ( + .D(\fifo_inst/rcnt_sub [0]), + .CLK(RdClk), + .Q(\fifo_inst/rcnt_sub_d [0]) +); +defparam \fifo_inst/rcnt_sub_d_0_s0 .INIT=1'b0; +DFFP \fifo_inst/rempty_val1_s0 ( + .D(\fifo_inst/rempty_val ), + .CLK(RdClk), + .PRESET(\fifo_inst/rempty_val ), + .Q(\fifo_inst/rempty_val1 ) +); +defparam \fifo_inst/rempty_val1_s0 .INIT=1'b1; +DFFP \fifo_inst/Empty_s0 ( + .D(\fifo_inst/rempty_val1 ), + .CLK(RdClk), + .PRESET(\fifo_inst/rempty_val ), + .Q(Empty) +); +defparam \fifo_inst/Empty_s0 .INIT=1'b1; +DFFS \fifo_inst/Almost_Empty_s0 ( + .D(\fifo_inst/n476_3 ), + .CLK(RdClk), + .SET(\fifo_inst/n473_61 ), + .Q(Almost_Empty) +); +defparam \fifo_inst/Almost_Empty_s0 .INIT=1'b1; +DFFP \fifo_inst/wfull_val1_s0 ( + .D(\fifo_inst/wfull_val ), + .CLK(WrClk), + .PRESET(\fifo_inst/wfull_val ), + .Q(\fifo_inst/wfull_val1 ) +); +defparam \fifo_inst/wfull_val1_s0 .INIT=1'b1; +DFFP \fifo_inst/Full_s0 ( + .D(\fifo_inst/wfull_val1 ), + .CLK(WrClk), + .PRESET(\fifo_inst/wfull_val ), + .Q(Full) +); +defparam \fifo_inst/Full_s0 .INIT=1'b1; +DFF \fifo_inst/Equal.rq1_wptr_0_s2 ( + .D(\fifo_inst/Equal.rq1_wptr_0_20 ), + .CLK(RdClk), + .Q(\fifo_inst/Equal.rq1_wptr_0_5 ) +); +defparam \fifo_inst/Equal.rq1_wptr_0_s2 .INIT=1'b0; +SDPB \fifo_inst/Equal.mem_Equal.mem_0_0_s ( + .CLKA(WrClk), + .CEA(\fifo_inst/n24_5 ), + .RESETA(GND), + .CLKB(RdClk), + .CEB(\fifo_inst/n28_3 ), + .RESETB(GND), + .OCE(GND), + .BLKSELA({GND, GND, GND}), + .BLKSELB({GND, GND, GND}), + .DI({GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, Data[1:0]}), + .ADA({\fifo_inst/Equal.wbin [12:0], GND}), + .ADB({\fifo_inst/rbin_num [12:0], GND}), + .DO({\fifo_inst/DO [31:2], Q[1:0]}) +); +defparam \fifo_inst/Equal.mem_Equal.mem_0_0_s .READ_MODE=1'b0; +defparam \fifo_inst/Equal.mem_Equal.mem_0_0_s .BIT_WIDTH_0=2; +defparam \fifo_inst/Equal.mem_Equal.mem_0_0_s .BIT_WIDTH_1=2; +defparam \fifo_inst/Equal.mem_Equal.mem_0_0_s .RESET_MODE="SYNC"; +defparam \fifo_inst/Equal.mem_Equal.mem_0_0_s .BLK_SEL_0=3'b000; +defparam \fifo_inst/Equal.mem_Equal.mem_0_0_s .BLK_SEL_1=3'b000; +SDPB \fifo_inst/Equal.mem_Equal.mem_0_1_s ( + .CLKA(WrClk), + .CEA(\fifo_inst/n24_5 ), + .RESETA(GND), + .CLKB(RdClk), + .CEB(\fifo_inst/n28_3 ), + .RESETB(GND), + .OCE(GND), + .BLKSELA({GND, GND, GND}), + .BLKSELB({GND, GND, GND}), + .DI({GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, Data[3:2]}), + .ADA({\fifo_inst/Equal.wbin [12:0], GND}), + .ADB({\fifo_inst/rbin_num [12:0], GND}), + .DO({\fifo_inst/DO_0 [31:2], Q[3:2]}) +); +defparam \fifo_inst/Equal.mem_Equal.mem_0_1_s .READ_MODE=1'b0; +defparam \fifo_inst/Equal.mem_Equal.mem_0_1_s .BIT_WIDTH_0=2; +defparam \fifo_inst/Equal.mem_Equal.mem_0_1_s .BIT_WIDTH_1=2; +defparam \fifo_inst/Equal.mem_Equal.mem_0_1_s .RESET_MODE="SYNC"; +defparam \fifo_inst/Equal.mem_Equal.mem_0_1_s .BLK_SEL_0=3'b000; +defparam \fifo_inst/Equal.mem_Equal.mem_0_1_s .BLK_SEL_1=3'b000; +SDPB \fifo_inst/Equal.mem_Equal.mem_0_2_s ( + .CLKA(WrClk), + .CEA(\fifo_inst/n24_5 ), + .RESETA(GND), + .CLKB(RdClk), + .CEB(\fifo_inst/n28_3 ), + .RESETB(GND), + .OCE(GND), + .BLKSELA({GND, GND, GND}), + .BLKSELB({GND, GND, GND}), + .DI({GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, Data[5:4]}), + .ADA({\fifo_inst/Equal.wbin [12:0], GND}), + .ADB({\fifo_inst/rbin_num [12:0], GND}), + .DO({\fifo_inst/DO_1 [31:2], Q[5:4]}) +); +defparam \fifo_inst/Equal.mem_Equal.mem_0_2_s .READ_MODE=1'b0; +defparam \fifo_inst/Equal.mem_Equal.mem_0_2_s .BIT_WIDTH_0=2; +defparam \fifo_inst/Equal.mem_Equal.mem_0_2_s .BIT_WIDTH_1=2; +defparam \fifo_inst/Equal.mem_Equal.mem_0_2_s .RESET_MODE="SYNC"; +defparam \fifo_inst/Equal.mem_Equal.mem_0_2_s .BLK_SEL_0=3'b000; +defparam \fifo_inst/Equal.mem_Equal.mem_0_2_s .BLK_SEL_1=3'b000; +SDPB \fifo_inst/Equal.mem_Equal.mem_0_3_s ( + .CLKA(WrClk), + .CEA(\fifo_inst/n24_5 ), + .RESETA(GND), + .CLKB(RdClk), + .CEB(\fifo_inst/n28_3 ), + .RESETB(GND), + .OCE(GND), + .BLKSELA({GND, GND, GND}), + .BLKSELB({GND, GND, GND}), + .DI({GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, Data[7:6]}), + .ADA({\fifo_inst/Equal.wbin [12:0], GND}), + .ADB({\fifo_inst/rbin_num [12:0], GND}), + .DO({\fifo_inst/DO_2 [31:2], Q[7:6]}) +); +defparam \fifo_inst/Equal.mem_Equal.mem_0_3_s .READ_MODE=1'b0; +defparam \fifo_inst/Equal.mem_Equal.mem_0_3_s .BIT_WIDTH_0=2; +defparam \fifo_inst/Equal.mem_Equal.mem_0_3_s .BIT_WIDTH_1=2; +defparam \fifo_inst/Equal.mem_Equal.mem_0_3_s .RESET_MODE="SYNC"; +defparam \fifo_inst/Equal.mem_Equal.mem_0_3_s .BLK_SEL_0=3'b000; +defparam \fifo_inst/Equal.mem_Equal.mem_0_3_s .BLK_SEL_1=3'b000; +SDPB \fifo_inst/Equal.mem_Equal.mem_0_4_s ( + .CLKA(WrClk), + .CEA(\fifo_inst/n24_5 ), + .RESETA(GND), + .CLKB(RdClk), + .CEB(\fifo_inst/n28_3 ), + .RESETB(GND), + .OCE(GND), + .BLKSELA({GND, GND, GND}), + .BLKSELB({GND, GND, GND}), + .DI({GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, Data[9:8]}), + .ADA({\fifo_inst/Equal.wbin [12:0], GND}), + .ADB({\fifo_inst/rbin_num [12:0], GND}), + .DO({\fifo_inst/DO_3 [31:2], Q[9:8]}) +); +defparam \fifo_inst/Equal.mem_Equal.mem_0_4_s .READ_MODE=1'b0; +defparam \fifo_inst/Equal.mem_Equal.mem_0_4_s .BIT_WIDTH_0=2; +defparam \fifo_inst/Equal.mem_Equal.mem_0_4_s .BIT_WIDTH_1=2; +defparam \fifo_inst/Equal.mem_Equal.mem_0_4_s .RESET_MODE="SYNC"; +defparam \fifo_inst/Equal.mem_Equal.mem_0_4_s .BLK_SEL_0=3'b000; +defparam \fifo_inst/Equal.mem_Equal.mem_0_4_s .BLK_SEL_1=3'b000; +SDPB \fifo_inst/Equal.mem_Equal.mem_0_5_s ( + .CLKA(WrClk), + .CEA(\fifo_inst/n24_5 ), + .RESETA(GND), + .CLKB(RdClk), + .CEB(\fifo_inst/n28_3 ), + .RESETB(GND), + .OCE(GND), + .BLKSELA({GND, GND, GND}), + .BLKSELB({GND, GND, GND}), + .DI({GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, Data[11:10]}), + .ADA({\fifo_inst/Equal.wbin [12:0], GND}), + .ADB({\fifo_inst/rbin_num [12:0], GND}), + .DO({\fifo_inst/DO_4 [31:2], Q[11:10]}) +); +defparam \fifo_inst/Equal.mem_Equal.mem_0_5_s .READ_MODE=1'b0; +defparam \fifo_inst/Equal.mem_Equal.mem_0_5_s .BIT_WIDTH_0=2; +defparam \fifo_inst/Equal.mem_Equal.mem_0_5_s .BIT_WIDTH_1=2; +defparam \fifo_inst/Equal.mem_Equal.mem_0_5_s .RESET_MODE="SYNC"; +defparam \fifo_inst/Equal.mem_Equal.mem_0_5_s .BLK_SEL_0=3'b000; +defparam \fifo_inst/Equal.mem_Equal.mem_0_5_s .BLK_SEL_1=3'b000; +SDPB \fifo_inst/Equal.mem_Equal.mem_0_6_s ( + .CLKA(WrClk), + .CEA(\fifo_inst/n24_5 ), + .RESETA(GND), + .CLKB(RdClk), + .CEB(\fifo_inst/n28_3 ), + .RESETB(GND), + .OCE(GND), + .BLKSELA({GND, GND, GND}), + .BLKSELB({GND, GND, GND}), + .DI({GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, Data[13:12]}), + .ADA({\fifo_inst/Equal.wbin [12:0], GND}), + .ADB({\fifo_inst/rbin_num [12:0], GND}), + .DO({\fifo_inst/DO_5 [31:2], Q[13:12]}) +); +defparam \fifo_inst/Equal.mem_Equal.mem_0_6_s .READ_MODE=1'b0; +defparam \fifo_inst/Equal.mem_Equal.mem_0_6_s .BIT_WIDTH_0=2; +defparam \fifo_inst/Equal.mem_Equal.mem_0_6_s .BIT_WIDTH_1=2; +defparam \fifo_inst/Equal.mem_Equal.mem_0_6_s .RESET_MODE="SYNC"; +defparam \fifo_inst/Equal.mem_Equal.mem_0_6_s .BLK_SEL_0=3'b000; +defparam \fifo_inst/Equal.mem_Equal.mem_0_6_s .BLK_SEL_1=3'b000; +SDPB \fifo_inst/Equal.mem_Equal.mem_0_7_s ( + .CLKA(WrClk), + .CEA(\fifo_inst/n24_5 ), + .RESETA(GND), + .CLKB(RdClk), + .CEB(\fifo_inst/n28_3 ), + .RESETB(GND), + .OCE(GND), + .BLKSELA({GND, GND, GND}), + .BLKSELB({GND, GND, GND}), + .DI({GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, Data[15:14]}), + .ADA({\fifo_inst/Equal.wbin [12:0], GND}), + .ADB({\fifo_inst/rbin_num [12:0], GND}), + .DO({\fifo_inst/DO_6 [31:2], Q[15:14]}) +); +defparam \fifo_inst/Equal.mem_Equal.mem_0_7_s .READ_MODE=1'b0; +defparam \fifo_inst/Equal.mem_Equal.mem_0_7_s .BIT_WIDTH_0=2; +defparam \fifo_inst/Equal.mem_Equal.mem_0_7_s .BIT_WIDTH_1=2; +defparam \fifo_inst/Equal.mem_Equal.mem_0_7_s .RESET_MODE="SYNC"; +defparam \fifo_inst/Equal.mem_Equal.mem_0_7_s .BLK_SEL_0=3'b000; +defparam \fifo_inst/Equal.mem_Equal.mem_0_7_s .BLK_SEL_1=3'b000; +RAM16S4 \fifo_inst/Equal.rq1_wptr_0_s4 ( + .CLK(RdClk), + .WRE(VCC), + .AD({GND, GND, GND, \fifo_inst/Equal.rq1_wptr_0_5 }), + .DI({\fifo_inst/wptr [3:0]}), + .DO({\fifo_inst/Equal.rq2_wptr [3:0]})); +defparam \fifo_inst/Equal.rq1_wptr_0_s4 .INIT_0=16'h0000; +defparam \fifo_inst/Equal.rq1_wptr_0_s4 .INIT_1=16'h0000; +defparam \fifo_inst/Equal.rq1_wptr_0_s4 .INIT_2=16'h0000; +defparam \fifo_inst/Equal.rq1_wptr_0_s4 .INIT_3=16'h0000; +RAM16S4 \fifo_inst/Equal.rq1_wptr_0_s6 ( + .CLK(RdClk), + .WRE(VCC), + .AD({GND, GND, GND, \fifo_inst/Equal.rq1_wptr_0_5 }), + .DI({\fifo_inst/wptr [7:4]}), + .DO({\fifo_inst/Equal.rq2_wptr [7:4]})); +defparam \fifo_inst/Equal.rq1_wptr_0_s6 .INIT_0=16'h0000; +defparam \fifo_inst/Equal.rq1_wptr_0_s6 .INIT_1=16'h0000; +defparam \fifo_inst/Equal.rq1_wptr_0_s6 .INIT_2=16'h0000; +defparam \fifo_inst/Equal.rq1_wptr_0_s6 .INIT_3=16'h0000; +RAM16S4 \fifo_inst/Equal.rq1_wptr_0_s8 ( + .CLK(RdClk), + .WRE(VCC), + .AD({GND, GND, GND, \fifo_inst/Equal.rq1_wptr_0_5 }), + .DI({\fifo_inst/wptr [11:8]}), + .DO({\fifo_inst/Equal.rq2_wptr [11:8]})); +defparam \fifo_inst/Equal.rq1_wptr_0_s8 .INIT_0=16'h0000; +defparam \fifo_inst/Equal.rq1_wptr_0_s8 .INIT_1=16'h0000; +defparam \fifo_inst/Equal.rq1_wptr_0_s8 .INIT_2=16'h0000; +defparam \fifo_inst/Equal.rq1_wptr_0_s8 .INIT_3=16'h0000; +RAM16S4 \fifo_inst/Equal.rq1_wptr_0_s10 ( + .CLK(RdClk), + .WRE(VCC), + .AD({GND, GND, GND, \fifo_inst/Equal.rq1_wptr_0_5 }), + .DI({GND, GND, \fifo_inst/wptr [13:12]}), + .DO({\fifo_inst/DO_7 [3:2], \fifo_inst/Equal.rq2_wptr [13:12]})); +defparam \fifo_inst/Equal.rq1_wptr_0_s10 .INIT_0=16'h0000; +defparam \fifo_inst/Equal.rq1_wptr_0_s10 .INIT_1=16'h0000; +defparam \fifo_inst/Equal.rq1_wptr_0_s10 .INIT_2=16'h0000; +defparam \fifo_inst/Equal.rq1_wptr_0_s10 .INIT_3=16'h0000; +ALU \fifo_inst/rcnt_sub_0_s ( + .I0(\fifo_inst/Equal.wcount_r_d [0]), + .I1(\fifo_inst/rbin_num [0]), + .I3(GND), + .CIN(VCC), + .COUT(\fifo_inst/rcnt_sub_0_3 ), + .SUM(\fifo_inst/rcnt_sub [0]) +); +defparam \fifo_inst/rcnt_sub_0_s .ALU_MODE=1; +ALU \fifo_inst/rcnt_sub_1_s ( + .I0(\fifo_inst/Equal.wcount_r_d [1]), + .I1(\fifo_inst/rbin_num [1]), + .I3(GND), + .CIN(\fifo_inst/rcnt_sub_0_3 ), + .COUT(\fifo_inst/rcnt_sub_1_3 ), + .SUM(\fifo_inst/rcnt_sub [1]) +); +defparam \fifo_inst/rcnt_sub_1_s .ALU_MODE=1; +ALU \fifo_inst/rcnt_sub_2_s ( + .I0(\fifo_inst/Equal.wcount_r_d [2]), + .I1(\fifo_inst/rbin_num [2]), + .I3(GND), + .CIN(\fifo_inst/rcnt_sub_1_3 ), + .COUT(\fifo_inst/rcnt_sub_2_3 ), + .SUM(\fifo_inst/rcnt_sub [2]) +); +defparam \fifo_inst/rcnt_sub_2_s .ALU_MODE=1; +ALU \fifo_inst/rcnt_sub_3_s ( + .I0(\fifo_inst/Equal.wcount_r_d [3]), + .I1(\fifo_inst/rbin_num [3]), + .I3(GND), + .CIN(\fifo_inst/rcnt_sub_2_3 ), + .COUT(\fifo_inst/rcnt_sub_3_3 ), + .SUM(\fifo_inst/rcnt_sub [3]) +); +defparam \fifo_inst/rcnt_sub_3_s .ALU_MODE=1; +ALU \fifo_inst/rcnt_sub_4_s ( + .I0(\fifo_inst/Equal.wcount_r_d [4]), + .I1(\fifo_inst/rbin_num [4]), + .I3(GND), + .CIN(\fifo_inst/rcnt_sub_3_3 ), + .COUT(\fifo_inst/rcnt_sub_4_3 ), + .SUM(\fifo_inst/rcnt_sub [4]) +); +defparam \fifo_inst/rcnt_sub_4_s .ALU_MODE=1; +ALU \fifo_inst/rcnt_sub_5_s ( + .I0(\fifo_inst/Equal.wcount_r_d [5]), + .I1(\fifo_inst/rbin_num [5]), + .I3(GND), + .CIN(\fifo_inst/rcnt_sub_4_3 ), + .COUT(\fifo_inst/rcnt_sub_5_3 ), + .SUM(\fifo_inst/rcnt_sub [5]) +); +defparam \fifo_inst/rcnt_sub_5_s .ALU_MODE=1; +ALU \fifo_inst/rcnt_sub_6_s ( + .I0(\fifo_inst/Equal.wcount_r_d [6]), + .I1(\fifo_inst/rbin_num [6]), + .I3(GND), + .CIN(\fifo_inst/rcnt_sub_5_3 ), + .COUT(\fifo_inst/rcnt_sub_6_3 ), + .SUM(\fifo_inst/rcnt_sub [6]) +); +defparam \fifo_inst/rcnt_sub_6_s .ALU_MODE=1; +ALU \fifo_inst/rcnt_sub_7_s ( + .I0(\fifo_inst/Equal.wcount_r_d [7]), + .I1(\fifo_inst/rbin_num [7]), + .I3(GND), + .CIN(\fifo_inst/rcnt_sub_6_3 ), + .COUT(\fifo_inst/rcnt_sub_7_3 ), + .SUM(\fifo_inst/rcnt_sub [7]) +); +defparam \fifo_inst/rcnt_sub_7_s .ALU_MODE=1; +ALU \fifo_inst/rcnt_sub_8_s ( + .I0(\fifo_inst/Equal.wcount_r_d [8]), + .I1(\fifo_inst/rbin_num [8]), + .I3(GND), + .CIN(\fifo_inst/rcnt_sub_7_3 ), + .COUT(\fifo_inst/rcnt_sub_8_3 ), + .SUM(\fifo_inst/rcnt_sub [8]) +); +defparam \fifo_inst/rcnt_sub_8_s .ALU_MODE=1; +ALU \fifo_inst/rcnt_sub_9_s ( + .I0(\fifo_inst/Equal.wcount_r_d [9]), + .I1(\fifo_inst/rbin_num [9]), + .I3(GND), + .CIN(\fifo_inst/rcnt_sub_8_3 ), + .COUT(\fifo_inst/rcnt_sub_9_3 ), + .SUM(\fifo_inst/rcnt_sub [9]) +); +defparam \fifo_inst/rcnt_sub_9_s .ALU_MODE=1; +ALU \fifo_inst/rcnt_sub_10_s ( + .I0(\fifo_inst/Equal.wcount_r_d [10]), + .I1(\fifo_inst/rbin_num [10]), + .I3(GND), + .CIN(\fifo_inst/rcnt_sub_9_3 ), + .COUT(\fifo_inst/rcnt_sub_10_3 ), + .SUM(\fifo_inst/rcnt_sub [10]) +); +defparam \fifo_inst/rcnt_sub_10_s .ALU_MODE=1; +ALU \fifo_inst/rcnt_sub_11_s ( + .I0(\fifo_inst/Equal.wcount_r_d [11]), + .I1(\fifo_inst/rbin_num [11]), + .I3(GND), + .CIN(\fifo_inst/rcnt_sub_10_3 ), + .COUT(\fifo_inst/rcnt_sub_11_3 ), + .SUM(\fifo_inst/rcnt_sub [11]) +); +defparam \fifo_inst/rcnt_sub_11_s .ALU_MODE=1; +ALU \fifo_inst/rcnt_sub_12_s ( + .I0(\fifo_inst/Equal.wcount_r_d [12]), + .I1(\fifo_inst/rbin_num [12]), + .I3(GND), + .CIN(\fifo_inst/rcnt_sub_11_3 ), + .COUT(\fifo_inst/rcnt_sub_12_3 ), + .SUM(\fifo_inst/rcnt_sub [12]) +); +defparam \fifo_inst/rcnt_sub_12_s .ALU_MODE=1; +ALU \fifo_inst/rcnt_sub_13_s ( + .I0(\fifo_inst/n166_3 ), + .I1(GND), + .I3(GND), + .CIN(\fifo_inst/rcnt_sub_12_3 ), + .COUT(\fifo_inst/rcnt_sub_13_0_COUT ), + .SUM(\fifo_inst/rcnt_sub [13]) +); +defparam \fifo_inst/rcnt_sub_13_s .ALU_MODE=1; +ALU \fifo_inst/n106_s0 ( + .I0(\fifo_inst/wptr [0]), + .I1(\fifo_inst/rptr [0]), + .I3(GND), + .CIN(GND), + .COUT(\fifo_inst/n106_3 ), + .SUM(\fifo_inst/n106_1_SUM ) +); +defparam \fifo_inst/n106_s0 .ALU_MODE=3; +ALU \fifo_inst/n107_s0 ( + .I0(\fifo_inst/wptr [1]), + .I1(\fifo_inst/rptr [1]), + .I3(GND), + .CIN(\fifo_inst/n106_3 ), + .COUT(\fifo_inst/n107_3 ), + .SUM(\fifo_inst/n107_1_SUM ) +); +defparam \fifo_inst/n107_s0 .ALU_MODE=3; +ALU \fifo_inst/n108_s0 ( + .I0(\fifo_inst/wptr [2]), + .I1(\fifo_inst/rptr [2]), + .I3(GND), + .CIN(\fifo_inst/n107_3 ), + .COUT(\fifo_inst/n108_3 ), + .SUM(\fifo_inst/n108_1_SUM ) +); +defparam \fifo_inst/n108_s0 .ALU_MODE=3; +ALU \fifo_inst/n109_s0 ( + .I0(\fifo_inst/wptr [3]), + .I1(\fifo_inst/rptr [3]), + .I3(GND), + .CIN(\fifo_inst/n108_3 ), + .COUT(\fifo_inst/n109_3 ), + .SUM(\fifo_inst/n109_1_SUM ) +); +defparam \fifo_inst/n109_s0 .ALU_MODE=3; +ALU \fifo_inst/n110_s0 ( + .I0(\fifo_inst/wptr [4]), + .I1(\fifo_inst/rptr [4]), + .I3(GND), + .CIN(\fifo_inst/n109_3 ), + .COUT(\fifo_inst/n110_3 ), + .SUM(\fifo_inst/n110_1_SUM ) +); +defparam \fifo_inst/n110_s0 .ALU_MODE=3; +ALU \fifo_inst/n111_s0 ( + .I0(\fifo_inst/wptr [5]), + .I1(\fifo_inst/rptr [5]), + .I3(GND), + .CIN(\fifo_inst/n110_3 ), + .COUT(\fifo_inst/n111_3 ), + .SUM(\fifo_inst/n111_1_SUM ) +); +defparam \fifo_inst/n111_s0 .ALU_MODE=3; +ALU \fifo_inst/n112_s0 ( + .I0(\fifo_inst/wptr [6]), + .I1(\fifo_inst/rptr [6]), + .I3(GND), + .CIN(\fifo_inst/n111_3 ), + .COUT(\fifo_inst/n112_3 ), + .SUM(\fifo_inst/n112_1_SUM ) +); +defparam \fifo_inst/n112_s0 .ALU_MODE=3; +ALU \fifo_inst/n113_s0 ( + .I0(\fifo_inst/wptr [7]), + .I1(\fifo_inst/rptr [7]), + .I3(GND), + .CIN(\fifo_inst/n112_3 ), + .COUT(\fifo_inst/n113_3 ), + .SUM(\fifo_inst/n113_1_SUM ) +); +defparam \fifo_inst/n113_s0 .ALU_MODE=3; +ALU \fifo_inst/n114_s0 ( + .I0(\fifo_inst/wptr [8]), + .I1(\fifo_inst/rptr [8]), + .I3(GND), + .CIN(\fifo_inst/n113_3 ), + .COUT(\fifo_inst/n114_3 ), + .SUM(\fifo_inst/n114_1_SUM ) +); +defparam \fifo_inst/n114_s0 .ALU_MODE=3; +ALU \fifo_inst/n115_s0 ( + .I0(\fifo_inst/wptr [9]), + .I1(\fifo_inst/rptr [9]), + .I3(GND), + .CIN(\fifo_inst/n114_3 ), + .COUT(\fifo_inst/n115_3 ), + .SUM(\fifo_inst/n115_1_SUM ) +); +defparam \fifo_inst/n115_s0 .ALU_MODE=3; +ALU \fifo_inst/n116_s0 ( + .I0(\fifo_inst/wptr [10]), + .I1(\fifo_inst/rptr [10]), + .I3(GND), + .CIN(\fifo_inst/n115_3 ), + .COUT(\fifo_inst/n116_3 ), + .SUM(\fifo_inst/n116_1_SUM ) +); +defparam \fifo_inst/n116_s0 .ALU_MODE=3; +ALU \fifo_inst/n117_s0 ( + .I0(\fifo_inst/wptr [11]), + .I1(\fifo_inst/rptr [11]), + .I3(GND), + .CIN(\fifo_inst/n116_3 ), + .COUT(\fifo_inst/n117_3 ), + .SUM(\fifo_inst/n117_1_SUM ) +); +defparam \fifo_inst/n117_s0 .ALU_MODE=3; +ALU \fifo_inst/n118_s0 ( + .I0(\fifo_inst/wptr [12]), + .I1(\fifo_inst/rptr [12]), + .I3(GND), + .CIN(\fifo_inst/n117_3 ), + .COUT(\fifo_inst/n118_3 ), + .SUM(\fifo_inst/n118_1_SUM ) +); +defparam \fifo_inst/n118_s0 .ALU_MODE=3; +LUT1 \fifo_inst/Equal.rq1_wptr_0_s16 ( + .I0(\fifo_inst/Equal.rq1_wptr_0_5 ), + .F(\fifo_inst/Equal.rq1_wptr_0_20 ) +); +defparam \fifo_inst/Equal.rq1_wptr_0_s16 .INIT=2'h1; +endmodule diff --git a/hsdaoh_nano9k_1bit_sdr/hsdaoh_nano9k_1bit_sdr.cst b/hsdaoh_nano9k_1bit_sdr/hsdaoh_nano9k_1bit_sdr.cst new file mode 100644 index 0000000..16b9b6c --- /dev/null +++ b/hsdaoh_nano9k_1bit_sdr/hsdaoh_nano9k_1bit_sdr.cst @@ -0,0 +1,23 @@ +//Copyright (C)2014-2024 Gowin Semiconductor Corporation. +//All rights reserved. +//File Title: Physical Constraints file +//Tool Version: V1.9.10.03 +//Part Number: GW1NR-LV9QN88PC6/I5 +//Device: GW1NR-9 +//Device Version: C +//Created Time: Mon 11 04 00:22:34 2024 + +IO_LOC "tmds_d_p[0]" 71,70; +IO_PORT "tmds_d_p[0]" IO_TYPE=LVCMOS33D PULL_MODE=NONE DRIVE=8 BANK_VCCIO=3.3; +IO_LOC "tmds_d_p[1]" 73,72; +IO_PORT "tmds_d_p[1]" IO_TYPE=LVCMOS33D PULL_MODE=NONE DRIVE=8 BANK_VCCIO=3.3; +IO_LOC "tmds_d_p[2]" 75,74; +IO_PORT "tmds_d_p[2]" IO_TYPE=LVCMOS33D PULL_MODE=NONE DRIVE=8 BANK_VCCIO=3.3; +IO_LOC "tmds_clk_p" 69,68; +IO_PORT "tmds_clk_p" IO_TYPE=LVCMOS33D PULL_MODE=NONE DRIVE=8 BANK_VCCIO=3.3; +IO_LOC "sys_clk" 52; +IO_PORT "sys_clk" IO_TYPE=LVCMOS33 PULL_MODE=UP BANK_VCCIO=3.3; +IO_LOC "rf_in_n" 28,27; +IO_PORT "rf_in_n" IO_TYPE=LVDS25 PULL_MODE=NONE BANK_VCCIO=3.3; +IO_LOC "sys_resetn" 4; +IO_PORT "sys_resetn" IO_TYPE=LVCMOS18 PULL_MODE=UP BANK_VCCIO=1.8; diff --git a/hsdaoh_nano9k_1bit_sdr/hsdaoh_nano9k_1bit_sdr.sdc b/hsdaoh_nano9k_1bit_sdr/hsdaoh_nano9k_1bit_sdr.sdc new file mode 100644 index 0000000..08d304c --- /dev/null +++ b/hsdaoh_nano9k_1bit_sdr/hsdaoh_nano9k_1bit_sdr.sdc @@ -0,0 +1,6 @@ +//Copyright (C)2014-2024 GOWIN Semiconductor Corporation. +//All rights reserved. +//File Title: Timing Constraints file +//Tool Version: V1.9.10.03 +//Created Time: 2024-11-03 22:40:37 +create_clock -name sys_clk -period 37.04 -waveform {0 18.52} [get_ports {sys_clk}] -add \ No newline at end of file diff --git a/hsdaoh_nano9k_1bit_sdr/top.v b/hsdaoh_nano9k_1bit_sdr/top.v new file mode 100644 index 0000000..bca64c6 --- /dev/null +++ b/hsdaoh_nano9k_1bit_sdr/top.v @@ -0,0 +1,205 @@ +// hsdaoh - High Speed Data Acquisition over HDMI +// Test top design for Tang Nano 9K +// Copyright (C) 2024 by Steve Markgraf +// License: MIT + +module top ( + sys_clk, + sys_resetn, + tmds_clk_n, + tmds_clk_p, + tmds_d_n, + tmds_d_p, + rf_in_n, + rf_in_p +); + input sys_clk; + input sys_resetn; + output wire tmds_clk_n; + output wire tmds_clk_p; + output wire [2:0] tmds_d_n; + output wire [2:0] tmds_d_p; + input wire rf_in_n; + input wire rf_in_p; + + wire [2:0] tmds; + wire clk_pixel; + wire clk_pixel_x5; + wire hdmi_pll_lock; + + wire clk_data; + wire clk_data_div; + wire rf_in_1bit; + wire rf_in_1bit_q0; + wire rf_in_1bit_q1; + wire data_pll_lock; + + // https://juj.github.io/gowin_fpga_code_generators/pll_calculator.html + localparam HDMI_PLL_IDIV = 0; + localparam HDMI_PLL_FBDIV = 7; + localparam HDMI_PLL_ODIV = 4; + + // PLL for HDMI clock + rPLL #( + .FCLKIN (27), + .IDIV_SEL (HDMI_PLL_IDIV), + .FBDIV_SEL (HDMI_PLL_FBDIV), + .ODIV_SEL (HDMI_PLL_ODIV), + .DEVICE ("GW1NR-9C") + ) hdmi_pll ( + .CLKIN(sys_clk), + .CLKFB(1'b0), + .RESET(1'b0), + .RESET_P(1'b0), + .FBDSEL(6'b0), + .IDSEL(6'b0), + .ODSEL(6'b0), + .DUTYDA(4'b0), + .PSDA(4'b0), + .FDLY(4'b0), + .CLKOUT(clk_pixel_x5), + .LOCK(hdmi_pll_lock), + .CLKOUTP(), + .CLKOUTD(), + .CLKOUTD3() + ); + + CLKDIV #( + .DIV_MODE(5), + .GSREN("false") + ) div_5 ( + .CLKOUT(clk_pixel), + .HCLKIN(clk_pixel_x5), + .RESETN(hdmi_pll_lock), + .CALIB(1'b0) + ); + + // 144MHz LVDS sampling clock + localparam DATA_PLL_IDIV = 2; + localparam DATA_PLL_FBDIV = 15; + localparam DATA_PLL_ODIV = 8; + + // PLL for data clock + rPLL #( + .FCLKIN (27), + .IDIV_SEL (DATA_PLL_IDIV), + .FBDIV_SEL (DATA_PLL_FBDIV), + .ODIV_SEL (DATA_PLL_ODIV), + .DEVICE ("GW1NR-9C") + ) data_pll ( + .CLKIN (sys_clk), + .CLKFB (1'b0), + .RESET (rst), + .RESET_P (1'b0), + .FBDSEL (6'b0), + .IDSEL (6'b0), + .ODSEL (6'b0), + .DUTYDA (4'b0), + .PSDA (4'b0), + .FDLY (4'b0), + .CLKOUT (clk_data), + .LOCK (data_pll_lock), + .CLKOUTP (), + .CLKOUTD (), + .CLKOUTD3 () + ); + + CLKDIV #( + .DIV_MODE(4), + .GSREN("false") + ) div_4 ( + .CLKOUT(clk_data_div), + .HCLKIN(clk_data), + .RESETN(data_pll_lock), + .CALIB(1'b0) + ); + + reg [1:0] counter = 2'h0; + reg [4:0] accumulator = 2'h0; + + reg [15:0] fifo_in; + + wire write_enable; + + wire [15:0] fifo_out; + wire fifo_empty; + wire fifo_aempty; + wire Full_o; + + wire FifoHalfFull; + wire FifoFull; + + wire fifo_rd_en_i; + async_fifo #( + .DSIZE(16), + .ASIZE($clog2(8192*2)), // 3 + (1982 * 4) = 7931 => at least 8K entries to buffer 4 lines during VSYNC + .FALLTHROUGH("FALSE") + ) fifo ( + .wclk(clk_data_div), + .wrst_n(hdmi_pll_lock), + .winc(write_enable), + .wdata(fifo_in), + .wfull(FifoFull), + .awfull(FifoHalfFull), //fixme + .rclk(clk_pixel), + .rrst_n(hdmi_pll_lock), + .rinc(fifo_rd_en_i), + .rdata(fifo_out), + .rempty(fifo_empty), + .arempty(fifo_aempty) + ); + +/* + FIFO_HS_Top fifo( + .Data(fifo_in), //input [0:0] Data + .WrClk(clk_data_div), //input WrClk + .RdClk(clk_pixel), //input RdClk + .WrEn(write_enable), //input WrEn + .RdEn(fifo_rd_en_i), //input RdEn + .Almost_Empty(fifo_aempty), //output Almost_Empty + .Q(fifo_out), //output [0:0] Q + .Empty(fifo_empty), //output Empty + .Full(FifoFull) //output Full + ); +*/ + + + hsdaoh_core hsdaoh ( + .rstn(hdmi_pll_lock), + .tmds_clk_n(tmds_clk_n), + .tmds_clk_p(tmds_clk_p), + .tmds_d_n(tmds_d_n), + .tmds_d_p(tmds_d_p), + .clk_pixel_x5(clk_pixel_x5), + .clk_pixel(clk_pixel), + .fifo_empty(fifo_empty), + .fifo_aempty(fifo_aempty), + .fifo_read_en(fifo_rd_en_i), + .data_in(fifo_out) + ); + + assign write_enable = 1'b1; + + always @(posedge clk_data) begin + counter <= counter + 1'b1; + if (counter == 0) begin + accumulator <= rf_in_1bit_q0 + rf_in_1bit_q1; + fifo_in <= accumulator; + end else begin + accumulator <= accumulator + rf_in_1bit_q0 + rf_in_1bit_q1; + end + end + + IDDR rf_ddr ( + .Q0(rf_in_1bit_q0), + .Q1(rf_in_1bit_q1), + .D(rf_in_1bit), + .CLK(clk_data) + ); + TLVDS_IBUF rf_in ( + .I(rf_in_n), + .IB(rf_in_p), + .O(rf_in_1bit) + ); + +endmodule diff --git a/hsdaoh_nano9k_test_1bit_sdr.gprj b/hsdaoh_nano9k_test_1bit_sdr.gprj new file mode 100644 index 0000000..15ff14e --- /dev/null +++ b/hsdaoh_nano9k_test_1bit_sdr.gprj @@ -0,0 +1,26 @@ + + + + + 5 + gw1nr9c-004 + + + + + + + + + + + + + + + + + + + +