Files
fpga6502/fpga/ip/gTSE/Testbench/aldec/gTSE.sv
2026-04-14 21:34:37 -07:00

9846 lines
512 KiB
Systemverilog

// =============================================================================
// Generated by efx_ipmgr
// Version: 2025.2.288.2.10
// IP Version: 7.1
// =============================================================================
////////////////////////////////////////////////////////////////////////////////
// Copyright (C) 2013-2025 Efinix Inc. All rights reserved.
//
// This document contains proprietary information which is
// protected by copyright. All rights are reserved. This notice
// refers to original work by Efinix, Inc. which may be derivitive
// of other work distributed under license of the authors. In the
// case of derivative work, nothing in this notice overrides the
// original author's license agreement. Where applicable, the
// original license agreement is included in it's original
// unmodified form immediately below this header.
//
// WARRANTY DISCLAIMER.
// THE DESIGN, CODE, OR INFORMATION ARE PROVIDED “AS IS” AND
// EFINIX MAKES NO WARRANTIES, EXPRESS OR IMPLIED WITH
// RESPECT THERETO, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES,
// INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR
// PURPOSE. SOME STATES DO NOT ALLOW EXCLUSIONS OF AN IMPLIED
// WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO LICENSEE.
//
// LIMITATION OF LIABILITY.
// NOTWITHSTANDING ANYTHING TO THE CONTRARY, EXCEPT FOR BODILY
// INJURY, EFINIX SHALL NOT BE LIABLE WITH RESPECT TO ANY SUBJECT
// MATTER OF THIS AGREEMENT UNDER TORT, CONTRACT, STRICT LIABILITY
// OR ANY OTHER LEGAL OR EQUITABLE THEORY (I) FOR ANY INDIRECT,
// SPECIAL, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES OF ANY
// CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF
// GOODWILL, DATA OR PROFIT, WORK STOPPAGE, OR COMPUTER FAILURE OR
// MALFUNCTION, OR IN ANY EVENT (II) FOR ANY AMOUNT IN EXCESS, IN
// THE AGGREGATE, OF THE FEE PAID BY LICENSEE TO EFINIX HEREUNDER
// (OR, IF THE FEE HAS BEEN WAIVED, $100), EVEN IF EFINIX SHALL HAVE
// BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO
// NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
// CONSEQUENTIAL DAMAGES, SO THIS LIMITATION AND EXCLUSION MAY NOT
// APPLY TO LICENSEE.
//
////////////////////////////////////////////////////////////////////////////////
`define IP_UUID _4c19f37180ff465ca20760e199a0613f
`define IP_NAME_CONCAT(a,b) a``b
`define IP_MODULE_NAME(name) `IP_NAME_CONCAT(name,`IP_UUID)
module gTSE
(
input mac_reset,
input proto_reset,
output rx_mac_aclk,
input tx_mac_aclk,
output [2:0] eth_speed,
input rx_axis_clk,
output rx_axis_mac_tuser,
output rx_axis_mac_tlast,
output rx_axis_mac_tvalid,
input rx_axis_mac_tready,
input tx_axis_clk,
input tx_axis_mac_tvalid,
input tx_axis_mac_tlast,
input tx_axis_mac_tuser,
output tx_axis_mac_tready,
output [3:0] rgmii_txd_HI,
output [3:0] rgmii_txd_LO,
output rgmii_tx_ctl_HI,
output rgmii_tx_ctl_LO,
output rgmii_txc_HI,
output rgmii_txc_LO,
input [3:0] rgmii_rxd_HI,
input [3:0] rgmii_rxd_LO,
input rgmii_rx_ctl_HI,
input rgmii_rx_ctl_LO,
input rgmii_rxc,
input s_axi_aclk,
output [7:0] rx_axis_mac_tdata,
input [7:0] tx_axis_mac_tdata,
input [0:0] tx_axis_mac_tstrb,
output [0:0] rx_axis_mac_tstrb,
output MdoEn,
output Mdo,
input Mdi,
output Mdc,
input [9:0] s_axi_araddr,
output s_axi_arready,
input s_axi_arvalid,
input [9:0] s_axi_awaddr,
output s_axi_awready,
input s_axi_awvalid,
input s_axi_bready,
output [1:0] s_axi_bresp,
output s_axi_bvalid,
output [31:0] s_axi_rdata,
input s_axi_rready,
output [1:0] s_axi_rresp,
output s_axi_rvalid,
input [31:0] s_axi_wdata,
output s_axi_wready,
input s_axi_wvalid
);
`IP_MODULE_NAME(efx_mac1gbe)
#(
.VERSION (16),
.TXFIFO_EN (1'b1),
.RXFIFO_EN (1'b1),
.TXFIFO_DTH (4096),
.RXFIFO_DTH (4096),
.PHY_INTF_MODE (0),
.AXIS_DW (8),
.RGMII_RXC_EDGE (1'b1),
.RGMII_TXC_DLY (1'b1),
.INTER_PACKET_GAP (6'd12),
.MTU_FRAME_LENGTH (16'd1518),
.MAC_SOURCE_ADDRESS (48'd0),
.ENABLE_BROADCAST_FILTERING (1'b1),
.LOOPBACK_EN (1'b1),
.APBIF (1'b0),
.FAMILY ("TITANIUM")
)
u_efx_mac1gbe
(
.mac_reset ( mac_reset ),
.proto_reset ( proto_reset ),
.rx_mac_aclk ( rx_mac_aclk ),
.tx_mac_aclk ( tx_mac_aclk ),
.eth_speed ( eth_speed ),
.rx_axis_clk ( rx_axis_clk ),
.rx_axis_mac_tuser ( rx_axis_mac_tuser ),
.rx_axis_mac_tlast ( rx_axis_mac_tlast ),
.rx_axis_mac_tvalid ( rx_axis_mac_tvalid ),
.rx_axis_mac_tready ( rx_axis_mac_tready ),
.tx_axis_clk ( tx_axis_clk ),
.tx_axis_mac_tvalid ( tx_axis_mac_tvalid ),
.tx_axis_mac_tlast ( tx_axis_mac_tlast ),
.tx_axis_mac_tuser ( tx_axis_mac_tuser ),
.tx_axis_mac_tready ( tx_axis_mac_tready ),
.rgmii_txd_HI ( rgmii_txd_HI ),
.rgmii_txd_LO ( rgmii_txd_LO ),
.rgmii_tx_ctl_HI ( rgmii_tx_ctl_HI ),
.rgmii_tx_ctl_LO ( rgmii_tx_ctl_LO ),
.rgmii_txc_HI ( rgmii_txc_HI ),
.rgmii_txc_LO ( rgmii_txc_LO ),
.rgmii_rxd_HI ( rgmii_rxd_HI ),
.rgmii_rxd_LO ( rgmii_rxd_LO ),
.rgmii_rx_ctl_HI ( rgmii_rx_ctl_HI ),
.rgmii_rx_ctl_LO ( rgmii_rx_ctl_LO ),
.rgmii_rxc ( rgmii_rxc ),
.s_axi_aclk ( s_axi_aclk ),
.rx_axis_mac_tdata ( rx_axis_mac_tdata ),
.tx_axis_mac_tdata ( tx_axis_mac_tdata ),
.tx_axis_mac_tstrb ( tx_axis_mac_tstrb ),
.rx_axis_mac_tstrb ( rx_axis_mac_tstrb ),
.MdoEn ( MdoEn ),
.Mdo ( Mdo ),
.Mdi ( Mdi ),
.Mdc ( Mdc ),
.s_axi_araddr ( s_axi_araddr ),
.s_axi_arready ( s_axi_arready ),
.s_axi_arvalid ( s_axi_arvalid ),
.s_axi_awaddr ( s_axi_awaddr ),
.s_axi_awready ( s_axi_awready ),
.s_axi_awvalid ( s_axi_awvalid ),
.s_axi_bready ( s_axi_bready ),
.s_axi_bresp ( s_axi_bresp ),
.s_axi_bvalid ( s_axi_bvalid ),
.s_axi_rdata ( s_axi_rdata ),
.s_axi_rready ( s_axi_rready ),
.s_axi_rresp ( s_axi_rresp ),
.s_axi_rvalid ( s_axi_rvalid ),
.s_axi_wdata ( s_axi_wdata ),
.s_axi_wready ( s_axi_wready ),
.s_axi_wvalid ( s_axi_wvalid )
);
endmodule
//pragma protect
//pragma protect begin
/* Encryption Envelope */
`pragma protect begin_protected
`pragma protect version = 1
`pragma protect encrypt_agent = "QuestaSim" , encrypt_agent_info = "2023.4"
`pragma protect key_keyowner = "Aldec" , key_keyname = "ALDEC15_001"
`pragma protect key_method = "rsa"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 256 )
`pragma protect key_block
MKHWLtljMm7kaIKwqUK8B5EM2QxPAoxLfX2cJIpcD8uU6akTM8tOaCCq3fMfRLOr
SMgTjMO8gkEDhuWpeeY3zc0UfPumTQ7/0MePhALxq2YkHeE6xpzjoV214ddWs2SZ
ngn3y/T3JwvOLSP8v3chWxTaLfsv781pmyiWaW2ANcnxLKss63esqdwxjuAKGa1E
t4Pkivr+Y4WTlOFhRJLNNWs96MemiTmFKpo0yfpF8JoeM118sL8OZxdN3uFAYRGY
JjRQnM2MKtMN/trj8aMlCDTmFBKh76B5x+WVJ6FpZzMTtC43cHm6IFdKP5cbozNi
q6qjblAU3CRV8RZn8/HoCg==
`pragma protect data_method = "aes256-cbc"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 8512 )
`pragma protect data_block
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
efI5V6Qput3fH857O6KfcA==
`pragma protect end_protected
//pragma protect end
//pragma protect
//pragma protect begin
/* Encryption Envelope */
`pragma protect begin_protected
`pragma protect version = 1
`pragma protect encrypt_agent = "QuestaSim" , encrypt_agent_info = "2023.4"
`pragma protect key_keyowner = "Aldec" , key_keyname = "ALDEC15_001"
`pragma protect key_method = "rsa"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 256 )
`pragma protect key_block
sJoun9hXsaBjoXd5vq4p0WrRiBOmYRz7dLZcqHre9vcVYQPlTOAqH0akQ6/PLAvo
b9EUQM/9bTYotLNHFDMfXIxqXF7xhnq3mOzPkpjLwLd10+G18u3FajkaV7bI0IAW
oAt4VExdspy9hXF3QLCwQvl+uXjg6B9tfkQ9lRE9Lt8c2s17Xx07Kvbp1zl7vyZg
jIzh1M8YJu5XWmIzLuCFgslf9Kr91eatrzMfWF2L1/8ZSvGiwK0dx68laecFUI5B
EnV0j0+orVdTEn15qN5+MomveXhwUi6euoryiKOhEuwxQPwJgWJdLJFjc2PGdHKK
NsgFLAx5GqkU+UrV2n2SXQ==
`pragma protect data_method = "aes256-cbc"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 448 )
`pragma protect data_block
VQEpSYyrqyMy0d6e5MIzq762bzEojUES6yynx1aA5YDeKe6T5+dbMqPYRoy2ZpgY
1pDSzeqP4kI9eLLRgGkBdiK45om6VD11yNVwjrQMTGqbPqFazzhwUBUoSB7JwcAD
uC1FXbWkLYXBlKP+jolNB7dno1fTrg9L/nOmBI1I8OVyjmP4bvnXN45GNXRtvVMX
y0zkEfl9r7gQWPbQ4ywNu1WiReEE9uKWaSlhmunbfKrHkR+WQoexuhfV8DZ0hZyQ
MVmGaG4hL0IiKUoIKKwz/5nkAFBSQg9XQgwniu/4pwNJbvB2ps4oRE+CkkabddOd
REXQ3xbluJgS/j9unThBmb1sg08axrYBcQT5C9BQTNxLnKH3jAJtkhB32EUR7K8Y
VFSV9qT4ZiPutIB+jlDZKcQXzDvwTKs2/UovSgdwdL0fDYh8N6iTXamqVKfKR41O
IrzRJLOlQ7Zb4WUDyft5RB/ZA77Gaeeo8xXAfHgbLIe4KM8m05Mx3dOixwdPKOf4
Iivkxru9/M6xHtIkk7Sb3gYK6gcWfW5av9qpewcpb9BqBDlFGVg8BqlxkhxKymHd
rzVfVgBqmYYmXoH399QOsQ==
`pragma protect end_protected
//pragma protect end
//pragma protect
//pragma protect begin
/* Encryption Envelope */
`pragma protect begin_protected
`pragma protect version = 1
`pragma protect encrypt_agent = "QuestaSim" , encrypt_agent_info = "2023.4"
`pragma protect key_keyowner = "Aldec" , key_keyname = "ALDEC15_001"
`pragma protect key_method = "rsa"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 256 )
`pragma protect key_block
h07AONsTLlxUVOuPlT8XRZHZulcIPjI5IlCVE57voQcoylYjcYlec6S5UHg4gef0
KagslBKEtX4SBcosPVrVrw3xKbkRoW2OrahVzxsru597XKu7PRdb8MZ96PsJavzN
tdgLf54Xf5Ya8oqvlMrbmHSj+vVnFC+AqKvIp7XrFpYla22SC4RENMPZltjegEZu
vLTTClkxA4XzNVJjS+RNXjMnUscfzBmMKXRWZ9QFgA4yEJ5BZidIbatzYW3aLyXs
+jIeuJjAO35ZhJozFu/FkqDptxBpy8zvkLY3GpiwNCnetBHMPm5/Yyc5c1525c/g
ako3dDZN6Kobgs5dVRe0xQ==
`pragma protect data_method = "aes256-cbc"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 6192 )
`pragma protect data_block
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
`pragma protect end_protected
//pragma protect end
//pragma protect
//pragma protect begin
/* Encryption Envelope */
`pragma protect begin_protected
`pragma protect version = 1
`pragma protect encrypt_agent = "QuestaSim" , encrypt_agent_info = "2023.4"
`pragma protect key_keyowner = "Aldec" , key_keyname = "ALDEC15_001"
`pragma protect key_method = "rsa"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 256 )
`pragma protect key_block
SF6jRX5MbN1KbFm1wuYk5J3Ovoq4vxkJqESI6Lrz2iEvnMS6GgkGXQXWjHgiisJ7
yeAGiWNDQuLR6MWZCgtUohyFVU5eVKvERRAf9nVBSJBjfh09WftAIdSadBWiV5fx
fxFuUL6SPamPNpCdkO2W2FOSvEEMSqyOalaIk65mCV4mOJyRYzm96tMhjOizDFlt
4AxCGA0kys+jln4Q5Dpo2Zsu5AbVIIDlHF6kqtCRkH4DLpbo2ByxXzHHXZvTdpbT
X92OXbfcUawSFeXO6LqrcEOuVN+X8nzaArA+w+nL5rWhNDZN/nCqvwPNE7I5nukd
Ei2KoM+M5Wo95QuqKU74Aw==
`pragma protect data_method = "aes256-cbc"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 1152 )
`pragma protect data_block
FVnbUs5RJWbO4aJIvIqCuSa9rRE3WgP2KsRWQvunl5MVjQ6us8TfajzoDBQQlXOr
UrzPRf8jcH5Ge3JHkIIQFf7+TuupWW/oi338I4wB5u+kxkF7Cv2BQf3+5J5xF3xj
ZKlAxC2BLIojcgSliK+kpNl/TFnhg2A4dVB2uq+Me1YS11Py8fPTSxEAOgl05QoB
cjIH5OJO9lr25DDpttC0lhvM8AKmBiGT23mG63iyQfhgEfIrL06z4zjw2unfA5sJ
kkj0TbaZy78ZtXVm6yTZdfRPbph+eEJUOCZLMR11MSTTJlGV1VfOpIPYD7sRCt3T
7HmUapmMGJ8KEc+0cYi0o3COUuk1HFyfsVdExdwY5UVCGQUpFPQFLoqvQLHwvJ/7
m1enhwlroWnEsCvBs49VNb9BaWwvIaH3E1jT4HcKS+xuhD5/B5PJWvJBZP41ssmu
d/ysmQfO5QYWX3rZMek2SJxdriT5qSY9I8N6CPS88wOMes6VkC+yVXr8XkvKZRxB
/y56JNCZbpGUEFF7gp0IC9BaP8qdM5XNdkuwARFNnvwp4bij1bErdk1EoWE/bmFY
8ZjiuSDr7rqiAwCr07Ydj7nwbOiUpudG6qqkKLbvu777qKFmOhq/jOJWwo1ja2CO
VUQERDaqwiEbJPVWPEBC1mrYPhQWC2jdYXPCeVc/dSTlFqsCxBgWlu8fy1Hk0Jm4
l0CBQXF2Lckg00cNysHM8LLCSmlKNqn6wXqjeBKwUr71m9lVtusx+vsDg9hE0iRv
xles3Nl7I87JpNocis56zGYEwJSXj5GWfDLdAFx32OArPZHZgZa9F8vMQO4VyUV9
JyJRXBdmNVZKghOrrlUksPSlSEs2ZIuSqTd3yxrC16AujHfCBQgCyI0KHJL43h5M
R3l19pU/NAxT76ypQ0jmrwIMVDpDOTZEZMOQDrERzDpOHSQ80GJsWE42RazSfYai
1NbWS1yphkXvCsEdpm939DfRxArZ/wIjvuigZinHajDfEFgM0WFNRW6dVpTuLcOf
r46q7tg30WFEVPivojMOjto2Eb/nd/GRC4bcVR3If+dvU+hHufAcpRPMShC/zwwL
IUPXp+dKFRiOQ8kTitir2lfE9M9a37ioZZK8hzHuFjueugspI0P2Fs0d4vxxlPmH
61TVmLcYmDQpsXnTGHSQNTm6qF6s13pFUcZw3aY1lNNN+sn38RxrD3bGjcxyvJ40
qobwiHhATqS8/j7JM1kdFqOPnNX29xTA0kYMvYie1TLmzKqeFM5R1xB9TqlIPzyz
aCGNEN1fDnvVQkrM0ZP8tmG8q7iPXXvrvh6clLe8f/aYdo2T5TSww/hSnb6325pM
j2FRgBYVrchFb9aBCmGGoDvc1A/7Nc6+wNRpps/wDvGcUN41TPyZIRmEAoluwwpn
MvcESNGKGoB+gFwd1SdsreIwTo6uPiT4QlgdbbQ6RwYYeSZIWOZBo9NkhK6ebLSU
il0NYDxK8g2uEMRnQefBxfshN9xuIiy1eKgef0JCKvvnWdU50dLd3y2HcMzCcfUl
`pragma protect end_protected
//pragma protect end
//pragma protect
//pragma protect begin
/* Encryption Envelope */
`pragma protect begin_protected
`pragma protect version = 1
`pragma protect encrypt_agent = "QuestaSim" , encrypt_agent_info = "2023.4"
`pragma protect key_keyowner = "Aldec" , key_keyname = "ALDEC15_001"
`pragma protect key_method = "rsa"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 256 )
`pragma protect key_block
aolNkchrHQdmf62Vo9Z1dgP0MtOYoRaBWW72TEEQ6JVJYPWBBRjaO8khH/Z8oasr
nAt/W+xy88PFXSJezzJXyWx65EvvU8/+aXYHwr5KugLXmFdBQoWoFUb+DwN8muhK
Ikytq2rL9li9q4mNyW32tSsKIPcqi0v4Zf9+wgrklH/XUtBmycjvls+noGdRVa+G
t06I+WZ4Rmdx6Bl74XCV29VQUj8i1xc4Q6zBymcQrCQOhc9uP0gYGbk4pyEHO7OJ
FBfq42AexS2wgmTmdEX64M3Tw0ILbqaLd3YHTgwKlUyDsmfaEbaK1UqBS9/f3XWP
pRjsuHm1RjnY5XhVBsZyFQ==
`pragma protect data_method = "aes256-cbc"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 8208 )
`pragma protect data_block
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
`pragma protect end_protected
//pragma protect end
//pragma protect
//pragma protect begin
/* Encryption Envelope */
`pragma protect begin_protected
`pragma protect version = 1
`pragma protect encrypt_agent = "QuestaSim" , encrypt_agent_info = "2023.4"
`pragma protect key_keyowner = "Aldec" , key_keyname = "ALDEC15_001"
`pragma protect key_method = "rsa"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 256 )
`pragma protect key_block
YE2kAOrL4lpJYzbOGvwVsCIUVQOUtbCEDF8bhBb6qm5AayzRmcPL25FFvnq7UAQ1
uB3C658d0USynAoyfE1U4QQb1oURV6Hntl4FB7UVcquRD04cnlV2TxvDYdS0JbcR
7vCuwcLQ4Qte69nkRwXoGW47I8lU9Xm4LMbqKbIO/H3kwcGjabId4a9VWNoR9NUd
PqnLp9omCj724zHA/CeFacgIJ5WhxXKQvnlZsQiVyvLnVMe4kfyh3xvKd6+yFOFv
VarMWNpp0pgGSfBec1WQY1kFJu4x4xVdGdW+rciXNMqIap22sQQ5VR6o674a1ze9
ohiUaQrLxx8AEBjSHL5u5Q==
`pragma protect data_method = "aes256-cbc"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 1680 )
`pragma protect data_block
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
`pragma protect end_protected
//pragma protect end
//pragma protect
//pragma protect begin
/* Encryption Envelope */
`pragma protect begin_protected
`pragma protect version = 1
`pragma protect encrypt_agent = "QuestaSim" , encrypt_agent_info = "2023.4"
`pragma protect key_keyowner = "Aldec" , key_keyname = "ALDEC15_001"
`pragma protect key_method = "rsa"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 256 )
`pragma protect key_block
Clh2+96y2UaAIMsOT1iQd0b4LgP6cUyq8ikdSaopI2xdvmHpy4MCZw5eH+3bsiRS
sIEJcXd7mTNOXDmXhErDaFesKLkcq6yObhPVwNralwLNFz2QMabsWP3pK2FVtkYI
fj4egCCAY9GcswHvNDiOf7clwh4nxs+SsNQqWgn4+e03w80+KoCR7ntVbJvNn7Ru
R4Awd91Y3QAh4vNgZAPy9FhwFh529f3cC1dTuK4Ub0ZWgGquypgjleCIisw4zCvg
FHeGKwJ0ypkTUqj3xiglECEaa4kDPmUqRioVyK8ierOu3UdHSjUZ9hAN96tvKAZs
H0Frv1cvk6PU6a5SMhm8lQ==
`pragma protect data_method = "aes256-cbc"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 1872 )
`pragma protect data_block
+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
`pragma protect end_protected
//pragma protect end
//pragma protect
//pragma protect begin
/* Encryption Envelope */
`pragma protect begin_protected
`pragma protect version = 1
`pragma protect encrypt_agent = "QuestaSim" , encrypt_agent_info = "2023.4"
`pragma protect key_keyowner = "Aldec" , key_keyname = "ALDEC15_001"
`pragma protect key_method = "rsa"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 256 )
`pragma protect key_block
LE2+LFfgwm6au8Qed7luh0VjcDc+B3kA1Ir8num5KBRVTiIzuKhCP9/7nz6ao596
bhXmMC4XEva1VPhmJ8sO5e6zRy0FI9xAkDssejY7vLm8R5tJ7VZpvpLFCSx/5wKw
3wWXcxoZR1+PJk4dJ+QV4eKQ7AyeGiwI8DtallapnaG3wjj6w0efefqk8LCOmJI8
behEHZOLQ/5Qpbyxwm0fdcGc0iZ6RspvMpZvEAL+ao2MBxITzF6OuflDziN9nI+3
y4ixJYyFEAT5NSelcIU7gXzJ+0KaGrTGh1cAqPoimqI4gIC3zaVWjwCU16v7PFTz
rz/Vvf25iwmBk7v5U7qx1g==
`pragma protect data_method = "aes256-cbc"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 2656 )
`pragma protect data_block
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
xRFznbHeMXrJzICpc1qpNg==
`pragma protect end_protected
//pragma protect end
//pragma protect
//pragma protect begin
/* Encryption Envelope */
`pragma protect begin_protected
`pragma protect version = 1
`pragma protect encrypt_agent = "QuestaSim" , encrypt_agent_info = "2023.4"
`pragma protect key_keyowner = "Aldec" , key_keyname = "ALDEC15_001"
`pragma protect key_method = "rsa"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 256 )
`pragma protect key_block
a9hy4rxBrnfw+wxP50p3JnUR+YJ9+SQjya3L9r3erHPvT0IB1/j6iUYV2UN0bWvo
slhWQdYOx1GoBstYG2navdEMBM1ksTWHFLFWZPJ8ttxrSSiPvCG+xsAf4fHUEoxf
FnAG65tM4DRbdjUOKOcqR+OZW/S1VHDt11jO4HIVRc25PAbPViCji5Os5GNVet3J
G7F8KtMTbVJHqamQ0NPuY6ndxvsW8w9g3nuLQjWI+H7MLiJKtUnjJArfK0/wKAY4
nFsxLy0eSD+CLtVbao9QAWtOqZlWzD0FwO4PqQDtVYngsrhjYpzk6mTCzIwBlMZT
fr+ElYHlgyghsDTuN+QRtg==
`pragma protect data_method = "aes256-cbc"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 16720 )
`pragma protect data_block
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
Pk+CU9d4Pl3z24mJTJ8TpA==
`pragma protect end_protected
//pragma protect end
//pragma protect
//pragma protect begin
/* Encryption Envelope */
`pragma protect begin_protected
`pragma protect version = 1
`pragma protect encrypt_agent = "QuestaSim" , encrypt_agent_info = "2023.4"
`pragma protect key_keyowner = "Aldec" , key_keyname = "ALDEC15_001"
`pragma protect key_method = "rsa"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 256 )
`pragma protect key_block
n9rncH1gli54i44OkRckXrPS5/bYes/awIWcV3RmnEBDP3AcPLSKHOEOZge8ZOyN
wVltadJ2zhaR1pxa1g+6VALvUtvzm+YTBZ3pwQi49ZgPt5/wPep+O/POaCQYq+Ah
x7LGg4e/LzfBv0lRKkcuaea6bHM6A7u0nmr63ytA86LQEL7lABH27sO8NaE0/M5j
DqKGhEYFJSP2Yxpfcc1/3ht3x4Fqhlo+joo6gt+mQm+VUsy5T+U2YN+NQtNZ5J1K
XlAJoqKUJUxgRRd9KJhaVDOBzstJxb66ts5wP2FMr84GZrdw/QQJb8Z+K7VB/H7q
o/xuf13FxxHZIa1S404mhg==
`pragma protect data_method = "aes256-cbc"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 19056 )
`pragma protect data_block
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
`pragma protect end_protected
//pragma protect end
//pragma protect
//pragma protect begin
/* Encryption Envelope */
`pragma protect begin_protected
`pragma protect version = 1
`pragma protect encrypt_agent = "QuestaSim" , encrypt_agent_info = "2023.4"
`pragma protect key_keyowner = "Aldec" , key_keyname = "ALDEC15_001"
`pragma protect key_method = "rsa"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 256 )
`pragma protect key_block
J7BOv0C5jXIeRnLfMOyapOQhyKpFxofs/IUotfm22gu2bHDwrkOZuNyLq83WUu2r
xh4uVd6vqtCoovwzd7WfItOCJ+X3O/rPN+iOMyUD4wUX35A1JlV+R91hVXXEJeJK
O80EKuSi1cjkL94t77Y+BP7umEmcNvaWc2GsIw/yQc6S7Haa3qdT5InDmDim3BIS
8ianCpIbGR5tK2EK3Dd1jXhcsqg63wXWm9ytRW/sXcbLdFEA4q4bAwtsavM1I4gY
2p9fZ2Lqm2N2rOQGPJV4YFUkwXWXjQGKOsaBYkwTWJIkJC4XggjFYhfOPFQhinMU
JpYvRNjOSlo9yPiIiUT90Q==
`pragma protect data_method = "aes256-cbc"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 36512 )
`pragma protect data_block
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
`pragma protect end_protected
//pragma protect end
//pragma protect
//pragma protect begin
/* Encryption Envelope */
`pragma protect begin_protected
`pragma protect version = 1
`pragma protect encrypt_agent = "QuestaSim" , encrypt_agent_info = "2023.4"
`pragma protect key_keyowner = "Aldec" , key_keyname = "ALDEC15_001"
`pragma protect key_method = "rsa"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 256 )
`pragma protect key_block
KOhIlvaBdXECsKrbEVJUzh/U26bIKVYacE93lWLn0xKG9BPuUScZRg86anjHyYc3
BakNe+PgnuJEVToYQFkSSg7dilv1sC1y3A1esk/m/agSm1sZPAp9NXn71CeNtLyq
eXW4+sYrPhCz9ARfu35HctyMw0hohs0d9BUvwOVui0XQVxf6T5Lo83B5XREJlGet
fRnVqNWfzxTOM12vqIQowKKuvxhX1eIWMAY5THDVP0MYXaPzVt/tPmSCOAoMK+x3
fVIwwzPHHpF0DPmvj8JSmJmlaTew2n5hkYU31ogV1dVyjnJqPSvggbb2bB4YHnWr
Ej/zH846G4MmCJDO+yZDLw==
`pragma protect data_method = "aes256-cbc"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 6832 )
`pragma protect data_block
+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
hSop+iugpeLj8cyBhVf+qQ==
`pragma protect end_protected
//pragma protect end
//pragma protect
//pragma protect begin
/* Encryption Envelope */
`pragma protect begin_protected
`pragma protect version = 1
`pragma protect encrypt_agent = "QuestaSim" , encrypt_agent_info = "2023.4"
`pragma protect key_keyowner = "Aldec" , key_keyname = "ALDEC15_001"
`pragma protect key_method = "rsa"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 256 )
`pragma protect key_block
EeWN16FcGe9oBJ5oEU+ohgRhhPUxTnyYnwj6pG7yWCXXIFJ/c/Z2IFC6YMj5VV6P
BLyZALNjwaoSRWibW3QAq5qvNT7j0LDbK5BiD3kYMK2NM1ttc5RJe8nvvjIGZf/4
QOgUPzxqMONvaitGcZqFkFRF4F2r32UTAF83wa/GXK2EVl27GpYipuMHfblqQc1T
0P1I+cdkyrOYVdn1Qa81Iz3uywJPy936keWhYnoBKnsgr368YKmcgYSRTKkT/tBw
MxLMmX96CeZt3TRFQHv4gfRxBPY8acA1UBgUTmeIGRMIn6vrYpV8wxIugIJFqVcC
hrVjUIFq33bxM4i1U0TwRQ==
`pragma protect data_method = "aes256-cbc"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 29968 )
`pragma protect data_block
YhKy5e/Okr/GJ/vg9eBL0014mggpRjiJvYYOMd4xhuzrh41ain74Svo2q+UD8cs/
Mgo4yRLBR27zxN0hMpPvEvXU1NBuBn6CvfUvQsiF1ETmF6vIlRHIJN/fz1SU4nPK
CEt8qslpdwoYcLUhTEmEGSH7UV6AnX4Beex90z4Wt8QTKeSbED0/+Kfkp8OSM6pB
inyfFunoVhJXn3TQfEBuAbD9zrwjI6d44tDPFbNzuO/XksRBI2/b5c5aKzCUiGNJ
et8jKCEIQ1vRD1t6YRBxsR5j3oyfeTnLcEZOLBeE5J7aWyNLqXnkI9kX/bkvlCMa
ac8Uad3JiuC2j0yqWxwCVCA9lK6To+lbdmSjW2rvUxj+1V7PdxTolb72R1fQl+Eb
WcI4849SvJEyfpsCw3+ia6EHrV8Hg+5dhoxr58pBjNPbfAqdq/+xzyEHcoA892pr
4j75oDhO6RlKHKgBPWCpBvUie6eTkqAigHG+gKqililZ9+YMV785rvVd4b6OKA4B
Nt81k9zd2kIwBIOaBBBPS9HC8xq7f3gaaWBbsvYXh+7xmxU/vS+powEfXaoi9NuS
dpLNKxxXvl4Tu23EZ3yB5kK2H9CFiAuhLtmK6oIcjBhzTsPhN5aDRWm0RcPDoQi9
Jpjn2v17Xbf4t9x3B+hP2cY4Lgs8ufKwUOM6zu1asfz5mTp2e4End+TdQFegwlXv
dnAEsds989Dyd1oc2gPe4POuzAlMsmb/2OMkIkaKRITs6uDT4RWiUBHAqw3iXLaZ
LvXEcWT3HAsZoQvhMs0GJD4f8mX+bxph68c6LauCe486sMP7RLJTUZRNVrnvIVxy
8bOL4ut8xkDDvgcy9onN6mSE0A7WsdN7J2u1/Z6j9wK2QA22wqYhBlGZr73Hew+o
G8PQ7GipS0MFq2FzwmFVGBwTIBppGWtIx1lWGDI6b8FVH5OPxJUb8s5/cdyTPEDn
eh5eCTVWaUkeqln7/z9nOhHWWCNcTGAOX5yPc6uZrFwwjL+uogudpf4W5V8qWkcW
eTlPx1XfqVRTBgY7FDF2ZYvSLEgCjZ7Uhsli4ltLMQnh1OvLeFGFeI/SCNR2uTMh
67EoUV/rd9Qqzc+kbj7jhq4bNzfXFq9Xqx2JawGeDUAoCEhC8IXsxlkFDYXA0U14
iWf6e6T/Bh2QvAt+jtd884yAg8lX4SqVdme1ZU/5m55OYHXKRZInzfp9yuGLGsN+
s85+KHpbjDJcWnzVUWus+83S0j9mZRTiK7YkTI2jmAGALs1+lGeIYR97wDnXQsQs
NvkMAETgwhlYZMypZehs+Kvc6SLHwR/imnCnxOmtOzIcTK5wg7n2OZkjsfgAv4ct
Mv82yhpDfDivUVFpm0dVK+ug/+SmxlGcfTt7Pc/akKGbdO9IF3oXZE+uMUnLVauJ
jCdrMpaNxEAWp170d1/Fcxi8ur3RdyRMLFvXfraOBYyTYvSRVnMpxG7AbQwo6zQ6
Di0nzskQnjgN+OSTqoklEY8q3jJqPvWFub6Y+BdiOE0pwzMyGPDdz0xvkWo+9ptI
hT3dNnZLIeF/iLWixfYCdySuJP+1nGUClFI9Yf7e0lo0WBplGpOMMIem+Ype4DWy
B/ynfnRRbDMxyNlNKHZiuQaTFVaWe2vUlHHwizM0A0sevVnndECYDw4AHfVwlmkI
H9LKRQxDkROygusPvLAvwuLRufF+x8DFR0WBN9heUOOnnNe8/WjA/GuQXEBwAEL9
POJlZItMy/B7UqSpILzLu24iSBSbWzJ8RrORDqS/w5Zkm/hPKBnzcBJ8CgJfo1EJ
TuhsMqHIA942JCKPkaZIw/7Uqt3bY5LvtFnpOZh0RGLX3QyCsepbO+y3SD+fC+4K
SZ1GIGa/0Idu930MznqLr6VIQlqRqyDn3GotstGjF9uEZWeEgaOHeL2Tz293hTdW
e+Q14WC1HFcw98hdma0c4AUb6VRaMOeR8a9iTGy085vwRIfHBl/1plQLs1gpTDWb
JR3/d9DfmkFlzvjiZZqygB8OVFrpnLAblGhVqee2QChVDmhUf8fOzdxb+nVz3/B4
fKkOR7OWyFZwwZH8z2RbpghaOmfpmCbiJiDysnRUTitX3P1UNz57qIscz6Wwgwm+
+29+mfi1t/ammoVQblW2iVLRyNYE5PPpigAJrXrKXJk4GtFFLIkxlhlFdYj03O+N
mPTG8xBk1pX1aKmyIJRAPhD2eKZK17bxTNxYdnPr768jmIZVvw42AHhjRGXftd4v
2exlKLtTpfeFZZp8rDhbmGM6lv2P9rWhvCEKYd2u6VQBCXY1I03x5wXIXEFnaCGX
SCqgHBkn9UxtjD8J2BPj0QYbdRl4uJiqR3ibygJki1bBgSjnf52kn6l4TWhnUdnK
Z0VrqsIr/XoTiTSojNBeVrEsgnqIkrW2gom+pfdg8IkExmCp9EBV50ZtaeXp4cva
lL3ufCYITxE3uqdjyrKalzDoVmxw9J1+minW7/MhusLcne8H+qMCLRNuvObxtV0o
aS7SauYsN10hU74PBo4e+m9+IQlQzw2y2sOhYZl4pQnzn5TabU8FXf+1fuur9E/q
BQ3BS+8OYNr+SSwIb89nWp6/lL5DUFYu8pM1YSLIzjwWNWt5yIXhW0nzezTiAY8E
rB58+hlgtNtaud9EKz+AszwPGF2d0FTfKhOgQMiOn55jU21eKAjD0JLCKbOrNCuj
388ngu73uA8JnVabVQYCLHzTp6KpSq3y1z/Dp5M4Eupc7IdZdanSrVMSWvLxxWG/
Lwu2Fvm90HXz55oBNDNve5/OB4tgUT2D/OyjS0sbFv+Zi9Oz/duPXJf8+nOWX7Vo
+9t3awynRyodYitp1O9dDQhvJ7bOKcwHMh2Jy95v8zZq7lHz6w2GL8DbEX5wetLK
eagFFkbZf7V2gLi5qXkRGYS1Nfa6t4s2AJqp/w1KhJFGwqnNfMhOkH9Ibki1J2mL
n/TOvCC67ggx36BrUOmQw0rI/a3da8+ffQaoigRYP97ZhsZp8TJnWyX/evNzcvrV
T7Zgs+pVBd/tnUC/v+DcZT7rEccWm1rEd5mSwZHQK8tCsuoMppBknv620hN5DWJn
h0RJmpxPQqk2u0ShH2Yl/BjwdPcxXqACNoJGhE/hmBBonQAzwA2ZOwSYWDhECCXv
g8F+pcyuP+ltwVuzIpn6tflcOSfd234g6DumdhsGSgfVRnnI+611KgBYvrXcDJyN
g1HOh3g1Zm/9eSuCl9lviOFoNoAj3U2uubOSktYznKuk1QVysp2oQJcjko/oPNAR
8YO6B8dMVtQVc007zQ8BkmrTVOZNyeBWNuXgDdvIhS8fB8wdjvoT+jqazuES4NQe
BxgrzppR7uy9KJSbG6idAPemBiePnIIOVlJsx+M0Sd8vlNCYp96jbFbHNeU2f9rC
SBdeyMS7IscVkXtInu4zEVqLRpKaKqwDAVXptgldky8swPlwNh/Gn+vrmfM47vFC
Y8hwdNG6DzvuxwoDWHdvjSid3vLAWHYkfJ0lFFrVVgX2rkEskJRdLRje86ok0qcD
uorGb44AuPxOpsFwdlpvviIPGdllh1wrnrY8Bc04XIZn8ebHfRFYDMBBGGOSVoBi
2FApfTObACXCmwrenYMX2FUn5r+LnJ9xyW5+jcko53+7MzQyQv7lfOMJHnEyMC5Q
Ug5UWJdSjCaYIkvBEboL8CSbOmqv+BJJ5yAT9qIYqOXfRXnOJavDbrJ7twbvnxNE
noclo35kgGD46kcHePm+DtMnG6b0VJgPYufpq947HeNpSosLfgAAFWfWtZ3f2a7W
LRHkLf/gGOIeNAKl8MwnhYqHuulrrftyLIUXmsuJnf5KFSVKRIsfueJgWUwWJ57q
knTLCb8ncMFnTQrWR6e6STdkxqe65m9WnDeCidKBYI41SjmaVSipthAbDbxe9lAE
WcaB2cFmpeVP0N3wSqwyttn3mArbjxPeMAVE/8Ci01rR7idAZhL7Q8KCWNRsYFkb
ZWNmpmZVmP3Bfo1cmRVc+k2EblQjtfObS72aeG+rACg9LMRVUpEzjkopafo1Kveg
+9KMvfRdpYVLkKw2om25ag/eVeKpBEPXJZLG3wI9OjYAUlgGN7B3LsGTEaaVvKiQ
l4Zdd67giE6lvYNXpo1285uhpjg0fp7Ul7+tCWPQfhxHqInAuKLOcyhhQKzrH0AI
F9JDV7dgo9x6mbE7FmHsy01XDWLTqBJ5DdeV0NUcimVDSJf6YB9KjmCJAiE/KnxO
S/42kHj9DGnW+8Rubs7WM6StdHEwOMnGmsnkMXFEfCHw0dwXUiKknfB8XnO5paiQ
f/xRgUjFJDNoAvbkZ/HxvH94WY+JIjynPnoGt5PFQXmJVOXDIyDkyuLB0wmpvj23
JodosVqjQBHGDptRofrXsxgYeHmOnEJSdprbZLGQXbJBCuXBlL2BjgUbYzOljZ7s
hkDkBqy3rIJIflkwvBiZMRXlakxLug7o/8T+mdK3rxqHQnS+fXUYSqm+iZ73AxRr
RoLsexIWkpPCMdj+BBI0MmgqyWjJWIyLwX4Joejbncq7LmI6gbRGw/SO9oAmHbN+
BrVXKu0JiaHn2BEoqOVZw98tqL+uHp5nEuPlRWsAPYlUexDfVCs3n6aKWu113xzC
6IgbcCAYZ2raXM81GrIrjb8HP7tR/3vg47AkMYAPG5aNZI56IwDRvkQViK/WFKJl
kmuq78MxQRcIDxQBgbOz/Wco4+WueLC0BTcTx4rxSSzkXSC/TNOuUBFJH8OkMpli
aGDkHaKCfRkCh/MjVy/awO9WnD4YVIyVoPSRiCgtDjZtSCYBTQWGbNCBoc+1Oy0/
prfWDRU8lHe6/wC3KooT9NNjgb6dQc05oz5iGOK2YS2Zyx1PJxhYkLkv5lUU7GwB
/FwaVoCjbhWDg7l89qfBU9Y7dGcRi2TTY4Axj7A8G3UaViy/xSCyOeLQkjmI3tuz
wo+26gf6I6DA9z6ellzzT0azms9Guo0vEdvVNrBw5QKdM0cHmyu/vFMCAg1/Vd1L
+N/s+AoZpnO7gRX6e+uw8hDo07/fwYJwCGW5ohkIkHKxOr46zKq4sytke8/60wih
y6le+ZE2m/kqe4N3G5PS95izCPLgSvvWpNyp4nuX0TxRdLERgIo+D5sezDix6M4W
UjnsQRay/Wx9vRpDrU842CrWubQVoEc/AgrHTPjxULoD0CsNpCpgmq/dkdjTLH/+
nDtyaIKdHMRGQAtRDzOoRJ2BYmdugtkWTvwsOvAsPKlyEygcafs5E5QcuZCE0Tq0
kf+dIiC0jTgPgioE/uirnXar3BnN99YV+JUBidLXFnGkFwBb++zUJuQEn8Ub7ZVh
6O94COyXn7jeZXj6bLkai7w//0tSmoGveISL6Vgb0rCIHyY6byZ6SUGoyWuvoL64
R+Ad9lc6mRyQbcE7H3/FdH7h7HckrWT+XGui9J2fxZAVxdM5lDEJ2cC9nAZh3rPQ
Ms1MbOC1unZr36iVhjf61Fs5c/BqDt/Ozm/chZP5QQdymbXC7ivAvAmxA6Mcl+2G
U6Xg+D0maveo12JO8gv8YT6/+egYm93jsd84iTobnWfegawXJoI+BQO9s2nZeofp
k60qjaNbMYAs0xxjGOTXax+1QfGuKO44pR8Drd+xTdOmqsraWNfo9DUtyrMgZHVS
ZMmyf0ETPgjnWGScOpgMmHXqOnW7fl1EF8aO+Q7OAu7WXg5qmgiTf/AlL6rMibLx
FQrA24PvK9ie+wUONJcpP5N4k4qgdQjzDlm20iHERWzvNopuiA5N8P4H9c0cSU84
nulOiycTftWZ4R3EBs9MHMqPp6aY+bWGiOLH+LU+XgiBhfS81/RrxgTnMkzvNTTh
vZu7pVygkMNQo389Oq3PomS2oyPUq016TO0Jp5H4uWA7tZgFSEYLKyUpUeVKged8
NOBu5WRjNwJ9QsWdPIqt2+mvfztEc8gmCWjxovSfa8Cvya13Kgg/TYJ+2CgSX2T3
Pe2AqMy3dUfwnRbJ3vjVQBAs7b86rNryphzayzpQEuXIdSEPEJutKUqMawZt86bJ
YnQYxkJ0IiXBEL8uxzoZYql/1mAO8+B3Rcg63Tv5aH6jh4Sr26KyXM5yKq+kKMBK
yOVCHxIaL0Nlp1P+X4eJmQZldqVhwgqyoAOXCTgQL4rMBwwcAEqi2kghdEEKWaOX
1jwKCkeCHCtXI/Vaog9KmvMHOrRNvR4GVdgOPgAYV9ruhmmFjcI2uyxMrItf7mxk
aG1T06W3+I+NHm4HrMssWzX6AwiyNIQ25jbKLELUWdr+oG2qVMY5rURMGt4PJgM7
I/pBH68LVZ5js34n5ZyjqAJpCbM8SG9HXTGs5EiNdm2azC5Jhpz2E0kPxhtAjGrf
04ZPJHM1jncG8PwGD9RWDOpjn32KdqhFfWQE12WXXShINuMgfaRxhbILeRPrvE9i
hpVef2Fd5cGaoXxNmiRRFOAu0oD4qcbZ9qBKSNkSFi6ogls98zGzE1Xov94dVw+u
E84wNTlVkpKkqknNLuZS78lQJaxy4tiNR9lvvdMmBgPBMxB/SFh4r8ON9iz4jjt1
z2+bGFM3ciXFHGMLe1+W+PsdDRFPy9Y0JNQDzVyjSioqT1RTXABccbhfURUaWVbc
4FtBuIUX62m+DLYe/0Dmn92ekRmgUqgeTZG9FneoD8Xr+R+UCIQwFIduTY9XyhTn
eTIa+bGzq49bTFfJPRxKHmvYCuHdxcg1j3l1Ie33xPBd3213ArA/67UbyyWEqpPJ
A2GLUwCJDjK7eMt5nMnVDoeEtEU92FkmGSNQklTNQstjFeLbx6CzzLT2mAHI9x3x
jDoFCbWYm0juWw7f2QZrNLz3/HwiP08udtMMoKkKVYs4dfQBwr8XDbH7+tQXoweo
rwY3zv893PYI+0G/Zw6Cn/rBseHENAyjvozUO3Fhz+A/i8FN5eH9OLUlLQNFypZH
oM6eqdP2rtSed8cK8/GRVpqR2jQ3heH32E2s8pWrL/YdPd1JlrV+UWpbjLO55LVG
GQe08zBeZyD4ris7oL5l2xHLcLEvTA3EtpYAdFEvm4BcELO970Gox6uMIROaY3re
b0h7OcMdmFri0o07E3YdSAJ0fDMCrw75tDSRb6nWNkeITLiYFfCP7uKvCIMmhJ6P
+/+ysDn1CIggLsVvRtq1GH/sqs7zDjampB912d1Eke7W1P7GpXxXkqHfa00csK0+
ffrYCA+fwJ/11vGechmpWxNCeBKjeVnGR7iyp8F+NH1OiKmDiza+thzuecQd0DHj
REy1872+K+DuKF/P3C0j0QAWkBOd7/ha1+38RjK6yNj6hVNWsfh9uDMPCRyjR/4W
+BD6UZSTfpZs0Dhsdc7sMhCCdtLslJn4puVvR/Q36dgUVx7va9saYzdiBMTJJXIx
qW0Rpv20qZX/nYRy6xCRZfX2+78neGS4lhs2s7hLjz0zZZvOg4yj5s4wjM+c7ysv
wl/OJUydsCQ3NgDArbeJywBLx8v75ODLBu2TfRA4/PO9JnoXbIhJnXtWHvaTP3BN
2/EIahgXo3mnTs70FIVMQ0FO3cI7MhkbJF+vse/846CDjbGVRivel3ZV2qMvGnr7
/V+tBqJzlcjJ4zuXlYH61dKGMwd6/XrZGRT2PuprjYHGq/BT/9pr/cMho4o9VJIe
Cf2JpQLiA2DF4h80yCQYer60TwaFGBJMTp6xIxU9zf5tX7o5yV5nrjsYwWyo9nmQ
fLZuLuaS13PubhkZO7eFMwL+WQ89DZXo0shBuC/CDrU+fcH8XI8Qif7FaTfYZI6h
SmQGihnbAZRpbTOb+2qBPBb13N6OOR9cSD5exx8kag9KCExTlJ5C8wHuY4jssgrP
BTUQFJ0jQnLp7UX2Y0T9C6HRJiLK5hlWWWX/JmcNJgTVm2dLKb7hzUayL46kNFCM
uVdg3Yjo7pyxn+49Sv0LsZjPyafFzdWJrKtAULWa75uqwh0ugx9IC/zMIyLNupi6
pThGdVZtqiSOf+/VfWoZeqzrsu9GcO6122snCgqZLQm2aJTln3VWk9abZUaeFCUm
Sk4vH7IOSCSmB4uaQoEzSYSCYP1IC8W1Y/eUhrF8QqLOtwlP6p7AbUO0acpn1qwM
sTRML3KPSD2u8Nu1Dq+hw4PTEVrPoUZM5/Xr95NF267JcCDM03ozX8NvN2v2VNPm
dx4zhc68blIvjwFNLb9ORoZHAO3NCw0r7z0N5coSLYr09lDmacyBXW8z9YPkn2pC
5f5RznCOAfIbiTbH+6zqBJngiJFkk6Ie2JgfJYFyN/UXFnPatNDVRjG2QVjonbIQ
GhxcQtWDK1R9dJK3In2Z4F/pwpflorZl4KBKCwI1U4ThBGZzWpob8rLBYdTyvTcm
X7BVFxlBCwcl69h8fUkctX12da1t4831Fe/idnJoc84jj1aRbbuMin9QAmmXShrq
GQjo3dwcSPCpf5Wd3LymhQoD4YDbkSIJNKPLy0A3VrU6O4dbgqv0L1y5X4rWtUQU
Ao/Eb+tP8grQS++RSzu10N4xXfndskuKbrVMiS1DqDZYShwl3Abl31oLYCWUgEph
IDvfjvrS0R42IEbDe7m97HOl4Ml8gVuFcMYf6Og6kyYag0x1bcm+dVqBtkhs4xu5
gNzLtmlm4JQ/VKkaQcap15/GfDZb8Jl7kL20k9El4DM13z4Z0tv2AU2rMtKR4x2/
LLsukkbFS2ajg4Hu3KKuXuLef07IVOCb44jn+GG6LRZEJ1hLwMrR0z63bQIi8mXj
kc40TtAbhDYXwWmqlDS8YjV/eKQ6hEjSgffhyOCZVCeoh+hbCvza7JFIDx4zPNCz
G31lWY78xS3M7qH0xPU1owVt9LPPElmHRwXZFZZLgyCcxv4x5vw5ZaNEZHO2pYPA
qBbPJ1EoLuMEZnmBEJgck0JNFW6isHMOhL8p3W8x5qFjK+v/Ze+CHhJeum6Br/Qa
FR57mePVNXQU3GNdSoO8RMnqYsHOfk//z9QRjabcLxWzqNz7xybmlGrCqq1m65qW
RITDKmU6AUK4WZW48CekvowL6yBvLy472moNKXFWYckDnpCCl27RwEWzDPkC5AUB
I6MztSfBEhDuRH1cliEpHHmirKeNBTaUSrrOsLAhib/CvZY2CQzkzxhCFpDrjMgE
/36rl6CVwvC+o4G0rW7oi6L/AwieB42x6ih30XG1R2eJ7t8x6ip6hbHYXK+SzcmL
yQu49J9FAfK9nxZvO6IkBsGe2O28JrOMxfBniScZ02SzUQ+rmG5T6wx28fcDwgCV
OfmlXo7fepHGuTTV+7P6iuxWoqgWdmLSh1WUhEA5w/X7kB/Hmr1ivAT8xzChGsyO
fvVl5CLA/RUd4OQTtAyakC9ueK1E16OxbjBqG7IbQP47Zn+HHIUduhPnCjPr0Osw
kmuzxlCxGY2TchxEZo7mVRzzZeaw5euA91Ucw9HCOy6rt9Fb523UitbRPLO8+ZUo
0X+5c5n5u2kJEsqFcK7ymufSva0HYsirP9E3NMQNQdPYA6QMIsJh62n9kjPpL93f
OkkW/3IDYqS//vAP81lBk+EeSvrRBeGYTQS272RnCmWbIk4EwhzVUEHBkqpNgXCl
DRGY0dRe/86kjTYVqkBWXlhze1EPK8HMBo7rX+AAlIq/z7yEvlFGbgVFSgHorGq3
4FaZj1LpLekro68AwPHUu/OT7vOanbPn5MGCMDHmH+qZ5BLh3ZT12ROox6OLuNX5
PpphYGBNcauSOHecC/0cjp7sbDFaf2hx82oimHI1vSgsV+XfoV+3AidtTKklYSbF
k2jmANyjBJddmBflW/1YxQN81+OuilrSuidYpJSFdiAs+W/RIIszXo1cfZfv9Aru
l1+HROlAP/N99ByvpwaYcgKeUhSAVyifi9yapYdkiU7tdGJbUgXjtJ+ly9WwiW69
L6cPutPV7QRlTJ+Y+hM9xJOy8JshDlS1wE0fMRwIVteZ7TfXgBOujrhlUhjyhMNA
ABtf34gAXoiD8LRb+bghl4ymKCwcL7VbiJb8R00+eyyPZqYDT+Yc4+LYR2L+J8MK
KLX0n9BlAn9UmBs16bVX6o0vJjyXIE53twKIfnhGlc2ggNdsCZzfbr3LC+7HpswP
TYNOyJPm0dtnrXFYKR+CjPKb1hVtL5i30v8wRb0yl/NnUaYZ0TWkD0/qTrz/EPHu
01IaLh6QdksoJ5NY1KsAO3W6J0JeKP+lhX70NEfucbuQoq8gejVIJHREd3I8D/qN
SzgeC3X00UyuudPXVwjvgqlDpgHQgUcFCnL7x2WfqIrFr3OX95Yfnh4jmHKJxQ/Y
zGXpUHy8xGV87n71KhzRKeIMnC/gn7IutOZ2dGho9PPxMv2pitcRx04TBaN8KnNs
Qw8zF6ljz0iUe1ctAoJQQ0nBMioIfYukVZGT4nQASNBsURs8QiKD9ftKlZnYr/ZE
RzkHRqF/fHJ+aXR9hE1ujUUDBaEL6V4TV0BXIKFyS7jXILNsKuTk0Q1v1RT0JOKJ
VNRP0TzUuD2FFPQ9ePzoMI1SxDwZQlQPGajKxDBAukNQVHf8bwYbbBbp7Ze89AcB
wjVvlqeLoKFzJt8pekoq0jPTGu8HL019NFWwCkx5+AQl5A6wMqRA5sjKbBctH394
Rq0x7sonjGiHnssYi9vsZ4Zky1LDKnl0I6B5ABpx0ZxokVqYYrmEyRoGXkDnKmSV
ofyNZvVNBIj8STmGF7mmvcaihIxCYHKvukxSYNfLVH1ijWRWvaHSOVApTInpOO+J
0CqhxL8tv/hwAfmeyVWSGdfUAjV5+vNr3yMWhXPSpRGMKARuJQ72tdQzSf3Gvcgh
CMOOrpNWhWS+/qCC+gAXhu/e8suA2zI4j5GD8XS/tcoGh2UCZnu503o7RNdvscpC
2TlRtu/8cRsBfIiMqnyXP+K92s7HLVYcK6nDlO4uIB5lcRMn58WcAC5AOZtl+cR5
nzrIma3pacHV4V+UxbsBVms5PNBe6DcsT9iON5Be1a2OsJDqIFvcMmlvD6GpzAnN
/VMF+l/24CCrPBVLm+WuyM08euPnDZTt0nEjca8ibGagChkw9hbQ5ta+21fzK63d
q+yM4YltPbe/xHSD6XfpCLBSSBrywcum+S9hxmPL5tiZ2VpNcVOAB9PVSvcFq4jt
s/cT2u/al8cyJbWTaL0ac7tI4uiwZX4Fxw7S0/xful5oaiThAQv0M66CNf92KoJG
J7tWWU9NhHXurNLuYmthgedWUMjHbkPHE1AqExhsOT++atTH6ywb5weaI0wbmpO+
st7Jv3ukaLvat/0jm43bQ+Q2Cw4L1olu0mE89RwnAS7aXqsOUZ26ZI3GL/y1kiI3
lCNTV3+MnDii3YIVP826kIqdN15q40Re76XbSeQ0xGMb2lLGPOpV4P8TrQTjcdl7
dOZuA1TQ0Sp23MCViaDB2BPgNl0iJ5a5OT7/Xiq4CE8i+2EvKDk0xzF1tq/2GV+a
iziTPgtRZQMke4ieyLdfuBXAaqlYBvlYwPHu3yUjeo0OjKF8FSGCOB0U9uZx9Fs6
YXnoDdB0so6/YMQecSe9nJ6CAcOBG4l7d+6dRk/ioLZOS7jlwhX6aG//ocM0qMGS
vvTL0WN6Goe5q2slQKqMNijNWickYuzKKrf/cpIEWwCgIGCf4jyPEhEFXFaYSnT0
Ky4OztaiZ4H+UQPQbOjWwaCzz3G8LOaFwFh4EPP+/5C6TpkuQ2b8TvrNXhAMz2BP
8DJ3Ce4OTj4peKQL3oqf8S9mUhoQ/q1pi6olDgI/kAFvi6Kn5oKMhkIU7xGrxYI1
+z5wIzNbR7AltrkkNY01k2QRJ+KG99W0zKZriZgWwMtYUgYzhLZOA4C6aX+5JB91
KoQj+RwIqhH851RKTsHuyPHtXkHFLDRF4qC28pEXXYgHGbwyHbm0oRdkzG5gdFRG
cDs3KA7ssDJsZ0bZevoFNkBFaNpt9HbJy3Zz0oNw94kG9dGZhX0CFr/rx6XbPO09
qkYMMnKaUA+cxV+/xI8qU4n1ns2x/YO1Xw6uLiqwk95a4hD/w3IzM8aPtpH1hDbE
e+BccZyxZ7S2/+h6xHHvRNQEf6gM2RQAEFQNMGYBOQSifV7Unuh1qAT9LgA1gyiA
IbFPRjXl7GnAHesrXj/i8T36d13tbVLunj7r0f0x9MqVmBdXWvEb7UWB1eRbKRVQ
Ds9KSwNmdqRzbTuSBiBQh1taOZpdFl5Fg9ZNtakylPeZm2DtoDe5HxiHODp/IUBq
MhqbvWSqPnjkzw3Hu9Z0v7M0FdaBy+WtUVUL1T14vcZkeP2eLUpIHc1LXRzBd08W
wWjuLPG3tXhBsnlkWrJfFyxBQy1b6XX3gD0p9H4wtcnZ0OYOGX6l/DJqjievuLwY
CmVkDSLh4I6z/kb/gkJn8Tk4O1pKuFi8CBgUXgHB7pLfiX92wWLenhbpd8V1NYKY
q4fJVMDaT0+N0YwW/RBclUFBR5fzVuroWO3M/kF3mCUQTYEfPFq1GTwj/m/91yW8
FlKYiSBAgWzzT5yD9ZnjQYfXrUYoqDB1EmUT3EoTgEjRCc2moQ/HdQl0OkhbsKwi
417XfF8y/UiJSdb1ep//aMFoKa2KEOolycNnh7VwREApl4QsobkEJGRpl5g2akMM
DThOBUH8rVJl2oJkFYUKQtFCcwNXHPr+qKYugMqoYc8vQPhYMBWk8s0pxpOVcFrs
HmqTomKtrVOuplWDcfcGluEWrhYiGA72LGFh7k8e/IkLik4c3uKfIHm81eWH0zyc
0fxOa5xqSvUonTSluCiuf4gyQXyhjqi2B+lhOCvci3+TY6FWJYNu4fuZQ5qhPOe/
aYzSfh8MYwOC138piwuI8J/JtA0pLprMg1u+0t4Ym8eCEikKrYYOspyPbTcbk7F0
ZTPkn/h8JXIyZhsss3g3QX3/R4ZYJtD9wbTFUt4wdxSYFdQYDEVjs+hwb8WDUD9E
+sKhscXOe6RfUcT6B+Tgk8BMh/7XdWRTpsZ9SM9ahIQgATWUg2JhBnPyEwTuoZN2
ImOvY7p2qxrzjND1uof92AKR1+3cvNv0YJO+kbyyfJjr55kkheyZqm9DL4DbemI4
9w/LlTQVF/g8JX0B1yZ1xBiJdG64aWRMqTVfpWiwKSFc/EWMNTdO2Og04qAnyPoT
ufP6OLbyI4I9MIqQpkC2N15QJwBYmjswQ5oKwqs0unkRaVJ3xaEr5XQeqbpAOHT+
m78RnA6KOGXFdcP3/pRBHuCQWhlNrVi7rVhfuoqqydvYprt5edvTIrClQuHJGeMu
woMuHC01vXlhNUzmOoP5RRtQHeUs7Z2xaAl6XoxmzBc59FZteEY58tabW5vOs8uw
qzyV9VPLJ7Zcg6WwnJi5gNIS5cXmOv+kxAiLpgeKIL8TSXClfatnJnGVSURrKuf4
aB94P6j8oE1yc3+dRSC8BQIJyM9QOFvGlyG3FIZvcC+owNUrOhi0AahUmqCO6CMB
AU5nH80j7WC3Oo8c8kbsA2qhXpbI7xmZZr5iNW8UTVLvVTBrvEa+c4kLMudNtATu
7dqkHiPOd6u46/yiwgKoiaRBPJ8xGziVPW7SG948yA3qnd+4D1NMLIrRp6CdhiRA
dr6xenUduGXlVbi/XVAfi/djx7GT20tllIJ/opNfw2TshnBwjz9Lvxvrtjfjp1/f
Mg9RPLmN9iFjsEg94w1hu8hdbxQwiDaAOBLmeDtt+uk7Yee0b2ECcTlAOWE+o0KH
NMf64VMiQHTn4x7O0pnhUNWrJQJUB+6awt66SYuEgMKaD2/Ey8nkdoulVM5xat0q
G01aaT+PVkCr7UWBlZYPDN+FsxuPYwZJqXqTxbgSZXBRD8fY25Izz/8hAw4ec42g
U0l1ltkkQrgyKZy+R1uzc5dDEe77k9/QbbUSgFobiMwYkV3FVPM5+PLJJ8uVPfdF
G0NF5RP/uVcOX/uFPwixF3d48vOBj8GeVolpRR3HkYOIK6FcHxi0NYQtr5L/6Cgj
bQyIVH53qIWwhGabHAVJQuXeR2I3zo+Qhz2CPvgjE2+ZFfut075ZXKReDOYNxUZK
brmimCK8PMvbr4XKgYJ6YtJacYqsG275xoSeveVPKMGex0mkCL3vVQ5XoloIIgOQ
PH0ciWzOiBOttEMUajlAlzZ8S04zKKC0KJipvbyvebdsJO6WDk2mA8YwSIcORU7o
QHkzifQjkGA/Xq+B2JP7blw49T0CkFvSbU8W75OvMPSs9RGzxGtPSJlxU9v3c8KP
NlkxF34ZAV4xFWuF42vxPOA5EbT1nCVu5fLDiJ6l4QNTWnq6aNwM2ITnH57fvcgY
5qxDVLvyxpILEX1UZdRG8dEtzxznTQB7F+9DnFZ5aPKZFl2bM4113vdPA5MhDpns
H3GfJQ+uW27BKylj7cTJPiPFW1sOSF6QRePXgPkF0E9Ny4bO0IsH40GPpD6AGeLN
1iexGmvrEfd0ongHRKqMGW2tUTl/qZFgzmTXMOE/R7adhw04JRiix2KdS3pnixAU
ASuO0U0LWJ9rNDVy/YRIryNVKxmk+HqiTBygYyxoIbK6Nxw7axCBlnW7PXHF7agf
fC0yRtb4FNqly/Xe7AADaOrMG9MQD7HbmFNRvi/4J2FHk+29MkJIkVFcfDh+wQNY
LWLgbRUd4jSHCwafm5pu2GvKsKLUKBu5cUGChJIR+kxkq7gkQ3uwqsAKWPTc7l28
4j0LEqS3+zr5X4+BRhAYQjPEtZxNS18awX2UYRj/gIOqg8PoqoTpIGGJ/iAM4ntU
a9jH3zxQrtrOStdjHIz/Tio46KOOyESYUooKnvB0QYEtSvu39JME1nZ+/P2TKfqC
SoQmjFy2Bw8WYslyrGmbtHWYaqtQROjXe+wiKlql1MqslQHVWymL2CPxqWJF3nkc
hV+Ij8geZODKviks6Tr36hGxhnSHtKlJa5mHQW0XEpnoFNskZuK8jGjD9LXtTJTL
iTxL1it717z/FYDcljNzg3XqFmjSC265EZPLU/l62HZlU0x9sj1aqM6Ea7bqQDJ0
YrVxy1CPEwx9FJL1fvUOShqx6C2DPAE2t6w7LHwef4Hw9+WICAzDGYl0NQy1wBoQ
xCTfS1+vNaeaBH2ff5G1UAD4D69Ny97POUDOKqYjQG80cGbojBYdCaAUq4T/GlLu
24zvyMP781AoSJ/Ypv+26anN9kg6SiAyhjDJhZbn0cpMjoVlBmqHiwJ8DPNbyq0D
wwcPxsbj3+jRTct7Hnt4B7hK8hKyTxNv8J9a8KZb+PMvkmFh7GldJW7Sk3Ai8IKY
81cEeEJ5ih8Z/DjWBYr9g6fGuxA/htrcP9nIkvnYMJw8yOy2dKHdau1CZ1162fbR
L+zbgaAP+FQamTP/lb2HSuuWyLVQU4sr/O/v+mVeOfwx8HRh6QGod54BB66T3JMm
hI/6j9eVG7ti7qCoZ3oWGlbVFzvN+niSCwd0xlkgcTGQGvWEwn+g/hP9klnVlQt4
tiMq60y2dpwPjsr+8+aAjyT4QD/JGJCGlA8XezMwpY0k59kk9VQjurUZD6cKOQd3
supNOkiFMoIr9jf91qpY8Tt7FPZHTMfqDkzkNS4CNc8WaA4IgKEiRCOjOuWqhaFb
GPIFqyddm9SwNjfQlB30/zIc3vn1gvjE+00vGJSJGNHmX7Qwm/nqYA/zr7toLz6c
3rY7mV5j3ib3Wwdv98Hw61cJE45Y59Guf1O7B+4YAKkzS9rWJLemzvZevEbT/UK/
EEyOeAQ1k7n1IBUAtIHuCYb3qKlasQgcACDqQ85Q7g0cGL2OnJUW7zw4AZUvMynj
xaiapxWNFRhwnN0Mh3iQQRAtPgfjs76K7UagKH9ypRTP4lYb0y3CDmT4mIdVI9uT
nKqzhxQRgIeJQqJSXpOgS4oTomSeBliG+ZRXDZZTVJSIHdSFbVSpyPMDmEXpXIJ8
OYzMWBT/jjlcyczhb3gzLcrmq1Sn/F9h7oFDGDiWyBfVO0cN2k/7ZMBxYTEe8hul
EC1//eLqVcQRXaHQAq9LWEtYiyMbgSIaONK1s3OcbvYfTDczSOaOPpn0jAPbh9n1
kteV+smvsdCIQvcCF5DQPP0d4UK5NF5d1zUi7fXtYzuW2NDDfsms7veVXIlwHGfl
EWAKN1iP8Pql2g4J3IxQNJw8pQkLtM22rLUFr97pBV3lNIb+wPp1NFEO4Dn/gyvY
sDARB/i8nFB+kQEZkHk05Lq8FRfV9m1ZhXc6ybeZviLff7eD8FIaS9Fg5whSihyy
hFvkj2H/LbMHZNfgj3ror7SQKAnlQt3aIomD3ytf34vm7uZgbD3lrdug136kRtRg
iX6TtQzPb6xX36P4jVW3L3HUlaUwDO+lKA5eScIoEUsYYXgGMCkvnwK/zNa2xnum
UWdynov2iHykz2F8GqO8QS89Y/G39FPICkFQgv3mvhpIifPBtaUoCeEuln3FcJIz
zksw0av14YxC5RDeSpbU2GySaSk6PgirXWSBnKy6+s4X5zeL6C4GHIoJgBP/j0lK
KfbesEdde0BnyFtjy4rxD3H183wD8ky9S0ScmyE7fVViI1A4+SNexOE2PW9/F7Ta
iIheBFBPi3XimOxMCFogncXeL6TFRKAEOgnc9scfEbjKWu/BVr9dv3GOMSy36xAs
BgzBhnL06uIkXvrXy8xVpSX0hB3IGOhxncfwnVmdF85LBCdk166lDQJGBoecKYBX
ckb2Ec2WmrI3iC6KDjwNApyGdrAZ9kbrXRqv6TrTWBNhPahvGFvZWUUyNqV6fbXj
FasbcaVZXRCQ0/2pTB4bmPrMQzAoVM3FLHVOZIAlqUcT09BiS0APm7GWryH/uOc/
4IulEaXzD1xHWsX/sxyKkBW9FC7TIqZ5I7JBXBjs9YWvmR/6lhuAszS33nuVSU0F
SOVAq9Pw7SWEKhy3oyHodHIIKDT8b778SfShgpGdQbGEKICOm/x4RJWiBHY6gdNf
2TH3kU6Po0B6UisQjNJjtD5tpuErxQa0yPzFEmwiKVJn9YnJpn8GNZ8G1NVmoX+O
WEY+IPrzqHFSBuHt7T2KLh+aXbRjTf7H59SwWZnaP4tZxKes1pa2gpx5rg3FuUOM
Cd0Wrrd/B1CTX7/l+hqm6U/rf1utCrg3EqEPAR4AWYtSdTvk4BNzP1dqV7yrJ+ZI
h31O4Ph3gA46HqOKbhBBzMUqxHzvkziUM6G+DjpZNg4eVz7/Q9yPRcTv1fhmOiBa
Yym8lolOuq6CrvkAeGttgNELtLA5dWRTDmxRL8txx+Fji6SKzF6o0M/MOvYXK99N
nqAMFovODYajClL7ZHjjhwwCIc1zfxrI/S+dLBoTbnfhqUOiKm+ND1QPeA3P58XP
1wBkxlcsWrI4W2/lwW9JQBFS8XNM8MU7df4/ROehxRRwEzzqMoYpT6Nadp/vBRqo
301F/gDwlTkaAUoHCtieJnIhuldJxyNExF83moAhwM21BGOjxHzBYC0C94Wnf1vM
9dyFgIc9fmOzYyOzlJfRhjpZ5HrgHR2cQ/cdpgElQOFyyEfDinIhCrVAfTSQtnzI
6KnAmhWV2QpdYHMnBzKJt9Ndy1b4tlL49Snolx/6YES5O68lGeHerfauKW8dEE9Z
wEsBjQ2+ZhgLQuG4smO3rPImz3gg+ZeqiJPdwGZBUI3gjUX3blU3SZOa7SFVfKV0
ars3r9+8hguxM4/R/1KU1okoakHPScvCdJH63qtJqrkYtjYAhsCF65JEWFZPesGm
bETSrFg0lX9GAaRVls5zItyfT+qn0KuTMZGn1SavSKnyAwJHQq2JqLdpccB2h6zJ
5HiPSXQUgt28aJERpSxJJF44I+wFL9BZlyliGU6KlCI0D0un7HXESbMcZJn/imPm
qsIUX7b+A+1eUVAEny6KwRWza/fcverw/s4XvJx+6oxlIPkxrE6jNGicVRlfisco
oWUAKJxitKr8qAe5XGQKZAMS0SNYLZIm5NLsq1NzUNOzN5W03O3XeTRbKKp2LC3x
c+cO/s0iJRs9NPMJMMIVajgpJ7TzN6OSrkV6c5qQOb5421vu4VSiF/nHQVFPOrMv
oSscLUj3pDly6t9Y6A89+FYeTys0SVkLd6cbRff4eKPkSkLi0L8CfeVye9P0P8be
rmkjgJQQAJyI3TTyW79aJku3O2EC1yxQ7Xkg58N1uYO1quwhWyuFIc+vmQG8uU6F
mbJgSEiRpbzcim4SLMZ7gh6MiJGXFyRvCNPBVhvU5b56V8Dn8cyprtu9LWw5wRDk
GFWF+HKGQEO9Z9LBzGRyBexsHUSPAAmYi0A4vOTw/O61WmLXmrQp8jnXFgL1Gp6x
6zDuXTAjpCXUOZfOA+S7gu+rPXsVkilDbWkukwuu572tQ9Qz9mxUrahGX6WU2iVX
GWX7PmtBsYEOw6uuyCztmfem8+AGlNWzqiecVx3MAMS9Byx4aauRgyjxQoNswaoU
Wl2JFBixIoiHgGlZhasgvTw5w7mrDNmHPYvNsxi703jWhJUkO3pULKelBEtrhPSw
pcNGca5yzzbQiaE02X71S6vLi3AIds5LhQijcLcupeAOApjO24Dub+NEmDDsmC+T
h3wLvoeX17kuq2WVQcCrSUpqVLrtLuMT09ECNb23ZmUzfdSW/omjfamzRE/TohSn
Q1aQGyE1U23yJKS+D63/1kplmVK/JgwAOknAlhS9tZmBvu8umB11rqnPYUobBCnR
dW+iJsGyRLJxP5yJytptEzRUShHSH/V41C56RPVLhJh1RgVbRrFB7ai1dtOizCSt
PjsIRObBtMPVFnIWy3TBYLT8V5wtD/HbPr9fDPYw3vYSHqTuwzfoc0wqHUFWp2Cf
m9LKshhcpdwWM9SxE6ZnscxhMBQEl/O1myBZXFv8mBQkNtWsyguhWqAdxpGVxBYT
Lt3GR97Jd4q3PBzyw+WZ41gKdNj00EP8f/+BOlrKzmNXQSYyF6UGm38nb49AdORb
K7icdXK6XkdKTkUjdei4OxHxre/hNa3ABg5nkSXOxnSyRdhoHaT0PMqWLrMc9OFO
eaj3vxQ0lQZIb9PR1rPeffvKowVYuxoE3SjISFy3CrIdkuGfpSLt04ZlKviDxxsJ
UsTjbpi3FnUToOLH1ntGSZifmgsVrAfYcGfFjGw95N5YtXUHcsa+vz+TeiRoWAsO
GDdmQxh2y/zRBWbAMSGTYylXm5V3f12ps5I4NnVFrhAsyp3oZW9epXxFwi4t/yJ2
GAVUnTwmE6a50Jmr3ktCJZmDJBrLtpJrpk0MVhyv+tmBY947XFjIpsjB564ltc6T
urjM3kNWR120kgwzWyfpPxnW1C7Xz5rklO4fnfbBoK861+JLkQPpCxjajyDvLUly
J5nfZjwTpg0zkiUM0elTfLeGgDYTDa90b7qI7gshIhulgL65ubxRGoZm00BWeM0d
ZSVmyofVr7+2mx1Vqa+SSYzlcGSNEg+alOKQacuC8yYiasoCcYympEM/JB3Czd0H
+2K5rMSObJwRBlKkJTdBlBN5YGnbbj4OpkCPd4qvy+/3O2NyrzdouIdlIu/iqpEu
cJc50Uim6fkJ81XTFNsbSCI2CUOz/5IP0eGklA+a7sfwcR2VTDgQ6xt1ju9tFX1g
sg3UL9nxLIu1PK5l8a7WMmT+grsf6QWZYGufQM0po4snNxYPoH0I1HvgLZrzuH+K
uiO3rAwBKoProgOpayBEfdIDyNzHsjltaeE4/8SLL91XEa5aZBoJ9BTQqXLKa4Mo
Nk9tmi+x+3q1w8w6OIzSrTxA+2FeDD1iG+jNISxWwxCdde70kFfiMXLu5NJ3EwDE
0jVgoWOaDnRLLHje0LkJWnXd4uX9wOcz8FyVKZjMflNY4uOLkTuFiP5UwKIUYQLI
ALle0FpoZbuYlgtfJgSaM4+53oFVLYu4Gq7oZIQyrHwoHrazor0daCYYZkrYT1yv
Pun0OhugWZ1Lu8JZmGWFxKzGRduyReQabo3KN8hOGijvN6/xq+NzmQacC1I7e9s8
cr5nyD/7PNbbW6+oiiNlEICk2/3sZu1/+fQFHO4RNrNGNShb2HBgzd7ykJcAR6af
xN9iEOvNOZ4Od+0wevIIbsOKnbR+Pjdz2wFSORJqL2iVxJwNsLV2mXzFkQ/Gahaj
NYQEHFlafk7Ow9YeS38cd9EWRa5SdfIz1TkMwqtvH5Y5gBOHDetWX9nrCNrKErcy
QdI8JIkVRwvqKDLWkItGVwekYaPijsx1Wol2uber19tPOO/1AsTz4luLsKOTQWP/
Car+mJJDEHQ+TgXA9ZKIW0/iLTLyDZof+yYBVIM5xbcCtmttVK3qIsmeaMmaOcs7
ozUiTylaMSPDXK0/LvabbhDywU249Ve+IvceaynFR25rD0peRP+5YCF3og7TW618
rWx0WChnNg8q4PrNbqqTqlK0xkzqWuEoucBnsI6aJ0zudsgsKz5sF3rp6deUVPox
rj2a/iIDr8pt9/BSc66Vis6yYs13CZEK59qQZaPd3frM3Xj0Vq80oUY7FiZMsF+F
zn6x44m9/erMU9JbZdwM8fbj0/xv5uhIcLGt/L95l8xF3iXOh3AYOee1HwRyXAjF
IfOm5HJ3NYQoAgFTB/Ycc01I8lhemnikFt8+hqa/p0MUNG1vwjZmJPPjUnaYtT0K
wiMW8D8uqivaBSOFEkvIyVBK7cpu18iTJhtw+Yt8+yQ5cpBg8kTC1vlBArJwC+9D
PnnbzeQtQgG5O9V7HTEMq686P+iw+Vg8EG7UELeXcY9F5kv7qCWiZpSvp+SG9QZ0
eMlrYEYZYasBOMDhHNMGsXNYOQH/v0SJeUJqBgDCy5EGSg6kW3eOWTswx4um9sM4
jFsnxUJl8Y4RBtxiwCZoU7sbslQYjzD8f/qZbwzjcEN+Q9zgKWihLkcu8EbdZJP/
E3w5d800Ayg6qZqr1DsvY3D9ohh90493076vLfBC0HD9GwIprBrym+HSEKc9VHRp
JcAxzl5F5j3FD0c6+Gd9NmhOgk1Fm4b+JEAlOlvC8LOF+bf4eXkmwfK2+nt+7Hvh
GP1Rtizf6CzZAIcZmOhIwOaUN5uckCmSAV8Q0lS4HapSA/I3FFHs4/O6ej5C6Ppp
CbaDLUlymeDr6PIXI7BtFf5rnxN3p7hb03fBmJZYY+0e6D9xorBU/yBQULNJKnlR
XsZL8SW6vlTxLbvQNWMpS7a/jeWrrDseeoRY0t01Wn8xRm78rVkfNkOpIQDzkTn5
qiMbNcVyVGnUJSIgP5awT2CWP6lslAG8HCPsS4dGwm6wgmewuutmHdZIlJKMI2Zv
zMrHf5Xto9GmuMLBmqdmcLsrE74+cKs1eLtQqX7Ssf/o3bdOjP3hQrq+PdDYp3WH
v9YyNyUJygzUvH0npswoaQdVaZ8bsOdm/qPSeUs7YkfMLIqNswLwZrDkzYo2HwIb
3ZQV0Mw7t0P+U1Zr6Lxlo87YgACJnkj8TrmNfs5xi7+MLMyViPMeX9TF7CbcEd7V
+nRdfJxHK/uLtE5fz3cBiiNwaLvnKCODGKcrjmKiwXj0gIJKz/G0cqshYkxDj240
olJibnwnJpkCUtNjCY9lYjYn03jCDUCwXi+0Lt8PlHfTOKSaJR1Up0j1voS8+yg9
5SLQSdEswZUnAiRDFribv08afsOeDHlc2tFo3LaLHaMNDaM9MhK89LM+N876W5pP
NvRmsdMp8S1MSP2Tbt9oWFZMUyl44V7rCw4tOVEzj9C43u0M2Ql7RW2v0s3Vvf7u
ZX0azYywBUO8jjNUkMLTdBcYQrI5YQJsJSdAosN7ftb226a975p2gGD3BNKJ9xKp
wk41DJTdtfJf8/DlzoBSrnoOcscTocEPAJrSG2Uf1UTq/KZC4IYvLwgQ7vM0JZw3
spFdAlfj8HCBBHHJD2Z/as67JHrpG53mcOKLC8ZmMt0BQMzwZMFyJ9yYampdarWF
p93viQWrJeeon2JBEgAiyZg6Y6oIUxs6Og7UL4Z6Fok6os5LB7ftt98048kim57f
zYdi9jPfyXI0M9Qn30Ew4qv+daKbEw5kB5mQ9EiXhoubvt8/YGP6Ujt3z52CWjkU
3Usix2qJbzISydzVzl3zFNRfgD7KZ+CggbqVQjyfmCX8JK3wgnCDBBnNAa9+wAnc
aoCmd9vjuna6PWyY9nk3OgprBUWCPnnEfKnueMq3du43XsZdlKXRBWvrbMTO2aFY
DR07S0SipN02Ca2cGgPycVNnpw1WnWBRzxyW0VSIxjlg3yRoRPGvmD09pwGwwQH0
lxhsNikGEDpZrLGM7LWZ2dnAC/bbZYdrFGR3ttsAGUQZ/EiAlDK01MYeSm42LVmL
6YAsxN5Y0U7lDQNENtLALEWKkPkVAqwUZWoPbVjr5kDqHS51WNjLeN3Ueb42VNzi
u1qWFjZHXBrJPwmb+GGDvlfac+C9pqeVRyi/Fc4rsdpJIx5Q97FZilrKpU/qL5mm
8sx8ZIqEHl8SmD15K7wVe+unqrmITnPAWfwrctVD/EHtC0A507a5kU0/mIcqRswE
sXPVG6GdeyQuXCZYSHYTjRnGhKN3bFq3aJUtnMhehJNBcifVJZeXmAkViCI5gCT6
me0jD1GolQ3zcBj5LDhUjXacJcGxq2qdzGs4BZZ3tRaEnDvIRm4pi0yAZZKYP4GL
ydchDzxfGX+puVplarmcfgKk873ZoIT2KLJjPxqLeOqyyFZJ9plwW82HW5XO93ia
K6eqsX9qPGezoq1+UdNNTJW9XC2PwdprGfT+tMe2ST+lhVO7PET31kmKWXOIr4jW
g23XyfJpCW+W8cKUv7WYXP+I47b2Wt8vOhq+z1psSBBwq6HyV3zksObWE+nb3FG0
UUADjuRIbBWusuPGxJw/JatSliyUf6Qq1vF6cVQ045PuYXmV2LC1wiBgdCznGxdu
uJyD+uviD9nYHC0Jfy9t5SINdTKHREY7jCMFZ23YQqSyyb8/QPtSb7sG4W8g/eZb
q7rirgQ6bzZlfkHz60Xt/KijRFDo/Qfh+DUyl4cHdBJbMlgBQoNqyN9LaS73S/0E
rZftKR2t2RfEM23iCSncDNsxVfcKDEHTdc7F/bDSKu7pOFiaHTiNWjCZwT4MkJqF
Ca633MyqN4/MpX1e5nyfS3/3N953yxD1mci7sMTR75kOOIpy5oo/oOFq2jT754Z9
g1UoKWENVM1JY/T/Vtn2nHdPWhix3yVW5BFDisLx3LuQyNJhiUiAY1keYjW8LJqy
j6sqvdISVdk4o+dsoH/SKdh233l/2bY//bBf2z/yRDmnK2FV54rEbndATRQTk8mw
B7SPqhT9smTyHXWpdC8RTO4h2E5y2XwJ39ChA/FMIBqQJJFGQr3N0ZHIoBwMAm2R
y7ZZ5TLNwsPDWdJW19WUPY6GzCh6HDOa/YJjq1voyQZPAB0duyp+j7sgF2PWpmxa
oupeFHtfmwbFuuYNxHHpDBWO1Z1hAW1WvXM5ecI+vXkxKCKdDzQH91RwAqiGSgiD
k+N05id19WNeZC4gM+ANC5bW+PRwYsF6mLxbserAD5oAwfpPKWonvX67+pzueK55
qVWq1/mMH9KWcfQMARVrKxDLyu6P78qFU4hR3w/Er4RQdeXh8uTZu7nwOcL9UQrR
bNXIEVxY5udUlUC5Xabt6t0ottrxQ+cIgnaXI4Xisu/591p2Ir/u1R12/I2rzfhH
6TnM/M64woujGqY8SemaOwGqPQReD8WRDwpH2oGAp7N8NpWIbC3wuMD6N9RUrFFG
42As7KF7HBKamjCDNK++1K/iDFzMQXV+FbD32BVmNwHjEyNTRUP7n4FQvmQ5IOYb
taarbexT4Ipa93xSXwLyFatYPJ+e+85siaPA0vagJF3VxSYEmLz1SrwmqIYAgSAG
gWs+iMx9FDhQZvyG6jtXSjk9LXiCpEVWYXhp2zqOVOTVWqqYbqO2V5jvaVrzmzuC
/sSHGJcDMM1c9X8UdKTMSD7741usb83fGtNEn0Saxj/nJdwue0JhW41Uf54evBu7
JwromkonaGOQLbxxmx9pgItmR1csjqcn79SduhKf65O4vWCRACskNKCYjBxEThr+
Umt9Cv5+P8hVUVsO15botf3dATIEEZ7CcL/g+Qc2NgNFkuzwACE9KEYb9iVLq0Vp
uQoBaSgr9uDLwMKUmH02MPdTMRn5H01/V3+2Vu3R1OxECW++vnITlnmOtEkS+Kac
4s56DraRIfHq8sqMUxpn59ncoMMCXSWVvVC+I2d3X6gLikKcUbrsSOWXrtm1WTU+
gMcwD/m3Pm4m/9K2NEkqEp2NjH5uoxcapcVyXus90Tp2ESbz9ThoLhj+6ta7MmYE
puj8hNrBDYI3Y8sE7gA6ajztH78oPgC0nKaTIWczgXAtbW2jrzZcBamlvz5TSvKZ
ke7yK47Oc6LN8jlahwC/8ktolhkbNQCkX3DJAhJ7Xxl1clXKDlmdD61pzjwleEWc
59VxWDh5e7aWSbDlcdGhRFPzURzvA/MMcOIS8twUxBEGj7pSBa2lEy0NaGZKd2aw
N3wIwkt6sIT113boyj21sUQl5nGr31oEA1BZnhywrSSrUJlXqc0a7SFl7kbGJeZd
jWQMsuN1JtFVh3Cr5iCZJd1rDmNtY52f77miJVWO32XxyZJ32PXxwXfS2lHAHDZU
7QMGYVsPI0D9gVL24X4ZUinkLEjF0dmdC+uOTXlVTLydH4cCD59h/KUzYp6L+BT1
fXZvkH5u6nu8kHovilwRP3/hQrFvEigBQJ4JE3Z1B3P8pHvmn3VsqUNVhVAJzZo8
+7xBKK3ywjO9gwgmpkcpyd9smv5yuBLZZgm6ft8slVX0VVxCfyEwf+RgfGTSxym/
hVCRdKji27nteF7twRvQdxnQWdOmhMNeP6g9KQTZmaBIB9acdxeI8Pnc15imP2ZP
ID6okR0Z0vdbL44ANpY11Ky1W7KpXeJaKQKPJR45y84ffjOBKXMaD4ged6FjfBUN
OaB6GXorhHlIGA3G3ytKPF/guH5+msHibZ0gNdYGgNeElkYQvmWv8E6fVpyq/3sk
VsjzalJ1rYhmY85bniQIG86w13/TMUaEd8q3HFig5fm5RCJpHm2oMmZyCklBqC7n
qO4ccufLJ7truSn4tZ9YF6vwuKig7NbLxjvMPRZq6su/iOJVcuMXMLRBw2p/pwg4
dKXkcL0ecdNZ1pNrl6srcoHyLhdLvt1XTEtJU0M2Jag7eVCHrlJzwzZ8zivxw0i3
Uz31nORmSTPEU2rDW1Mmx/c+3fhGPE9Vcfzym1q56o2Fi36lzwfjRfXT1/hoDbLa
seMSBJNWF9sMKbd7QcCa1kV2QBRUbowDYQ5fLTcthXOAgYINYu7dBkNm1CBwUNON
eJsYInBIwst6z0r6Bthj6BpJmXCXWK+pRBM0V1jFLbn+LcrWvUD1br/0Dlva9xqF
PGsigBm0y0unsHMYcVqJVQzWDrPCIOywjDwmXPysFT6tTzjQEeMQ8OyJ5mYULd4a
3UT9X/D73u2Kgh1B5GcVeMgeS7huyIWIbVPKuOmu9BnOkX0ThTa4NXH+scx2x172
x9KqqJpAZYg5TfRllyg81lhuB0oUGb/luqTgoVvpKoO/UxWHr70IlC/xmKTsIuW3
8DP5PXdTenLvVbrd78WzPEvaccOd5LyCMQ+aSZl081r87MfG2x4OEcHCv2CzUTjX
qDB+xneP84C7j8zh563RzdLtdiYzv1htEpDV9ktaFFs6zsba1nisfuNKSXFagaLR
4dRfjYONzFcmigimAdXG3LinMj/hwn/PQeP6Q/vTfyVTKTMhU5M/s3u+HngszDtq
hoLQqUo55Y75/B4fyseJWmSrs+XTPV+yscd4WgtIeOxQT3wWIRQFO3jbnHbzSvnB
M/zqKlsWVkTf9957++o+j4eppnHMDYxbBxRZS2k3rpSzrYn1hm3ZSxDTL/x0Sk8O
DgC0wATJ4Rf2ukwj074hrK/VTVX9UzU4gY0dgagb6I47RWVLd5NwHfpX0dFmgM2s
3KtXv0BuymKf68of7funngXbSMcWml38jkJowRChhHvXsgfLb1lS5Lm/aNEKYACt
VGB0h4si7Er8EGzaVOweVelIdjfPG7cGMWVdvPFH/0KgH50uOQQQG786wGM8xTaY
fj9Q4JkyfaudgLVsdFk5xbV7vNL1MFPAwGrLF7iwQGPc8YXbjH7tSYTXhNXGz1yM
+11lCQvjMmr5W9UncrQtDN8qDO4HDXCMSD7wsA63cs6zv+p0BadkeZ/C5YE2zHBg
nr0QFHLXK+avz6StWqTw14kONkz50nTie8bNyK/ogYTn9RctU+mXCsm2k2+fjX6A
FDN5BUBMjixzxDELW2Wt9em84SuLcZbzEiQcMLFDH5EQ+XpHZQo2Jmv2JobmPVH5
90PvHu39cVUWPDxqtclLxg9Lg3eoB1CPUxVsQCn3FwdN4tlKCmxVwaTyIFOpE9mz
cWhXJ20o6MWffQpf6rT9i39U5Gel/pTa1ALZlJejaQ1jeyeaGUImmB3iEBW4o/z2
a/hdQDaJeC3ATxOS00krf9pvCXEGzn7lwByIqbGwcB1kcCL25iwe/uC4lwn/W/24
rBOA+Xp72LMZJkn0xwhFDUmctPAo7ZHyjCudnZ3eWvwv7UPfB0/+DMa4/xE4LQlz
MPK2//tMHH2T7kTKERAVcxgrs2mnWUCrw4Ilnwm0Mca60BO1uPGt5rC7Wr/qQGvk
sMDaNqSvz5pc+fzRj1372NOqMCPHvGm3pMdaxZ8oF8TO3Qxm+VjE4bEDCyxWAhBk
LgrWCUSWonvZE212shd0C6wfGfXNXHJBLmRXGts56wpztbTk/CTbYrPWuHlgYxKf
JP0uOTVnwhc1Xwv8qh+7KqsgQySTRwQo10m9blQubzeUwe/wsYMGomnA3h/mlUlw
pBljz3f/J43R+ZjPyCbdzdQeSnMAUo6uEZJ7e/GGwx9ztr8HOk6vTM6ggHDr25hS
4UQk64s2TeRAM20EYFQablZOaMqbA9v5ny6/Td6VZ/krb4TrUg9b8DjFmp9utusz
rZbBehJD6+DWFUi8n7KHfsZHEZR7lp/vVWqi2lnp65bWEpbuyly4TOANEztGTIGJ
H/4vSrHhhRIqjJfCwRbgCI8VqFmGMUjUcz3p+U0hf5qa7Sccq3gAF01zvO7QTxAs
7bkuTyLDeVgE4+S0GH2iifHRQP1v8EopNSwSi2xXGCtUo2co3ClbTUUDMDkGTJxg
SDuseIkN3GBcM7hXmF/8wpXpgrx9NgMEcULjmmzpwvkjDilMCWPSM+kYKN6vGZ9p
Q7hfGhGMNWEetWFz8+pSSsiVRW5cXfnXufZmwSM0CFl8R0VwmZc0+MHlSNhHKT5z
3+y0FwFlLpewTXeh/bVRH3+6K6bYcBldhCwu07QVpKfG4sFDU9/2IQvLfK2/lsQZ
4bUCfvAq3h3zLU+CpTGMMxDs9+NoAvorScWgHPWwuQN8Z/WvQy7YE1ge44kmPc37
q2eCHvEPdHM4RV5y1+6LPonurX7Q1p4zhr+tlpLDTN2P7c4XDdTbYD5xx0vjJmQO
s1GSzUXW6aRXyvNzh46qwnBBaD2bfTaPwS8H0ZwpGFcQUVT2HnzWxJ1GeAs3L+X4
EXrQDiyctsF739coOr3wTwahHC2Us2t5WSyBeL9ALksyR4JAs1tgjBQlZ4/oi7On
qXbKJTrLec5aqA0jh28D2BTCjUHmNs48qGxapYlO87T0pdzIDDudtK5UibBWtePU
8N2h16wpTMcFAONzIs2VZYqpMMIAqWTy2sTDrnr6B/Zv/qcH6rKHA/mOyYLF4iy7
ELD0Q1rEg6lnwj/gBYmOwuQpqon296sjcAIuoFbhnnn9PLkG092FpgMx+QLNJ1if
sVoRb8ewRlXlqe0o/5juFMSruhM5+GPjJAdCRkpfwFBHRivNGQsTpnVK4G86YEUC
cnN93R+xhHF1wh5hhe6Sc9k+i4Rxih6snUsQGofTf17EPKrM0pVfnWYEE4n8a2tG
LrJ33749EAG6uYLuN2WMKdX7E32vInVQAWHdB/cMBJXzAap8wyUN9oZkMgNyrlFB
PmYgaSPfbY4mgKCd1Dy7ITqF2AqZ52vBk1JHI6V+enTKiLBFC7OQqjWqTJUeq8ZQ
TS3oDbmCydc+K8DnPl1DjMl+Fy8FiPSi7ss/szQQwE5MT+y4L/pgII7kjIbEO0nh
mCFl9ysiQNttiPoAqItEjY7kOlIhhXn6gmWloDAFz/HLmhg1+rKamXdE4ZVjfpmE
kQKlKYf9xhvtTBIiiIcmT5VUbLZ1kKRIec/cOj0k5X9dIcIbkzHpLUcolChcTzIO
dGc7KUn/do0N2xAnwj4hZaxBuUeXkwXvHERRtfgzttnyuYw6p2K5isOg47nPwGj7
9eMZ6RgqxYLbSIUKD0rEAYhv+JSDu1ct8MKod6tobpBZnEfUZBaRXt2qoywb2wff
sc486j51dDSrfhqXUDy9+TkApb+e64ZGLV1OME+ZIz6CXbURGlf4JuQV6vxiEK09
UB4hWTcByuXeYp8rJmhZvDTGbanEsV+6HLAF3H2pviCC3qeMfy4dtRaHbWP9jYIk
TQc2CLLuDruj/Y0JIpmaJsruZzFUZavJg8+H+vnBb8dXJxUeG8tQs/y9lpERbVFi
E0LcSpvjRaPKgDGWZqHZgriaFzBlZ0OBwnlBmiHkGyCobUZg9wNXSgiWLcRotCE8
naMz+C5+qpq59dXW9Txo+6eqWUEONRCyAt3ChjO9GdbgLqnBwp2bJFnatUhI+CzR
x09Yz4ut1WTAUpkfn78dPdkZJqMWecRnGhkXos1Sc6xjLbRSmDD7fcFV2S51zbZd
0V+s9vu3U2XfKNW3Ezyzo1k3VneH2c26LhBO4xOlyk7oRSxBbN9tphdr0IAWnyTW
om083I9GxK+d3BC0uvf7zi/+53mZhRnuen/+dMBxuK0mm3vXZ2Ofy308jI6niwOP
HtEYNz7GhEAq05GwbcXZgDBIcIv6ux/5mvQ8927//eZIj+ZQEe6tSO1+cnv5yzpE
Oqtmdhk4JM7QG0a2jOQCpqkFplcKFKJNUFhB37DHSCMJv0WSjrvwp4p+38R7kasx
K832lv8ZTmppGoqSVWYTmaKCOWqmlavv6BGI2M96WjSnbVdBFJVXgW2AYDKWVjTo
KwxId+WxzGf19/feoK6/uYwKno5QHf3XLMplFMh3G+waRpf4xmTbeS61wdd3/txv
Yao1bJuDqZJza4SKQOPsFXi7g38wQGx3emTO90rOuzkI0MN2UTQuvdNa8cRJdGpj
YbwHHOcOjrW0LUjFUO6TZws0Q/adv6L+I80bWgmUgfpgX5VuNyKvZe2oAQJXGuy6
ILtyUUnhHn9X1nSHxCPNkJiRg0nzrzSCx917p4To0jcINXlqeFuVuWBlZKFZtRN/
weaxLGNKnVOvTtoj7wHMvziFTJ0kCTKoahw3rQj/9l2SuZ9gcjiVHi6wb3EG21YS
0eFEjRHMPGdOwVoH9QLGRxzHnzd9SbfuXyj/l5scpw6A6qjIKDKGQH4LxoXpCOIK
Y7jJrSBE4vERzo6WyECYGPh+Dn/aIiQI3LSnSH1Jv1PLcqCyuoClPZF4R4pRCq1M
yZ9IPiRZWvTj3XZLnNXfnu//2Na/Dh9k0tLt+LJtr4T6zfnzJFVzZPorWwnRGRX5
j/aKmd20Tet3BBpxRNSpsSdXdrN0Z56G0oP/3CgXVMuENaxbhxpup9tRDHu3g1GI
+JU8IBcaoYCP7D4ay/RzkyML3GPjdmOCdcdtpRm9IzHzFUFelmp3XfwzWBldsAZB
HsUJfUZdiMXAZ0qv2fNrOsg7XeloUajeCG0ScO7VIX5kghYqd0opHJbzJG/6gH6U
HIil2scCbHijZD8owLTvU5UfSGHEidPycW3AHWRk6LLQ8wYF8AngFKGuX3YjCTc5
ST7So65TPGsq9tPLDtRHf3Rt3zmfdj9FNOsWpW9M1+Qsd3pwq5BL2idmHpSLx9ME
EJVbynnPai3o0Fy/ydW9Oo7y7aXCUAH13z0CTsHnOG3Us041n4Gvok/3VrDg1qQ+
Qv0E0y+X5QhF7/463tEQ+6TcX24ldnPhXxqgGVZ7NQ+K8QA1tjVymC42aCJj5ogL
Aex1ElmbCUFpz55CATNOCrhwL9LB8KHfrxYTGAnc5+AlJozMP6vyb9tKv7opNXH0
MeadxTyT3E3i1/w4Q5PKxSMtiIDUANbSvYG/p8k7NILl1oosWDshK3en30xA3Dbu
BFDp/h3Frx7FAzTNYpQMv0g3OxOaWpCjydLg/ZHRFPaXuSpbLVh68Pp8HPzNYYVt
zwWP1+XbajkXt877/yoTU4Gds8//Qu8Yc8SkZpWolimCIHG5OGgC+btH7mPRfqj9
ks+21zNCcchTUNHt7M0LTwBtjVerrg2xm/qgWQHamstH8wdCrf+sMmpsqg/L3GMO
Z4ZXR2KIJrB6Sx/ob7mTe+DJLYXdlUU55YGACP09GZ5NxNUEVy1Ep2Th4bxlESOk
y14L/dNqin+essZGx3FEyQexscAGYf44RvgJ7Y5ter2SJqumbO/Tc+jFdBGjtyfl
8+6OhNXXiFAfcpKPasMfiWULnM+aRecqw4YxVbG5vq7GH7bS9bwQ80/cB+MVYzl2
yBw7wWlrbQ+yh7Fk+xJ65J3PLPhjTYAWcqCTMblFy8+GLvGxVHdXhQNQHvK4LiPa
bTuDgjPqL5Nt1J4HcFrzp3hxb/hSUNg40v/hSeVV9+KSWbhkKx8v4xP0YW/8qZkx
aU46bmrTep7XeNz3HxYVOW2wfndOcAWVzJNoYoXZvQDZykBJ8okgsx6Rvujvwcdg
I6svGLrZc/qUJeW0NoUbKpByu85vUP4IdbacocZsKt9787ZpMBNAjpZCLBNnS4II
Ka2rhl/f8kFpyhpy8t9rzcWdkhUyvqEYFNlkW7jkJozquvJHsaxa4EbM2hd41fY5
PylxmYFWm9rzk24R1k60cu9296awWuws13YCHyRv/FHUjINvf+Z54NkSVAoFZ0Nq
YwhPeeyXORhJ2Nb8IOAgDRvnXEUbfEe0V8MkCML8fw2YrfY1vUnNFnUwUJNMtWMi
j4M7xVseV6BRTAYOj/8zdY5aaJTm3CUKZfhcJdtoN0zEWorq1FaeTq578oDMbliS
2UCNWTWnCLoD2yil2RpknkpGDWhhAY/3bZIRkSnrRIXp1ETU30Nfqbgl0Lpbi3j8
PTNEccY2/Nu9rM9xFbhcRgHo8/75KNQg6TZ5thuHTWYDizqe5HpUmypwIMJGI0n2
GNkH99wnW1hz6d+Jpo03XBbA+y1PkNjFndIlEiK4OWm5z4xVA5pKmYQTt4L9oe3R
HqKlA1FgPHQoUmeuFk5OPLO0/L+qijyXhT60HdiNhhf/rdyq513ROkcSluKn7kyj
q01MM12zvbkbHjWy48b5ZYy5ILYEB6qMZcyytrk8DrrbSOhsCPaOXmeV7QdFbll1
RK1puJWa2OG5DI5C+VP1q8iKWMV0nVASpjNxVbVvBjC9K/VFNi+uaygpAJDxK7al
+/vwN37vo4FlHmg67a4V0gaQY/wONw7Z8dsEt2hjN2aS0ooHQrSB5zgMXXcLpylU
+kxvqlZIKev0Hk+upGXq7DF4YWIbiJUilpLOCXIVk5Te3QuRsdWs0DTunYJ/UpJt
0WWXhdUz1OhxJ//uJUHwzVjV/piWMXNbtUIsxNT97Bu/meGVIIDO5HlarRADv5ss
CPWO5rlX9DdfJtN/OQehCy24nmXPId1RqXyN1FCfCsxiHBXlAr2stCOg96KhYySq
XILg4pQyXtB9+2Py0c1l8tnMBNtrcqcVYDcHZIW+kNUxXXTuXGSXOkDDESYAI96S
/WLFcpa/4Ew6Iy1nbpA35YRJv2/laHtsj8+Q/w1d4qml/57cAIXVLs/bxvs/2Ky+
vZKYDKW9HTqVO26qVlI0XOSgcw5SRlpBOKkqkYBMF5YGZ/Crn4wYpAJ3Xj4m4gHy
jL8hxW8uAl1yhzamtHON9q9dAz3UxyIH/9VWZVFzEhxJck3fbrfVfhFCCUaqZ7WG
0knM42hbWZ6Clzyh9wQRUUyQQHPgv4X6G7Ayd8jRCWoeBuDh/rN0R8W+9DJ+x9bz
sNAyRjBSEPdMWRyeKFtwa/TU6WmJ8jqHrIhZp4uO3ZQM5WNr7OvxG3EfY2KEnje2
Qe6SsqFm5MIiI4tTpB3d4boq882gZ9R76aM8Hv2+pgzPW0oJuaCZdHf2kHTqY+S1
Pn4ELWNFCNRwvWGuV8RHzOfsReFMDw7EqKRie8oXiqVxFsseXvcutjhs7p9AcbFx
MY99dpI/J9LW6h60ba4vKLBRx8gFW7ERq3CNEcYDhQuBzUCMimziWTuePN55hF2H
nNJegGd/hKXN7UpQZ5FYEX/hpRuYFHYwNRlwiEpWEm6mRMkVEbKipOJ7P0Z/4jwq
eeTr7LCU4kFAgJxb3wUKG06iPOecKWu3IH9CB6Ar8yEZUo4zXeGIDW5+iOidHRQK
8+8YUjZ+cnn1t8CywxGSM2BqXVDG4dk4f7ZmDm8oEpLGngu1Lv1AapuA1Bz/8hmT
jWc5rW7ECB+t3lSTHkgJP1hzBjPuWe68IlfK/stYVmW1JQ28yr1OAIyGdEwF4RHr
l9KlKObrEV4qiIEFZsv4dt9a6qaWG3Ry1qkf//P+OzfQkBO9/HE+ZPt3VoTXaNAb
v14clSMXEhG/vVzfSk8tMFZqfVrwAkNIKsesoidiSodzQEepRyZI11NbDEWhdfYq
J0+O6q52QXQQU/0ybtQPhwtSs3VmbkkqwiUqvQ2e3VN/WCdtVoCvhLhXh0gCtlx9
r1bK1SbR+AUofAMotUdCV/Gr1BFnZsVbgE1vK+dUEJY6WTs9ockAA2xmFAd2GzhA
ui/aN+/hmxrAc4/cShnA06RolO0TIOfX9onHtvdF3bmZhdmBitSel+dmtsmL5kwF
InvpS2tQYFbceEsEAPIForw8tuHXAFoNrKCJiVlS67hQzmbKMA6Z4BDOG0j1nn2p
TB2UlgSWvNhwzAZkCaqvoOEyJLqXxiqT9VeVFUhKrBD9MYwFw03kMRvhLm421mM5
HX8ZyQwdfZAHZ06rK31lMzHG3RpjY3imUTiGSN3mVPfBkFMFHszqg/qGiBCq2yd7
HRUrJZMSq876kzZI2Dudp3TzshXAeVA+sS3gP8aKECQpWTGRsfCTL03pD6/MZnWs
QO1WFjWnLHM0NT2yPlBFRPOVhKj2BETYmIN0A4BLTfxInfGLUG9P2l46kCoNAKwm
WINq9OXJBdJ4diSG2TIr6vjuJV2TmTXMDP4B+JUTb6QKC9Zi/SOxuR/0A7R1TURr
MrYa0/ufJtrvzpCNZ1COGsNhAkRnr9nK8oZ9Hiu5jCVBrG0esMrF/KVy+TeBZKNi
1aY0KCocu+lf5Z+o992iybEbOUNRETzo/rIBmBiW+9TDRW4Lyc8rV5BD16bXtN/8
ru8WvTNCfujKwBWCyWqLPsKhh4Te7CSODjRC8r0JDMf9rN1a9AGuxET4pp80ExZF
bGJ1K9skktu3p9NaMt1R9QUu3DP6D3d6mVFzSoedPVoF9rSYXi4iAsOBrXLzaCiX
zcMILwSX8kpg98h6QMRP+Ve6XbxwEXvvaFi6uNlY+Usrgf4Tzh2wnJBVkfJ8BeD7
1vAgRNwsMkk2m2pNAeb/fI4g5JDqHaR89+op5XkAtcEVY29jVVBzb9YKFFxsgKUR
aBzViN+dauxjxAWDTd1c2LDKTFym4gOU5wzMgLyL6L7MlGubdVhmfkE62E8AJVJY
p0EczG014Nmr5KIUFTstCruH+bRsgAYYIyOwTSalqqbUUP3stkJ2KZIPn3GVZGcW
neEgqVdKD83Fm+eUcgIBkwbL9OTWRE4TmDOJ16qSAr8u6+Z4yg191nzYxpnGuBBr
kXjMVmLj75KNYmwVa40VFE153/KE0n4q2xSqgooLpWAswS6Gqk7lkZQsiXBTqh6Z
gyt2XEmsL6zPMW/+kG/4P3zwWIJacui7FhaWZwXWgSKMkBPujjjW2547cMUnPXQE
xjTh++jtb9LlNKS8dNRw3aSgU13OKymJ62AWHZrtz35nJ3PdYWOzWoB2C8SJn7Ym
z0Lww5SjxI8dLTMgIvuBSpeWSt7PeLD+rLwdNNQkkdqAc95R9tkC91EIFkkK2DgI
sifL05yobnCx184z7eBzLYYHjC9nFRTEl1fYqeKwiMi2EUQ4mWtgrJDDJXTeoitw
6z9quSnJygRWEa1g2//+juCuqg/PZoXWYlOFAsrLy8FegB4IuFAAyMJwSF0dY3D3
RNbGsTx0p91yy1faCzWzC+EjZJ2BMm+ekYHRVyj0n+BUbyck0+4g6OHkLK01WPHX
lPmUKwB45QxFy5rJQ1GuSTXlZf4UMWJkkdQHKtuLDoMfN0SueVYsMWxby+oqzDHC
xtahwpWwyXhbbd+T3u1izeOdFlqiMDVbzHhPgiO64xr00NRNxiVbxZPdbN53m1HS
v8PDve3pmlBP9+Y+fT/eQimL76oURSAKXrP81gzW4Jw6pbHBqjYOiC1PaLs1mh1B
V29VU1YszBvkQUPbz9dNw2V9CBhwsRGjyMO8lMhUTWqZtgXHrDdFdjkOHEp8Q6sB
JT3vT0VlaacdLMEQblQ2W0O9VLF95SH4D8wEbShe13K1pBKXdz3mG5QwVLI+E3Ra
sk+YyDu6xuGW3SXlWcaeRigxR/hXfpbX9Yc0aCnxvcrR7TwJN5PAkJhCCG0NuinW
bzUizSjBgZcZAg6duOk/AyTgtGKXZW4KiSXBLLuxQiSZh0wW8RdvvfFmbTdxvMV3
+wqWt8NontbB0X6eNSuV8n61tVoEjn1KDgJTNCDCmYZjzoXaGq79hZDgz5QmxgRz
PwpV+snEms0t+XW1eT1ibPiRm6Q5JBBmt4WeyC6Q6+J11WP/QKqcCGnLLS9/YgMP
kEzozLm+Ny0HezrocSHpl4akP0syBfeU4XT/MSXJiRK08cp7c1aykDVQl5ikPM3/
JNi1blzWS8KQxR2484wS1Sv/S2aRag61Rfwe3yu5q/iq9NeX17P94jeLU+WHG9X9
9/trB37LWAq0t9TzA25gVztHBj+2NHboMTE3eIufuSeNjnPGCgU4BQTOyeaGL3xy
OcGUoO66B8ik+pc4Wc4WmtDk4rcm81wbvhtG8UpR/8k9ZsZfvV4hmKsvottZI+Oz
vn+oyCBx0KP4IcTnDoc6Rdubb/KqlHGS6/CTKLtNlWPPpqA/5+AMPyg3twBB021l
kwFSf+EFcbAsd3rMHLCWTw7EhmRs/5HdeQg7U01iIhvL1zmoZ5s9/WV8Lscm0hqO
XK0JupF5ScEY+U/5dD83IRPVgrxM7x1GO1tXEbjNcayA2JGlOq+jPcMLL6HrD+M/
Gy3CyarGxTIO4HEt9W7X+z/i9qBJTc+CjuPHlSm4zAc9XdZ0rV7Q1e2zOoIXvIO8
h5bjSeXTJl5XnI5m+FGuYetyENyVg31kTU6R8T9xpUY0uOWQqs4IYYFeNIO2I783
UGRF6PeAf3+WjgyCpRGL5LWCtix1NjPSwChbedyAkI0dTPTNvSI3MkuoZezacj5I
HBN2zimoMbt69ZjjSWp6b5qEZi2ey1Pb/1nsbpusyVX5huA25wu7IG4HT48FWHBE
JFsL/rz86JqD3viGovCcKfv89O/RYOeMMc4I6xOAE5jRofF9IsZU3y7FMeFePyNE
cNcWFZ24aibHvuBGeHQ/ExxZvspNbDTOp1GDUK1MWEL5/E7o8HxYzZXSQYhysF14
7tgiyQ6v2IXsTAwrnl1nFplRfVLt6vvJ7ICE3gdCVXLe6cjlPmX4050TIWTXwf/4
O9jdyThmM0vJOlcWoOZco+giLRsI9KoMDcx3ct1ztfxfw/CniKx7oHSq5wuIbvXL
PxFrmF0KOcWqeYeOVYXgCyPvm2dOADNnJHX0cQ3dizHZag/ykH5Uhh/pt4irtn8j
tnYwU2H6seAyqUkexezdhfdX7rUnK469erGu4/agX/MLCSZM07HAXYahvgtMjwZz
MTMBR+/XBeWTuhyJ21NRB4e3q3VNZ62pCzIQRN4haNnRre+y/1qCEE6sOoCr8DYv
nQZ5sKQZdYjeg0mj2/cKyKaAErXtmN8IqPqSykCf0UUWdB7kKG/x+LOSwOzk5iva
ylSw7r0crY+iXv1rynGBAc/FkbDlEX2XjckKVJE7OmzD5wX1bzTl1hoGAKlAU6nT
YCiNXbeDVAxDBbyZNXo+Gwb0y5ll3aPxRLxNdQAstwoMKoj8o3pWxcrmg1CP+XZf
yoC63cwI1tRh2uTm8YYmoNZUBiZkWFAwY4n+ukpMOmGGubFhqAgdyC42rdL9Hz0p
QKooRpk9JDCGyeR2P9jYGio51Fown8HL/R7ouk6Y2+prgRoVkP4eyvVGtJ4Yx2ye
Mt4OZEzllZXrXZrKiDlCV7JCwaXDTxWIVH6SdceC9ehBZinJ5lHSgiX1vptAVoja
SHF4PDQrVGoR+j6oJRNAko/Pru+eYGgImjCRBkoSqZ63pRco9dCDQfr9HFclWYmW
1jbzERoFEXXAhKKOExtvVVYQyv4xXWVtHbXJJuCpEGGl4kVubjIiZmK1bmJ+kh8A
ZCGijYHvac6eU8fyPziCT8b540YbvODlm/a2kBrjsg2Ak4px4bk6VfYjPVEcxnwa
Aj1ymUC+VqxAS45Y1Dgqr8HPhDa9Y6Exgx7rUaQ2kN8FF5iaX4BNf195qltvFZdm
KtXIm+OGtFftX142vGcqp76WyGY03mBWWtTtK8GwXKJZNIRsF2W5HRDm60HYfGjW
UiYP6gDa7vnRqUWWnbVsIhoKKTkgqeBgnQbkrT2q7WHyPwSt2+DLqJsTCHdNyNNC
1cD6A2lL0C0s0bKKSIHwLOgaSqwRjp6AL0cz32Av/TJsYqOqqDGOj89v+wMZz+GK
wDUlMuU4Ex26EQNACsukjVZq919eMKhCoSEfgy6UFnrytfmPPbagT1ouUFQgjX8b
4rUfFTqJhy2upBx5dmPVfG194BkF0axY9lBGcE8Mv87i2c4OutrUWDBMQKOlV3hg
f85xIq2GInu3aBvqwtSrB/tnoz+J65gt+xXhyp+SFx+7EtzqTBRS4PQNwkkHhVjf
3kzi3gx0klr/ivMECRe4tQcFsePRmXbR5kO80bDXZP97ByskNp2h+JTA43NXQuut
rjC5QlhkolzH6VHDVtXewLqZeVBJGWHuUpzxeNcHQGrOU3D4MdOgsgOPUBkmq5QK
Cu4OV91f62bwoPTsmZFr7zoYBX/CBVPl4K6X3dGAv2JrVW2ggqSyN93Jy/sg+CLu
p1/brvkJM1HhU+IiagHKjzIXKN0OwuFGvtVmuPIR2KhGxZbZRcOhBdS9+gbfFNco
1ZPtegIumcCV7QEwkiQJzdte3+yKZnX1aVbmKN1lBCYkj9FPngK+bSZCgq9lUswj
4DJdPYYozsdiNimg7lR05Kob0wpGyNkCQetRUD6MzwanDRmjUes3qmG9sZ8olcRT
hBJLi5XkG3xOxhmvx4wYUTcHM1DF+XwtSgAM5tzN8uBH4UGdJFArHb4nCGmpvB7G
ZemwNxkTZ2pHJu1EKZlGm17gHcy4gpyOfukOn1FsMkCcumXXbfDIsKpVIBZfB3uD
6vinlA9HUOBBq8K6IpEBc8op8E9dsBT1VCo+iczuljblMh4p7yK2bvCbF7YbtP0a
JtWCbam0vvSA+Y5mfC+KxuzyMfk69TbWp0f7yYixXsWiXxUYIQb59Qd2Lzq6chrP
0zhvmQcYZzXP0abepP0PL3UKmYEEdFeREebaTRSzxfJeXdZOZMuKPmuFKyWY7zvS
apho7L9f45L0r9z2Ja4vUq7urcukidF0MW46Bz4Jo9PFKYiILU5KYV01QWWwHv/K
7tqw2TKuOA+86TeZ/RNMn8098z9pMlOaqV2omRVSEfI8eSCORTgXZCzCVAiW15cZ
06TWipAxAGtdFF3h+vnBNy+igsKUvT4l9snSHOXoHFaNz/hblpP15WX6em4QvMuV
OH7CuQSeV8mboXkYpxkHwb7hvesNINgQb4h2RVzpzLPsRi6fsGLaTTmzhmA6vvPT
uEgpTAaXRGBG5fZ4yq8Ufm6yZgOzGN2MpyL8+rmRmeubvfWyBJrPKPDQN2jAq/TU
su2qoVu1EC+/2fosYCF+BNhEA+j5nhFrpkFwz2YlYGXem1yXn2d3gypD6dhzL5t9
liYxtatgyzj5AhK6YNzXblNgVVHsUG2oLVFHV5KKejRxxIMt++VUrYU32ZA4WjB0
70omn9x5qw9wscTPAS4MIXCDT5W08yyp8CRLbbVNtyquafcmQw/4jjd4qa9W5wbB
PomqGWhpU3R5PZ9gSCLR9GVebKSehAaeicq7nlJGPgoAW6LErIgGpV7um6kQ05TX
hi9KUAtaDVDwt6ho1sJnzV2OJn2XQO5H4UZnnDfj9G1ORRuBUDnBj4kLn/3Fq9aU
5ZND6q7ity8BHU/DsDgybw62A0SA9HfVmACtGwNZEvlggXVVdzyf3M3GA1K6DrgX
ryFQ4WwKPzsuolF5KZ7qMtyMT9h+l1Eqp8H6pex7n3hBTZSZ4NXArtbLSV/qVj0H
ymV4CNRMsQTPbb6fThhEiRb+5l7wORpJx/tj760z7edlWrpJ6P28MGsbnavcJqio
uuu3UcQigu6DW4Tk8fR6BAkS7OFFo84P8QDNksepdHVHh1rNAch7aXwkDd/0tr7w
8dOMXlQrZ+W0QW/XU1X6AQu/VVQoz0bZK9cux/5iSjFnwG8roJ7A/RbJMut6KmOV
P0Xyvt5I9QMYfYJHwGgu+5nUwXhPQhRIZWCX06l6OveT9RYntNtt8u20TMrMHfdD
UsUtwNyngeNnqnOwrzaEFG5gEoTrLRzrWtMREBxdV8RbLzMj/J/IFceOR7W6NfNZ
OzsNWJC1rtux+zH0zkZFWnrVmQS79n3EvDFUIHaa93hArKCgCAFTPwdesNCtAiJx
mUgZ2g+HxDf/giKy4sa004L7flCviQOmPI6179tTZPXOJEXEu1J7w9b5ZP011P8D
LW8/VyND9a3G//u7v1R9oLWE5bUDossYI9QbnKURKqiWY8x+hh2fRpfrSeYw1oKX
Jw5ETuHzsEf553Yi7OR89MqUgEf1bVPHDKG2I7vuJ6IrrjT/wH8StLPy+bhbxnTL
DtZFbcSGIlspqLYUKovSWgbRhN/6iUYdvfBdY95cRPwbplCjpzcfBVRCVr53SAax
3gDIjDc1nj1enWfHRnghKD8MzstfbacHM9kwk+66FUbYOWUM0O2s+Lw5phzl0/7h
3u6oRRVRAA+d00rpm0b5dDRLYDRDRqYph9zb8cP3pt7cCWrulX4kvO1GcXokFzre
ZT4bPj+zMx5MxBtegw+/ZhEGAqrZ3p21DaHmNZE2A6W6oWtaUOU3yHdJmmc9J5yP
Ur83rFrX5SvbnATInXAJ33i/2ZJTEyRE2ekAsdW62ezL+N6jiWdocH042C5yV/mT
ZBPjJd3y7SgkiSz3RpZJQqKSJj7aUFSCKXEUCgGk4DfasGK2vgE5F53soG8QVgZY
CEhWgE4KJMXsJcqnie5UzHnxUFarAWcfr78Px+x88NbHXyrrRfhJte+f0JCEwqB0
/64JWkt19DbEV2iNADixsmzIpW01UdsbB2B0vMHpC3IZPRNxg4jr5B0ZeYE0eERb
ULBxWxD83rS+eBpd/qyfAaCHj8u2hX2mOSO4aLhe37rd3GCsXnePLuxnLKtwg3XM
XKW5bjCie+yxTkmGRoUF2xX+s87PVOC666U4+UQFOKWXyul3Sy3HiOk+fGuBX59u
zbDX2VEKz4roUsRvhoKxScM7fO6dkPtNUayTsGFt7GXlJS2s/vVO8fsD9Ciec9x3
ggJUgqK/yoLBjY9gZ4kiRJLVf+s4q8XbNIbnpJw1gbBJ0x+4FkUnKCnNOAS7BiG1
CmIG0COajvJ6XpRXo0KpkZoxCaKhwC7dJawtLfr1ZvH/qwpPL/T22pbSaJWIOf1A
x5T8ARhJwoGA0MtMSqhQDNSneuRmy3GG6d5gjvjIliu/Wfdab6/YZ1y2Fbc62DJW
vRQnjb9i3K6OwuyM/WSLtMHKvBBb4UXhPhi0EcmJVRvrxEm8/1B3IYJvKGKuobZU
ZOoR4FMT2HlcKf/Ya0Q+jnuzHED7CNM0clsZoSFGI7QGJgZE/SPJtvuWBI8uvOT+
YEGEJPC3s9MpByV9Pt6KFA==
`pragma protect end_protected
//pragma protect end
//pragma protect
//pragma protect begin
/* Encryption Envelope */
`pragma protect begin_protected
`pragma protect version = 1
`pragma protect encrypt_agent = "QuestaSim" , encrypt_agent_info = "2023.4"
`pragma protect key_keyowner = "Aldec" , key_keyname = "ALDEC15_001"
`pragma protect key_method = "rsa"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 256 )
`pragma protect key_block
jKKARVQzpBjsnhGaDRXS2of402Denlp/BDQ9Ty1CjdBDB11vyj07ShZzg/yf0s46
4i5BSgiNZFP60ULPBKuj9srpwLgZ+4wnvjoUZO7miHerzd4i2Se96DGrDU1ASNJ1
2zoboipgmNHRUSy6NhrrTjto32IJYxYYdkc+zABhsGGglKjcw3DhZbYM0P21JD9N
6bHb47pm6JAl2t0zF7TNEzG2xZO30CBLIrxT3iqWtJ+UMI7oP+zOgzEa2Hz9dQfu
T/OoYZ+a8/GBNciE6fy3/VsrK3sm4wMF9rlkKl9YLLHSilEdRHKlmFypuvhVMvfB
eHN3u9By19hM6nPHSv0Rfw==
`pragma protect data_method = "aes256-cbc"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 50592 )
`pragma protect data_block
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
`pragma protect end_protected
//pragma protect end
//pragma protect
//pragma protect begin
/* Encryption Envelope */
`pragma protect begin_protected
`pragma protect version = 1
`pragma protect encrypt_agent = "QuestaSim" , encrypt_agent_info = "2023.4"
`pragma protect key_keyowner = "Aldec" , key_keyname = "ALDEC15_001"
`pragma protect key_method = "rsa"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 256 )
`pragma protect key_block
IzMcge2JRDduYI2DRh0KHkEJU4gz02MPgjc2RDBL8iz3Dq4D9psMK+fMS6s9Hjoj
5ZInOPXpv4JtjohyVclxBgY+dsuotOPanGH2Cb+sLKLPGTEeosYSIfKzGmKBYmx9
vQe21qVnWRRwWBudqVwVSVSAWLxLEV0O50OxgYF/kieN+2hl6xZ49mh2t6tcpr/9
crcndWhYLWAyZdPl/f4agVcbX/g1TN2rDAAgR9DVuOJEC/u2OdTqvN85DqlD100O
ftD/3iDyjNM0Xn17m0UW4rxBJ1qzAt6uQ9Ccpl+HXf3Yhc4vxe8A7xtgM/PFZpmN
+MHciuZ8iljRLcc9QByyCg==
`pragma protect data_method = "aes256-cbc"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 5088 )
`pragma protect data_block
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
`pragma protect end_protected
//pragma protect end
//pragma protect
//pragma protect begin
/* Encryption Envelope */
`pragma protect begin_protected
`pragma protect version = 1
`pragma protect encrypt_agent = "QuestaSim" , encrypt_agent_info = "2023.4"
`pragma protect key_keyowner = "Aldec" , key_keyname = "ALDEC15_001"
`pragma protect key_method = "rsa"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 256 )
`pragma protect key_block
dOPtwFtLMcPenaEyGyZsI+s2xj0m2PnKI0HIO0J37nXu9s/URaK6vVkiRIlFAGEc
jCfFmEwDYWhHhdcMMJEeZ4UbEKbS5VAoryHReu51Guj5uwrM85BA53UcCyiAZeLI
EdS3yjfRYJaaq8xYdFrHJ1KpIomCt44AcjX5LRkSbA5prRgzbc/21AHDJHFTEfKd
39Ax/IAlqD3WzO6qUtrvrSaM6Hg+cHV63JSv0MOKYpKgTCPKKoIOvv4+PRaqitlV
FIMIGL5XFDxZWTuv+pweh4TnT7/cGMYXUnBczH1SdsfG1UB9U2S01SifaQbG1Q2v
OupVr/2wpDbCfxGqLmdxhw==
`pragma protect data_method = "aes256-cbc"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 5664 )
`pragma protect data_block
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
`pragma protect end_protected
//pragma protect end
//pragma protect
//pragma protect begin
/* Encryption Envelope */
`pragma protect begin_protected
`pragma protect version = 1
`pragma protect encrypt_agent = "QuestaSim" , encrypt_agent_info = "2023.4"
`pragma protect key_keyowner = "Aldec" , key_keyname = "ALDEC15_001"
`pragma protect key_method = "rsa"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 256 )
`pragma protect key_block
0EdYk8u9EcHvk5jqhjgohDTjVAeJT375Ef59f7yUuToa5zLARg+3ZhYxjn+3f2+f
GHrkhwUVyhyqbT8WjkrsEkbFOY+QQi4ZdA1Xj4Z//wG+fcEvjjatYv48Sz3YtuOH
QUP817ART1osb2GtW/StscEKBvMutLk+Snqv3QkHb4ev4y2y3KJtwzYaBBCh4HP3
fctt1g52yiTQCFtcd+8R7WACRO21cZs0IoR+ctw1Kbk6yZBnnIAQYsMlvYYUNJFr
csfS25mNE9ui/mTPN9AcyuaJ2FfdK4erHR1Fdbr+BAa0sKHxg93I8QWo9O3iRy+5
kVk8iGT9nN7Mv+IhhkiGAg==
`pragma protect data_method = "aes256-cbc"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 3504 )
`pragma protect data_block
EpUzHnZQ6MFzwaYdo8W13JVbZIgyghggaxTmb1JmEjhNwkKWhkMMC2Ks++6VLFEk
wYduO2xhSsY68DNAiD9BSCQO14ss6qzU2Qfp8bhG3qdWn4urrh/UgiT3LtrttRvB
WaDtTLoU08YRIi8SpN50pbk80kg6Q+u5OiJrUypY8/MCOE+A7R/CCyUX/sE1N2Vz
MYYc5oxFcnxfEvrLE48IdwDnImaeGHM6yJLyszgX7jq9rd+oo+eDcscHX9kbfoRM
NlBdtPyFUfkBHHI7+FRP7Bw1sqf1Sbs10VmMF/dS5Xtr/OlI1xfOJYckdOoRTino
ADlKD4tOg72Obe0RIXKIrVf2ogd8yZNkzcKqLX6Q8W0HBW7Sa3UL/QVw3W425BQq
uZYwmiNeyU8U1VP4rHQO3bl7D12IvkxV+AQPqmIOeYg299UEXWIFb2iELLLHaLg1
+2c0X1N1Gmbs1aMtp/2WxxS3/AdsDbi8rsgAWMftd626UWTv6xblk4fmaTewH0EI
3+LYLrgcBVO0hMXXA9AEtUhgm0MO8idEPDCZUtmJEn67VoPNCo9zfXCfwNHICIZk
UMSs+J0ZkeV8MGKV+GSsZ1hGRNWculxlh3ck1jbvnTRwaohoG05VnH5Y+U8fpRHv
+qVOSV15H+e1OaGVVCOzjU9CxwglwoT8gzJ6aZ5Ed8rhvqgEXXUhB0fkrl+chVjq
j0YrFvEpTS2f0SolxVXc3YkIeiW03j+xQdTPsZUQqQ3L25fxZUaKMX4zlnRoOg6E
Pdnck/34hCYTlmLzpBC6lZQ4vnConKLioSwDyBX3q1zji5lmV/v2N+1NISVRkOHg
lk7Lp3ELDDtTSimEVwQsXlXiH/w+pzq1RH8gD4G/DgrRqt5Xg68SwiP5sFnqLKo3
YJY80LnvRacrgYqxdGcM20XZTgAbEW5QIlmQK5CCI2UhaLpdcxedeHJViIOjtt2q
UcjLFONvXvgvxfaYTn/hGHwTllTc9F1LtNhGq7Bjk0BNtxABSCkAwzTobNufbDiL
VhEPF4Jl5vwoALSxrMwwjXk7T+ZHZ1mXixw5LK3NIgguPjGR4ucHnVKQHKYO+jZT
xhov7ZiDB/i5oAOMs9mkvw2sK4HtdxZRAkUwfDguhpLog2KY1TUk2J26H5QTUZiM
Z4pgvD94KYyVpGTuSFVVbKFAqtF4D3meT5lZiUD3KLFhZQP5bcc2V1FWpwoqiglx
H1hiFELCOV3eCjKBKIr6zxeExCxZStp9Lc4d/8//fKYCsaniUFCvVNcWPviou0F0
VrN6F7ivv6jeKQpwxJTqnRIr+KGLAtjHCGapTn4HF5/zt61A82QyUjvWuUTfHMYa
gjXGw/2jdbzIQH03ZJ/Q1V7zrL4wTgJ6lA+qJmybllwGeJZ9qQVNGANAl6U8q+V2
/YOI4RQZ7pn5oo+GHVh7c/nn8iKvwIvkHdsh8Ex8dRpWKS2faJyDeY/OEYf6MntI
FBb4tPULjWce1pkAMsMOJHlfVg5fCrC6JFR1do8pCNGRiItB9nNGVCGIH7fEWmPE
tb3Il6BrViT6bQWYPEVmtOLFk/8Z1suFb/BXhTIcRuIACbh+ltqrMc8Bcgsw44WQ
vqk1/88JsgUX3fhhEHRo/G/hABLoCDsoMgClgyUMdDm5xAeuKRA8ucIp+rJ5gigT
uTfFquKKJIEnI1tfGO9Y8d1K1GvLWfxlS3qZvAi3Ay5797cgWW+T8TzwwV4qp6Xl
uw6+gqxvzA7BL56QRTMx9eFukl62up1+l9/h0IU0AUgsVH74IwLGuo8yxP0oRTIP
v+6IzEFNa//Co/U9ZP8t4BnNvtWCp4igQjWwwnmNyUit7yVFSKYdZ4VHTtX8H/dO
VudR7B8yN48k5NnsHZsCoYcnCTwsYIWaZota3fdvtFfrvElyyaatxf6SzvY/sO2w
+lhEHxdcNW4vJUTHLdHYyc22oeO3mqzGJ2u3MJAe9b8140gK+P9CWKBF0HqfSzca
Bkiit284wt7cpxNFUJc7Z92E7gsXGbcG7hZZAGtRyANhHNlqPNm/OqRuPt8Kz5vr
sLlGz2gvKszxm9oE142ayYZeEQp5m2jZJkDxi3TZoL+0Yuf/AMrve+zOps/WtnNn
8+9CQcNx5fwj5jfQdzYjZ+pv/VafnbtvkMkuVzq9bc1923ijmXYPPA8UFtNuPe/F
kKo3z/xdRsy9sfETeJOZmY34KBIMnajB7CisFM76mBhd+4q6BqF+xx03RTjUSLvR
ATuGVl3qmCqw1uXKsFXQYdAWBMwD3wDgW0hoeVi/zreOMQVEx9MXtpZKYTURPhtP
1SfQGE9sZM2MqcLDfwhJ+fSp7+liA4nvfyN/1GITy+YGtPGXrron/mzvreoLqjWd
m/HAtB2yHZVNT9EjxsEdpZ3coRb9fIqnOusW1iVm5LeZPP7BnkRQIUIyLNJcR3HJ
kXyHbjPj9D98GFRr9QoCMljk+dD7ftGvXS7Rdpi0Kccd0mixKCQGEvRGTQdtWruX
LuzLymiFNd5w2C0V4YWda0WxYBrAa5sM2BpThMSFtQIopN0DqFAUfAAAX48E6NUn
UXLIeVb9QxHm3NQj1FLijG/K/S8WH3QMDDC5Yn2jsX5qi3GmHQXzbogCMx5yH2V5
Oo7YOy+NhN6WV5aWJsn7HFX7HnOtECtnRr9mmEFJSdPKzcHEznhVS2P5b6MVfnNS
5aza71Zrb+I979EMXb5t67uIwPeGqLKBqBMprPR8NJHjCcvjo12yWDZablCgWJLl
ei3tC60rwu6oZJCRbKeNavhnB0uMUWSQo82h/9VGWR19/BLk0Qq294FNb30xktJH
7IECsJ5JvO6kg6uzBy5Hys1+q3DCa0Aj7x2nGyK1Gv/kf9EaI/lwrCFPhR9AiemQ
x+YfF4YX8D/ShWoWeujEREsdRwsMpnFTOMd8CIbye0Mrx/dhBxh7FbUO3WIH2ZM0
4O+07yA/hwdVzS5tP+hT/BIAApL3TOvYDYMKOrLE8rlEGsjtL3lbX8aQJciN/7MH
ugmKt+aShUMoA9nXqeEgdjAtSoGay3rEQhJnM+zuLnrWVx6vfVnF359WpUm+at46
ksCZnzM3UFHqUW7MoMtKnz80adnaONPZZQvVD4BcSqeCXV1pk1nMeSy+AuXXA61Y
1o8OLi6ijH6Xz1GDCAZ4NBm4uoasNT9PPd9z5zckLXZ7Bv6yLceIJtJfG1wSIkyJ
SAIxxdgEGKQbdBQ7IDTTCmJsBexAaAHt7+jR4sXRM2eW3lQu7uTxtJclwDcBQkRE
VgHXUB1IYKBbTCFkFssKkV0KdBpT3xyl40mzvtR8HHvorfcb8QAzsdVPRHoG1w1Z
1SRWwtCO/kIeJPGvK04ATG8+9QL0v0EYG1ik5ObuXguL950JwK3CijvGwZLFQ+D3
xoYiwxFIob1fLIovO+91wltpwhbNzI/+B0EnXt5EPkfME/IsLWacKbxGsJnF8/Kc
YMVoBnLPswS1HkzJb0JuFFRdUneqp2fR9zJpiVesOTN4xsOzU2ApT6MPAKbaMFEK
/0M6yREqOJp4tEDo/Wul1EWWshtGZK2cnQ4YQxm+x0gH2WWSGxwnpi6WvO/rwk58
MBYY9VxSdtItP6Yc7T/JdnSGa6m642IPswZQ6XzyrhQv8aj8UGj685hxyoGNDCHC
GT6IW9sNDcv6fgTvadM60RhdpI7IRgyskkEwYaqaiVmpu8uKG8V3f2xDb46Cfiww
XpOQBjDBCWQ7i7obuiCbYIDp2fRjDMcfGO393MXv0EqXqwDtHGT77+z9ACsLku3R
go7IUzHfxw8QhIoyPp7xb5IYk00gjcUOuJ0vzei+dY6HzMIlItHjUbDW7gQ9HCUQ
NfnTQp20rWDgEVkRGOJK+OQ0vayrK7vGdVohxKbDBije96ZMtQV8UnYB08QBwown
fnSIOyQHS2oGG9nOZTQqgkuoeUNa/Q6Ka2nIBx2CV6BK8xXGKDboZQ2vVREezub3
4qUbVR44KwWQKFcYvGnDVf4QdeyvAL8r2Rgan9ijQOXbBR6bnnEbxf3k2qSHQ8xt
drEVJ9LqBPlwpLpNMBIbsLR3afs2THRL/GLml5z8P0GjUQQj1RofyfG45imohCXg
OdXnlrIIJqsI/CaV4AHwmArOyXnnTxCd2vfhRlJTEmFsvDMPobFYXdAziOG/749A
Lp1CAP0z3s8cPDpa4fqbIy3Stzkc1HY8aW2G3BiWU0Vf2A4RX5X2Pp2s1Co0B4q1
ve8UtMMZXRwXYfZGIvq1RoAe/3/uotb/KbM1SvvMMY8tVPIg25Dqn616jyFJ3qIC
TJIrLaPjSF6YumUrirCkv0pPp7Um2mH2r3GOFdReM+TFv8kosTQJa6Jk1A57sVpF
zPCrN5Npx0B7omOSu3Z5NK1SVE8Wn9FUvqAoy/0waleuDR/35asisYFl/u4eOYO4
Uq+54IxvLydKUrOggJfyO7vM/opnx8FG3KljOJZW2GArClk7ZlbsMa/iW9jGgrgD
pdASHRe8yF2LxbsJBkV0Y3irZgxRLP0ioUDnmcMYsI2NZBCsMpFT0ixuIw2aZvWI
e+atlpwrMq89SKertbVwncbLrUmcHUm3VRSjGj7l9oAiZHJinROODBx6qEVO2lvJ
perN0+ZYYJC5v+qyWIxbK1NFDEHA4gGtkmy+AcBOhxaHkChxp6Vr/dVoDCggfCLn
`pragma protect end_protected
//pragma protect end
//pragma protect
//pragma protect begin
/* Encryption Envelope */
`pragma protect begin_protected
`pragma protect version = 1
`pragma protect encrypt_agent = "QuestaSim" , encrypt_agent_info = "2023.4"
`pragma protect key_keyowner = "Aldec" , key_keyname = "ALDEC15_001"
`pragma protect key_method = "rsa"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 256 )
`pragma protect key_block
M8byHsCbrDGyP62CFo8IvTM3Ae5RZL5oFDkkznIjOqNMKx3MfffncMeFuVCbvra+
Kz6I+7iwc1Fcj6DtkGGvxA4S/1nZs7iGAAvORqAF7HrKRZSfaVC5VZcuRSJzAH0i
Aewvp5YeFpmGEMBrIU4gGOOXU3vOpMTgE7Dg5mf6LqRWI784AXRaAJUNUlNSUHeI
IVbnj9YkS60Jui0wZjzP8PZtP4/xXmKdwe+gXbB/RrDoDgMx04/CnJYEJI/w+bEw
++9yzzLQxLrmwBIQWs2Zht7Nsmy21fpn0sEMQ1KcT+8EVhINv9qF4JLHeDQESCHJ
gODTw8hroSy9hCWlIflMfw==
`pragma protect data_method = "aes256-cbc"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 31840 )
`pragma protect data_block
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
odGVCw643lAXsgmg0EE4bw==
`pragma protect end_protected
//pragma protect end
/////////////////////////////////////////////////////////////////////////////
// _____
// / _______ Copyright (C) 2013-2021 Efinix Inc. All rights reserved.
// / / \
// / / .. / simple_dual_port_ram_fifo.v
// / / .' /
// __/ /.' / Description:
// __ \ / EFX FIFO
// /_/ /\ \_____/ /
// ____/ \_______/
//
// *******************************
// Revisions:
//
// *******************************
module `IP_MODULE_NAME(efx_fifo_top) # (
parameter FAMILY = "TRION", // New Param
parameter SYNC_CLK = 0,
parameter BYPASS_RESET_SYNC = 0, // New Param
parameter SYNC_STAGE = 2, // New Param
parameter MODE = "STANDARD",
parameter DEPTH = 512, // Reverted (Equivalent to WDATA_DEPTH)
parameter DATA_WIDTH = 32, // Reverted (Equivalent to WDATA_WIDTH)
parameter PIPELINE_REG = 1, // Reverted (By default is ON)
parameter OPTIONAL_FLAGS = 1, // Reverted
parameter OUTPUT_REG = 0,
parameter PROGRAMMABLE_FULL = "STATIC_DUAL", // Set to "NONE" if not require this feature
parameter PROG_FULL_ASSERT = 27,
parameter PROG_FULL_NEGATE = 23,
parameter PROGRAMMABLE_EMPTY = "STATIC_DUAL", // Set to "NONE" if not require this feature
parameter PROG_EMPTY_ASSERT = 5,
parameter PROG_EMPTY_NEGATE = 7,
parameter ALMOST_FLAG = OPTIONAL_FLAGS,
parameter HANDSHAKE_FLAG = OPTIONAL_FLAGS,
parameter ASYM_WIDTH_RATIO = 4,
parameter WADDR_WIDTH = depth2width(DEPTH),
parameter RDATA_WIDTH = rdwidthcompute(ASYM_WIDTH_RATIO,DATA_WIDTH),
parameter RD_DEPTH = rddepthcompute(DEPTH,DATA_WIDTH,RDATA_WIDTH),
parameter RADDR_WIDTH = depth2width(RD_DEPTH),
parameter ENDIANESS = 0,
parameter OVERFLOW_PROTECT = 1,
parameter UNDERFLOW_PROTECT = 1,
parameter RAM_STYLE = "block_ram"
)(
input wire a_rst_i,
input wire a_wr_rst_i,
input wire a_rd_rst_i,
input wire clk_i,
input wire wr_clk_i,
input wire rd_clk_i,
input wire wr_en_i,
input wire rd_en_i,
input wire [DATA_WIDTH-1:0] wdata,
output wire almost_full_o,
output wire prog_full_o,
output wire full_o,
output wire overflow_o,
output wire wr_ack_o,
output wire [WADDR_WIDTH :0] datacount_o,
output wire [WADDR_WIDTH :0] wr_datacount_o,
output wire empty_o,
output wire almost_empty_o,
output wire prog_empty_o,
output wire underflow_o,
output wire rd_valid_o,
output wire [RDATA_WIDTH-1:0] rdata,
output wire [RADDR_WIDTH :0] rd_datacount_o,
output wire rst_busy
);
localparam WR_DEPTH = DEPTH;
localparam WDATA_WIDTH = DATA_WIDTH;
localparam RAM_MUX_RATIO = (RDATA_WIDTH <= WDATA_WIDTH/32) ? 32 :
(RDATA_WIDTH <= WDATA_WIDTH/16) ? 16 :
(RDATA_WIDTH <= WDATA_WIDTH/8) ? 8 :
(RDATA_WIDTH <= WDATA_WIDTH/4) ? 4 :
(RDATA_WIDTH <= WDATA_WIDTH/2) ? 2 :
(RDATA_WIDTH <= WDATA_WIDTH) ? 1 :
(RDATA_WIDTH <= WDATA_WIDTH*2) ? 2 :
(RDATA_WIDTH <= WDATA_WIDTH*4) ? 4 :
(RDATA_WIDTH <= WDATA_WIDTH*8) ? 8 :
(RDATA_WIDTH <= WDATA_WIDTH*16) ? 16 : 32;
wire wr_rst_int;
wire rd_rst_int;
wire wr_en_int;
wire rd_en_int;
wire [WADDR_WIDTH-1:0] waddr;
wire [RADDR_WIDTH-1:0] raddr;
wire wr_clk_int;
wire rd_clk_int;
wire [WADDR_WIDTH :0] wr_datacount_int;
wire [RADDR_WIDTH :0] rd_datacount_int;
generate
if (ASYM_WIDTH_RATIO == 4) begin
if (SYNC_CLK) begin
assign wr_clk_int = clk_i;
assign rd_clk_int = clk_i;
assign datacount_o = wr_datacount_int;
assign wr_datacount_o = {(WADDR_WIDTH+1){1'b0}};
assign rd_datacount_o = {(RADDR_WIDTH+1){1'b0}};
end
else begin
assign wr_clk_int = wr_clk_i;
assign rd_clk_int = rd_clk_i;
assign datacount_o = {(WADDR_WIDTH+1){1'b0}};
assign wr_datacount_o = wr_datacount_int;
assign rd_datacount_o = rd_datacount_int;
end
end
else begin
assign datacount_o = {(WADDR_WIDTH+1){1'b0}};
assign wr_datacount_o = wr_datacount_int;
assign rd_datacount_o = rd_datacount_int;
if (SYNC_CLK) begin
assign wr_clk_int = clk_i;
assign rd_clk_int = clk_i;
end
else begin
assign wr_clk_int = wr_clk_i;
assign rd_clk_int = rd_clk_i;
end
end
if (!SYNC_CLK) begin
//(* async_reg = "true" *) reg [1:0] wr_rst;
//(* async_reg = "true" *) reg [1:0] rd_rst;
//
//always @ (posedge wr_clk_int or posedge a_rst_i) begin
// if (a_rst_i)
// wr_rst <= 2'b11;
// else
// wr_rst <= {wr_rst[0],1'b0};
//end
//
//always @ (posedge rd_clk_int or posedge a_rst_i) begin
// if (a_rst_i)
// rd_rst <= 2'b11;
// else
// rd_rst <= {rd_rst[0],1'b0};
//end
if (BYPASS_RESET_SYNC) begin
assign wr_rst_int = a_wr_rst_i;
assign rd_rst_int = a_rd_rst_i;
assign rst_busy = 1'b0;
end
else begin
`IP_MODULE_NAME(efx_resetsync) #(
.ACTIVE_LOW (0)
) efx_resetsync_wr_rst (
.clk (wr_clk_int),
.reset (a_rst_i),
.d_o (wr_rst_int)
);
`IP_MODULE_NAME(efx_resetsync) #(
.ACTIVE_LOW (0)
) efx_resetsync_rd_rst (
.clk (rd_clk_int),
.reset (a_rst_i),
.d_o (rd_rst_int)
);
assign rst_busy = wr_rst_int | rd_rst_int;
end
end
else begin
//(* async_reg = "true" *) reg [1:0] a_rst;
//
//always @ (posedge clk_i or posedge a_rst_i) begin
// if (a_rst_i)
// a_rst <= 2'b11;
// else
// a_rst <= {a_rst[0],1'b0};
//end
wire a_rst;
`IP_MODULE_NAME(efx_resetsync) #(
.ACTIVE_LOW (0)
) efx_resetsync_a_rst (
.clk (clk_i),
.reset (a_rst_i),
.d_o (a_rst)
);
if (BYPASS_RESET_SYNC) begin
assign wr_rst_int = a_rst_i;
assign rd_rst_int = a_rst_i;
assign rst_busy = 1'b0;
end
else begin
assign wr_rst_int = a_rst;
assign rd_rst_int = a_rst;
assign rst_busy = wr_rst_int | rd_rst_int;
end
end
endgenerate
`IP_MODULE_NAME(efx_fifo_ram) # (
.FAMILY (FAMILY),
.WR_DEPTH (WR_DEPTH),
.RD_DEPTH (RD_DEPTH),
.WDATA_WIDTH (WDATA_WIDTH),
.RDATA_WIDTH (RDATA_WIDTH),
.WADDR_WIDTH (WADDR_WIDTH),
.RADDR_WIDTH (RADDR_WIDTH),
.OUTPUT_REG (OUTPUT_REG),
.RAM_MUX_RATIO (RAM_MUX_RATIO),
.ENDIANESS (ENDIANESS),
.RAM_STYLE (RAM_STYLE)
) xefx_fifo_ram (
.wdata (wdata),
.waddr (waddr),
.raddr (raddr),
.we (wr_en_int),
.re (rd_en_int),
.wclk (wr_clk_int),
.rclk (rd_clk_int),
.rdata (rdata)
);
`IP_MODULE_NAME(efx_fifo_ctl) # (
.SYNC_CLK (SYNC_CLK),
.SYNC_STAGE (SYNC_STAGE),
.MODE (MODE),
.WR_DEPTH (WR_DEPTH),
.WADDR_WIDTH (WADDR_WIDTH),
.RADDR_WIDTH (RADDR_WIDTH),
.ASYM_WIDTH_RATIO (ASYM_WIDTH_RATIO),
.RAM_MUX_RATIO (RAM_MUX_RATIO),
.PIPELINE_REG (PIPELINE_REG),
.ALMOST_FLAG (ALMOST_FLAG),
.PROGRAMMABLE_FULL (PROGRAMMABLE_FULL),
.PROG_FULL_ASSERT (PROG_FULL_ASSERT),
.PROG_FULL_NEGATE (PROG_FULL_NEGATE),
.PROGRAMMABLE_EMPTY (PROGRAMMABLE_EMPTY),
.PROG_EMPTY_ASSERT (PROG_EMPTY_ASSERT),
.PROG_EMPTY_NEGATE (PROG_EMPTY_NEGATE),
.OUTPUT_REG (OUTPUT_REG),
.HANDSHAKE_FLAG (HANDSHAKE_FLAG),
.OVERFLOW_PROTECT (OVERFLOW_PROTECT),
.UNDERFLOW_PROTECT (UNDERFLOW_PROTECT)
) xefx_fifo_ctl (
.wr_rst (wr_rst_int),
.rd_rst (rd_rst_int),
.wclk (wr_clk_int),
.rclk (rd_clk_int),
.we (wr_en_i),
.re (rd_en_i),
.wr_full (full_o),
.wr_ack (wr_ack_o),
.rd_empty (empty_o),
.wr_almost_full (almost_full_o),
.rd_almost_empty (almost_empty_o),
.wr_prog_full (prog_full_o),
.rd_prog_empty (prog_empty_o),
.wr_en_int (wr_en_int),
.rd_en_int (rd_en_int),
.waddr (waddr),
.raddr (raddr),
.wr_datacount (wr_datacount_int),
.rd_datacount (rd_datacount_int),
.rd_vld (rd_valid_o),
.wr_overflow (overflow_o),
.rd_underflow (underflow_o)
);
function integer depth2width;
input [31:0] depth;
begin : fnDepth2Width
if (depth > 1) begin
depth = depth - 1;
for (depth2width=0; depth>0; depth2width = depth2width + 1)
depth = depth>>1;
end
else
depth2width = 0;
end
endfunction
function integer width2depth;
input [31:0] width;
begin : fnWidth2Depth
width2depth = width**2;
end
endfunction
function integer rdwidthcompute;
input [31:0] asym_option;
input [31:0] wr_width;
begin : RdWidthCompute
rdwidthcompute = (asym_option==0)? wr_width/16 :
(asym_option==1)? wr_width/8 :
(asym_option==2)? wr_width/4 :
(asym_option==3)? wr_width/2 :
(asym_option==4)? wr_width/1 :
(asym_option==5)? wr_width*2 :
(asym_option==6)? wr_width*4 :
(asym_option==7)? wr_width*8 :
(asym_option==8)? wr_width*16 : wr_width/1;
end
endfunction
function integer rddepthcompute;
input [31:0] wr_depth;
input [31:0] wr_width;
input [31:0] rd_width;
begin : RdDepthCompute
rddepthcompute = (wr_depth * wr_width) / rd_width;
end
endfunction
endmodule
/////////////////////////////////////////////////////////////////////////////
// _____
// / _______ Copyright (C) 2013-2021 Efinix Inc. All rights reserved.
// / / \
// / / .. / simple_dual_port_ram_fifo.v
// / / .' /
// __/ /.' / Description:
// __ \ / EFX FIFO
// /_/ /\ \_____/ /
// ____/ \_______/
//
// *******************************
// Revisions:
//
// *******************************
module `IP_MODULE_NAME(efx_fifo_ram) #(
parameter FAMILY = "TRION",
parameter WR_DEPTH = 512,
parameter RD_DEPTH = 512,
parameter WDATA_WIDTH = 8,
parameter RDATA_WIDTH = 8,
parameter WADDR_WIDTH = 9,
parameter RADDR_WIDTH = 9,
parameter OUTPUT_REG = 1,
parameter RAM_MUX_RATIO = 4,
parameter ENDIANESS = 0, //0: Big endian (default) 1: Little endian
parameter RAM_STYLE = "block_ram"
) (
input wire wclk,
input wire rclk,
input wire we,
input wire re,
input wire [(WDATA_WIDTH-1):0] wdata,
input wire [(WADDR_WIDTH-1):0] waddr,
input wire [(RADDR_WIDTH-1):0] raddr,
output wire [(RDATA_WIDTH-1):0] rdata
);
localparam MEM_DEPTH = (WR_DEPTH > RD_DEPTH) ? WR_DEPTH : RD_DEPTH;
localparam MEM_DATA_WIDTH = (WDATA_WIDTH > RDATA_WIDTH) ? RDATA_WIDTH : WDATA_WIDTH;
localparam LSB_WIDTH = (WADDR_WIDTH > RADDR_WIDTH) ? (WADDR_WIDTH - RADDR_WIDTH) : (RADDR_WIDTH - WADDR_WIDTH);
localparam RDATA_WDATA_RATIO = (RDATA_WIDTH <= WDATA_WIDTH/32) ? "ONE_THIRTYTWO" :
(RDATA_WIDTH <= WDATA_WIDTH/16) ? "ONE_SIXTEENTH" :
(RDATA_WIDTH <= WDATA_WIDTH/8) ? "ONE_EIGHTH" :
(RDATA_WIDTH <= WDATA_WIDTH/4) ? "ONE_FOURTH" :
(RDATA_WIDTH <= WDATA_WIDTH/2) ? "ONE_HALF" :
(RDATA_WIDTH <= WDATA_WIDTH) ? "ONE" :
(RDATA_WIDTH <= WDATA_WIDTH*2) ? "TWO_TIMES" :
(RDATA_WIDTH <= WDATA_WIDTH*4) ? "FOUR_TIMES" :
(RDATA_WIDTH <= WDATA_WIDTH*4) ? "EIGHT_TIMES" :
(RDATA_WIDTH <= WDATA_WIDTH*4) ? "SIXTEEN_TIMES" : "THIRTYTWO_TIMES";
(* syn_ramstyle = RAM_STYLE *) reg [MEM_DATA_WIDTH-1:0] ram[MEM_DEPTH-1:0];
reg [RDATA_WIDTH-1:0] r_rdata_1P;
reg [RDATA_WIDTH-1:0] r_rdata_2P;
wire re_int;
generate
if (FAMILY == "TRION") begin
if (RDATA_WDATA_RATIO == "ONE") begin
always @ (posedge wclk) begin
if (we)
ram[waddr] <= wdata;
end
always @ (posedge rclk) begin
if (re_int) begin
r_rdata_1P <= ram[raddr];
end
r_rdata_2P <= r_rdata_1P;
end
end
else if (RDATA_WDATA_RATIO == "ONE_THIRTYTWO" || RDATA_WDATA_RATIO == "ONE_SIXTEENTH" || RDATA_WDATA_RATIO == "ONE_EIGHTH" || RDATA_WDATA_RATIO == "ONE_FOURTH" || RDATA_WDATA_RATIO == "ONE_HALF" ) begin
if (ENDIANESS == 0) begin
integer i;
always @ (posedge wclk) begin
for (i=0; i<RAM_MUX_RATIO; i=i+1) begin
if (we) begin
ram[{waddr,LSB_WIDTH'(RAM_MUX_RATIO-1-i)}] <= wdata[((WDATA_WIDTH/RAM_MUX_RATIO)*i) +: WDATA_WIDTH/RAM_MUX_RATIO];
end
end
end
always @ (posedge rclk) begin
if (re_int) begin
r_rdata_1P <= ram[raddr];
end
r_rdata_2P <= r_rdata_1P;
end
end
else begin //endianess == 1
integer i;
always @ (posedge wclk) begin
for (i=0; i<RAM_MUX_RATIO; i=i+1) begin
if (we) begin
ram[{waddr,LSB_WIDTH'(i)}] <= wdata[((WDATA_WIDTH/RAM_MUX_RATIO)*i) +: WDATA_WIDTH/RAM_MUX_RATIO];
end
end
end
always @ (posedge rclk) begin
if (re_int) begin
r_rdata_1P <= ram[raddr];
end
r_rdata_2P <= r_rdata_1P;
end
end
end
else if (RDATA_WDATA_RATIO == "TWO_TIMES" || RDATA_WDATA_RATIO == "FOUR_TIMES" || RDATA_WDATA_RATIO == "EIGHT_TIMES" || RDATA_WDATA_RATIO == "SIXTEEN_TIMES" ||RDATA_WDATA_RATIO == "THIRTYTWO_TIMES" ) begin
//integer i;
if (ENDIANESS == 0) begin
always @ (posedge wclk) begin
if (we)
ram[waddr] <= wdata;
end
integer i;
always @ (posedge rclk) begin
for (i=0; i<RAM_MUX_RATIO; i=i+1) begin
if (re_int) begin
r_rdata_1P[((RDATA_WIDTH/RAM_MUX_RATIO)*i) +: RDATA_WIDTH/RAM_MUX_RATIO] <= ram[{raddr,LSB_WIDTH'(RAM_MUX_RATIO-1-i)}];
end
r_rdata_2P <= r_rdata_1P;
end
end
end
else begin //endianess == 1
always @ (posedge wclk) begin
if (we)
ram[waddr] <= wdata;
end
integer i;
always @ (posedge rclk) begin
for (i=0; i<RAM_MUX_RATIO; i=i+1) begin
if (re_int) begin
r_rdata_1P[((RDATA_WIDTH/RAM_MUX_RATIO)*i) +: RDATA_WIDTH/RAM_MUX_RATIO] <= ram[{raddr,LSB_WIDTH'(i)}];
end
r_rdata_2P <= r_rdata_1P;
end
end
end
end
if (OUTPUT_REG) begin
assign re_int = re;
assign rdata = r_rdata_2P;
end
else begin
assign re_int = re;
assign rdata = r_rdata_1P;
end
end
else begin
if (RDATA_WDATA_RATIO == "ONE") begin
always @ (posedge wclk) begin
if (we)
ram[waddr] <= wdata;
end
always @ (posedge rclk) begin
if (re_int) begin
r_rdata_1P <= ram[raddr];
r_rdata_2P <= r_rdata_1P;
end
end
end
else if (RDATA_WDATA_RATIO == "ONE_THIRTYTWO" || RDATA_WDATA_RATIO == "ONE_SIXTEENTH" || RDATA_WDATA_RATIO == "ONE_EIGHTH" || RDATA_WDATA_RATIO == "ONE_FOURTH" || RDATA_WDATA_RATIO == "ONE_HALF" ) begin
//integer i;
if (ENDIANESS == 0) begin
integer i;
always @ (posedge wclk) begin
for (i=0; i<RAM_MUX_RATIO; i=i+1) begin
if (we) begin
ram[{waddr,LSB_WIDTH'(RAM_MUX_RATIO-1-i)}] <= wdata[((WDATA_WIDTH/RAM_MUX_RATIO)*i) +: WDATA_WIDTH/RAM_MUX_RATIO];
end
end
end
always @ (posedge rclk) begin
if (re_int) begin
r_rdata_1P <= ram[raddr];
r_rdata_2P <= r_rdata_1P;
end
end
end
else begin //endianess == 1
integer i;
always @ (posedge wclk) begin
for (i=0; i<RAM_MUX_RATIO; i=i+1) begin
if (we) begin
ram[{waddr,LSB_WIDTH'(i)}] <= wdata[((WDATA_WIDTH/RAM_MUX_RATIO)*i) +: WDATA_WIDTH/RAM_MUX_RATIO];
end
end
end
always @ (posedge rclk) begin
if (re_int) begin
r_rdata_1P <= ram[raddr];
r_rdata_2P <= r_rdata_1P;
end
end
end
end
else if (RDATA_WDATA_RATIO == "TWO_TIMES" || RDATA_WDATA_RATIO == "FOUR_TIMES" || RDATA_WDATA_RATIO == "EIGHT_TIMES" || RDATA_WDATA_RATIO == "SIXTEEN_TIMES" || RDATA_WDATA_RATIO == "THIRTYTWO_TIMES" ) begin
//integer i;
if (ENDIANESS == 0) begin
always @ (posedge wclk) begin
if (we)
ram[waddr] <= wdata;
end
integer i;
always @ (posedge rclk) begin
for (i=0; i<RAM_MUX_RATIO; i=i+1) begin
if (re_int) begin
r_rdata_1P[((RDATA_WIDTH/RAM_MUX_RATIO)*i) +: RDATA_WIDTH/RAM_MUX_RATIO] <= ram[{raddr,LSB_WIDTH'(RAM_MUX_RATIO-1-i)}];
r_rdata_2P <= r_rdata_1P;
end
end
end
end
else begin //endianess ==1
always @ (posedge wclk) begin
if (we)
ram[waddr] <= wdata;
end
integer i;
always @ (posedge rclk) begin
for (i=0; i<RAM_MUX_RATIO; i=i+1) begin
if (re_int) begin
r_rdata_1P[((RDATA_WIDTH/RAM_MUX_RATIO)*i) +: RDATA_WIDTH/RAM_MUX_RATIO] <= ram[{raddr,LSB_WIDTH'(i)}];
r_rdata_2P <= r_rdata_1P;
end
end
end
end
end
// NIC
//if (MODE == "STANDARD") begin
// if (OUTPUT_REG) begin
// reg re_r;
// always @ (posedge rclk) begin
// re_r <= re;
// end
// assign re_int = re | re_r;
// assign rdata = r_rdata_2P;
// end
// else begin
// assign re_int = re;
// assign rdata = r_rdata_1P;
// end
//end
//else begin
// assign re_int = re;
// assign rdata = r_rdata_1P;
//end
if (OUTPUT_REG) begin
reg re_r;
always @ (posedge rclk) begin
re_r <= re;
end
assign re_int = re | re_r;
assign rdata = r_rdata_2P;
end
else begin
assign re_int = re;
assign rdata = r_rdata_1P;
end
end
endgenerate
endmodule
////////////////////////////////////////////////////////////////////////////////
// Copyright (C) 2013-2021 Efinix Inc. All rights reserved.
//
// This document contains proprietary information which is
// protected by copyright. All rights are reserved. This notice
// refers to original work by Efinix, Inc. which may be derivitive
// of other work distributed under license of the authors. In the
// case of derivative work, nothing in this notice overrides the
// original author's license agreement. Where applicable, the
// original license agreement is included in it's original
// unmodified form immediately below this header.
//
// WARRANTY DISCLAIMER.
// THE DESIGN, CODE, OR INFORMATION ARE PROVIDED “AS IS” AND
// EFINIX MAKES NO WARRANTIES, EXPRESS OR IMPLIED WITH
// RESPECT THERETO, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES,
// INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR
// PURPOSE. SOME STATES DO NOT ALLOW EXCLUSIONS OF AN IMPLIED
// WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO LICENSEE.
//
// LIMITATION OF LIABILITY.
// NOTWITHSTANDING ANYTHING TO THE CONTRARY, EXCEPT FOR BODILY
// INJURY, EFINIX SHALL NOT BE LIABLE WITH RESPECT TO ANY SUBJECT
// MATTER OF THIS AGREEMENT UNDER TORT, CONTRACT, STRICT LIABILITY
// OR ANY OTHER LEGAL OR EQUITABLE THEORY (I) FOR ANY INDIRECT,
// SPECIAL, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES OF ANY
// CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF
// GOODWILL, DATA OR PROFIT, WORK STOPPAGE, OR COMPUTER FAILURE OR
// MALFUNCTION, OR IN ANY EVENT (II) FOR ANY AMOUNT IN EXCESS, IN
// THE AGGREGATE, OF THE FEE PAID BY LICENSEE TO EFINIX HEREUNDER
// (OR, IF THE FEE HAS BEEN WAIVED, $100), EVEN IF EFINIX SHALL HAVE
// BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO
// NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
// CONSEQUENTIAL DAMAGES, SO THIS LIMITATION AND EXCLUSION MAY NOT
// APPLY TO LICENSEE.
//
////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// _____
// / _______ Copyright (C) 2013-2020 Efinix Inc. All rights reserved.
// / / \
// / / .. / gray2bin.v
// / / .' /
// __/ /.' / Description:
// __ \ / Gray to Binary Encoding Convertor
// /_/ /\ \_____/ /
// ____/ \_______/
//
// *******************************
// Revisions:
// 1.0 Initial rev
//
// *******************************
`resetall
`timescale 1ns/1ps
module `IP_MODULE_NAME(efx_fifo_gray2bin)
#(parameter WIDTH=5)
(// outputs
output wire [WIDTH-1:0] bin_o,
// input
input [WIDTH-1:0] gray_i);
//---------------------------------------------------------------------
// Recursive Module
// Description: reduction xor
generate
if (WIDTH > 1) begin
wire [1:0] bin_1;
assign bin_1 = {gray_i[WIDTH-1], gray_i[WIDTH-1]^gray_i[WIDTH-2]};
if (WIDTH == 2) begin
assign bin_o = bin_1;
end
else begin
assign bin_o[WIDTH-1] = bin_1[1];
`IP_MODULE_NAME(efx_fifo_gray2bin) #(.WIDTH(WIDTH-1)) u_gray2bin (.bin_o(bin_o[WIDTH-2:0]), .gray_i({bin_1[0], gray_i[WIDTH-3:0]}));
end
end
else /* if (WIDTH == 1) */
assign bin_o = gray_i;
endgenerate
endmodule
////////////////////////////////////////////////////////////////////////////////
// Copyright (C) 2013-2020 Efinix Inc. All rights reserved.
//
// This document contains proprietary information which is
// protected by copyright. All rights are reserved. This notice
// refers to original work by Efinix, Inc. which may be derivitive
// of other work distributed under license of the authors. In the
// case of derivative work, nothing in this notice overrides the
// original author's license agreement. Where applicable, the
// original license agreement is included in it's original
// unmodified form immediately below this header.
//
// WARRANTY DISCLAIMER.
// THE DESIGN, CODE, OR INFORMATION ARE PROVIDED “AS IS” AND
// EFINIX MAKES NO WARRANTIES, EXPRESS OR IMPLIED WITH
// RESPECT THERETO, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES,
// INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR
// PURPOSE. SOME STATES DO NOT ALLOW EXCLUSIONS OF AN IMPLIED
// WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO LICENSEE.
//
// LIMITATION OF LIABILITY.
// NOTWITHSTANDING ANYTHING TO THE CONTRARY, EXCEPT FOR BODILY
// INJURY, EFINIX SHALL NOT BE LIABLE WITH RESPECT TO ANY SUBJECT
// MATTER OF THIS AGREEMENT UNDER TORT, CONTRACT, STRICT LIABILITY
// OR ANY OTHER LEGAL OR EQUITABLE THEORY (I) FOR ANY INDIRECT,
// SPECIAL, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES OF ANY
// CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF
// GOODWILL, DATA OR PROFIT, WORK STOPPAGE, OR COMPUTER FAILURE OR
// MALFUNCTION, OR IN ANY EVENT (II) FOR ANY AMOUNT IN EXCESS, IN
// THE AGGREGATE, OF THE FEE PAID BY LICENSEE TO EFINIX HEREUNDER
// (OR, IF THE FEE HAS BEEN WAIVED, $100), EVEN IF EFINIX SHALL HAVE
// BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO
// NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
// CONSEQUENTIAL DAMAGES, SO THIS LIMITATION AND EXCLUSION MAY NOT
// APPLY TO LICENSEE.
//
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
// _____
// / _______ Copyright (C) 2013-2020 Efinix Inc. All rights reserved.
// / / \
// / / .. / pipe_reg.v
// / / .' /
// __/ /.' / Description:
// __ \ / Parallel Pipelining Shift Register
// /_/ /\ \_____/ /
// ____/ \_______/
//
// *******************************
// Revisions:
// 1.0 Initial rev
//
// *******************************
module `IP_MODULE_NAME(efx_fifo_datasync) #(
parameter STAGE = 32,
parameter WIDTH = 4
) (
input wire clk_i,
input wire [WIDTH-1:0] d_i,
output wire [WIDTH-1:0] d_o
);
(* async_reg = "true" *) reg [WIDTH-1:0] pipe_reg [STAGE-1:0];
integer i;
always @(posedge clk_i) begin
for (i=STAGE-1; i>0; i = i - 1) begin
pipe_reg[i] <= pipe_reg[i-1];
end
pipe_reg[0] <= d_i;
end
assign d_o = pipe_reg[STAGE-1];
endmodule
////////////////////////////////////////////////////////////////////////////////
// Copyright (C) 2013-2020 Efinix Inc. All rights reserved.
//
// This document contains proprietary information which is
// protected by copyright. All rights are reserved. This notice
// refers to original work by Efinix, Inc. which may be derivitive
// of other work distributed under license of the authors. In the
// case of derivative work, nothing in this notice overrides the
// original author's license agreement. Where applicable, the
// original license agreement is included in it's original
// unmodified form immediately below this header.
//
// WARRANTY DISCLAIMER.
// THE DESIGN, CODE, OR INFORMATION ARE PROVIDED “AS IS” AND
// EFINIX MAKES NO WARRANTIES, EXPRESS OR IMPLIED WITH
// RESPECT THERETO, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES,
// INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR
// PURPOSE. SOME STATES DO NOT ALLOW EXCLUSIONS OF AN IMPLIED
// WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO LICENSEE.
//
// LIMITATION OF LIABILITY.
// NOTWITHSTANDING ANYTHING TO THE CONTRARY, EXCEPT FOR BODILY
// INJURY, EFINIX SHALL NOT BE LIABLE WITH RESPECT TO ANY SUBJECT
// MATTER OF THIS AGREEMENT UNDER TORT, CONTRACT, STRICT LIABILITY
// OR ANY OTHER LEGAL OR EQUITABLE THEORY (I) FOR ANY INDIRECT,
// SPECIAL, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES OF ANY
// CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF
// GOODWILL, DATA OR PROFIT, WORK STOPPAGE, OR COMPUTER FAILURE OR
// MALFUNCTION, OR IN ANY EVENT (II) FOR ANY AMOUNT IN EXCESS, IN
// THE AGGREGATE, OF THE FEE PAID BY LICENSEE TO EFINIX HEREUNDER
// (OR, IF THE FEE HAS BEEN WAIVED, $100), EVEN IF EFINIX SHALL HAVE
// BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO
// NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
// CONSEQUENTIAL DAMAGES, SO THIS LIMITATION AND EXCLUSION MAY NOT
// APPLY TO LICENSEE.
//
////////////////////////////////////////////////////////////////////////////////
// synopsys translate_off
`timescale 1 ns / 1 ps
// synopsys translate_on
module `IP_MODULE_NAME(efx_resetsync) #(
parameter ASYNC_STAGE = 2,
parameter ACTIVE_LOW = 1
) (
input wire clk,
input wire reset,
output wire d_o
);
generate
if (ACTIVE_LOW == 1) begin: active_low
`IP_MODULE_NAME(efx_asyncreg) #(
.WIDTH (1),
.ACTIVE_LOW (1),
.RST_VALUE (0)
) efx_resetsync_active_low (
.clk (clk),
.reset_n (reset),
.d_i (1'b1),
.d_o (d_o)
);
end
else begin: active_high
`IP_MODULE_NAME(efx_asyncreg) #(
.WIDTH (1),
.ACTIVE_LOW (0),
.RST_VALUE (1)
) efx_resetsync_active_high (
.clk (clk),
.reset_n (reset),
.d_i (1'b0),
.d_o (d_o)
);
end
endgenerate
endmodule
// synopsys translate_off
`timescale 1 ns / 1 ps
// synopsys translate_on
module `IP_MODULE_NAME(efx_asyncreg) #(
parameter ASYNC_STAGE = 2,
parameter WIDTH = 4,
parameter ACTIVE_LOW = 1, // 0 - Active high reset, 1 - Active low reset
parameter RST_VALUE = 0,
parameter OFF_ASSERTION = 0 // 1 = Turn off PULSE_WIDTH_CHK assertion for a particular instance
) (
input wire clk,
input wire reset_n,
input wire [WIDTH-1:0] d_i,
output wire [WIDTH-1:0] d_o
);
`pragma protect begin_protected
`pragma protect version = 1
`pragma protect author = "author-a" , author_info = "author-a-details"
`pragma protect encrypt_agent = "QuestaSim" , encrypt_agent_info = "2023.4"
`pragma protect key_keyowner = "Efinix Inc." , key_keyname = "EFX_K01"
`pragma protect key_method = "rsa"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 256 )
`pragma protect key_block
IjzmeF2ACtI8q/MHPcSQakfCyuQSUgg747Z3U+BWZdCStFbqF/Rhg0VPl8JT+91V
o/8Ohsiw6GnpSIX69XazqGYmhEjb+W7W2ngBYentEXdSyzUYvEbr8i71cL04f1fE
El78uYgSvjFwoDyocXOVYk8JA0v7y6WnabkL02lAqASKGQK55nzfKeUVbJHKHjAY
kIT3Nf7JWK2NVVymI1Zs5QttwrNgKBSqoiPvmy4+16bTQMx4R205Bb4rT1MqSqIc
/5U5/Z1e1tZzOqoEyhfcMMKW0emdBIdByNvteK05ZATt11Uzj2M/Vn1r9KmYd0h1
uYJaS5tuGEuFInBHa7oO8g==
`pragma protect key_keyowner = "Cadence Design Systems." , key_keyname = "CDS_RSA_KEY_VER_2"
`pragma protect key_method = "rsa"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 256 )
`pragma protect key_block
ABJo/BvEH9XbZrt+xPOQ2C7yeLcnebDlRELbHyCdXeeNkZRVZ9m0ie+1HufS/I+3
fC63lnVTenVdf9s4tm1RLd5VBkmFb37ikgaESy2aRKWsdLG6x2OyuODoMDRCjYUa
rxhnwLWh5E55yR3XVZgM2k7/NPP2cTL7iOSCjH4No38siNjs4Fapyc4FFq0TOsQq
PMqsZ5jgmM+ZT8cil0wMt5tpdEOwvchbe1GcZLIhcIFLD/Gb2XtP0Q0QkOlNzuiL
DNyobLTjDkV5si+/23Ng2E7tDq+SX+vJP4ciI63kXtsmQdn1ff2Y64ibNXJtpu/w
K3OoKmk3zFeArSsql8B4/Q==
`pragma protect key_keyowner = "Synopsys" , key_keyname = "SNPS-VCS-RSA-2"
`pragma protect key_method = "rsa"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 128 )
`pragma protect key_block
RAoMYYsrw2j05cvQ8NR0lCh+Ia/OGVfdwZqq0pwIkgDzO3Z7ol96oQmQzFfIQY/M
GzEOFdYJTfjnxPvhSPxT1tpq2Fgx6PbC2FMWFtN6/TrG/s01ifIWIZ9Wrfo8Q01l
6XTAESHR1htrOOx6AiDHAQLOlBb0zgfZjayGJBRX7FI=
`pragma protect key_keyowner = "Aldec" , key_keyname = "ALDEC15_001"
`pragma protect key_method = "rsa"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 256 )
`pragma protect key_block
YclPuIbYLW/ftZYybucr9ooblGFkJDcdUWf6kCJBGKpIRjItUB3LdSwcREekRWqf
RGiSRFoyrOTiScT06zZ4fkm+PEKj8O3RU1VMMzDjuEUqkAEELJHNOH71tCSC6MWk
1dop7MZy8BSXhzg3W3RXIA8IGSJRDibliv+SjkbUzg/WceDI176fJmUwGUji93Tw
Zu2vRjA/RTi3ZMzS/2Z9YE156hpipJ/Cu6ca8V3y5Kt6DX4fcCS09xESr6soT5Oz
eKRExN7wu8dvYMUuu1YgCVVR47BBDQi3wdZHqlq1PLaycnNOwBPLOAzA19Hefh/0
2HflB1HYKxojQCcZU7qUgQ==
`pragma protect key_keyowner = "Siemens" , key_keyname = "SIEMENS-VERIF-SIM-RSA-2"
`pragma protect key_method = "rsa"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 256 )
`pragma protect key_block
fMvC6d2jTMqMqGFzPCPWt6pV9wRUCG4/taH3Nfn7RcekdiLyXQEQgm1SN+X+hkbx
Pu7552vaw2ez4j3zrTk2vRPnDAsxY8GidEnkJcULi8kiia9Xy/ePFLxOJHHigkiB
rU7uwrFblcYYBRwQjhMhJDowyR9HVAonxhOWVIlYagtABxLYlNdDEn+N4yPLVCsr
XUWy1E2L5GUFFNQffENN0iyUaKdWAKGIqgIZK1sB3tVOPVsULetSoyzRErWPNZQD
e5jbBBNZGyQQWgOJkOfy280ekoUUEZajqtB1jDvE3k8kbo4rzvr7yTkhSzLqjGod
B2Zpo2FQ//YDRSAaEa9ksQ==
`pragma protect key_keyowner = "Mentor Graphics Corporation" , key_keyname = "MGC-VERIF-SIM-RSA-2"
`pragma protect key_method = "rsa"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 256 )
`pragma protect key_block
TcmE9lQROafuvxGWP3fMVxDoeaiMX6ALoT3detg/qWZ36+yPTc/t8N7/DtSx17Ze
vr6iBb+ge3aAzWAq2QHyVfgVV15dvW/HsOXXTh7UqExiO7Dxa6nHXuAhYMON6NP2
ihfIRSvdnrL2ufvg7A2rCHGAqnr6cVnRLfhNJxtA1lloQbJEtlf/CWNblDxEfyw2
06l3l8pp1rS0E4tMqagmOr+yhNSpcS9vQswFltqroh6kNIE64zKri96HKkRFLNlP
fpsN7plEpLS54SxIMmh8Op+w0a/jXVOxxD+FLepsZWfGiNksENgu2Xo6TvZIQUUN
ZoPzFCMjGk5ZmMyIlytNCw==
`pragma protect data_method = "aes256-cbc"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 4288 )
`pragma protect data_block
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
Ei7EaFpheCmlTJyxUg8TdA==
`pragma protect end_protected
/////////////////////////////////////////////////////////////////////////////
// _____
// / _______ Copyright (C) 2013-2021 Efinix Inc. All rights reserved.
// / / \
// / / .. / simple_dual_port_ram_fifo.v
// / / .' /
// __/ /.' / Description:
// __ \ / EFX FIFO
// /_/ /\ \_____/ /
// ____/ \_______/
//
// *******************************
// Revisions:
//
// *******************************
module `IP_MODULE_NAME(efx_fifo_ctl) # (
parameter SYNC_CLK = 1,
parameter SYNC_STAGE = 2,
parameter MODE = "STANDARD",
parameter WR_DEPTH = 512,
parameter WADDR_WIDTH = 9,
parameter RADDR_WIDTH = 9,
parameter ASYM_WIDTH_RATIO = 4,
parameter RAM_MUX_RATIO = 1,
parameter PIPELINE_REG = 1,
parameter ALMOST_FLAG = 1,
parameter PROGRAMMABLE_FULL = "NONE",
parameter PROG_FULL_ASSERT = 0,
parameter PROG_FULL_NEGATE = 0,
parameter PROGRAMMABLE_EMPTY = "NONE",
parameter PROG_EMPTY_ASSERT = 0,
parameter PROG_EMPTY_NEGATE = 0,
parameter OUTPUT_REG = 0,
parameter HANDSHAKE_FLAG = 1,
parameter OVERFLOW_PROTECT = 0,
parameter UNDERFLOW_PROTECT = 0
)(
input wire wr_rst,
input wire rd_rst,
input wire wclk,
input wire rclk,
input wire we,
input wire re,
output wire wr_full,
output reg wr_ack,
output wire wr_almost_full,
output wire rd_empty,
output wire rd_almost_empty,
output wire wr_prog_full,
output wire rd_prog_empty,
output wire wr_en_int,
output wire rd_en_int,
output wire [WADDR_WIDTH-1:0] waddr,
output wire [RADDR_WIDTH-1:0] raddr,
output wire [WADDR_WIDTH:0] wr_datacount,
output wire [RADDR_WIDTH:0] rd_datacount,
output wire rd_vld,
output reg wr_overflow,
output reg rd_underflow
);
reg [WADDR_WIDTH:0] waddr_cntr;
reg [WADDR_WIDTH:0] waddr_cntr_r;
reg [RADDR_WIDTH:0] raddr_cntr;
reg rd_valid;
wire [WADDR_WIDTH:0] waddr_int;
wire [RADDR_WIDTH:0] raddr_int;
wire rd_empty_int;
wire [WADDR_WIDTH:0] wr_datacount_int;
wire [RADDR_WIDTH:0] rd_datacount_int;
assign waddr = waddr_cntr[WADDR_WIDTH-1:0];
// NIC
wire [RADDR_WIDTH:0] ram_raddr;
assign raddr = (MODE == "FWFT") ? ram_raddr[RADDR_WIDTH-1:0] : raddr_cntr[RADDR_WIDTH-1:0];
//assign raddr = raddr_cntr[RADDR_WIDTH-1:0];
//assign wr_en_int = we & ~wr_full;
assign wr_en_int = OVERFLOW_PROTECT ? we & ~wr_full : we;
assign wr_datacount = wr_datacount_int;
assign rd_datacount = ASYM_WIDTH_RATIO == 4 && SYNC_CLK ? wr_datacount_int : rd_datacount_int;
generate
if (MODE == "FWFT") begin
// NIC
//assign rd_en_int = (~rd_empty_int & rd_empty) | (re & ~rd_empty_int);
//assign rd_empty = rd_empty_fwft;
assign rd_en_int = 1'b1;
//assign rd_empty = rd_empty_int;
//always @ (posedge rclk or posedge rd_rst) begin
// if (rd_rst) begin
// init_set <= 1'b1;
// end
// else if (~init_set & rd_empty) begin
// init_set <= 1'b1;
// end
// else if (~rd_empty_int) begin
// init_set <= 1'b0;
// end
// else if (rd_empty) begin
// init_set <= 1'b1;
// end
//end
// NIC
//always @ (posedge rclk or posedge rd_rst) begin
// if (rd_rst) begin
// rd_empty_fwft <= 1'b1;
// end
// else if (rd_en_int) begin
// rd_empty_fwft <= 1'b0;
// end
// else if (re) begin
// rd_empty_fwft <= 1'b1;
// end
//end
//if (FAMILY == "TRION") begin
if (OUTPUT_REG) begin
always @ (posedge rclk or posedge rd_rst) begin
if (rd_rst) begin
rd_valid <= 1'b0;
end
else begin
rd_valid <= ~rd_empty;
end
end
assign rd_vld = rd_valid;
end
else begin
assign rd_vld = ~rd_empty;
end
assign rd_empty = rd_empty_int;
end
else begin
assign rd_en_int = UNDERFLOW_PROTECT ? re & ~rd_empty_int : re;
assign rd_empty = rd_empty_int;
if (OUTPUT_REG) begin
reg rd_valid_r;
always @ (posedge rclk or posedge rd_rst) begin
if (rd_rst) begin
rd_valid_r <= 'h0;
rd_valid <= 'h0;
end
else begin
{rd_valid,rd_valid_r} <= {rd_valid_r,rd_en_int};
end
end
assign rd_vld = rd_valid;
end
else begin
always @ (posedge rclk or posedge rd_rst) begin
if (rd_rst) begin
rd_valid <= 'h0;
end
else begin
rd_valid <= rd_en_int;
end
end
assign rd_vld = rd_valid;
end
end
if (ALMOST_FLAG) begin
assign wr_almost_full = wr_datacount >= WR_DEPTH-1;
assign rd_almost_empty = rd_datacount <= 'd1;
end
else begin
assign wr_almost_full = 1'b0;
assign rd_almost_empty = 1'b0;
end
if (PROGRAMMABLE_FULL == "STATIC_SINGLE") begin
reg wr_prog_full_int;
assign wr_prog_full = wr_datacount >= PROG_FULL_ASSERT;
always @ (posedge wclk or posedge wr_rst) begin
if (wr_rst) begin
wr_prog_full_int <= 1'b0;
end
else begin
wr_prog_full_int <= wr_prog_full;
end
end
end
else if (PROGRAMMABLE_FULL == "STATIC_DUAL") begin
reg wr_prog_full_int;
assign wr_prog_full = wr_prog_full_int ? wr_datacount >= PROG_FULL_NEGATE : wr_datacount >= PROG_FULL_ASSERT;
always @ (posedge wclk or posedge wr_rst) begin
if (wr_rst) begin
wr_prog_full_int <= 1'b0;
end
else begin
wr_prog_full_int <= wr_prog_full;
end
end
end
else begin
assign wr_prog_full = 1'b0;
end
if (PROGRAMMABLE_EMPTY == "STATIC_SINGLE") begin
reg rd_prog_empty_int;
assign rd_prog_empty = rd_datacount <= PROG_EMPTY_ASSERT;
always @ (posedge rclk or posedge rd_rst) begin
if (rd_rst) begin
rd_prog_empty_int <= 1'b1;
end
else begin
rd_prog_empty_int <= rd_prog_empty;
end
end
end
else if (PROGRAMMABLE_EMPTY == "STATIC_DUAL") begin
reg rd_prog_empty_int;
assign rd_prog_empty = rd_prog_empty_int ? (rd_datacount <= PROG_EMPTY_NEGATE) : (rd_datacount <= PROG_EMPTY_ASSERT);
always @ (posedge rclk or posedge rd_rst) begin
if (rd_rst) begin
rd_prog_empty_int <= 1'b1;
end
else begin
rd_prog_empty_int <= rd_prog_empty;
end
end
end
else begin
assign rd_prog_empty = 1'b0;
end
if (HANDSHAKE_FLAG) begin
always @ (posedge wclk or posedge wr_rst) begin
if (wr_rst) begin
wr_ack <= 1'b0;
end
else begin
// NIC
//wr_ack <= wr_en_int & ~wr_overflow;
wr_ack <= OVERFLOW_PROTECT ? wr_en_int & ~wr_overflow : wr_en_int;
end
end
end
if (OVERFLOW_PROTECT) begin
always @ (posedge wclk or posedge wr_rst) begin
if (wr_rst) begin
wr_overflow <= 1'b0;
end
else if (we && wr_full) begin
wr_overflow <= 1'b1;
end
else begin
wr_overflow <= 1'b0;
end
end
end
else if (HANDSHAKE_FLAG) begin
always @ (posedge wclk or posedge wr_rst) begin
if (wr_rst) begin
wr_overflow <= 1'b0;
end
else begin
wr_overflow <= we && wr_full ? 1'b1 : wr_overflow;
end
end
end
if (UNDERFLOW_PROTECT) begin
always @ (posedge rclk or posedge rd_rst) begin
if (rd_rst) begin
rd_underflow <= 1'b0;
end
else if (re && rd_empty) begin
rd_underflow <= 1'b1;
end
else begin
rd_underflow <= 1'b0;
end
end
end
else if (HANDSHAKE_FLAG) begin
always @ (posedge rclk or posedge rd_rst) begin
if (rd_rst) begin
rd_underflow <= 1'b0;
end
else begin
rd_underflow <= re && rd_empty ? 1'b1 : rd_underflow;
end
end
end
localparam RATIO_WIDTH = (RADDR_WIDTH >= WADDR_WIDTH)? RADDR_WIDTH - WADDR_WIDTH : WADDR_WIDTH - RADDR_WIDTH;
if (ASYM_WIDTH_RATIO < 4) begin
assign wr_full = (waddr_cntr[WADDR_WIDTH]^raddr_int[RADDR_WIDTH]) & (waddr_cntr[WADDR_WIDTH-1:0] == raddr_int[RADDR_WIDTH-1:RATIO_WIDTH]);
assign rd_empty_int = waddr_int[WADDR_WIDTH:0] == raddr_cntr[RADDR_WIDTH:RATIO_WIDTH];
assign wr_datacount_int = waddr_cntr - (raddr_int/RAM_MUX_RATIO);
assign rd_datacount_int = (waddr_int*RAM_MUX_RATIO)-raddr_cntr;
end
// NIC
else if (ASYM_WIDTH_RATIO == 4) begin
assign wr_full = (waddr_cntr[WADDR_WIDTH]^raddr_int[RADDR_WIDTH]) & (waddr_cntr[WADDR_WIDTH-1:0] == raddr_int[RADDR_WIDTH-1:0]);
assign rd_empty_int = waddr_int[WADDR_WIDTH:0] == raddr_cntr[RADDR_WIDTH:0];
assign wr_datacount_int = waddr_cntr - raddr_int;
assign rd_datacount_int = waddr_int - raddr_cntr;
end
else begin
assign wr_full = (waddr_cntr[WADDR_WIDTH]^raddr_int[RADDR_WIDTH]) & (waddr_cntr[WADDR_WIDTH-1:RATIO_WIDTH] == raddr_int[RADDR_WIDTH-1:0]);
// NIC
//assign rd_empty_int = (waddr_int- raddr_cntr*RAM_MUX_RATIO) < RAM_MUX_RATIO;
assign rd_empty_int = waddr_int[WADDR_WIDTH:RATIO_WIDTH] == raddr_cntr[RADDR_WIDTH:0];
assign wr_datacount_int = waddr_cntr - (raddr_int*RAM_MUX_RATIO);
assign rd_datacount_int = (waddr_int/RAM_MUX_RATIO)-raddr_cntr;
end
endgenerate
always @ (posedge wclk or posedge wr_rst) begin
if (wr_rst) begin
waddr_cntr <= 'h0;
end
else if (wr_en_int) begin
waddr_cntr <= waddr_cntr + 1'b1;
end
end
always @ (posedge wclk or posedge wr_rst) begin
if (wr_rst) begin
waddr_cntr_r <= 'h0;
end
else begin
waddr_cntr_r <= waddr_cntr;
end
end
always @ (posedge rclk or posedge rd_rst) begin
if (rd_rst) begin
raddr_cntr <= 'h0;
end
// NIC
//else if (rd_en_int) begin
else begin
//raddr_cntr <= raddr_cntr + 1'b1;
//raddr_cntr <= raddr_cntr + (re & ~rd_empty_int);
raddr_cntr <= ram_raddr;
end
end
// NIC
assign ram_raddr = raddr_cntr + (UNDERFLOW_PROTECT ? re & ~rd_empty_int : re);
generate
if (SYNC_CLK) begin : sync_clk
if (MODE == "FWFT") begin
assign waddr_int = waddr_cntr_r;
assign raddr_int = raddr_cntr;
end
else begin
assign waddr_int = waddr_cntr;
assign raddr_int = raddr_cntr;
end
end
else begin : async_clk
reg [RADDR_WIDTH:0] raddr_cntr_gry_r;
reg [WADDR_WIDTH:0] waddr_cntr_gry_r;
wire [RADDR_WIDTH:0] raddr_cntr_gry;
wire [RADDR_WIDTH:0] raddr_cntr_gry_sync;
wire [RADDR_WIDTH:0] raddr_cntr_sync_g2b;
wire [WADDR_WIDTH:0] waddr_cntr_gry;
wire [WADDR_WIDTH:0] waddr_cntr_gry_sync;
wire [WADDR_WIDTH:0] waddr_cntr_sync_g2b;
if (PIPELINE_REG) begin
reg [RADDR_WIDTH:0] raddr_cntr_sync_g2b_r;
reg [WADDR_WIDTH:0] waddr_cntr_sync_g2b_r;
assign waddr_int = waddr_cntr_sync_g2b_r;
assign raddr_int = raddr_cntr_sync_g2b_r;
always @ (posedge wclk or posedge wr_rst) begin
if (wr_rst) begin
raddr_cntr_sync_g2b_r <= 'h0;
end
else begin
raddr_cntr_sync_g2b_r <= raddr_cntr_sync_g2b;
end
end
always @ (posedge rclk or posedge rd_rst) begin
if (rd_rst) begin
waddr_cntr_sync_g2b_r <= 'h0;
end
else begin
waddr_cntr_sync_g2b_r <= waddr_cntr_sync_g2b;
end
end
end
else begin
assign waddr_int = waddr_cntr_sync_g2b;
assign raddr_int = raddr_cntr_sync_g2b;
end
always @ (posedge rclk or posedge rd_rst) begin
if (rd_rst) begin
raddr_cntr_gry_r <= 'h0;
end
else begin
raddr_cntr_gry_r <= raddr_cntr_gry;
end
end
`IP_MODULE_NAME(efx_fifo_bin2gray) # (.WIDTH(RADDR_WIDTH+1) ) xrd2wr_bin2gray (.bin_i(raddr_cntr), .gray_o(raddr_cntr_gry));
`IP_MODULE_NAME(efx_asyncreg) # (.ASYNC_STAGE(SYNC_STAGE), .WIDTH (RADDR_WIDTH+1), .ACTIVE_LOW(0), .OFF_ASSERTION (1)) xrd2wr_addr_sync (.clk(wclk), .reset_n(wr_rst), .d_i(raddr_cntr_gry_r), .d_o(raddr_cntr_gry_sync));
`IP_MODULE_NAME(efx_fifo_gray2bin) # (.WIDTH(RADDR_WIDTH+1) ) xrd2wr_gray2bin (.gray_i(raddr_cntr_gry_sync), .bin_o(raddr_cntr_sync_g2b));
always @ (posedge wclk or posedge wr_rst) begin
if (wr_rst) begin
waddr_cntr_gry_r <= 'h0;
end
else begin
waddr_cntr_gry_r <= waddr_cntr_gry;
end
end
`IP_MODULE_NAME(efx_fifo_bin2gray) # (.WIDTH(WADDR_WIDTH+1) ) wr2rd_bin2gray (.bin_i(waddr_cntr), .gray_o(waddr_cntr_gry));
`IP_MODULE_NAME(efx_asyncreg) # (.ASYNC_STAGE(SYNC_STAGE), .WIDTH (WADDR_WIDTH+1), .ACTIVE_LOW(0), .OFF_ASSERTION (1)) wr2rd_addr_sync (.clk(rclk), .reset_n(rd_rst), .d_i(waddr_cntr_gry_r), .d_o(waddr_cntr_gry_sync));
`IP_MODULE_NAME(efx_fifo_gray2bin) # (.WIDTH(WADDR_WIDTH+1) ) wr2rd_gray2bin (.gray_i(waddr_cntr_gry_sync), .bin_o(waddr_cntr_sync_g2b));
end
endgenerate
endmodule
////////////////////////////////////////////////////////////////////////////
// _____
// / _______ Copyright (C) 2013-2020 Efinix Inc. All rights reserved.
// / / \
// / / .. / bin2gray.v
// / / .' /
// __/ /.' / Description:
// __ \ / Binary to Gray Encoding Convertor
// /_/ /\ \_____/ /
// ____/ \_______/
//
// *******************************
// Revisions:
// 1.0 Initial rev
//
// *******************************
`resetall
`timescale 1ns/1ps
module `IP_MODULE_NAME(efx_fifo_bin2gray)
#(parameter WIDTH=5)
(// outputs
output wire [WIDTH-1:0] gray_o,
// input
input [WIDTH-1:0] bin_i
);
//---------------------------------------------------------------------
// Function : bit_xor
// Description: reduction xor
function bit_xor (
input [31:0] nex_bit,
input [31:0] curr_bit,
input [WIDTH-1:0] xor_in);
begin : fn_bit_xor
bit_xor = xor_in[nex_bit] ^ xor_in[curr_bit];
end
endfunction
// Convert Binary to Gray, bit by bit
generate
begin
genvar bit_idx;
for(bit_idx=0; bit_idx<WIDTH-1; bit_idx=bit_idx+1) begin : gBinBits
assign gray_o[bit_idx] = bit_xor(bit_idx+1, bit_idx, bin_i);
end
assign gray_o[WIDTH-1] = bin_i[WIDTH-1];
end
endgenerate
endmodule
////////////////////////////////////////////////////////////////////////////////
// Copyright (C) 2013-2020 Efinix Inc. All rights reserved.
//
// This document contains proprietary information which is
// protected by copyright. All rights are reserved. This notice
// refers to original work by Efinix, Inc. which may be derivitive
// of other work distributed under license of the authors. In the
// case of derivative work, nothing in this notice overrides the
// original author's license agreement. Where applicable, the
// original license agreement is included in it's original
// unmodified form immediately below this header.
//
// WARRANTY DISCLAIMER.
// THE DESIGN, CODE, OR INFORMATION ARE PROVIDED “AS IS” AND
// EFINIX MAKES NO WARRANTIES, EXPRESS OR IMPLIED WITH
// RESPECT THERETO, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES,
// INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR
// PURPOSE. SOME STATES DO NOT ALLOW EXCLUSIONS OF AN IMPLIED
// WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO LICENSEE.
//
// LIMITATION OF LIABILITY.
// NOTWITHSTANDING ANYTHING TO THE CONTRARY, EXCEPT FOR BODILY
// INJURY, EFINIX SHALL NOT BE LIABLE WITH RESPECT TO ANY SUBJECT
// MATTER OF THIS AGREEMENT UNDER TORT, CONTRACT, STRICT LIABILITY
// OR ANY OTHER LEGAL OR EQUITABLE THEORY (I) FOR ANY INDIRECT,
// SPECIAL, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES OF ANY
// CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF
// GOODWILL, DATA OR PROFIT, WORK STOPPAGE, OR COMPUTER FAILURE OR
// MALFUNCTION, OR IN ANY EVENT (II) FOR ANY AMOUNT IN EXCESS, IN
// THE AGGREGATE, OF THE FEE PAID BY LICENSEE TO EFINIX HEREUNDER
// (OR, IF THE FEE HAS BEEN WAIVED, $100), EVEN IF EFINIX SHALL HAVE
// BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO
// NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
// CONSEQUENTIAL DAMAGES, SO THIS LIMITATION AND EXCLUSION MAY NOT
// APPLY TO LICENSEE.
//
////////////////////////////////////////////////////////////////////////////////
module `IP_MODULE_NAME(mii_if) #(
parameter NO_PREAMBLE = 0
) (
//Globle Signals
input tx_mac_aclk,
output reg tx_mac_aclk_en,
input tx_reset,
output wire rx_mac_aclk,
output reg rx_mac_aclk_en,
input rx_reset,
//Configuration Signals
input [2:0] eth_speed,
//GMII Interface
output reg [7:0] gm_rx_d,
output reg gm_rx_dv,
output reg gm_rx_err,
input [7:0] gm_tx_d,
input gm_tx_en,
input gm_tx_err,
//MII Interface
input mii_txc,
output reg [3:0] mii_txd,
output reg mii_tx_dv,
output reg mii_tx_err,
input mii_rxc,
input [3:0] mii_rxd,
input mii_rx_dv,
input mii_rx_err
//Status and Error Signals
);
// Parameter Define
//localparam SPEED_100M_DIV = (TX_REFCLK == 125) ? 10 : 2;
//localparam SPEED_10M_DIV = SPEED_100M_DIV*10;
//localparam SPEED_CLK_DIV = (TX_REFCLK == 125) ? SPEED_100M_DIV/2 + 1 : 0 ;
// Register Define
reg [6:0] aclk_en_cnt;
reg [3:0] txd;
reg tx_en;
reg tx_er;
reg rx_dv_pre;
reg rx_dv_dl1;
reg [3:0] rxd_pre;
reg [3:0] rxd_dl1;
reg rx_odd_data_ptr;
reg [3:0] rxd;
reg rx_dv;
reg rx_er;
reg [3:0] gm_tx_d_h;
reg [7:0] gm_tx_d_r;
reg gm_tx_en_r;
reg gm_tx_err_r;
reg preamble_flg;
reg [1:0] cur_st;
reg [1:0] nxt_st;
reg add_preamble;
// Wire Define
wire add_preamble_w;
assign add_preamble_w = mii_rxd == 4'hd && mii_rx_dv && !mii_rx_err && cur_st == 2'b01 && preamble_flg;
/*----------------------------------------------------------------------------------*\
The main code
\*----------------------------------------------------------------------------------*/
/*----------------------- Tx Region ----------------------------*/
always @ (posedge tx_mac_aclk or posedge tx_reset) begin
if (tx_reset == 1'b1)
tx_mac_aclk_en <= 1'b0;
else
tx_mac_aclk_en <= ~tx_mac_aclk_en;
end
always @ (posedge tx_mac_aclk or posedge tx_reset) begin
if (tx_reset == 1'b1)
gm_tx_d_r <= 8'h0;
else if ((gm_tx_en == 1'b1) && (tx_mac_aclk_en == 1'b1))
gm_tx_d_r <= gm_tx_d;
end
always @ (posedge tx_mac_aclk or posedge tx_reset) begin
if (tx_reset == 1'b1)
gm_tx_en_r <= 1'b0;
else if (tx_mac_aclk_en == 1'b1)
gm_tx_en_r <= gm_tx_en;
end
always @ (posedge tx_mac_aclk or posedge tx_reset) begin
if (tx_reset == 1'b1)
gm_tx_err_r <= 1'b0;
else if (tx_mac_aclk_en == 1'b1)
gm_tx_err_r <= gm_tx_err;
end
always @ (posedge tx_mac_aclk or posedge tx_reset) begin
if (tx_reset == 1'b1)
txd <= 4'h0;
else if (gm_tx_en_r == 1'b1) begin
if (tx_mac_aclk_en == 1'b0)
txd <= gm_tx_d_r[3:0];
else
txd <= gm_tx_d_r[7:4];
end
else;
end
always @ (posedge tx_mac_aclk or posedge tx_reset) begin
if (tx_reset == 1'b1)
tx_en <= 1'b0;
else
tx_en <= gm_tx_en_r;
end
always @ (posedge tx_mac_aclk or posedge tx_reset) begin
if (tx_reset == 1'b1)
tx_er <= 1'b0;
else
tx_er <= gm_tx_err_r;
end
always @ (posedge mii_txc or posedge tx_reset) begin
if (tx_reset == 1'b1) begin
mii_tx_dv <= 1'b0;
mii_txd <= 4'h0;
mii_tx_err <= 1'b0;
end
else begin
mii_tx_dv <= tx_en;
mii_txd <= txd[3:0];
mii_tx_err <= tx_er;
end
end
/*----------------------- Rx Region ----------------------------*/
always @ (posedge mii_rxc or posedge rx_reset) begin
if (rx_reset == 1'b1) begin
rxd <= 4'h0;
rx_dv <= 1'b0;
rx_er <= 1'b0;
end
else if (add_preamble_w && NO_PREAMBLE != 1) begin
rxd <= 4'h5;
rx_dv <= 1'b1;
rx_er <= rx_er;
end
else if (add_preamble && NO_PREAMBLE != 1) begin
rxd <= rxd_pre;
rx_dv <= rx_dv_pre;
rx_er <= rx_er;
end
else begin
rxd <= mii_rxd;
rx_dv <= mii_rx_dv;
rx_er <= mii_rx_err;
end
end
assign rx_mac_aclk = mii_rxc;
always @ (posedge rx_mac_aclk or posedge rx_reset) begin
if (rx_reset == 1'b1) begin
rxd_pre <= 4'h0;
rx_dv_pre <= 1'b0;
end
else if (add_preamble_w || add_preamble) begin
rxd_pre <= mii_rxd;
rx_dv_pre <= mii_rx_dv;
end
end
always @ (posedge rx_mac_aclk or posedge rx_reset) begin
if (rx_reset == 1'b1)
add_preamble <= 1'b0;
else if (add_preamble_w)
add_preamble <= 1'b1;
else if (!mii_rx_dv)
add_preamble <= 1'b0;
end
always @ (posedge rx_mac_aclk or posedge rx_reset) begin
if (rx_reset == 1'b1)
rx_mac_aclk_en <= 1'b0;
else
rx_mac_aclk_en <= ~rx_mac_aclk_en;
end
always @ (posedge rx_mac_aclk or posedge rx_reset) begin
if (rx_reset == 1'b1) begin
cur_st <= 2'b00;
end
else begin
cur_st <= nxt_st;
end
end
always @ (*) begin
case (cur_st)
2'b00: begin
if (mii_rxd == 4'h5 && mii_rx_dv && !mii_rx_err)
nxt_st = 2'b01;
else
nxt_st = 2'b00;
end
2'b01: begin
if (mii_rxd == 4'hd && mii_rx_dv && !mii_rx_err)
nxt_st = 2'b10;
else if (mii_rxd == 4'h5 && mii_rx_dv && !mii_rx_err)
nxt_st = 2'b01;
else
nxt_st = 2'b00;
end
2'b10: begin
if (mii_rx_dv)
nxt_st = 2'b10;
else
nxt_st = 2'b00;
end
default: nxt_st = 2'b00;
endcase
end
always @ (posedge rx_mac_aclk or posedge rx_reset) begin
if (rx_reset == 1'b1) begin
preamble_flg <= 1'b0;
end
else if (mii_rxd == 4'h5 && mii_rx_dv && !mii_rx_err && cur_st == 2'b01) begin
preamble_flg <= ~preamble_flg;
end
else begin
preamble_flg <= 1'b0;
end
end
always @ (posedge rx_mac_aclk or posedge rx_reset) begin
if (rx_reset == 1'b1) begin
rx_dv_dl1 <= 1'b0;
rxd_dl1 <= 4'h0;
end
else begin
rx_dv_dl1 <= rx_dv;
rxd_dl1 <= rxd;
end
end
always @ (posedge rx_mac_aclk or posedge rx_reset) begin
if (rx_reset == 1'b1)
gm_rx_dv <= 1'b0;
else
gm_rx_dv <= rx_dv_dl1;
end
always @ (posedge rx_mac_aclk or posedge rx_reset) begin
if (rx_reset == 1'b1)
rx_odd_data_ptr <= 1'b0;
else if (rx_dv == 1'b0)
rx_odd_data_ptr <= 1'b0;
else
rx_odd_data_ptr <= ~rx_odd_data_ptr;
end
always @ (posedge rx_mac_aclk or posedge rx_reset) begin
if (rx_reset == 1'b1)
gm_rx_d <= 8'h0;
else if ((rx_dv == 1'b1) && (rx_odd_data_ptr == 1'b1))
gm_rx_d <= {rxd[3:0], rxd_dl1[3:0]};
else;
end
always @ (posedge rx_mac_aclk or posedge rx_reset) begin
if (rx_reset == 1'b1)
gm_rx_err <= 1'b0;
else begin
if (rx_er == 1'b1) gm_rx_err <= 1'b1;
else if (rx_mac_aclk_en == 1'b1) gm_rx_err <= 1'b0;
end
end
endmodule
/////////////////////////////////////////////////////////////////////////////
// _____
// / _______ Copyright (C) 2013-2020 Efinix Inc. All rights reserved.
// / / \
// / / .. /
// / / .' /
// __/ /.' /
// __ \ /
// /_/ /\ \_____/ /
// ____/ \_______/
//
// *******************************
// Revisions:
// 1.0 Initial rev
//
// *******************************
module `IP_MODULE_NAME(rgmii_if)#(
parameter RGMII_SYNC_EN = 1
) (
//Globle Signals
input tx_mac_aclk,
output reg tx_mac_aclk_en,
input tx_reset,
output wire rx_mac_aclk,
output reg rx_mac_aclk_en,
input rx_reset,
//Configuration Signals
input [2:0] eth_speed,
input rgmii_rxc_edge,//0:DDIO Rising Edge; 1:DDIO Falling Edge;
input rgmii_txc_dly,//0:rgmii tx clock delay disable; 1:rgmii tx clock delay enable;
//GMII Interface
output reg [7:0] gm_rx_d,
output reg gm_rx_dv,
output reg gm_rx_err,
input [7:0] gm_tx_d,
input gm_tx_en,
input gm_tx_err,
//RGMII Interface
output wire [3:0] rgmii_txd_HI,
output wire [3:0] rgmii_txd_LO,
output wire rgmii_tx_ctl_HI,
output wire rgmii_tx_ctl_LO,
output wire rgmii_txc_HI,//if rgmii_txc_dly set 0, used clk_125m clock. if rgmii_txc_dly set 1, used clk_125m_90deg clock.
output wire rgmii_txc_LO,
input [3:0] rgmii_rxd_HI,
input [3:0] rgmii_rxd_LO,
input rgmii_rx_ctl_HI,
input rgmii_rx_ctl_LO,
input rgmii_rxc
//Status and Error Signals
);
// Parameter Define
// Register Define
reg [6:0] aclk_en_cnt;
reg [7:0] txd;
reg tx_en;
reg tx_er;
reg [1:0] txc;
reg rx_dv_dl1;
reg [7:0] rxd_dl1;
reg rx_odd_data_ptr;
// Wire Define
wire rx_dv;
wire [7:0] rxd;
wire rx_er;
/*----------------------------------------------------------------------------------*\
The main code
\*----------------------------------------------------------------------------------*/
/*----------------------- Tx Region ----------------------------*/
always @ (posedge tx_mac_aclk or posedge tx_reset) begin
if (tx_reset == 1'b1)
aclk_en_cnt <= 7'd0;
else if ((eth_speed == 3'h4) ||
((eth_speed == 3'h2) && (aclk_en_cnt == 7'd9)) ||
((eth_speed == 3'h1) && (aclk_en_cnt == 7'd99)))
aclk_en_cnt <= 7'd0;
else
aclk_en_cnt <= aclk_en_cnt + 1'b1;
end
always @ (posedge tx_mac_aclk or posedge tx_reset) begin
if (tx_reset == 1'b1)
tx_mac_aclk_en <= 1'b0;
else if (aclk_en_cnt == 7'd0)
tx_mac_aclk_en <= 1'b1;
else
tx_mac_aclk_en <= 1'b0;
end
always @ (posedge tx_mac_aclk or posedge tx_reset) begin
if (tx_reset == 1'b1)
txd[7:4] <= 4'h0;
else if((gm_tx_en == 1'b1) && (tx_mac_aclk_en == 1'b1))
txd[7:4] <= gm_tx_d[7:4];
end
always @ (posedge tx_mac_aclk or posedge tx_reset) begin
if (tx_reset == 1'b1)
txd[3:0] <= 4'h0;
else if ((gm_tx_en == 1'b1) && (tx_mac_aclk_en == 1'b1))
txd[3:0] <= gm_tx_d[3:0];
else if (((eth_speed == 3'h2) && (aclk_en_cnt == 7'd6)) ||
((eth_speed == 3'h1) && (aclk_en_cnt == 7'd51)))
txd[3:0] <= txd[7:4];
end
always @ (posedge tx_mac_aclk or posedge tx_reset) begin
if (tx_reset == 1'b1)
tx_en <= 1'b0;
else if (tx_mac_aclk_en == 1'b1)
tx_en <= gm_tx_en;
end
always @ (posedge tx_mac_aclk or posedge tx_reset) begin
if (tx_reset == 1'b1)
tx_er <= 1'b0;
else if (tx_mac_aclk_en == 1'b1)
tx_er <= gm_tx_err;
end
/*
always @(posedge tx_mac_aclk or posedge tx_reset)
begin
if(tx_reset == 1'b1)
txc <= 2'b0;
else
case(eth_speed)
3'h4 :
txc <= 2'b01;
3'h2 :
case(rgmii_txc_dly)
1'b0 ://rgmii tx clock delay disable.
if((aclk_en_cnt == 7'd0) || (aclk_en_cnt == 7'd5))
txc <= 2'b11;
else if((aclk_en_cnt == 7'd3) || (aclk_en_cnt == 7'd8))
txc <= 2'b00;
1'b1 ://rgmii tx clock delay enable.
if((aclk_en_cnt == 7'd2) || (aclk_en_cnt == 7'd7))
txc <= 2'b11;
else if((aclk_en_cnt == 7'd0) || (aclk_en_cnt == 7'd5))
txc <= 2'b00;
endcase
3'h1 :
case(rgmii_txc_dly)
1'b0 ://rgmii tx clock delay disable.
if((aclk_en_cnt == 7'd0) || (aclk_en_cnt == 7'd50))
txc <= 2'b11;
else if((aclk_en_cnt == 7'd25) || (aclk_en_cnt == 7'd75))
txc <= 2'b00;
1'b1 ://rgmii tx clock delay enable.
if((aclk_en_cnt == 7'd13) || (aclk_en_cnt == 7'd63))
txc <= 2'b11;
else if((aclk_en_cnt == 7'd38) || (aclk_en_cnt == 7'd88))
txc <= 2'b00;
endcase
default :
txc <= 2'b0;
endcase
end
*/
reg [1:0] txc_100m_r;
reg [1:0] txc_10m_r;
always @ (posedge tx_mac_aclk or posedge tx_reset) begin
if (tx_reset == 1'b1)
txc_100m_r <= 2'b0;
else begin
case(rgmii_txc_dly)
1'b0 : //rgmii tx clock delay disable.
if ((aclk_en_cnt == 7'd0) || (aclk_en_cnt == 7'd5))
txc_100m_r <= 2'b11;
else if ((aclk_en_cnt == 7'd3) || (aclk_en_cnt == 7'd8))
txc_100m_r <= 2'b00;
1'b1 ://rgmii tx clock delay enable.
if ((aclk_en_cnt == 7'd2) || (aclk_en_cnt == 7'd7))
txc_100m_r <= 2'b11;
else if ((aclk_en_cnt == 7'd0) || (aclk_en_cnt == 7'd5))
txc_100m_r <= 2'b00;
endcase
end
end
always @ (posedge tx_mac_aclk or posedge tx_reset) begin
if (tx_reset == 1'b1)
txc_10m_r <= 2'b0;
else begin
case(rgmii_txc_dly)
1'b0 ://rgmii tx clock delay disable.
if((aclk_en_cnt == 7'd0) || (aclk_en_cnt == 7'd50))
txc_10m_r <= 2'b11;
else if((aclk_en_cnt == 7'd25) || (aclk_en_cnt == 7'd75))
txc_10m_r <= 2'b00;
1'b1 ://rgmii tx clock delay enable.
if((aclk_en_cnt == 7'd13) || (aclk_en_cnt == 7'd63))
txc_10m_r <= 2'b11;
else if((aclk_en_cnt == 7'd38) || (aclk_en_cnt == 7'd88))
txc_10m_r <= 2'b00;
endcase
end
end
always @(posedge tx_mac_aclk or posedge tx_reset)
begin
if(tx_reset == 1'b1)
txc <= 2'b0;
else
case(eth_speed)
3'h4 :
txc <= 2'b01;
3'h2 :
txc <= txc_100m_r;
3'h1 :
txc <= txc_10m_r;
default :
txc <= 2'b0;
endcase
end
/*----------------------- Rx Region ----------------------------*/
assign rx_mac_aclk = rgmii_rxc;
always @(posedge rx_mac_aclk or posedge rx_reset)
begin
if(rx_reset == 1'b1)
rx_mac_aclk_en <= 1'b0;
else if(eth_speed[2] == 1'b1)
rx_mac_aclk_en <= 1'b1;
else
rx_mac_aclk_en <= ~rx_mac_aclk_en;
end
always @(posedge rx_mac_aclk or posedge rx_reset)
begin
if(rx_reset == 1'b1)
begin
rx_dv_dl1 <= 1'b0;
rxd_dl1 <= 8'h0;
end
else
begin
rx_dv_dl1 <= rx_dv;
rxd_dl1 <= rxd;
end
end
always @(posedge rx_mac_aclk or posedge rx_reset)
begin
if(rx_reset == 1'b1)
gm_rx_dv <= 1'b0;
else
gm_rx_dv <= rx_dv_dl1;
end
always @(posedge rx_mac_aclk or posedge rx_reset)
begin
if(rx_reset == 1'b1)
rx_odd_data_ptr <= 1'b0;
else if(rx_dv == 1'b0)
rx_odd_data_ptr <= 1'b0;
else
rx_odd_data_ptr <= ~rx_odd_data_ptr;
end
always @(posedge rx_mac_aclk or posedge rx_reset)
begin
if(rx_reset == 1'b1)
gm_rx_d <= 8'h0;
else
begin
if((eth_speed[2] == 1'b1) && (rx_dv_dl1 == 1'b1))
gm_rx_d <= rxd_dl1;
else if((rx_dv == 1'b1) && (rx_odd_data_ptr == 1'b1))
gm_rx_d <= {rxd[3:0],rxd_dl1[3:0]};
end
end
always @(posedge rx_mac_aclk or posedge rx_reset)
begin
if(rx_reset == 1'b1)
gm_rx_err <= 1'b0;
else
begin
if(rx_er == 1'b1)
gm_rx_err <= 1'b1;
else if(rx_mac_aclk_en == 1'b1)
gm_rx_err <= 1'b0;
end
end
/*----------------------- PHY Interface ----------------------------*/
`IP_MODULE_NAME(rgmii) #(
.RGMII_SYNC_EN (RGMII_SYNC_EN )
)
u_rgmii
(
//Globle Signals
.tx_mac_aclk (tx_mac_aclk ),
.tx_reset (tx_reset ),
.rx_reset (rx_reset ),
//Configuration Signals
.eth_speed (eth_speed ),
.rgmii_rxc_edge (rgmii_rxc_edge ),
//Phy Interface
.txd (txd ),
.tx_en (tx_en ),
.tx_er (tx_er ),
.txc (txc ),
.rxd (rxd ),
.rx_dv (rx_dv ),
.rx_er (rx_er ),
//RGMII Interface
.rgmii_txd_HI (rgmii_txd_HI ),
.rgmii_txd_LO (rgmii_txd_LO ),
.rgmii_tx_ctl_HI (rgmii_tx_ctl_HI ),
.rgmii_tx_ctl_LO (rgmii_tx_ctl_LO ),
.rgmii_txc_HI (rgmii_txc_HI ),
.rgmii_txc_LO (rgmii_txc_LO ),
.rgmii_rxd_HI (rgmii_rxd_HI ),
.rgmii_rxd_LO (rgmii_rxd_LO ),
.rgmii_rx_ctl_HI (rgmii_rx_ctl_HI ),
.rgmii_rx_ctl_LO (rgmii_rx_ctl_LO ),
.rgmii_rxc (rgmii_rxc )
);
endmodule
/////////////////////////////////////////////////////////////////////////////
// _____
// / _______ Copyright (C) 2013-2020 Efinix Inc. All rights reserved.
// / / \
// / / .. /
// / / .' /
// __/ /.' /
// __ \ /
// /_/ /\ \_____/ /
// ____/ \_______/
//
// *******************************
// Revisions:
// 1.0 Initial rev
//
// *******************************
module `IP_MODULE_NAME(rgmii_sync)
(
//Globle Signals
input rgmii_rxc,
input rx_reset,
input [2:0] eth_speed,
//RGMII Rx Interface Input
input [3:0] rgmii_rxd_HI_i,
input [3:0] rgmii_rxd_LO_i,
input rgmii_rx_ctl_HI_i,
input rgmii_rx_ctl_LO_i,
//RGMII Rx Interface Output
output reg [3:0] rgmii_rxd_HI_o,
output reg [3:0] rgmii_rxd_LO_o,
output reg rgmii_rx_ctl_HI_o,
output reg rgmii_rx_ctl_LO_o
);
// Parameter Define
parameter State_idle = 2'd0;
parameter State_preamble = 2'd1;
parameter State_data_dl1 = 2'd2;
parameter State_data_dl2 = 2'd3;
// Register Define
reg [1:0] cur_state;
reg [1:0] next_state;
reg preamble_odd;
reg [3:0] rx_d_dl1;
reg rx_dv_dl1;
reg [3:0] rx_d_dl2;
reg rx_dv_dl2;
// Wire Define
/*----------------------------------------------------------------------------------*\
The main code
\*----------------------------------------------------------------------------------*/
always @ (posedge rgmii_rxc or posedge rx_reset) begin
if (rx_reset) begin
rx_d_dl1 <= 4'h0;
rx_dv_dl1 <= 1'b0;
rx_d_dl2 <= 4'h0;
rx_dv_dl2 <= 1'b0;
end
else begin
rx_d_dl1 <= rgmii_rxd_LO_i;
rx_dv_dl1 <= rgmii_rx_ctl_HI_i;
rx_d_dl2 <= rx_d_dl1;
rx_dv_dl2 <= rx_dv_dl1;
end
end
/*----------------------- FSM Region ----------------------------*/
always @ (posedge rgmii_rxc or posedge rx_reset) begin
if (rx_reset) cur_state <= State_idle;
else cur_state <= next_state;
end
always @ (*) begin
case (cur_state)
State_idle :
if ((rx_dv_dl1 == 1'b1) && (rx_d_dl1 == 4'h5))
next_state = State_preamble;
else
next_state = State_idle;
State_preamble :
if (rx_dv_dl1 == 1'b0)
next_state = State_idle;
else if ((rx_d_dl1 == 4'hd) && (preamble_odd == 1'b0))
next_state = State_data_dl1;
else if ((rx_d_dl1 == 4'hd) && (preamble_odd == 1'b1))
next_state = State_data_dl2;
else if (rx_d_dl1 != 4'h5)
next_state = State_idle;
else
next_state = State_preamble;
State_data_dl1 :
if (rx_dv_dl1 == 1'b0)
next_state = State_idle;
else
next_state = State_data_dl1;
State_data_dl2 :
if (rx_dv_dl2 == 1'b0)
next_state = State_idle;
else
next_state = State_data_dl2;
default :
next_state = State_idle;
endcase
end
always @ (posedge rgmii_rxc or posedge rx_reset) begin
if (rx_reset)
preamble_odd <= 1'b0;
else if (cur_state == State_preamble)
preamble_odd <= ~preamble_odd;
else
preamble_odd <= 1'b0;
end
/*----------------------- Sync Output Region ----------------------------*/
always @ (posedge rgmii_rxc or posedge rx_reset) begin
if (rx_reset)
rgmii_rxd_LO_o <= 4'h0;
else if (eth_speed[2] == 1'b1)
rgmii_rxd_LO_o <= rgmii_rxd_LO_i;
else if ((cur_state == State_preamble) && (rx_d_dl1 == 4'hd) && (preamble_odd == 1'b1))
rgmii_rxd_LO_o <= 4'h5;
else if (cur_state == State_data_dl2)
rgmii_rxd_LO_o <= rx_d_dl2;
else
rgmii_rxd_LO_o <= rx_d_dl1;
end
always @ (posedge rgmii_rxc or posedge rx_reset) begin
if (rx_reset)
rgmii_rxd_HI_o <= 4'h0;
else if (eth_speed[2] == 1'b1)
rgmii_rxd_HI_o <= rgmii_rxd_HI_i;
else
rgmii_rxd_HI_o <= 4'h0;
end
always @ (posedge rgmii_rxc or posedge rx_reset) begin
if (rx_reset)
rgmii_rx_ctl_HI_o <= 1'b0;
else if (eth_speed[2] == 1'b1)
rgmii_rx_ctl_HI_o <= rgmii_rx_ctl_HI_i;
else if ((cur_state == State_preamble) && (rx_d_dl1 == 4'hd) && (preamble_odd == 1'b1))
rgmii_rx_ctl_HI_o <= 1'b1;
else if (cur_state == State_data_dl2)
rgmii_rx_ctl_HI_o <= rx_dv_dl2;
else
rgmii_rx_ctl_HI_o <= rx_dv_dl1;
end
always @(posedge rgmii_rxc or posedge rx_reset) begin
if (rx_reset)
rgmii_rx_ctl_LO_o <= 1'b0;
else if (eth_speed[2] == 1'b1)
rgmii_rx_ctl_LO_o <= rgmii_rx_ctl_LO_i;
else if ((cur_state == State_preamble) && (rx_d_dl1 == 4'hd) && (preamble_odd == 1'b1))
rgmii_rx_ctl_LO_o <= 1'b1;
else if (cur_state == State_data_dl2)
rgmii_rx_ctl_LO_o <= rx_dv_dl2;
else
rgmii_rx_ctl_LO_o <= rx_dv_dl1;
end
endmodule
/////////////////////////////////////////////////////////////////////////////
// _____
// / _______ Copyright (C) 2013-2020 Efinix Inc. All rights reserved.
// / / \
// / / .. /
// / / .' /
// __/ /.' /
// __ \ /
// /_/ /\ \_____/ /
// ____/ \_______/
//
// *******************************
// Revisions:
// 1.0 Initial rev
//
// *******************************
module `IP_MODULE_NAME(rgmii) #(
parameter RGMII_SYNC_EN = 1
) (
//Globle Signals
input tx_mac_aclk,
input tx_reset,
input rx_reset,
//Configuration Signals
input [2:0] eth_speed,
input rgmii_rxc_edge, //0:DDIO Rising Edge; 1:DDIO Falling Edge;
//Phy Interface
input [7:0] txd,
input tx_en,
input tx_er,
input [1:0] txc, //if rgmii_txc_dly set 0, used clk_125m clock. if rgmii_txc_dly set 1, used clk_125m_90deg clock.
output reg [7:0] rxd,
output reg rx_dv,
output reg rx_er,
//RGMII Interface
output reg [3:0] rgmii_txd_HI,
output reg [3:0] rgmii_txd_LO,
output reg rgmii_tx_ctl_HI,
output reg rgmii_tx_ctl_LO,
output reg rgmii_txc_HI,
output reg rgmii_txc_LO,
input [3:0] rgmii_rxd_HI,
input [3:0] rgmii_rxd_LO,
input rgmii_rx_ctl_HI,
input rgmii_rx_ctl_LO,
input rgmii_rxc
//Status and Error Signals
);
// Parameter Define
// Register Define
reg [3:0] rgmii_rxd_HI_d1;
reg rgmii_rx_ctl_HI_d1;
reg [3:0] rgmii_txd_HI_r;
reg [3:0] rgmii_txd_LO_r;
reg rgmii_tx_ctl_HI_r;
reg rgmii_tx_ctl_LO_r;
reg rgmii_txc_HI_r;
reg rgmii_txc_LO_r;
// Wire Define
wire tx_en_to_ddr;
wire rgmii_tx_ctl_int;
wire [3:0] txd_falling;
/*----------------------------------------------------------------------------------*\
The main code
\*----------------------------------------------------------------------------------*/
/*----------------------- RGMII Tx Region ----------------------------*/
assign tx_en_to_ddr = (eth_speed[2] == 1'b1) ? tx_en : tx_en && (!tx_er);
assign rgmii_tx_ctl_int = tx_en ^ tx_er;
assign txd_falling = (eth_speed[2] == 1'b1) ? txd[7:4] : txd[3:0];
always @ (posedge tx_mac_aclk or posedge tx_reset) begin
if (tx_reset) begin
rgmii_txc_HI_r <= 1'b0;
rgmii_txc_LO_r <= 1'b0;
rgmii_tx_ctl_HI_r <= 1'b0;
rgmii_tx_ctl_LO_r <= 1'b0;
rgmii_txd_HI_r <= 4'b0;
rgmii_txd_LO_r <= 4'b0;
end
else begin
rgmii_txc_HI_r <= txc[0];
rgmii_txc_LO_r <= txc[1];
rgmii_tx_ctl_HI_r <= tx_en_to_ddr;
rgmii_tx_ctl_LO_r <= rgmii_tx_ctl_int;
rgmii_txd_HI_r <= txd[3:0];
rgmii_txd_LO_r <= txd_falling;
end
end
always @ (posedge tx_mac_aclk or posedge tx_reset) begin
if (tx_reset) begin
rgmii_txc_HI <= 1'b0;
rgmii_txc_LO <= 1'b0;
rgmii_tx_ctl_HI <= 1'b0;
rgmii_tx_ctl_LO <= 1'b0;
rgmii_txd_HI <= 4'b0;
rgmii_txd_LO <= 4'b0;
end
else begin
rgmii_txc_HI <= rgmii_txc_HI_r;
rgmii_txc_LO <= rgmii_txc_LO_r;
rgmii_tx_ctl_HI <= rgmii_tx_ctl_HI_r;
rgmii_tx_ctl_LO <= rgmii_tx_ctl_LO_r;
rgmii_txd_HI <= rgmii_txd_HI_r;
rgmii_txd_LO <= rgmii_txd_LO_r;
end
end
/*----------------------- RGMII Rx Region ----------------------------*/
//rgmii_rxd & rgmii_rx_ctl
always @ (posedge rgmii_rxc or posedge rx_reset) begin
if (rx_reset) begin
rgmii_rxd_HI_d1 <= 4'h0;
rgmii_rx_ctl_HI_d1 <= 1'b0;
end
else begin
rgmii_rxd_HI_d1 <= rgmii_rxd_HI;
rgmii_rx_ctl_HI_d1 <= rgmii_rx_ctl_HI;
end
end
generate
if (RGMII_SYNC_EN == 0) begin
always @ (posedge rgmii_rxc or posedge rx_reset) begin
if (rx_reset) begin
rxd[7:4] <= 4'h0;
rxd[3:0] <= 4'h0;
rx_dv <= 1'b0;
rx_er <= 1'b0;
end
else if (eth_speed[2] == 1'b1) begin //1000M
if (rgmii_rxc_edge == 1'b0) begin //0:DDIO Rising Edge
rxd[7:4] <= rgmii_rxd_LO;
rxd[3:0] <= rgmii_rxd_HI_d1;
rx_dv <= rgmii_rx_ctl_HI_d1;
rx_er <= rgmii_rx_ctl_HI_d1^rgmii_rx_ctl_LO;
end
else begin//1:DDIO Falling Edge
rxd[7:4] <= rgmii_rxd_HI;
rxd[3:0] <= rgmii_rxd_LO;
rx_dv <= rgmii_rx_ctl_LO;
rx_er <= rgmii_rx_ctl_LO^rgmii_rx_ctl_HI;
end
end
else begin //100M or 10M
rxd[7:4] <= 4'b0;
rxd[3:0] <= rgmii_rxd_LO;
rx_dv <= rgmii_rx_ctl_LO;
rx_er <= rgmii_rx_ctl_LO^rgmii_rx_ctl_HI_d1;
end
end
end
else begin
reg [3:0] rgmii_rxd_HI_i;
reg [3:0] rgmii_rxd_LO_i;
reg rgmii_rx_ctl_HI_i;
reg rgmii_rx_ctl_LO_i;
wire [3:0] rgmii_rxd_HI_sync;
wire [3:0] rgmii_rxd_LO_sync;
wire rgmii_rx_ctl_HI_sync;
wire rgmii_rx_ctl_LO_sync;
always @ (posedge rgmii_rxc or posedge rx_reset) begin
if (rx_reset) begin
rgmii_rxd_HI_i <= 4'h0;
rgmii_rxd_LO_i <= 4'h0;
rgmii_rx_ctl_HI_i <= 1'b0;
rgmii_rx_ctl_LO_i <= 1'b0;
end
else if (eth_speed[2] == 1'b1) begin //1000M
if (rgmii_rxc_edge == 1'b0) begin //0:DDIO Rising Edge
rgmii_rxd_HI_i <= rgmii_rxd_LO;
rgmii_rxd_LO_i <= rgmii_rxd_HI_d1;
rgmii_rx_ctl_HI_i <= rgmii_rx_ctl_HI_d1;
rgmii_rx_ctl_LO_i <= rgmii_rx_ctl_LO;
end
else begin //1:DDIO Falling Edge
rgmii_rxd_HI_i <= rgmii_rxd_HI;
rgmii_rxd_LO_i <= rgmii_rxd_LO;
rgmii_rx_ctl_HI_i <= rgmii_rx_ctl_HI;
rgmii_rx_ctl_LO_i <= rgmii_rx_ctl_LO;
end
end
else begin//100M or 10M
rgmii_rxd_HI_i <= rgmii_rxd_HI_d1;
rgmii_rxd_LO_i <= rgmii_rxd_LO;
rgmii_rx_ctl_HI_i <= rgmii_rx_ctl_LO;
rgmii_rx_ctl_LO_i <= rgmii_rx_ctl_HI_d1;
end
end
always @ (posedge rgmii_rxc or posedge rx_reset) begin
if (rx_reset) begin
rxd[7:4] <= 4'h0;
rxd[3:0] <= 4'h0;
rx_dv <= 1'b0;
rx_er <= 1'b0;
end
else begin
rxd[7:4] <= rgmii_rxd_HI_sync;
rxd[3:0] <= rgmii_rxd_LO_sync;
rx_dv <= rgmii_rx_ctl_HI_sync;
rx_er <= rgmii_rx_ctl_HI_sync^rgmii_rx_ctl_LO_sync;
end
end
/*----------------------- RGMII Rx Sync Module -----------------------*/
`IP_MODULE_NAME(rgmii_sync) u_rgmii_sync
(
//Globle Signals
.rgmii_rxc (rgmii_rxc ),
.rx_reset (rx_reset ),
.eth_speed (eth_speed ),
//RGMII Rx Interface Input
.rgmii_rxd_HI_i (rgmii_rxd_HI_i ),
.rgmii_rxd_LO_i (rgmii_rxd_LO_i ),
.rgmii_rx_ctl_HI_i (rgmii_rx_ctl_HI_i ),
.rgmii_rx_ctl_LO_i (rgmii_rx_ctl_LO_i ),
//RGMII Rx Interface Output
.rgmii_rxd_HI_o (rgmii_rxd_HI_sync ),
.rgmii_rxd_LO_o (rgmii_rxd_LO_sync ),
.rgmii_rx_ctl_HI_o (rgmii_rx_ctl_HI_sync ),
.rgmii_rx_ctl_LO_o (rgmii_rx_ctl_LO_sync )
);
end
endgenerate
endmodule
module `IP_MODULE_NAME(rmii_if)
(
//Globle Signals
input tx_mac_aclk,
output reg tx_mac_aclk_en,
input tx_reset,
output wire rx_mac_aclk,
output reg rx_mac_aclk_en,
input rx_reset,
//Configuration Signals
input [2:0] eth_speed,
//GMII Interface
output reg [7:0] gm_rx_d,
output reg gm_rx_dv,
output reg gm_rx_err,
input [7:0] gm_tx_d,
input gm_tx_en,
input gm_tx_err,
//RGMII Interface
input rmii_clk_ref,
output reg [1:0] rmii_txd,
output reg rmii_tx_en,
input [1:0] rmii_rxd,
input rmii_crs_dv,
input rmii_rx_err
//Status and Error Signals
);
// Parameter Define
// Register Define
reg [6:0] aclk_en_cnt;
reg [6:0] rx_aclk_en_cnt;
reg [1:0] txd;
reg tx_en;
reg tx_er;
reg rx_err_dl1;
reg rx_dv_dl1;
reg [7:0] rxd_dl1;
reg [6:0] rx_odd_data_ptr;
reg [1:0] rxd;
reg rx_dv;
reg rx_er;
reg [7:0] gm_tx_d_temp;
reg tx_en_temp;
reg [6:0] txbit_cnt;
reg rx_dv_compensate;
reg rx_err_compensate;
reg rx_err_latch;
reg [7:0] rx_d_compensate;
reg [6:0] rx_compensate_cnt;
// Wire Define
/*----------------------------------------------------------------------------------*\
The main code
\*----------------------------------------------------------------------------------*/
/*----------------------- Tx Region ----------------------------*/
always @ (posedge tx_mac_aclk or posedge tx_reset) begin
if (tx_reset == 1'b1)
aclk_en_cnt <= 7'd0;
else if (((eth_speed == 3'h2) && (aclk_en_cnt == 7'd3)) ||
((eth_speed == 3'h1) && (aclk_en_cnt == 7'd39)))
aclk_en_cnt <= 7'd0;
else
aclk_en_cnt <= aclk_en_cnt + 1'b1;
end
always @ (posedge tx_mac_aclk or posedge tx_reset) begin
if (tx_reset == 1'b1)
tx_mac_aclk_en <= 1'b0;
else if (aclk_en_cnt == 7'd0)
tx_mac_aclk_en <= 1'b1;
else
tx_mac_aclk_en <= 1'b0;
end
always @ (posedge tx_mac_aclk or posedge tx_reset) begin
if (tx_reset == 1'b1)
gm_tx_d_temp <= 8'h0;
else if ((gm_tx_en == 1'b1) && (tx_mac_aclk_en == 1'b1))
gm_tx_d_temp <= gm_tx_d;
end
always @ (posedge tx_mac_aclk or posedge tx_reset) begin
if (tx_reset == 1'b1)
tx_en_temp <= 1'b0;
else if(tx_mac_aclk_en == 1'b1)
tx_en_temp <= gm_tx_en;
end
always @ (posedge tx_mac_aclk or posedge tx_reset) begin
if (tx_reset == 1'b1)
txbit_cnt <= 7'd0;
else if (((eth_speed == 3'h2) && (txbit_cnt == 7'd3)) ||
((eth_speed == 3'h1) && (txbit_cnt == 7'd39)))
txbit_cnt <= 7'd0;
else if (tx_en_temp == 1'b1)
txbit_cnt <= txbit_cnt + 1'b1;
else
txbit_cnt <= 7'd0;
end
always @ (posedge tx_mac_aclk or posedge tx_reset) begin
if (tx_reset == 1'b1)
txd <= 2'h0;
else if (eth_speed == 3'h2) begin
case(txbit_cnt[1:0])
2'b00: txd <= gm_tx_d_temp[1:0];
2'b01: txd <= gm_tx_d_temp[3:2];
2'b10: txd <= gm_tx_d_temp[5:4];
2'b11: txd <= gm_tx_d_temp[7:6];
default;
endcase
end
else if (eth_speed == 3'h1) begin
case(txbit_cnt[5:0])
6'd00: txd <= gm_tx_d_temp[1:0];
6'd10: txd <= gm_tx_d_temp[3:2];
6'd20: txd <= gm_tx_d_temp[5:4];
6'd30: txd <= gm_tx_d_temp[7:6];
default;
endcase
end
else;
end
always @ (posedge tx_mac_aclk or posedge tx_reset) begin
if (tx_reset == 1'b1)
tx_en <= 1'b0;
else
tx_en <= tx_en_temp;
end
always @ (posedge tx_mac_aclk or posedge tx_reset) begin
if (tx_reset == 1'b1)
tx_er <= 1'b0;
else if (tx_mac_aclk_en == 1'b1)
tx_er <= gm_tx_err;
end
always @ (posedge rmii_clk_ref or posedge tx_reset) begin
if (tx_reset == 1'b1) begin
rmii_tx_en <= 1'b0;
rmii_txd <= 2'b0;
end
else begin
rmii_tx_en <= tx_en;
rmii_txd <= txd[1:0];
end
end
/*----------------------- Rx Region ----------------------------*/
always @(posedge rmii_clk_ref or posedge rx_reset) begin
if (rx_reset == 1'b1) begin
rxd <= 2'b00;
rx_dv <= 1'b0;
rx_er <= 1'b0;
end
else begin
rxd <= rmii_rxd;
rx_dv <= rmii_crs_dv;
rx_er <= rmii_rx_err;
end
end
assign rx_mac_aclk = rmii_clk_ref;
always @ (posedge rx_mac_aclk or posedge rx_reset) begin
if (rx_reset == 1'b1)
rx_aclk_en_cnt <= 7'd0;
else if (((eth_speed == 3'h2) && (rx_aclk_en_cnt == 7'd3)) ||
((eth_speed == 3'h1) && (rx_aclk_en_cnt == 7'd39)))
rx_aclk_en_cnt <= 7'd0;
else
rx_aclk_en_cnt <= rx_aclk_en_cnt + 1'b1;
end
always @ (posedge rx_mac_aclk or posedge rx_reset) begin
if (rx_reset == 1'b1)
rx_mac_aclk_en <= 1'b0;
else if (rx_aclk_en_cnt == 7'd0)
rx_mac_aclk_en <= 1'b1;
else
rx_mac_aclk_en <= 1'b0;
end
always @ (posedge rx_mac_aclk or posedge rx_reset) begin
if (rx_reset == 1'b1)
rx_odd_data_ptr <= 7'd0;
else if (((eth_speed == 3'h2) && (rx_odd_data_ptr == 7'd3)) ||
((eth_speed == 3'h1) && (rx_odd_data_ptr == 7'd39)) || (rx_dv == 1'b0))
rx_odd_data_ptr <= 7'd0;
else
rx_odd_data_ptr <= rx_odd_data_ptr + 1'b1;
end
always @ (posedge rx_mac_aclk or posedge rx_reset) begin
if (rx_reset == 1'b1)
rx_dv_dl1 <= 1'b0;
else
rx_dv_dl1 <= rx_dv;
end
always @ (posedge rx_mac_aclk or posedge rx_reset) begin
if (rx_reset == 1'b1)
rx_err_dl1 <= 1'b0;
else
rx_err_dl1 <= rx_er;
end
always @ (posedge rx_mac_aclk or posedge rx_reset) begin
if (rx_reset == 1'b1)
rxd_dl1 <= 8'h0;
else if (eth_speed == 3'h2) begin
case (rx_odd_data_ptr[1:0])
2'b00: rxd_dl1[1:0] <= rxd;
2'b01: rxd_dl1[3:2] <= rxd;
2'b10: rxd_dl1[5:4] <= rxd;
2'b11: rxd_dl1[7:6] <= rxd;
default;
endcase
end
else if (eth_speed == 3'h1) begin
case (rx_odd_data_ptr[5:0])
6'd00: rxd_dl1[1:0] <= rxd;
6'd10: rxd_dl1[3:2] <= rxd;
6'd20: rxd_dl1[5:4] <= rxd;
6'd30: rxd_dl1[7:6] <= rxd;
default;
endcase
end
else;
end
always @ (posedge rx_mac_aclk or posedge rx_reset) begin
if (rx_reset == 1'b1)
rx_compensate_cnt <= 7'b0;
else if (rx_dv_dl1 == 1'b1)
rx_compensate_cnt <= 7'b0;
else if (((eth_speed == 3'h2) && (rx_compensate_cnt == 7'd3)) ||
((eth_speed == 3'h1) && (rx_compensate_cnt == 7'd39)))
rx_compensate_cnt <= rx_compensate_cnt;
else
rx_compensate_cnt <= rx_compensate_cnt + 1;
end
always @ (posedge rx_mac_aclk or posedge rx_reset) begin
if (rx_reset == 1'b1)
rx_dv_compensate <= 1'b0;
else if (((eth_speed == 3'h2) && (rx_compensate_cnt == 7'd3)) ||
((eth_speed == 3'h1) && (rx_compensate_cnt == 7'd39)))
rx_dv_compensate <= 1'b0;
else if ((rx_dv_dl1 == 1'b1) && rx_odd_data_ptr == 7'd0)
rx_dv_compensate <= 1'b1;
end
always @ (posedge rx_mac_aclk or posedge rx_reset) begin
if (rx_reset == 1'b1)
rx_err_latch <= 1'b0;
else begin
if (rx_dv & rx_er) rx_err_latch <= 1'b1;
else if (rx_odd_data_ptr == 7'd0) rx_err_latch <= 1'b0;
else rx_err_latch <= rx_err_latch;
end
end
always @ (posedge rx_mac_aclk or posedge rx_reset) begin
if (rx_reset == 1'b1)
rx_err_compensate <= 1'b0;
else if (((eth_speed == 3'h2) && (rx_compensate_cnt == 7'd3)) ||
((eth_speed == 3'h1) && (rx_compensate_cnt == 7'd39)))
rx_err_compensate <= 1'b0;
else if (rx_odd_data_ptr == 7'd0)
rx_err_compensate <= rx_err_latch;
end
always @ (posedge rx_mac_aclk or posedge rx_reset) begin
if (rx_reset == 1'b1)
rx_d_compensate <= 8'h0;
else if ((rx_dv_dl1 == 1'b1) && rx_odd_data_ptr == 7'd0)
rx_d_compensate <= rxd_dl1;
else;
end
always @ (posedge rx_mac_aclk or posedge rx_reset) begin
if (rx_reset == 1'b1)
gm_rx_dv <= 1'b0;
else if (rx_mac_aclk_en == 1'b1)
gm_rx_dv <= rx_dv_compensate;
end
always @ (posedge rx_mac_aclk or posedge rx_reset) begin
if (rx_reset == 1'b1)
gm_rx_d <= 8'h0;
else if (rx_mac_aclk_en == 1'b1)
gm_rx_d <= rx_d_compensate;
else;
end
always @ (posedge rx_mac_aclk or posedge rx_reset) begin
if (rx_reset == 1'b1)
gm_rx_err <= 1'b0;
else if (rx_mac_aclk_en == 1'b1)
gm_rx_err <= rx_err_compensate;
end
endmodule
//pragma protect
//pragma protect begin
/* Encryption Envelope */
`pragma protect begin_protected
`pragma protect version = 1
`pragma protect encrypt_agent = "QuestaSim" , encrypt_agent_info = "2023.4"
`pragma protect key_keyowner = "Aldec" , key_keyname = "ALDEC15_001"
`pragma protect key_method = "rsa"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 256 )
`pragma protect key_block
dABJR6nTPJBsIf2DbWNrWr6xEUbX9iZqL/tsYopG8TRP5JnwKiouuNQWHCofchjo
JrIjbKh783Vou/LeTKnX5lIfH++Hxrf50neaYocgR2CoRcx532EI4eOIqxVL8Gwz
bIbmhJJdPjGyqZGConsb2ZdMFVVgDNQFHBtKXfY8yqkEZ3jFgQg7EKR4ibUgZ+p4
GHKlbHgCM4MuDzMJlv2JOECPB/JtnhPWjjtchWKPpSSOYKPrW0wwbTe81cdg5lSx
Ac2nkur+ca/xEy1wLtBSTUx1I/T9Nw60ZDY9alDuBM17BZzZB5qGa+KWerPpsbhX
KzQLdksuClO3/dxQuUGrDw==
`pragma protect data_method = "aes256-cbc"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 22080 )
`pragma protect data_block
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
`pragma protect end_protected
//pragma protect end
//pragma protect
//pragma protect begin
/* Encryption Envelope */
`pragma protect begin_protected
`pragma protect version = 1
`pragma protect encrypt_agent = "QuestaSim" , encrypt_agent_info = "2023.4"
`pragma protect key_keyowner = "Aldec" , key_keyname = "ALDEC15_001"
`pragma protect key_method = "rsa"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 256 )
`pragma protect key_block
w8wsxRggKwG2UBbiaE22KuPFYILiJ3FWu5kzxn+dWN8TwltSIrgCwUUGcCIO5tpx
cK5hRcvvCsIu8Zk3kJif55lpW+A4Oum/oeD6OCOvWCfGmgLNs9R2ipiJ2gZXEysk
12/KIpmXBmxM+ZD8wwJciF+nD5vzI85Mtx8cW5r5hLT3aM0JACjD0W/aGU3DOffO
SFsH6D1HTwJqKzqlWOvHeXbe8HFceBGpNgZnhzrrX5KzNS3L/XeHpneEfpgtU/wj
CNqcZCsxA+UtikVaHuwUKSxrJJCzKSHC0xqKZWn2cX21nGrYDKw8Z2GINaHQnuYv
P7ke4O2bpaUfdMGoOBKivw==
`pragma protect data_method = "aes256-cbc"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 4800 )
`pragma protect data_block
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
`pragma protect end_protected
//pragma protect end
//pragma protect
//pragma protect begin
/* Encryption Envelope */
`pragma protect begin_protected
`pragma protect version = 1
`pragma protect encrypt_agent = "QuestaSim" , encrypt_agent_info = "2023.4"
`pragma protect key_keyowner = "Aldec" , key_keyname = "ALDEC15_001"
`pragma protect key_method = "rsa"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 256 )
`pragma protect key_block
LMqP8CHrAE95Rufp4o4gXU95nNyw8el+6/wbDtLq8Lmq7AjMtlGeDX/fgwFZTPJl
v4GXEQMWDhEBYxcL4+N3cDHH2yF/T0bi5C110k43Ypqt9nuVFETzuXQy2EiKNlBL
wnx8SwN0EoLRxFOYAPVm9xEM8BzT8JbsJxxsYSwL1Q2HYAZYjDGT0YUIdo/87GPE
WLI5Y568FsDovDvhS2gLtJIIPxWm044r2wPKA1+GKDsoO2eP1qR8uupMhEjioJtg
Z/hxWDFLFhaCy1Lxu8Mk25eSzheTch45ka0JPG8h8agoAI18N2V7Dp6oS8MjUk5S
OkpOrjlLHSboIOsUEFoQig==
`pragma protect data_method = "aes256-cbc"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 2992 )
`pragma protect data_block
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
0p4EXNjc3ZWw9yXGV+uQPQ==
`pragma protect end_protected
//pragma protect end
//pragma protect
//pragma protect begin
/* Encryption Envelope */
`pragma protect begin_protected
`pragma protect version = 1
`pragma protect encrypt_agent = "QuestaSim" , encrypt_agent_info = "2023.4"
`pragma protect key_keyowner = "Aldec" , key_keyname = "ALDEC15_001"
`pragma protect key_method = "rsa"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 256 )
`pragma protect key_block
bUW3tiOGrB5RBqBMn4LzF8upTzpMfEp6RnaMyjgirtvFzcyWXB/4o0xJaVmZAjcE
3uib7pMZdVbHlNmhwh/UVgQEzn2kzVQocHzitKHy7gs2felAM9VZ4RriJdu6EGFc
VTf8Br5e/B7dV32U5zQIGeywxoIp65G/PrzP9rN2sMBWi1tC1sbIszZLhK0mTdJA
6aZXr4AX+zDyr46myeukdiDj+zyO2u9lldhRTtPSrUaadNI/JAqJ77o2M2m/Bh4Y
dDcsX09nAZ3R7BrEnZnaXz6DcQzYvOeex75TT/VCyv5Dvke//Ae7cttLeRTPRFIN
M2AIK90M7kZ3QuQ+5S61bw==
`pragma protect data_method = "aes256-cbc"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 4640 )
`pragma protect data_block
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
`pragma protect end_protected
//pragma protect end
//pragma protect
//pragma protect begin
/* Encryption Envelope */
`pragma protect begin_protected
`pragma protect version = 1
`pragma protect encrypt_agent = "QuestaSim" , encrypt_agent_info = "2023.4"
`pragma protect key_keyowner = "Aldec" , key_keyname = "ALDEC15_001"
`pragma protect key_method = "rsa"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 256 )
`pragma protect key_block
BoSc/MyCq2/O6cLwueINDSFZce7iknw5eK3SXQOXSsg3z/qKtgz89bT7+niWDsX9
LhuX8lHfMdSLm2sGao896bXhahPN/YJEkR2DxANqo6+gDKPJN7eQtmonVhrnkKg6
NzDlGZk9BBdKjuTxPMcOARy489PUI1PSsEMgx8Tjj5a7FG7d4jVsLvCXh3Wa0Tvl
bDJ8vtXssiN3lcMTg1iAwaaTYEApYMUgR5On0XaE8DZ5ISgCfT63SrinLfQturvM
A0VGRE7Zrw77stJRXQEPivHWVYUylSikZtJ3ZKDSsZo26sH0uTYEjenbUNLEQxJ9
bw9rXP8LUr5+qsPRMZiugw==
`pragma protect data_method = "aes256-cbc"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 3936 )
`pragma protect data_block
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
`pragma protect end_protected
//pragma protect end
module `IP_MODULE_NAME(efx_mac1gbe) #(
parameter FAMILY = "TRION",
parameter VERSION = 32'h20,
parameter RXFIFO_EN = 1,
parameter RXFIFO_DTH = 2048,
parameter TXFIFO_EN = 1,
parameter TXFIFO_DTH = 2048,
parameter PHY_INTF_MODE = 0,
parameter LOOPBACK_EN = 1'b0,
parameter GMII_DW = PHY_INTF_MODE == 4 ? 16 : 8,
parameter AXIS_DW = 8,
parameter APBIF = 0,
parameter NO_PREAMBLE = 0,
parameter INTER_PACKET_GAP = 6'd12,
parameter MTU_FRAME_LENGTH = 16'd1518,
parameter MAC_SOURCE_ADDRESS = 48'h0,
parameter ENABLE_BROADCAST_FILTERING = 1'b1,
parameter RGMII_RXC_EDGE = 1'b1,
parameter RGMII_TXC_DLY = 1'b1,
parameter PKT_CNT_MAX = 256,
parameter SIP600 = 0
) (
input tx_mac_aclk,
output rx_mac_aclk,
input mac_reset,
input proto_reset,
input tx_axis_clk,
input [AXIS_DW-1:0] tx_axis_mac_tdata,
input tx_axis_mac_tvalid,
input tx_axis_mac_tlast,
input [AXIS_DW/8-1:0] tx_axis_mac_tstrb,
input tx_axis_mac_tuser,
output tx_axis_mac_tready,
input rx_axis_clk,
output [AXIS_DW-1:0] rx_axis_mac_tdata,
output rx_axis_mac_tvalid,
output rx_axis_mac_tlast,
output [AXIS_DW/8-1:0] rx_axis_mac_tstrb,
output rx_axis_mac_tuser,
input rx_axis_mac_tready,
input gm_rx_c,
input [GMII_DW-1:0] gm_rx_d,
input [GMII_DW/8-1:0] gm_rx_dv,
input [GMII_DW/8-1:0] gm_rx_err,
output gm_tx_c,
output [GMII_DW-1:0] gm_tx_d,
output [GMII_DW/8-1:0] gm_tx_en,
output [GMII_DW/8-1:0] gm_tx_err,
output [3:0] rgmii_txd_HI,
output [3:0] rgmii_txd_LO,
output rgmii_tx_ctl_HI,
output rgmii_tx_ctl_LO,
output rgmii_txc_HI,
output rgmii_txc_LO,
input [3:0] rgmii_rxd_HI,
input [3:0] rgmii_rxd_LO,
input rgmii_rx_ctl_HI,
input rgmii_rx_ctl_LO,
input rgmii_rxc,
input mii_txc,
output [3:0] mii_txd,
output mii_tx_dv,
output mii_tx_err,
input mii_rxc,
input [3:0] mii_rxd,
input mii_rx_dv,
input mii_rx_err,
input rmii_clk_ref,
output [1:0] rmii_txd,
output rmii_tx_en,
input [1:0] rmii_rxd,
input rmii_crs_dv,
input rmii_rx_err,
input [9:0] s_paddr,
input [31:0] s_pwdata,
input s_pwrite,
input s_penable,
input s_psel,
output [31:0] s_prdata,
output s_pready,
output s_perr,
input s_axi_aclk,
input [9:0] s_axi_awaddr,
input s_axi_awvalid,
output s_axi_awready,
input [31:0] s_axi_wdata,
input s_axi_wvalid,
output s_axi_wready,
output [1:0] s_axi_bresp,
output s_axi_bvalid,
input s_axi_bready,
input [9:0] s_axi_araddr,
input s_axi_arvalid,
output s_axi_arready,
output [1:0] s_axi_rresp,
output [31:0] s_axi_rdata,
output s_axi_rvalid,
input s_axi_rready,
`ifdef ONCHIP_PHY
input logic init_clk,
input logic init_rst_n,
input logic PMA_CMN_READY,
input logic PMA_XCVR_PLLCLK_EN_ACK,
input logic [3:0] PMA_XCVR_POWER_STATE_ACK,
input logic PMA_RX_SIGNAL_DETECT,
output logic PMA_XCVR_PLLCLK_EN,
output logic [3:0] PMA_XCVR_POWER_STATE_REQ,
output logic phy_init_done,
`else
output Mdo,
output MdoEn,
input Mdi,
output Mdc,
`endif
output [2:0] eth_speed
);
`ifdef ONCHIP_PHY
//pragma protect
//pragma protect begin
/* Encryption Envelope */
`pragma protect begin_protected
`pragma protect version = 1
`pragma protect encrypt_agent = "QuestaSim" , encrypt_agent_info = "2023.4"
`pragma protect key_keyowner = "Aldec" , key_keyname = "ALDEC15_001"
`pragma protect key_method = "rsa"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 256 )
`pragma protect key_block
jKLMvRQhD67Zscw+i/8M3H+4Tun7q0GAfhEQdOeECCB2L+b2dUg2DZnfMubnucKw
OOfkYmXzPfNddr77Czpbmqs2vSXOuCNqtCbpmrhvGhycE6bj25TTYD4L+QHWr1hT
M6QKdHtiSEGQT3r/k6HnrRnunb2sgGCZAA8WIJWTjOmbG2Y2GSSDXsmreYtsBXBp
1f6CwMKJHxPV6B8oIofXnWW0r5ucOAqWyx2DyWdnZmkZAXxmVdGJz3MC5mcX0lKn
D2DAtu2a+qiy3l8paX2/X7aywJXvKQDcaxmIBs+7paWSZmJL4p//Hsb86cq8zcUG
4+VUog/OG/qI5HLddDP5FA==
`pragma protect data_method = "aes256-cbc"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 4864 )
`pragma protect data_block
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
HC79CWIzctckNIu4dgG5kg==
`pragma protect end_protected
//pragma protect end
// Module: efx_pulse_sync
// Description:
// Safely transfers a single-cycle pulse from a source clock domain to a
// destination clock domain using a toggle-based synchronization scheme.
//
// ==========================================================================
module `IP_MODULE_NAME(efx_pulse_sync) #(
parameter ACTIVE_LOW = 1, // 0 - Active high reset, 1 - Active low reset
parameter OFF_ASSERTION = 0
) (
input src_clk, // Source clock (e.g., tx_axis_clk)
input src_reset, // Reset for source domain
input pulse_in, // Single-cycle pulse in src_clk domain
input dst_clk, // Destination clock (e.g., tx_clk)
input dst_reset, // Reset for destination domain
output pulse_out // Single-cycle pulse in dst_clk domain
);
// Toggle generation in source clock domain
reg toggle_src;
// Synchronizer flops in destination clock domain
wire toggle_sync;
reg toggle_sync_r;
generate
if (ACTIVE_LOW == 1) begin
always @ (posedge src_clk or negedge src_reset) begin
if (!src_reset)
toggle_src <= 1'b0;
else if (pulse_in)
toggle_src <= ~toggle_src;
else
toggle_src <= toggle_src;
end
`IP_MODULE_NAME(efx_asyncreg) #(
.WIDTH (1),
.OFF_ASSERTION (OFF_ASSERTION)
) efx_asyncreg_toggle_src (
.clk (dst_clk),
.reset_n (dst_reset),
.d_i (toggle_src),
.d_o (toggle_sync)
);
always @ (posedge dst_clk or negedge dst_reset) begin
if (!dst_reset) begin
toggle_sync_r <= 1'b0;
end
else begin
toggle_sync_r <= toggle_sync; // Delay for edge detect
end
end
end
else begin
always @ (posedge src_clk or posedge src_reset) begin
if (src_reset)
toggle_src <= 1'b0;
else if (pulse_in)
toggle_src <= ~toggle_src;
else
toggle_src <= toggle_src;
end
`IP_MODULE_NAME(efx_asyncreg) #(
.WIDTH (1),
.ACTIVE_HIGH (0),
.OFF_ASSERTION (OFF_ASSERTION)
) efx_asyncreg_toggle_src (
.clk (dst_clk),
.reset_n (dst_reset),
.d_i (toggle_src),
.d_o (toggle_sync)
);
always @ (posedge dst_clk or posedge dst_reset) begin
if (!dst_reset) begin
toggle_sync_r <= 1'b0;
end
else begin
toggle_sync_r <= toggle_sync; // Delay for edge detect
end
end
end
endgenerate
// Generate one-cycle pulse in destination domain
assign pulse_out = toggle_sync ^ toggle_sync_r;
endmodule
module `IP_MODULE_NAME(efx_data_pipeline) #(
parameter HBP = 1,
parameter DATA_WIDTH = 256,
parameter MUX_IN = 1
)(
input upstream_valid_i,
output upstream_ready_o,
input [DATA_WIDTH-1:0] upstream_data_i,
output downstream_valid_o,
input downstream_ready_i,
output [DATA_WIDTH-1:0] downstream_data_o,
input clk,
input resetn
);
//pragma protect
//pragma protect begin
/* Encryption Envelope */
`pragma protect begin_protected
`pragma protect version = 1
`pragma protect encrypt_agent = "QuestaSim" , encrypt_agent_info = "2021.1"
`pragma protect key_keyowner = "Aldec" , key_keyname = "ALDEC15_001"
`pragma protect key_method = "rsa"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 256 )
`pragma protect key_block
sGUIBVria/X0Ma8dN+cu2FAX8ze3kcaNJhdu97YBk5g7eH4tFB0uQdhRxczbAVTS
uLqvmPz424psdreRAMQ7uC9XHS14jhPgiMUYLC7360OhnyPrMOf5Qpu7uo1TNtIZ
hS11XIWDHT3Qf9ZT74gXi4bxRINTlXtNqiXRm/+kh5FIC8MkpJcuPc1H4JiCYLac
AWVEhg1FPDljEhfIFF9Y/2Qr024y5BHw3IqlWXRM/n28aRPMgbtRivK2Wx5Y1UYq
sZFuMjMCIIP59QZM27EDmB8YbxJR075/pS9RSPSUiFEYBeeZsPT15zmOFKKRF66s
skWHpEbwQo9WSnKF44nfkw==
`pragma protect data_method = "aes256-cbc"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 2352 )
`pragma protect data_block
fbkpLoOYnIplUsl0w3OHq+m7y0LB1kv8PJrlzGkW43IanZ05muwy3UA074T3+SS2
15EHe9Oeqkj3vg638GKKJUX1U24kVXa+rsv9ufubp855PW3wuW8HV8j/V5Sp+DZB
X9Rr4oEE7cpohVHvf1PI50huy7mFHGYVjcr2XJyHo0a/62B3RG1haLL2UxqgJHtI
w70ikjFUF9lnMBdQp5sXuSEhslyhR5seB9MDvMtim14Zyo0zuo/EQTPW/xC8+Mnh
HAoG7YSv9/8kuDjQOiqK2fiUsYkQt6ThDy0Rri7kvYbhu+Zu9fvb/FHePm1EXG5O
qNWRKIgfMiqNN2E2bBjinkUpuaKVQa1j66ox4UWXHjZylID9ww/ilAK8tpIuVc++
k513ZUQSaq8e705bnPDG5Jjm3cBAyPBi/ceC5SKrLi6VyXrDndg9rilVtaBxMSRE
QPOmEeLFtKf7HYKUy1w48NfHqYhSQ29c3I95lFAhpXTpf1T9r7Y7ncEWydc3NMJX
7iwQ98g57DeW8UDXsgwpxhQ9lvRIwFM3ZHG26QaKqEjD3IH3/8mxZFRs7aY5tXMu
Op5v8KPJ5hQSeKLB2cZXIJunT8sRLDrJg14tCFSmWZlqkKczdzQasE4r2JilI9Rr
MJ9qH4AmGZr8Ry+7TpJECwnrBog6v/4Hz9trvgPzYNAGECEH3NdJfPsvVrfRkdZO
YqcDggpIHIXuXDolhYu3pcU3tje5sTT/JWxa52jC6fJCmmrwF5Gvg4nSkPnC2gz4
dU5+O6nSn68aUpSGkP6UGqPtexYnQS8lAdy+H5WPVRjV40PkYboi7qF0H0Q85oaw
2Ww+xoqrpIS6LpRwJYTjAIrKjRQFoAFL1eVAElDIlniRHHgbfVokAPj4UaXrwpyN
Xq6c/xY52FTlsuBYCyCNg9T4BvloKi8NmQouKO3EkAKyuMSGCaUGbNNQX/DACEjY
DY45bx0mezYIHcdrEsDQ8UJHlSMzVyOzGzITxo6NfTHV6kQ0jzEj7a7Gbkvl6Xyo
9FF19QnJR2sP1/5xe6i2WupIrXCWfkL840h6vVuMK/s2CjQE8yO6DCGIc0HSViM4
5Rg6pTXU4IU6kK71rVsaoTIZPjFbHGirtFSBEomtPHMTUFqqnvakio7/bTJtSjAV
34sp+14MP2yJF4UbkK6SVxmTn4axlga2HCaDlBHX83T9nxMo7xQB3CgcC6IjLhvp
JtjCjIM7MdG6sb2A7ewKFnYF372AasQ6R3PWm8mdjlNaYChdwFKroyYXNhSohQdy
8HqXfmhinRMzfUhODpUSRZOzH9VqFDkkGVvCQMekrzb7wFKirJjPPTlqjMppYr/g
RuOoIZpC2Yw2hb4VVhcyDsPSxkJo1D6ckbz4XpYyvfGBwVHtm0irJNrwnaP02IIY
bjnwRhbQ1/sNKH1P1q5raHNC+HtIg+zKFwCkvP18lkH+VvqvIk/H/4OS15CN3y4G
804S47lXdcr0D7KvxgXQfozT+eEBs0HQCFQvCAomlsq9YdZ93DeRp3em8q7x6T2c
HB7ZBnFID96j9fxppJ2oDYnNJD0C5G5001z85jMAU2rXcjAktsZU4CF9GmdGFpXI
vSLvMUbzexTDHW2gmpaoIAPNswoSfK28YNL1OWDVqSKhuVZl65gx4q7zuzEAH7HV
K5DbJHm+iIFNoSX+773yqHtBOdE3ZKE5AHipE6xohLE8KcWqGwYaoHZX+hN/vMlq
BGbXsf47VK/7CM8v+EeLVmMEgJfbUUYjpKfURAEt5vKifqC3LlkRnI9Fj+MuZ6BC
sQ2Mv/n0NdClrxpWVXM1pFlON5zkU2fxU1CRQ8GTRO5TrIZ0vowgXqweyC2J4moa
f1mtvyQxqh9E4AEQW+6RmrnzOeGB5OSmW8fuyVZBnblys9mp2ve23oDZ4CV7YhR5
44IvAO+4k91ZHEIl4444/+H5fA/lyy5K1CoWmdRUWiowkH96vbv7LY/2U96fixvL
z3FLmRt6d3hQeTj9rByp4rJw9UBYz7Q8QQLfKszFG1hIa9oZG2KVrL+yK9uzcLkD
MXscPiGf4GCrRHZsjloD23QpgSXOste1oXSD/AWIzHHLvzNR1M5gfSy/kKjIDCB4
aLVOaj7DQos3rUlqURPb7RQrZFqYI3OnEgaivoPlHfzOlUhi/wiyfvi2T03n4ymy
VogN1DoTMcstGF6u6uU74MUQTfRxmjlEsnSoz0tQFSIP6hXOy0QOE4Zf7BA6i06P
uTQEl132dTV4hJBQ3KrUK9PQnpUv1w+nKSf/SAQGC1ZnUHfv+0TQL2/0ZiKFMPw2
TIByWjwdYDCLg0Jvc/VJG+XbQIAVxzHP05zvezwOI+ItqRBxAz5n+bq/Scro3S7w
y/0yyM+I0pcs7yer2u3bV/UNXTkFEILYEa/mlJYyjlSEibLCYTUUFKbgNYKVc4a+
Z10mKwFKvoNmJ+Orjn93rD1pNxhcwVtCg16dc4TygIcdF2xaX6PljVvcYd9e2Lmz
EdAFgHujC/8AFBadHwywgxr4hxYdKOm2QSNj6aA9Ns0LIFf38J/4lw0kbXxMn6ak
dqo6TNq6BPLqKHjiozD3Q6Tpu9270ooGx9LZzzcEBh7IZHGtDxDsKfXdmodSNUAQ
aJredQ3uxcQ1cqYg0+zpMcJUsM2McoTxW3n4mAMNThxPrOGGBmSTUvTY/TbiGtxb
RpQnQqpsV4p5+yqxjXAOYhicvcPMR80ISNRdaeWC5AJ4hI8WFrSku0kLLnTYQLis
c7onNafgStMTKAgGSrzIfkVB+QKVxmRidLF44JzsGJWXKOrHznKZ0Kb8yW0UBqT5
/nCdvoqzSjp1s61sWNDpnCdciSSG0dD09pBs+kpqof2Se9U4N6MqOM8z4wjqBWui
HgS9HQiA8HZLJLAr1l6U8KqZVKezKpgrxl8tVO6yQzN5ckfzGOFXaXsN0lK7Xbrd
pS2xEyh9IG/5Lp2l0duGHKZ+Pjtjfb8kI2NOmOrVy9ZI6Hkw8++tkDPUFiYubosf
qq1uDH1oWXYR0jiv5X9ojiLvfvuaT+0ZZqgXmygiLvVjYZEK20g47ZZij2KYkvhj
oQQrGz2cE8EQ3LebwMpQoig74mrDxhnGdNnaDWDuHHGmw5qFxwUKDQIJLRQsZ5+w
`pragma protect end_protected
//pragma protect end
`undef IP_UUID
`undef IP_NAME_CONCAT
`undef IP_MODULE_NAME