jesd204:jesd204_versal_gt_adapter_rx/tx: Add adapter for Versal transceiver IP
parent
56a25afa68
commit
1a9e7dbeb4
|
@ -0,0 +1,14 @@
|
|||
####################################################################################
|
||||
## Copyright (c) 2018 - 2021 Analog Devices, Inc.
|
||||
### SPDX short identifier: BSD-1-Clause
|
||||
## Auto-generated, do not modify!
|
||||
####################################################################################
|
||||
|
||||
LIBRARY_NAME := jesd204_versal_gt_adapter_rx
|
||||
|
||||
GENERIC_DEPS += jesd204_versal_gt_adapter_rx.v
|
||||
|
||||
XILINX_DEPS += ../jesd204_common/sync_header_align.v
|
||||
XILINX_DEPS += jesd204_versal_gt_adapter_rx_ip.tcl
|
||||
|
||||
include ../../scripts/library.mk
|
|
@ -0,0 +1,98 @@
|
|||
//
|
||||
// The ADI JESD204 Core is released under the following license, which is
|
||||
// different than all other HDL cores in this repository.
|
||||
//
|
||||
// Please read this, and understand the freedoms and responsibilities you have
|
||||
// by using this source code/core.
|
||||
//
|
||||
// The JESD204 HDL, is copyright © 2016-2017 Analog Devices Inc.
|
||||
//
|
||||
// This core is free software, you can use run, copy, study, change, ask
|
||||
// questions about and improve this core. Distribution of source, or resulting
|
||||
// binaries (including those inside an FPGA or ASIC) require you to release the
|
||||
// source of the entire project (excluding the system libraries provide by the
|
||||
// tools/compiler/FPGA vendor). These are the terms of the GNU General Public
|
||||
// License version 2 as published by the Free Software Foundation.
|
||||
//
|
||||
// This core is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
||||
// A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License version 2
|
||||
// along with this source code, and binary. If not, see
|
||||
// <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
// Commercial licenses (with commercial support) of this JESD204 core are also
|
||||
// available under terms different than the General Public License. (e.g. they
|
||||
// do not require you to accompany any image (FPGA or ASIC) using the JESD204
|
||||
// core with any corresponding source code.) For these alternate terms you must
|
||||
// purchase a license from Analog Devices Technology Licensing Office. Users
|
||||
// interested in such a license should contact jesd204-licensing@analog.com for
|
||||
// more information. This commercial license is sub-licensable (if you purchase
|
||||
// chips from Analog Devices, incorporate them into your PCB level product, and
|
||||
// purchase a JESD204 license, end users of your product will also have a
|
||||
// license to use this core in a commercial setting without releasing their
|
||||
// source code).
|
||||
//
|
||||
// In addition, we kindly ask you to acknowledge ADI in any program, application
|
||||
// or publication in which you use this JESD204 HDL core. (You are not required
|
||||
// to do so; it is up to your common sense to decide whether you want to comply
|
||||
// with this request or not.) For general publications, we suggest referencing :
|
||||
// “The design and implementation of the JESD204 HDL Core used in this project
|
||||
// is copyright © 2016-2017, Analog Devices, Inc.”
|
||||
//
|
||||
|
||||
`timescale 1ns/100ps
|
||||
|
||||
module jesd204_versal_gt_adapter_rx (
|
||||
input [127 : 0] rxdata,
|
||||
input [5 : 0] rxheader,
|
||||
output rxgearboxslip,
|
||||
input [1 : 0] rxheadervalid,
|
||||
|
||||
// Interface to Link layer core
|
||||
output [63:0] rx_data,
|
||||
output [1:0] rx_header,
|
||||
output rx_block_sync,
|
||||
|
||||
input usr_clk
|
||||
|
||||
);
|
||||
|
||||
// Sync header alignment
|
||||
wire rx_bitslip_req_s;
|
||||
reg [4:0] rx_bitslip_done_cnt = 'h0;
|
||||
always @(posedge usr_clk) begin
|
||||
if (rx_bitslip_done_cnt[4]) begin
|
||||
rx_bitslip_done_cnt <= 'b0;
|
||||
end else if (rx_bitslip_req_s & ~rx_bitslip_done_cnt[4]) begin
|
||||
rx_bitslip_done_cnt <= rx_bitslip_done_cnt + 1;
|
||||
end
|
||||
end
|
||||
|
||||
reg rx_bitslip_req_s_d = 1'b0;
|
||||
always @(posedge usr_clk) begin
|
||||
rx_bitslip_req_s_d <= rx_bitslip_req_s;
|
||||
end
|
||||
assign rxgearboxslip = rx_bitslip_req_s & ~rx_bitslip_req_s_d;
|
||||
|
||||
wire [63:0] rxdata_flip;
|
||||
genvar i;
|
||||
for (i = 0; i < 64; i=i+1) begin
|
||||
assign rxdata_flip[63-i] = rxdata[i];
|
||||
end
|
||||
|
||||
// Sync header alignment
|
||||
sync_header_align i_sync_header_align (
|
||||
.clk(usr_clk),
|
||||
.reset(~rxheadervalid[0]),
|
||||
// Flip header bits and data
|
||||
.i_data({rxheader[0],rxheader[1],rxdata_flip[63:0]}),
|
||||
.i_slip(rx_bitslip_req_s),
|
||||
.i_slip_done(rx_bitslip_done_cnt[4]),
|
||||
.o_data(rx_data),
|
||||
.o_header(rx_header),
|
||||
.o_block_sync(rx_block_sync)
|
||||
);
|
||||
|
||||
endmodule
|
|
@ -0,0 +1,68 @@
|
|||
#
|
||||
# The ADI JESD204 Core is released under the following license, which is
|
||||
# different than all other HDL cores in this repository.
|
||||
#
|
||||
# Please read this, and understand the freedoms and responsibilities you have
|
||||
# by using this source code/core.
|
||||
#
|
||||
# The JESD204 HDL, is copyright © 2016-2017 Analog Devices Inc.
|
||||
#
|
||||
# This core is free software, you can use run, copy, study, change, ask
|
||||
# questions about and improve this core. Distribution of source, or resulting
|
||||
# binaries (including those inside an FPGA or ASIC) require you to release the
|
||||
# source of the entire project (excluding the system libraries provide by the
|
||||
# tools/compiler/FPGA vendor). These are the terms of the GNU General Public
|
||||
# License version 2 as published by the Free Software Foundation.
|
||||
#
|
||||
# This core is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
||||
# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version 2
|
||||
# along with this source code, and binary. If not, see
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Commercial licenses (with commercial support) of this JESD204 core are also
|
||||
# available under terms different than the General Public License. (e.g. they
|
||||
# do not require you to accompany any image (FPGA or ASIC) using the JESD204
|
||||
# core with any corresponding source code.) For these alternate terms you must
|
||||
# purchase a license from Analog Devices Technology Licensing Office. Users
|
||||
# interested in such a license should contact jesd204-licensing@analog.com for
|
||||
# more information. This commercial license is sub-licensable (if you purchase
|
||||
# chips from Analog Devices, incorporate them into your PCB level product, and
|
||||
# purchase a JESD204 license, end users of your product will also have a
|
||||
# license to use this core in a commercial setting without releasing their
|
||||
# source code).
|
||||
#
|
||||
# In addition, we kindly ask you to acknowledge ADI in any program, application
|
||||
# or publication in which you use this JESD204 HDL core. (You are not required
|
||||
# to do so; it is up to your common sense to decide whether you want to comply
|
||||
# with this request or not.) For general publications, we suggest referencing :
|
||||
# “The design and implementation of the JESD204 HDL Core used in this project
|
||||
# is copyright © 2016-2017, Analog Devices, Inc.”
|
||||
#
|
||||
|
||||
source ../../scripts/adi_env.tcl
|
||||
source $ad_hdl_dir/library/scripts/adi_ip_xilinx.tcl
|
||||
|
||||
adi_ip_create jesd204_versal_gt_adapter_rx
|
||||
adi_ip_files jesd204_versal_gt_adapter_rx [list \
|
||||
jesd204_versal_gt_adapter_rx.v \
|
||||
../jesd204_common/sync_header_align.v \
|
||||
]
|
||||
|
||||
adi_ip_properties_lite jesd204_versal_gt_adapter_rx
|
||||
|
||||
set_property display_name "ADI JESD204 Versal Transceiver Rx Lane Adapter" [ipx::current_core]
|
||||
set_property description "ADI JESD204 Versal Transceiver Rx Lane Adapter" [ipx::current_core]
|
||||
|
||||
adi_add_bus "RX" "master" \
|
||||
"xilinx.com:display_jesd204:jesd204_rx_bus_rtl:1.0" \
|
||||
"xilinx.com:display_jesd204:jesd204_rx_bus:1.0" \
|
||||
{ \
|
||||
{ "rx_data" "rxdata" } \
|
||||
{ "rx_header" "rxheader" } \
|
||||
{ "rx_block_sync" "rxblock_sync" } \
|
||||
}
|
||||
|
||||
ipx::save_core [ipx::current_core]
|
|
@ -0,0 +1,13 @@
|
|||
####################################################################################
|
||||
## Copyright (c) 2018 - 2021 Analog Devices, Inc.
|
||||
### SPDX short identifier: BSD-1-Clause
|
||||
## Auto-generated, do not modify!
|
||||
####################################################################################
|
||||
|
||||
LIBRARY_NAME := jesd204_versal_gt_adapter_tx
|
||||
|
||||
GENERIC_DEPS += jesd204_versal_gt_adapter_tx.v
|
||||
|
||||
XILINX_DEPS += jesd204_versal_gt_adapter_tx_ip.tcl
|
||||
|
||||
include ../../scripts/library.mk
|
|
@ -0,0 +1,68 @@
|
|||
//
|
||||
// The ADI JESD204 Core is released under the following license, which is
|
||||
// different than all other HDL cores in this repository.
|
||||
//
|
||||
// Please read this, and understand the freedoms and responsibilities you have
|
||||
// by using this source code/core.
|
||||
//
|
||||
// The JESD204 HDL, is copyright © 2016-2017 Analog Devices Inc.
|
||||
//
|
||||
// This core is free software, you can use run, copy, study, change, ask
|
||||
// questions about and improve this core. Distribution of source, or resulting
|
||||
// binaries (including those inside an FPGA or ASIC) require you to release the
|
||||
// source of the entire project (excluding the system libraries provide by the
|
||||
// tools/compiler/FPGA vendor). These are the terms of the GNU General Public
|
||||
// License version 2 as published by the Free Software Foundation.
|
||||
//
|
||||
// This core is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
||||
// A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License version 2
|
||||
// along with this source code, and binary. If not, see
|
||||
// <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
// Commercial licenses (with commercial support) of this JESD204 core are also
|
||||
// available under terms different than the General Public License. (e.g. they
|
||||
// do not require you to accompany any image (FPGA or ASIC) using the JESD204
|
||||
// core with any corresponding source code.) For these alternate terms you must
|
||||
// purchase a license from Analog Devices Technology Licensing Office. Users
|
||||
// interested in such a license should contact jesd204-licensing@analog.com for
|
||||
// more information. This commercial license is sub-licensable (if you purchase
|
||||
// chips from Analog Devices, incorporate them into your PCB level product, and
|
||||
// purchase a JESD204 license, end users of your product will also have a
|
||||
// license to use this core in a commercial setting without releasing their
|
||||
// source code).
|
||||
//
|
||||
// In addition, we kindly ask you to acknowledge ADI in any program, application
|
||||
// or publication in which you use this JESD204 HDL core. (You are not required
|
||||
// to do so; it is up to your common sense to decide whether you want to comply
|
||||
// with this request or not.) For general publications, we suggest referencing :
|
||||
// “The design and implementation of the JESD204 HDL Core used in this project
|
||||
// is copyright © 2016-2017, Analog Devices, Inc.”
|
||||
//
|
||||
|
||||
`timescale 1ns/100ps
|
||||
|
||||
module jesd204_versal_gt_adapter_tx (
|
||||
output [127 : 0] txdata,
|
||||
output [5 : 0] txheader,
|
||||
|
||||
// Interface to Link layer core
|
||||
input [63:0] tx_data,
|
||||
input [1:0] tx_header,
|
||||
|
||||
input usr_clk
|
||||
);
|
||||
|
||||
wire [63:0] tx_data_flip;
|
||||
genvar i;
|
||||
for (i = 0; i < 64; i=i+1) begin
|
||||
assign tx_data_flip[63-i] = tx_data[i];
|
||||
end
|
||||
|
||||
assign txdata = {64'b0,tx_data_flip};
|
||||
// Flip header bits and data
|
||||
assign txheader = {4'b0,tx_header[0],tx_header[1]};
|
||||
|
||||
endmodule
|
|
@ -0,0 +1,66 @@
|
|||
#
|
||||
# The ADI JESD204 Core is released under the following license, which is
|
||||
# different than all other HDL cores in this repository.
|
||||
#
|
||||
# Please read this, and understand the freedoms and responsibilities you have
|
||||
# by using this source code/core.
|
||||
#
|
||||
# The JESD204 HDL, is copyright © 2016-2017 Analog Devices Inc.
|
||||
#
|
||||
# This core is free software, you can use run, copy, study, change, ask
|
||||
# questions about and improve this core. Distribution of source, or resulting
|
||||
# binaries (including those inside an FPGA or ASIC) require you to release the
|
||||
# source of the entire project (excluding the system libraries provide by the
|
||||
# tools/compiler/FPGA vendor). These are the terms of the GNU General Public
|
||||
# License version 2 as published by the Free Software Foundation.
|
||||
#
|
||||
# This core is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
||||
# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version 2
|
||||
# along with this source code, and binary. If not, see
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Commercial licenses (with commercial support) of this JESD204 core are also
|
||||
# available under terms different than the General Public License. (e.g. they
|
||||
# do not require you to accompany any image (FPGA or ASIC) using the JESD204
|
||||
# core with any corresponding source code.) For these alternate terms you must
|
||||
# purchase a license from Analog Devices Technology Licensing Office. Users
|
||||
# interested in such a license should contact jesd204-licensing@analog.com for
|
||||
# more information. This commercial license is sub-licensable (if you purchase
|
||||
# chips from Analog Devices, incorporate them into your PCB level product, and
|
||||
# purchase a JESD204 license, end users of your product will also have a
|
||||
# license to use this core in a commercial setting without releasing their
|
||||
# source code).
|
||||
#
|
||||
# In addition, we kindly ask you to acknowledge ADI in any program, application
|
||||
# or publication in which you use this JESD204 HDL core. (You are not required
|
||||
# to do so; it is up to your common sense to decide whether you want to comply
|
||||
# with this request or not.) For general publications, we suggest referencing :
|
||||
# “The design and implementation of the JESD204 HDL Core used in this project
|
||||
# is copyright © 2016-2017, Analog Devices, Inc.”
|
||||
#
|
||||
|
||||
source ../../scripts/adi_env.tcl
|
||||
source $ad_hdl_dir/library/scripts/adi_ip_xilinx.tcl
|
||||
|
||||
adi_ip_create jesd204_versal_gt_adapter_tx
|
||||
adi_ip_files jesd204_versal_gt_adapter_tx [list \
|
||||
jesd204_versal_gt_adapter_tx.v
|
||||
]
|
||||
|
||||
adi_ip_properties_lite jesd204_versal_gt_adapter_tx
|
||||
|
||||
set_property display_name "ADI JESD204 Versal Transceiver Tx Lane Adapter" [ipx::current_core]
|
||||
set_property description "ADI JESD204 Versal Transceiver Tx Lane Adapter" [ipx::current_core]
|
||||
|
||||
adi_add_bus "TX" "slave" \
|
||||
"xilinx.com:display_jesd204:jesd204_tx_bus_rtl:1.0" \
|
||||
"xilinx.com:display_jesd204:jesd204_tx_bus:1.0" \
|
||||
{ \
|
||||
{ "tx_data" "txdata" } \
|
||||
{ "tx_header" "txheader" } \
|
||||
}
|
||||
|
||||
ipx::save_core [ipx::current_core]
|
Loading…
Reference in New Issue