hdl/library: Update the IP parameters
The following IP parameters were renamed: PCORE_ID --> ID PCORE_DEVTYPE --> DEVICE_TYPE PCORE_IODELAY_GROUP --> IO_DELAY_GROUP CH_DW --> CHANNEL_DATA_WIDTH CH_CNT --> NUM_OF_CHANNELS PCORE_BUFTYPE --> DEVICE_TYPE PCORE_ADC_DP_DISABLE --> ADC_DATAPATH_DISABLE CHID --> CHANNEL_ID PCORE_DEVICE_TYPE --> DEVICE_TYPE PCORE_MMCM_BUFIO_N --> MMCM_BUFIO_N PCORE_SERDES_DDR_N --> SERDES_DDR_N PCORE_DAC_DP_DISABLE --> DAC_DATAPATH_DISABLE DP_DISABLE --> DATAPATH_DISABLE PCORE_DAC_IODELAY_ENABLE --> DAC_IODELAY_ENABLE C_BIG_ENDIAN --> BIG_ENDIAN C_M_DATA_WIDTH --> MASTER_DATA_WIDTH C_S_DATA_WIDTH --> SLAVE_DATA_WIDTH NUM_CHANNELS --> NUM_OF_CHANNELS CHANNELS --> NUM_OF_CHANNELS PCORE_4L_2L_N -->QUAD_OR_DUAL_N C_ADDRESS_WIDTH --> ADDRESS_WIDTH C_DATA_WIDTH --> DATA_WIDTH C_CLKS_ASYNC --> CLKS_ASYNC PCORE_QUAD_DUAL_N --> QUAD_DUAL_N NUM_CS --> NUM_OF_CS PCORE_DAC_CHANNEL_ID --> DAC_CHANNEL_ID PCORE_ADC_CHANNEL_ID --> ADC_CHANNEL_ID PCORE_CLK0_DIV --> CLK0_DIV PCORE_CLK1_DIV --> CLK1_DIV PCORE_CLKIN_PERIOD --> CLKIN_PERIOD PCORE_VCO_DIV --> VCO_DIV PCORE_Cr_Cb_N --> CR_CB_N PCORE_VCO_MUL --> VCO_MUL PCORE_EMBEDDED_SYNC --> EMBEDDED_SYNC PCORE_AXI_ID_WIDTH --> AXI_ID_WIDTH PCORE_ADDR_WIDTH --> ADDRESS_WIDTH DADATA_WIDTH --> DATA_WIDTH NUM_OF_NUM_OF_CHANNEL --> NUM_OF_CHANNELS DEBOUNCER_LEN --> DEBOUNCER_LENGTH ADDR_WIDTH --> ADDRESS_WIDTH C_S_AXIS_REGISTERED --> S_AXIS_REGISTERED Cr_Cb_N --> CR_CB_N ADDATA_WIDTH --> ADC_DATA_WIDTH BUFTYPE --> DEVICE_TYPE NUM_BITS --> NUM_OF_BITS WIDTH_A --> A_DATA_WIDTH WIDTH_B --> B_DATA_WIDTH CH_OCNT --> NUM_OF_CHANNELS_O M_CNT --> NUM_OF_CHANNELS_M P_CNT --> NUM_OF_CHANNELS_P CH_ICNT --> NUM_OF_CHANNELS_I CH_MCNT --> NUM_OF_CHANNELS_M 4L_2L_N --> QUAD_OR_DUAL_N SPI_CLK_ASYNC --> ASYNC_SPI_CLK MMCM_BUFIO_N --> MMCM_OR_BUFIO_N SERDES_DDR_N --> SERDES_OR_DDR_N CLK_ASYNC --> ASYNC_CLK CLKS_ASYNC --> ASYNC_CLK SERDES --> SERDES_OR_DDR_N GTH_GTX_N --> GTH_OR_GTX_N IF_TYPE --> DDR_OR_SDR_N PARALLEL_WIDTH --> DATA_WIDTH ADD_SUB --> ADD_OR_SUB_N A_WIDTH --> A_DATA_WIDTH CONST_VALUE --> B_DATA_VALUE IO_BASEADDR --> BASE_ADDRESS IO_WIDTH --> DATA_WIDTH QUAD_DUAL_N --> QUAD_OR_DUAL_N AXI_ADDRLIMIT --> AXI_ADDRESS_LIMIT ADDRESS_A_DATA_WIDTH --> A_ADDRESS_WIDTH ADDRESS_B_DATA_WIDTH --> B_ADDRESS_WIDTH MODE_OF_ENABLE --> CONTROL_TYPE CONTROL_TYPE --> LEVEL_OR_PULSE_N IQSEL --> Q_OR_I_N MMCM --> MMCM_OR_BUFR_Nmain
parent
549801cf2e
commit
57cfb7cfb1
|
@ -81,9 +81,9 @@ module axi_ad6676 (
|
|||
s_axi_rdata,
|
||||
s_axi_rready);
|
||||
|
||||
parameter PCORE_ID = 0;
|
||||
parameter PCORE_DEVICE_TYPE = 0;
|
||||
parameter PCORE_IODELAY_GROUP = "adc_if_delay_group";
|
||||
parameter ID = 0;
|
||||
parameter DEVICE_TYPE = 0;
|
||||
parameter IO_DELAY_GROUP = "adc_if_delay_group";
|
||||
|
||||
// jesd interface
|
||||
// rx_clk is (line-rate/40)
|
||||
|
@ -204,7 +204,7 @@ module axi_ad6676 (
|
|||
|
||||
// channel
|
||||
|
||||
axi_ad6676_channel #(.IQSEL(0), .CHID(0)) i_channel_0 (
|
||||
axi_ad6676_channel #(.Q_OR_I_N(0), .CHANNEL_ID(0)) i_channel_0 (
|
||||
.adc_clk (adc_clk),
|
||||
.adc_rst (adc_rst),
|
||||
.adc_data (adc_data_a_s),
|
||||
|
@ -227,7 +227,7 @@ module axi_ad6676 (
|
|||
|
||||
// channel
|
||||
|
||||
axi_ad6676_channel #(.IQSEL(1), .CHID(1)) i_channel_1 (
|
||||
axi_ad6676_channel #(.Q_OR_I_N(1), .CHANNEL_ID(1)) i_channel_1 (
|
||||
.adc_clk (adc_clk),
|
||||
.adc_rst (adc_rst),
|
||||
.adc_data (adc_data_b_s),
|
||||
|
@ -250,7 +250,7 @@ module axi_ad6676 (
|
|||
|
||||
// common processor control
|
||||
|
||||
up_adc_common #(.PCORE_ID(PCORE_ID)) i_up_adc_common (
|
||||
up_adc_common #(.ID(ID)) i_up_adc_common (
|
||||
.mmcm_rst (),
|
||||
.adc_clk (adc_clk),
|
||||
.adc_rst (adc_rst),
|
||||
|
|
|
@ -72,8 +72,8 @@ module axi_ad6676_channel (
|
|||
|
||||
// parameters
|
||||
|
||||
parameter IQSEL = 0;
|
||||
parameter CHID = 0;
|
||||
parameter Q_OR_I_N = 0;
|
||||
parameter CHANNEL_ID = 0;
|
||||
|
||||
// adc interface
|
||||
|
||||
|
@ -120,7 +120,7 @@ module axi_ad6676_channel (
|
|||
|
||||
assign adc_dfmt_data = adc_data;
|
||||
|
||||
up_adc_channel #(.PCORE_ADC_CHID(CHID)) i_up_adc_channel (
|
||||
up_adc_channel #(.ADC_CHANNEL_ID(CHANNEL_ID)) i_up_adc_channel (
|
||||
.adc_clk (adc_clk),
|
||||
.adc_rst (adc_rst),
|
||||
.adc_enable (adc_enable),
|
||||
|
|
|
@ -91,12 +91,12 @@ module axi_ad9122 (
|
|||
|
||||
// parameters
|
||||
|
||||
parameter PCORE_ID = 0;
|
||||
parameter PCORE_DEVICE_TYPE = 0;
|
||||
parameter PCORE_SERDES_DDR_N = 1;
|
||||
parameter PCORE_MMCM_BUFIO_N = 1;
|
||||
parameter PCORE_DAC_DP_DISABLE = 0;
|
||||
parameter PCORE_IODELAY_GROUP = "dev_if_delay_group";
|
||||
parameter ID = 0;
|
||||
parameter DEVICE_TYPE = 0;
|
||||
parameter SERDES_OR_DDR_N = 1;
|
||||
parameter MMCM_OR_BUFIO_N = 1;
|
||||
parameter DAC_DATAPATH_DISABLE = 0;
|
||||
parameter IO_DELAY_GROUP = "dev_if_delay_group";
|
||||
|
||||
// dac interface
|
||||
|
||||
|
@ -198,9 +198,9 @@ module axi_ad9122 (
|
|||
// device interface
|
||||
|
||||
axi_ad9122_if #(
|
||||
.PCORE_DEVICE_TYPE (PCORE_DEVICE_TYPE),
|
||||
.PCORE_SERDES_DDR_N (PCORE_SERDES_DDR_N),
|
||||
.PCORE_MMCM_BUFIO_N (PCORE_MMCM_BUFIO_N))
|
||||
.DEVICE_TYPE (DEVICE_TYPE),
|
||||
.SERDES_OR_DDR_N (SERDES_OR_DDR_N),
|
||||
.MMCM_OR_BUFIO_N (MMCM_OR_BUFIO_N))
|
||||
i_if (
|
||||
.dac_clk_in_p (dac_clk_in_p),
|
||||
.dac_clk_in_n (dac_clk_in_n),
|
||||
|
@ -243,7 +243,7 @@ module axi_ad9122 (
|
|||
|
||||
// core
|
||||
|
||||
axi_ad9122_core #(.PCORE_ID(PCORE_ID), .DP_DISABLE(PCORE_DAC_DP_DISABLE)) i_core (
|
||||
axi_ad9122_core #(.ID(ID), .DATAPATH_DISABLE(DAC_DATAPATH_DISABLE)) i_core (
|
||||
.dac_div_clk (dac_div_clk),
|
||||
.dac_rst (dac_rst),
|
||||
.dac_frame_i0 (dac_frame_i0_s),
|
||||
|
|
|
@ -71,8 +71,8 @@ module axi_ad9122_channel (
|
|||
|
||||
// parameters
|
||||
|
||||
parameter CHID = 32'h0;
|
||||
parameter DP_DISABLE = 0;
|
||||
parameter CHANNEL_ID = 32'h0;
|
||||
parameter DATAPATH_DISABLE = 0;
|
||||
|
||||
// dac interface
|
||||
|
||||
|
@ -184,7 +184,7 @@ module axi_ad9122_channel (
|
|||
end
|
||||
|
||||
generate
|
||||
if (DP_DISABLE == 1) begin
|
||||
if (DATAPATH_DISABLE == 1) begin
|
||||
assign dac_dds_data_0_s = 16'd0;
|
||||
end else begin
|
||||
ad_dds i_dds_0 (
|
||||
|
@ -199,7 +199,7 @@ module axi_ad9122_channel (
|
|||
endgenerate
|
||||
|
||||
generate
|
||||
if (DP_DISABLE == 1) begin
|
||||
if (DATAPATH_DISABLE == 1) begin
|
||||
assign dac_dds_data_1_s = 16'd0;
|
||||
end else begin
|
||||
ad_dds i_dds_1 (
|
||||
|
@ -214,7 +214,7 @@ module axi_ad9122_channel (
|
|||
endgenerate
|
||||
|
||||
generate
|
||||
if (DP_DISABLE == 1) begin
|
||||
if (DATAPATH_DISABLE == 1) begin
|
||||
assign dac_dds_data_2_s = 16'd0;
|
||||
end else begin
|
||||
ad_dds i_dds_2 (
|
||||
|
@ -229,7 +229,7 @@ module axi_ad9122_channel (
|
|||
endgenerate
|
||||
|
||||
generate
|
||||
if (DP_DISABLE == 1) begin
|
||||
if (DATAPATH_DISABLE == 1) begin
|
||||
assign dac_dds_data_3_s = 16'd0;
|
||||
end else begin
|
||||
ad_dds i_dds_3 (
|
||||
|
@ -245,7 +245,7 @@ module axi_ad9122_channel (
|
|||
|
||||
// single channel processor
|
||||
|
||||
up_dac_channel #(.PCORE_DAC_CHID(CHID)) i_up_dac_channel (
|
||||
up_dac_channel #(.DAC_CHANNEL_ID(CHANNEL_ID)) i_up_dac_channel (
|
||||
.dac_clk (dac_div_clk),
|
||||
.dac_rst (dac_rst),
|
||||
.dac_dds_scale_1 (dac_dds_scale_1_s),
|
||||
|
|
|
@ -106,8 +106,8 @@ module axi_ad9122_core (
|
|||
|
||||
// parameters
|
||||
|
||||
parameter PCORE_ID = 0;
|
||||
parameter DP_DISABLE = 0;
|
||||
parameter ID = 0;
|
||||
parameter DATAPATH_DISABLE = 0;
|
||||
|
||||
// dac interface
|
||||
|
||||
|
@ -202,7 +202,7 @@ module axi_ad9122_core (
|
|||
|
||||
// master/slave (clocks must be synchronous)
|
||||
|
||||
assign dac_sync_s = (PCORE_ID == 0) ? dac_sync_out : dac_sync_in;
|
||||
assign dac_sync_s = (ID == 0) ? dac_sync_out : dac_sync_in;
|
||||
|
||||
// processor read interface
|
||||
|
||||
|
@ -221,8 +221,8 @@ module axi_ad9122_core (
|
|||
// dac channel
|
||||
|
||||
axi_ad9122_channel #(
|
||||
.CHID(0),
|
||||
.DP_DISABLE(DP_DISABLE))
|
||||
.CHANNEL_ID(0),
|
||||
.DATAPATH_DISABLE(DATAPATH_DISABLE))
|
||||
i_channel_0 (
|
||||
.dac_div_clk (dac_div_clk),
|
||||
.dac_rst (dac_rst),
|
||||
|
@ -247,8 +247,8 @@ module axi_ad9122_core (
|
|||
// dac channel
|
||||
|
||||
axi_ad9122_channel #(
|
||||
.CHID(1),
|
||||
.DP_DISABLE(DP_DISABLE))
|
||||
.CHANNEL_ID(1),
|
||||
.DATAPATH_DISABLE(DATAPATH_DISABLE))
|
||||
i_channel_1 (
|
||||
.dac_div_clk (dac_div_clk),
|
||||
.dac_rst (dac_rst),
|
||||
|
@ -272,7 +272,7 @@ module axi_ad9122_core (
|
|||
|
||||
// dac common processor interface
|
||||
|
||||
up_dac_common #(.PCORE_ID(PCORE_ID)) i_up_dac_common (
|
||||
up_dac_common #(.ID(ID)) i_up_dac_common (
|
||||
.mmcm_rst (mmcm_rst),
|
||||
.dac_clk (dac_div_clk),
|
||||
.dac_rst (dac_rst),
|
||||
|
|
|
@ -97,10 +97,10 @@ module axi_ad9122_if (
|
|||
|
||||
// parameters
|
||||
|
||||
parameter PCORE_DEVICE_TYPE = 0;
|
||||
parameter PCORE_SERDES_DDR_N = 1;
|
||||
parameter PCORE_MMCM_BUFIO_N = 1;
|
||||
parameter PCORE_IODELAY_GROUP = "dac_if_delay_group";
|
||||
parameter DEVICE_TYPE = 0;
|
||||
parameter SERDES_OR_DDR_N = 1;
|
||||
parameter MMCM_OR_BUFIO_N = 1;
|
||||
parameter IO_DELAY_GROUP = "dac_if_delay_group";
|
||||
|
||||
// dac interface
|
||||
|
||||
|
@ -176,8 +176,8 @@ module axi_ad9122_if (
|
|||
// dac data output serdes(s) & buffers
|
||||
|
||||
ad_serdes_out #(
|
||||
.DEVICE_TYPE (PCORE_DEVICE_TYPE),
|
||||
.SERDES(PCORE_SERDES_DDR_N),
|
||||
.DEVICE_TYPE (DEVICE_TYPE),
|
||||
.SERDES_OR_DDR_N(SERDES_OR_DDR_N),
|
||||
.DATA_WIDTH(16))
|
||||
i_serdes_out_data (
|
||||
.rst (dac_rst),
|
||||
|
@ -197,8 +197,8 @@ module axi_ad9122_if (
|
|||
// dac frame output serdes & buffer
|
||||
|
||||
ad_serdes_out #(
|
||||
.DEVICE_TYPE (PCORE_DEVICE_TYPE),
|
||||
.SERDES(PCORE_SERDES_DDR_N),
|
||||
.DEVICE_TYPE (DEVICE_TYPE),
|
||||
.SERDES_OR_DDR_N(SERDES_OR_DDR_N),
|
||||
.DATA_WIDTH(1))
|
||||
i_serdes_out_frame (
|
||||
.rst (dac_rst),
|
||||
|
@ -218,8 +218,8 @@ module axi_ad9122_if (
|
|||
// dac clock output serdes & buffer
|
||||
|
||||
ad_serdes_out #(
|
||||
.DEVICE_TYPE (PCORE_DEVICE_TYPE),
|
||||
.SERDES(PCORE_SERDES_DDR_N),
|
||||
.DEVICE_TYPE (DEVICE_TYPE),
|
||||
.SERDES_OR_DDR_N(SERDES_OR_DDR_N),
|
||||
.DATA_WIDTH(1))
|
||||
i_serdes_out_clk (
|
||||
.rst (dac_rst),
|
||||
|
@ -239,9 +239,9 @@ module axi_ad9122_if (
|
|||
// dac clock input buffers
|
||||
|
||||
ad_serdes_clk #(
|
||||
.SERDES (PCORE_SERDES_DDR_N),
|
||||
.MMCM (PCORE_MMCM_BUFIO_N),
|
||||
.MMCM_DEVICE_TYPE (PCORE_DEVICE_TYPE),
|
||||
.SERDES_OR_DDR_N (SERDES_OR_DDR_N),
|
||||
.MMCM_OR_BUFR_N (MMCM_OR_BUFIO_N),
|
||||
.MMCM_DEVICE_TYPE (DEVICE_TYPE),
|
||||
.MMCM_CLKIN_PERIOD (1.667),
|
||||
.MMCM_VCO_DIV (6),
|
||||
.MMCM_VCO_MUL (12),
|
||||
|
|
|
@ -91,15 +91,15 @@ module axi_ad9144 (
|
|||
|
||||
// parameters
|
||||
|
||||
parameter PCORE_ID = 0;
|
||||
parameter PCORE_QUAD_DUAL_N = 1;
|
||||
parameter PCORE_DAC_DP_DISABLE = 0;
|
||||
parameter ID = 0;
|
||||
parameter QUAD_OR_DUAL_N = 1;
|
||||
parameter DAC_DATAPATH_DISABLE = 0;
|
||||
|
||||
// jesd interface
|
||||
// tx_clk is (line-rate/40)
|
||||
|
||||
input tx_clk;
|
||||
output [(128*PCORE_QUAD_DUAL_N)+127:0] tx_data;
|
||||
output [(128*QUAD_OR_DUAL_N)+127:0] tx_data;
|
||||
|
||||
// dma interface
|
||||
|
||||
|
@ -184,7 +184,7 @@ module axi_ad9144 (
|
|||
|
||||
// dual/quad cores
|
||||
|
||||
assign tx_data = (PCORE_QUAD_DUAL_N == 1) ? tx_data_s : tx_data_s[127:0];
|
||||
assign tx_data = (QUAD_OR_DUAL_N == 1) ? tx_data_s : tx_data_s[127:0];
|
||||
|
||||
// device interface
|
||||
|
||||
|
@ -212,7 +212,7 @@ module axi_ad9144 (
|
|||
|
||||
// core
|
||||
|
||||
axi_ad9144_core #(.PCORE_ID(PCORE_ID), .DP_DISABLE(PCORE_DAC_DP_DISABLE)) i_core (
|
||||
axi_ad9144_core #(.ID(ID), .DATAPATH_DISABLE(DAC_DATAPATH_DISABLE)) i_core (
|
||||
.dac_clk (dac_clk),
|
||||
.dac_rst (dac_rst),
|
||||
.dac_data_0_0 (dac_data_0_0_s),
|
||||
|
|
|
@ -69,8 +69,8 @@ module axi_ad9144_channel (
|
|||
|
||||
// parameters
|
||||
|
||||
parameter CHID = 32'h0;
|
||||
parameter DP_DISABLE = 0;
|
||||
parameter CHANNEL_ID = 32'h0;
|
||||
parameter DATAPATH_DISABLE = 0;
|
||||
|
||||
// dac interface
|
||||
|
||||
|
@ -495,7 +495,7 @@ module axi_ad9144_channel (
|
|||
end
|
||||
|
||||
generate
|
||||
if (DP_DISABLE == 1) begin
|
||||
if (DATAPATH_DISABLE == 1) begin
|
||||
assign dac_dds_data_0_s = 16'd0;
|
||||
end else begin
|
||||
ad_dds i_dds_0 (
|
||||
|
@ -510,7 +510,7 @@ module axi_ad9144_channel (
|
|||
endgenerate
|
||||
|
||||
generate
|
||||
if (DP_DISABLE == 1) begin
|
||||
if (DATAPATH_DISABLE == 1) begin
|
||||
assign dac_dds_data_1_s = 16'd0;
|
||||
end else begin
|
||||
ad_dds i_dds_1 (
|
||||
|
@ -525,7 +525,7 @@ module axi_ad9144_channel (
|
|||
endgenerate
|
||||
|
||||
generate
|
||||
if (DP_DISABLE == 1) begin
|
||||
if (DATAPATH_DISABLE == 1) begin
|
||||
assign dac_dds_data_2_s = 16'd0;
|
||||
end else begin
|
||||
ad_dds i_dds_2 (
|
||||
|
@ -540,7 +540,7 @@ module axi_ad9144_channel (
|
|||
endgenerate
|
||||
|
||||
generate
|
||||
if (DP_DISABLE == 1) begin
|
||||
if (DATAPATH_DISABLE == 1) begin
|
||||
assign dac_dds_data_3_s = 16'd0;
|
||||
end else begin
|
||||
ad_dds i_dds_3 (
|
||||
|
@ -556,7 +556,7 @@ module axi_ad9144_channel (
|
|||
|
||||
// single channel processor
|
||||
|
||||
up_dac_channel #(.PCORE_DAC_CHID(CHID)) i_up_dac_channel (
|
||||
up_dac_channel #(.DAC_CHANNEL_ID(CHANNEL_ID)) i_up_dac_channel (
|
||||
.dac_clk (dac_clk),
|
||||
.dac_rst (dac_rst),
|
||||
.dac_dds_scale_1 (dac_dds_scale_1_s),
|
||||
|
|
|
@ -94,8 +94,8 @@ module axi_ad9144_core (
|
|||
|
||||
// parameters
|
||||
|
||||
parameter PCORE_ID = 0;
|
||||
parameter DP_DISABLE = 0;
|
||||
parameter ID = 0;
|
||||
parameter DATAPATH_DISABLE = 0;
|
||||
|
||||
// dac interface
|
||||
|
||||
|
@ -197,7 +197,7 @@ module axi_ad9144_core (
|
|||
|
||||
// dac channel
|
||||
|
||||
axi_ad9144_channel #(.CHID(0), .DP_DISABLE(DP_DISABLE)) i_channel_0 (
|
||||
axi_ad9144_channel #(.CHANNEL_ID(0), .DATAPATH_DISABLE(DATAPATH_DISABLE)) i_channel_0 (
|
||||
.dac_clk (dac_clk),
|
||||
.dac_rst (dac_rst),
|
||||
.dac_enable (dac_enable_0),
|
||||
|
@ -218,7 +218,7 @@ module axi_ad9144_core (
|
|||
|
||||
// dac channel
|
||||
|
||||
axi_ad9144_channel #(.CHID(1), .DP_DISABLE(DP_DISABLE)) i_channel_1 (
|
||||
axi_ad9144_channel #(.CHANNEL_ID(1), .DATAPATH_DISABLE(DATAPATH_DISABLE)) i_channel_1 (
|
||||
.dac_clk (dac_clk),
|
||||
.dac_rst (dac_rst),
|
||||
.dac_enable (dac_enable_1),
|
||||
|
@ -239,7 +239,7 @@ module axi_ad9144_core (
|
|||
|
||||
// dac channel
|
||||
|
||||
axi_ad9144_channel #(.CHID(2), .DP_DISABLE(DP_DISABLE)) i_channel_2 (
|
||||
axi_ad9144_channel #(.CHANNEL_ID(2), .DATAPATH_DISABLE(DATAPATH_DISABLE)) i_channel_2 (
|
||||
.dac_clk (dac_clk),
|
||||
.dac_rst (dac_rst),
|
||||
.dac_enable (dac_enable_2),
|
||||
|
@ -260,7 +260,7 @@ module axi_ad9144_core (
|
|||
|
||||
// dac channel
|
||||
|
||||
axi_ad9144_channel #(.CHID(3), .DP_DISABLE(DP_DISABLE)) i_channel_3 (
|
||||
axi_ad9144_channel #(.CHANNEL_ID(3), .DATAPATH_DISABLE(DATAPATH_DISABLE)) i_channel_3 (
|
||||
.dac_clk (dac_clk),
|
||||
.dac_rst (dac_rst),
|
||||
.dac_enable (dac_enable_3),
|
||||
|
@ -281,7 +281,7 @@ module axi_ad9144_core (
|
|||
|
||||
// dac common processor interface
|
||||
|
||||
up_dac_common #(.PCORE_ID(PCORE_ID)) i_up_dac_common (
|
||||
up_dac_common #(.ID(ID)) i_up_dac_common (
|
||||
.mmcm_rst (),
|
||||
.dac_clk (dac_clk),
|
||||
.dac_rst (dac_rst),
|
||||
|
|
|
@ -36,19 +36,19 @@ add_fileset_file ad_axi_ip_constr.sdc SDC PATH $ad_hdl_dir/library/common/ad
|
|||
|
||||
# parameters
|
||||
|
||||
add_parameter PCORE_ID INTEGER 0
|
||||
set_parameter_property PCORE_ID DEFAULT_VALUE 0
|
||||
set_parameter_property PCORE_ID DISPLAY_NAME PCORE_ID
|
||||
set_parameter_property PCORE_ID TYPE INTEGER
|
||||
set_parameter_property PCORE_ID UNITS None
|
||||
set_parameter_property PCORE_ID HDL_PARAMETER true
|
||||
add_parameter ID INTEGER 0
|
||||
set_parameter_property ID DEFAULT_VALUE 0
|
||||
set_parameter_property ID DISPLAY_NAME ID
|
||||
set_parameter_property ID TYPE INTEGER
|
||||
set_parameter_property ID UNITS None
|
||||
set_parameter_property ID HDL_PARAMETER true
|
||||
|
||||
add_parameter PCORE_QUAD_DUAL_N INTEGER 0
|
||||
set_parameter_property PCORE_QUAD_DUAL_N DEFAULT_VALUE 0
|
||||
set_parameter_property PCORE_QUAD_DUAL_N DISPLAY_NAME PCORE_QUAD_DUAL_N
|
||||
set_parameter_property PCORE_QUAD_DUAL_N TYPE INTEGER
|
||||
set_parameter_property PCORE_QUAD_DUAL_N UNITS None
|
||||
set_parameter_property PCORE_QUAD_DUAL_N HDL_PARAMETER true
|
||||
add_parameter QUAD_OR_DUAL_N INTEGER 0
|
||||
set_parameter_property QUAD_OR_DUAL_N DEFAULT_VALUE 0
|
||||
set_parameter_property QUAD_OR_DUAL_N DISPLAY_NAME QUAD_OR_DUAL_N
|
||||
set_parameter_property QUAD_OR_DUAL_N TYPE INTEGER
|
||||
set_parameter_property QUAD_OR_DUAL_N UNITS None
|
||||
set_parameter_property QUAD_OR_DUAL_N HDL_PARAMETER true
|
||||
|
||||
# axi4 slave
|
||||
|
||||
|
@ -85,7 +85,7 @@ add_interface_port s_axi s_axi_rready rready Input 1
|
|||
# transceiver interface
|
||||
|
||||
ad_alt_intf clock tx_clk input 1
|
||||
ad_alt_intf signal tx_data output 128*(PCORE_QUAD_DUAL_N+1) data
|
||||
ad_alt_intf signal tx_data output 128*(QUAD_OR_DUAL_N+1) data
|
||||
|
||||
# dma interface
|
||||
|
||||
|
@ -101,9 +101,9 @@ ad_alt_intf signal dac_dunf input 1
|
|||
|
||||
proc p_axi_ad9144 {} {
|
||||
|
||||
set p_pcore_quad_dual_n [get_parameter_value "PCORE_QUAD_DUAL_N"]
|
||||
set p_pcore_quad_dual_n [get_parameter_value "QUAD_OR_DUAL_N"]
|
||||
|
||||
if {[get_parameter_value PCORE_QUAD_DUAL_N] == 1} {
|
||||
if {[get_parameter_value QUAD_OR_DUAL_N] == 1} {
|
||||
ad_alt_intf signal dac_valid_2 output 1
|
||||
ad_alt_intf signal dac_enable_2 output 1
|
||||
ad_alt_intf signal dac_ddata_2 input 64 dac_data_2
|
||||
|
|
|
@ -83,8 +83,8 @@ module axi_ad9152 (
|
|||
|
||||
// parameters
|
||||
|
||||
parameter PCORE_ID = 0;
|
||||
parameter PCORE_DAC_DP_DISABLE = 0;
|
||||
parameter ID = 0;
|
||||
parameter DAC_DATAPATH_DISABLE = 0;
|
||||
|
||||
// jesd interface
|
||||
// tx_clk is (line-rate/40)
|
||||
|
@ -174,7 +174,7 @@ module axi_ad9152 (
|
|||
|
||||
// core
|
||||
|
||||
axi_ad9152_core #(.PCORE_ID(PCORE_ID), .DP_DISABLE(PCORE_DAC_DP_DISABLE)) i_core (
|
||||
axi_ad9152_core #(.ID(ID), .DATAPATH_DISABLE(DAC_DATAPATH_DISABLE)) i_core (
|
||||
.dac_clk (dac_clk),
|
||||
.dac_rst (dac_rst),
|
||||
.dac_data_0_0 (dac_data_0_0_s),
|
||||
|
|
|
@ -69,8 +69,8 @@ module axi_ad9152_channel (
|
|||
|
||||
// parameters
|
||||
|
||||
parameter CHID = 32'h0;
|
||||
parameter DP_DISABLE = 0;
|
||||
parameter CHANNEL_ID = 32'h0;
|
||||
parameter DATAPATH_DISABLE = 0;
|
||||
|
||||
// dac interface
|
||||
|
||||
|
@ -495,7 +495,7 @@ module axi_ad9152_channel (
|
|||
end
|
||||
|
||||
generate
|
||||
if (DP_DISABLE == 1) begin
|
||||
if (DATAPATH_DISABLE == 1) begin
|
||||
assign dac_dds_data_0_s = 16'd0;
|
||||
end else begin
|
||||
ad_dds i_dds_0 (
|
||||
|
@ -510,7 +510,7 @@ module axi_ad9152_channel (
|
|||
endgenerate
|
||||
|
||||
generate
|
||||
if (DP_DISABLE == 1) begin
|
||||
if (DATAPATH_DISABLE == 1) begin
|
||||
assign dac_dds_data_1_s = 16'd0;
|
||||
end else begin
|
||||
ad_dds i_dds_1 (
|
||||
|
@ -525,7 +525,7 @@ module axi_ad9152_channel (
|
|||
endgenerate
|
||||
|
||||
generate
|
||||
if (DP_DISABLE == 1) begin
|
||||
if (DATAPATH_DISABLE == 1) begin
|
||||
assign dac_dds_data_2_s = 16'd0;
|
||||
end else begin
|
||||
ad_dds i_dds_2 (
|
||||
|
@ -540,7 +540,7 @@ module axi_ad9152_channel (
|
|||
endgenerate
|
||||
|
||||
generate
|
||||
if (DP_DISABLE == 1) begin
|
||||
if (DATAPATH_DISABLE == 1) begin
|
||||
assign dac_dds_data_3_s = 16'd0;
|
||||
end else begin
|
||||
ad_dds i_dds_3 (
|
||||
|
@ -556,7 +556,7 @@ module axi_ad9152_channel (
|
|||
|
||||
// single channel processor
|
||||
|
||||
up_dac_channel #(.PCORE_DAC_CHID(CHID)) i_up_dac_channel (
|
||||
up_dac_channel #(.DAC_CHANNEL_ID(CHANNEL_ID)) i_up_dac_channel (
|
||||
.dac_clk (dac_clk),
|
||||
.dac_rst (dac_rst),
|
||||
.dac_dds_scale_1 (dac_dds_scale_1_s),
|
||||
|
|
|
@ -80,8 +80,8 @@ module axi_ad9152_core (
|
|||
|
||||
// parameters
|
||||
|
||||
parameter PCORE_ID = 0;
|
||||
parameter DP_DISABLE = 0;
|
||||
parameter ID = 0;
|
||||
parameter DATAPATH_DISABLE = 0;
|
||||
|
||||
// dac interface
|
||||
|
||||
|
@ -163,7 +163,7 @@ module axi_ad9152_core (
|
|||
|
||||
// dac channel
|
||||
|
||||
axi_ad9152_channel #(.CHID(0), .DP_DISABLE(DP_DISABLE)) i_channel_0 (
|
||||
axi_ad9152_channel #(.CHANNEL_ID(0), .DATAPATH_DISABLE(DATAPATH_DISABLE)) i_channel_0 (
|
||||
.dac_clk (dac_clk),
|
||||
.dac_rst (dac_rst),
|
||||
.dac_enable (dac_enable_0),
|
||||
|
@ -184,7 +184,7 @@ module axi_ad9152_core (
|
|||
|
||||
// dac channel
|
||||
|
||||
axi_ad9152_channel #(.CHID(1), .DP_DISABLE(DP_DISABLE)) i_channel_1 (
|
||||
axi_ad9152_channel #(.CHANNEL_ID(1), .DATAPATH_DISABLE(DATAPATH_DISABLE)) i_channel_1 (
|
||||
.dac_clk (dac_clk),
|
||||
.dac_rst (dac_rst),
|
||||
.dac_enable (dac_enable_1),
|
||||
|
@ -205,7 +205,7 @@ module axi_ad9152_core (
|
|||
|
||||
// dac common processor interface
|
||||
|
||||
up_dac_common #(.PCORE_ID(PCORE_ID)) i_up_dac_common (
|
||||
up_dac_common #(.ID(ID)) i_up_dac_common (
|
||||
.mmcm_rst (),
|
||||
.dac_clk (dac_clk),
|
||||
.dac_rst (dac_rst),
|
||||
|
|
|
@ -81,9 +81,9 @@ module axi_ad9234 (
|
|||
s_axi_rdata,
|
||||
s_axi_rready);
|
||||
|
||||
parameter PCORE_ID = 0;
|
||||
parameter PCORE_DEVICE_TYPE = 0;
|
||||
parameter PCORE_IODELAY_GROUP = "adc_if_delay_group";
|
||||
parameter ID = 0;
|
||||
parameter DEVICE_TYPE = 0;
|
||||
parameter IO_DELAY_GROUP = "adc_if_delay_group";
|
||||
|
||||
// jesd interface
|
||||
// rx_clk is (line-rate/40)
|
||||
|
@ -204,7 +204,7 @@ module axi_ad9234 (
|
|||
|
||||
// channel
|
||||
|
||||
axi_ad9234_channel #(.IQSEL(0), .CHID(0)) i_channel_0 (
|
||||
axi_ad9234_channel #(.Q_OR_I_N(0), .CHANNEL_ID(0)) i_channel_0 (
|
||||
.adc_clk (adc_clk),
|
||||
.adc_rst (adc_rst),
|
||||
.adc_data (adc_data_a_s),
|
||||
|
@ -227,7 +227,7 @@ module axi_ad9234 (
|
|||
|
||||
// channel
|
||||
|
||||
axi_ad9234_channel #(.IQSEL(1), .CHID(1)) i_channel_1 (
|
||||
axi_ad9234_channel #(.Q_OR_I_N(1), .CHANNEL_ID(1)) i_channel_1 (
|
||||
.adc_clk (adc_clk),
|
||||
.adc_rst (adc_rst),
|
||||
.adc_data (adc_data_b_s),
|
||||
|
@ -250,7 +250,7 @@ module axi_ad9234 (
|
|||
|
||||
// common processor control
|
||||
|
||||
up_adc_common #(.PCORE_ID(PCORE_ID)) i_up_adc_common (
|
||||
up_adc_common #(.ID(ID)) i_up_adc_common (
|
||||
.mmcm_rst (),
|
||||
.adc_clk (adc_clk),
|
||||
.adc_rst (adc_rst),
|
||||
|
|
|
@ -72,8 +72,8 @@ module axi_ad9234_channel (
|
|||
|
||||
// parameters
|
||||
|
||||
parameter IQSEL = 0;
|
||||
parameter CHID = 0;
|
||||
parameter Q_OR_I_N = 0;
|
||||
parameter CHANNEL_ID = 0;
|
||||
|
||||
// adc interface
|
||||
|
||||
|
@ -120,7 +120,7 @@ module axi_ad9234_channel (
|
|||
|
||||
assign adc_dfmt_data = adc_data;
|
||||
|
||||
up_adc_channel #(.PCORE_ADC_CHID(CHID)) i_up_adc_channel (
|
||||
up_adc_channel #(.ADC_CHANNEL_ID(CHANNEL_ID)) i_up_adc_channel (
|
||||
.adc_clk (adc_clk),
|
||||
.adc_rst (adc_rst),
|
||||
.adc_enable (adc_enable),
|
||||
|
|
|
@ -83,9 +83,9 @@ module axi_ad9250 (
|
|||
s_axi_rresp,
|
||||
s_axi_rready);
|
||||
|
||||
parameter PCORE_ID = 0;
|
||||
parameter PCORE_DEVICE_TYPE = 0;
|
||||
parameter PCORE_IODELAY_GROUP = "adc_if_delay_group";
|
||||
parameter ID = 0;
|
||||
parameter DEVICE_TYPE = 0;
|
||||
parameter IO_DELAY_GROUP = "adc_if_delay_group";
|
||||
|
||||
// jesd interface
|
||||
// rx_clk is (line-rate/40)
|
||||
|
@ -208,7 +208,7 @@ module axi_ad9250 (
|
|||
|
||||
// channel
|
||||
|
||||
axi_ad9250_channel #(.IQSEL(0), .CHID(0)) i_channel_0 (
|
||||
axi_ad9250_channel #(.Q_OR_I_N(0), .CHANNEL_ID(0)) i_channel_0 (
|
||||
.adc_clk (adc_clk),
|
||||
.adc_rst (adc_rst),
|
||||
.adc_data (adc_data_a_s),
|
||||
|
@ -231,7 +231,7 @@ module axi_ad9250 (
|
|||
|
||||
// channel
|
||||
|
||||
axi_ad9250_channel #(.IQSEL(1), .CHID(1)) i_channel_1 (
|
||||
axi_ad9250_channel #(.Q_OR_I_N(1), .CHANNEL_ID(1)) i_channel_1 (
|
||||
.adc_clk (adc_clk),
|
||||
.adc_rst (adc_rst),
|
||||
.adc_data (adc_data_b_s),
|
||||
|
@ -254,7 +254,7 @@ module axi_ad9250 (
|
|||
|
||||
// common processor control
|
||||
|
||||
up_adc_common #(.PCORE_ID(PCORE_ID)) i_up_adc_common (
|
||||
up_adc_common #(.ID(ID)) i_up_adc_common (
|
||||
.mmcm_rst (),
|
||||
.adc_clk (adc_clk),
|
||||
.adc_rst (adc_rst),
|
||||
|
|
|
@ -72,8 +72,8 @@ module axi_ad9250_channel (
|
|||
|
||||
// parameters
|
||||
|
||||
parameter IQSEL = 0;
|
||||
parameter CHID = 0;
|
||||
parameter Q_OR_I_N = 0;
|
||||
parameter CHANNEL_ID = 0;
|
||||
|
||||
// adc interface
|
||||
|
||||
|
@ -136,7 +136,7 @@ module axi_ad9250_channel (
|
|||
end
|
||||
endgenerate
|
||||
|
||||
up_adc_channel #(.PCORE_ADC_CHID(CHID)) i_up_adc_channel (
|
||||
up_adc_channel #(.ADC_CHANNEL_ID(CHANNEL_ID)) i_up_adc_channel (
|
||||
.adc_clk (adc_clk),
|
||||
.adc_rst (adc_rst),
|
||||
.adc_enable (adc_enable),
|
||||
|
|
|
@ -32,19 +32,19 @@ add_fileset_file ad_axi_ip_constr.sdc SDC PATH $ad_hdl_dir/library/common/ad
|
|||
|
||||
# parameters
|
||||
|
||||
add_parameter PCORE_ID INTEGER 0
|
||||
set_parameter_property PCORE_ID DEFAULT_VALUE 0
|
||||
set_parameter_property PCORE_ID DISPLAY_NAME PCORE_ID
|
||||
set_parameter_property PCORE_ID TYPE INTEGER
|
||||
set_parameter_property PCORE_ID UNITS None
|
||||
set_parameter_property PCORE_ID HDL_PARAMETER true
|
||||
add_parameter ID INTEGER 0
|
||||
set_parameter_property ID DEFAULT_VALUE 0
|
||||
set_parameter_property ID DISPLAY_NAME ID
|
||||
set_parameter_property ID TYPE INTEGER
|
||||
set_parameter_property ID UNITS None
|
||||
set_parameter_property ID HDL_PARAMETER true
|
||||
|
||||
add_parameter PCORE_DEVICE_TYPE INTEGER 0
|
||||
set_parameter_property PCORE_DEVICE_TYPE DEFAULT_VALUE 0
|
||||
set_parameter_property PCORE_DEVICE_TYPE DISPLAY_NAME PCORE_DEVICE_TYPE
|
||||
set_parameter_property PCORE_DEVICE_TYPE TYPE INTEGER
|
||||
set_parameter_property PCORE_DEVICE_TYPE UNITS None
|
||||
set_parameter_property PCORE_DEVICE_TYPE HDL_PARAMETER true
|
||||
add_parameter DEVICE_TYPE INTEGER 0
|
||||
set_parameter_property DEVICE_TYPE DEFAULT_VALUE 0
|
||||
set_parameter_property DEVICE_TYPE DISPLAY_NAME DEVICE_TYPE
|
||||
set_parameter_property DEVICE_TYPE TYPE INTEGER
|
||||
set_parameter_property DEVICE_TYPE UNITS None
|
||||
set_parameter_property DEVICE_TYPE HDL_PARAMETER true
|
||||
|
||||
# axi4 slave
|
||||
|
||||
|
|
|
@ -88,10 +88,10 @@ module axi_ad9265 (
|
|||
|
||||
// parameters
|
||||
|
||||
parameter PCORE_ID = 0;
|
||||
parameter PCORE_DEVICE_TYPE = 0;
|
||||
parameter PCORE_ADC_DP_DISABLE = 0;
|
||||
parameter PCORE_IODELAY_GROUP = "adc_if_delay_group";
|
||||
parameter ID = 0;
|
||||
parameter DEVICE_TYPE = 0;
|
||||
parameter ADC_DATAPATH_DISABLE = 0;
|
||||
parameter IO_DELAY_GROUP = "adc_if_delay_group";
|
||||
|
||||
// adc interface (clk, data, over-range)
|
||||
|
||||
|
@ -203,8 +203,8 @@ module axi_ad9265 (
|
|||
// channel
|
||||
|
||||
axi_ad9265_channel #(
|
||||
.CHID(0),
|
||||
.DP_DISABLE (PCORE_ADC_DP_DISABLE))
|
||||
.CHANNEL_ID(0),
|
||||
.DATAPATH_DISABLE (ADC_DATAPATH_DISABLE))
|
||||
i_channel (
|
||||
.adc_clk (adc_clk),
|
||||
.adc_rst (adc_rst),
|
||||
|
@ -230,8 +230,8 @@ module axi_ad9265 (
|
|||
// main (device interface)
|
||||
|
||||
axi_ad9265_if #(
|
||||
.PCORE_BUFTYPE (PCORE_DEVICE_TYPE),
|
||||
.PCORE_IODELAY_GROUP (PCORE_IODELAY_GROUP))
|
||||
.DEVICE_TYPE (DEVICE_TYPE),
|
||||
.IO_DELAY_GROUP (IO_DELAY_GROUP))
|
||||
i_if (
|
||||
.adc_clk_in_p (adc_clk_in_p),
|
||||
.adc_clk_in_n (adc_clk_in_n),
|
||||
|
@ -253,7 +253,7 @@ module axi_ad9265 (
|
|||
|
||||
// adc delay control
|
||||
|
||||
up_delay_cntrl #(.IO_WIDTH(9), .IO_BASEADDR(6'h02)) i_delay_cntrl (
|
||||
up_delay_cntrl #(.DATA_WIDTH(9), .BASE_ADDRESS(6'h02)) i_delay_cntrl (
|
||||
.delay_clk (delay_clk),
|
||||
.delay_rst (delay_rst),
|
||||
.delay_locked (delay_locked_s),
|
||||
|
@ -273,7 +273,7 @@ module axi_ad9265 (
|
|||
|
||||
// common processor control
|
||||
|
||||
up_adc_common #(.PCORE_ID(PCORE_ID)) i_up_adc_common (
|
||||
up_adc_common #(.ID(ID)) i_up_adc_common (
|
||||
.mmcm_rst (),
|
||||
.adc_clk (adc_clk),
|
||||
.adc_rst (adc_rst),
|
||||
|
|
|
@ -73,8 +73,8 @@ module axi_ad9265_channel (
|
|||
|
||||
// parameters
|
||||
|
||||
parameter CHID = 0;
|
||||
parameter DP_DISABLE = 0;
|
||||
parameter CHANNEL_ID = 0;
|
||||
parameter DATAPATH_DISABLE = 0;
|
||||
|
||||
// adc interface
|
||||
|
||||
|
@ -128,7 +128,7 @@ module axi_ad9265_channel (
|
|||
.adc_pnseq_sel (adc_pnseq_sel_s));
|
||||
|
||||
generate
|
||||
if (DP_DISABLE == 1) begin
|
||||
if (DATAPATH_DISABLE == 1) begin
|
||||
assign adc_dfmt_data_s = adc_data;
|
||||
end else begin
|
||||
ad_datafmt #(.DATA_WIDTH(16)) i_ad_datafmt (
|
||||
|
@ -144,7 +144,7 @@ module axi_ad9265_channel (
|
|||
endgenerate
|
||||
|
||||
generate
|
||||
if (DP_DISABLE == 1) begin
|
||||
if (DATAPATH_DISABLE == 1) begin
|
||||
assign adc_dcfilter_data_out = adc_dfmt_data_s;
|
||||
end else begin
|
||||
ad_dcfilter i_ad_dcfilter (
|
||||
|
@ -159,7 +159,7 @@ module axi_ad9265_channel (
|
|||
end
|
||||
endgenerate
|
||||
|
||||
up_adc_channel #(.PCORE_ADC_CHID(CHID)) i_up_adc_channel (
|
||||
up_adc_channel #(.ADC_CHANNEL_ID(CHANNEL_ID)) i_up_adc_channel (
|
||||
.adc_clk (adc_clk),
|
||||
.adc_rst (adc_rst),
|
||||
.adc_enable (adc_enable),
|
||||
|
|
|
@ -70,8 +70,8 @@ module axi_ad9265_if (
|
|||
|
||||
// This parameter controls the buffer type based on the target device.
|
||||
|
||||
parameter PCORE_BUFTYPE = 0;
|
||||
parameter PCORE_IODELAY_GROUP = "adc_if_delay_group";
|
||||
parameter DEVICE_TYPE = 0;
|
||||
parameter IO_DELAY_GROUP = "adc_if_delay_group";
|
||||
|
||||
// adc interface (clk, data, over-range)
|
||||
// nominal clock 125 MHz, up to 300 MHz
|
||||
|
@ -131,9 +131,9 @@ module axi_ad9265_if (
|
|||
generate
|
||||
for (l_inst = 0; l_inst <= 7; l_inst = l_inst + 1) begin : g_adc_if
|
||||
ad_lvds_in #(
|
||||
.BUFTYPE (PCORE_BUFTYPE),
|
||||
.DEVICE_TYPE (DEVICE_TYPE),
|
||||
.IODELAY_CTRL (0),
|
||||
.IODELAY_GROUP (PCORE_IODELAY_GROUP))
|
||||
.IODELAY_GROUP (IO_DELAY_GROUP))
|
||||
i_adc_data (
|
||||
.rx_clk (adc_clk),
|
||||
.rx_data_in_p (adc_data_in_p[l_inst]),
|
||||
|
@ -153,9 +153,9 @@ module axi_ad9265_if (
|
|||
// over-range interface
|
||||
|
||||
ad_lvds_in #(
|
||||
.BUFTYPE (PCORE_BUFTYPE),
|
||||
.DEVICE_TYPE (DEVICE_TYPE),
|
||||
.IODELAY_CTRL (1),
|
||||
.IODELAY_GROUP (PCORE_IODELAY_GROUP))
|
||||
.IODELAY_GROUP (IO_DELAY_GROUP))
|
||||
i_adc_or (
|
||||
.rx_clk (adc_clk),
|
||||
.rx_data_in_p (adc_or_in_p),
|
||||
|
@ -173,7 +173,7 @@ module axi_ad9265_if (
|
|||
// clock
|
||||
|
||||
ad_lvds_clk #(
|
||||
.BUFTYPE (PCORE_BUFTYPE))
|
||||
.DEVICE_TYPE (DEVICE_TYPE))
|
||||
i_adc_clk (
|
||||
.clk_in_p (adc_clk_in_p),
|
||||
.clk_in_n (adc_clk_in_n),
|
||||
|
|
|
@ -153,12 +153,12 @@ module axi_ad9361 (
|
|||
|
||||
// parameters
|
||||
|
||||
parameter PCORE_ID = 0;
|
||||
parameter PCORE_DEVICE_TYPE = 0;
|
||||
parameter PCORE_DAC_IODELAY_ENABLE = 0;
|
||||
parameter PCORE_IODELAY_GROUP = "dev_if_delay_group";
|
||||
parameter PCORE_DAC_DP_DISABLE = 0;
|
||||
parameter PCORE_ADC_DP_DISABLE = 0;
|
||||
parameter ID = 0;
|
||||
parameter DEVICE_TYPE = 0;
|
||||
parameter DAC_IODELAY_ENABLE = 0;
|
||||
parameter IO_DELAY_GROUP = "dev_if_delay_group";
|
||||
parameter DAC_DATAPATH_DISABLE = 0;
|
||||
parameter ADC_DATAPATH_DISABLE = 0;
|
||||
|
||||
// physical interface (receive)
|
||||
|
||||
|
@ -346,9 +346,9 @@ module axi_ad9361 (
|
|||
// device interface
|
||||
|
||||
axi_ad9361_dev_if #(
|
||||
.PCORE_DEVICE_TYPE (PCORE_DEVICE_TYPE),
|
||||
.PCORE_DAC_IODELAY_ENABLE (PCORE_DAC_IODELAY_ENABLE),
|
||||
.PCORE_IODELAY_GROUP (PCORE_IODELAY_GROUP))
|
||||
.DEVICE_TYPE (DEVICE_TYPE),
|
||||
.DAC_IODELAY_ENABLE (DAC_IODELAY_ENABLE),
|
||||
.IO_DELAY_GROUP (IO_DELAY_GROUP))
|
||||
i_dev_if (
|
||||
.rx_clk_in_p (rx_clk_in_p),
|
||||
.rx_clk_in_n (rx_clk_in_n),
|
||||
|
@ -386,7 +386,7 @@ module axi_ad9361 (
|
|||
|
||||
// TDD interface
|
||||
|
||||
axi_ad9361_tdd_if #(.MODE_OF_ENABLE(1)) i_tdd_if(
|
||||
axi_ad9361_tdd_if #(.LEVEL_OR_PULSE_N(1)) i_tdd_if(
|
||||
.clk(clk),
|
||||
.rst(rst),
|
||||
.tdd_rx_vco_en(tdd_rx_vco_en_s),
|
||||
|
@ -444,8 +444,8 @@ module axi_ad9361 (
|
|||
// receive
|
||||
|
||||
axi_ad9361_rx #(
|
||||
.PCORE_ID (PCORE_ID),
|
||||
.DP_DISABLE (PCORE_ADC_DP_DISABLE))
|
||||
.ID (ID),
|
||||
.DATAPATH_DISABLE (ADC_DATAPATH_DISABLE))
|
||||
i_rx (
|
||||
.adc_rst (rst),
|
||||
.adc_clk (clk),
|
||||
|
@ -491,8 +491,8 @@ module axi_ad9361 (
|
|||
// transmit
|
||||
|
||||
axi_ad9361_tx #(
|
||||
.PCORE_ID (PCORE_ID),
|
||||
.DP_DISABLE (PCORE_DAC_DP_DISABLE))
|
||||
.ID (ID),
|
||||
.DATAPATH_DISABLE (DAC_DATAPATH_DISABLE))
|
||||
i_tx (
|
||||
.dac_clk (clk),
|
||||
.dac_valid (dac_valid_s),
|
||||
|
|
|
@ -94,9 +94,9 @@ module axi_ad9361_dev_if (
|
|||
|
||||
// this parameter controls the buffer type based on the target device.
|
||||
|
||||
parameter PCORE_DEVICE_TYPE = 0;
|
||||
parameter PCORE_DAC_IODELAY_ENABLE = 0;
|
||||
parameter PCORE_IODELAY_GROUP = "dev_if_delay_group";
|
||||
parameter DEVICE_TYPE = 0;
|
||||
parameter DAC_IODELAY_ENABLE = 0;
|
||||
parameter IO_DELAY_GROUP = "dev_if_delay_group";
|
||||
localparam PCORE_7SERIES = 0;
|
||||
localparam PCORE_VIRTEX6 = 1;
|
||||
|
||||
|
@ -377,9 +377,9 @@ module axi_ad9361_dev_if (
|
|||
generate
|
||||
for (l_inst = 0; l_inst <= 5; l_inst = l_inst + 1) begin: g_rx_data
|
||||
ad_lvds_in #(
|
||||
.BUFTYPE (PCORE_DEVICE_TYPE),
|
||||
.DEVICE_TYPE (DEVICE_TYPE),
|
||||
.IODELAY_CTRL (0),
|
||||
.IODELAY_GROUP (PCORE_IODELAY_GROUP))
|
||||
.IODELAY_GROUP (IO_DELAY_GROUP))
|
||||
i_rx_data (
|
||||
.rx_clk (l_clk),
|
||||
.rx_data_in_p (rx_data_in_p[l_inst]),
|
||||
|
@ -399,9 +399,9 @@ module axi_ad9361_dev_if (
|
|||
// receive frame interface, ibuf -> idelay -> iddr
|
||||
|
||||
ad_lvds_in #(
|
||||
.BUFTYPE (PCORE_DEVICE_TYPE),
|
||||
.DEVICE_TYPE (DEVICE_TYPE),
|
||||
.IODELAY_CTRL (1),
|
||||
.IODELAY_GROUP (PCORE_IODELAY_GROUP))
|
||||
.IODELAY_GROUP (IO_DELAY_GROUP))
|
||||
i_rx_frame (
|
||||
.rx_clk (l_clk),
|
||||
.rx_data_in_p (rx_frame_in_p),
|
||||
|
@ -421,10 +421,10 @@ module axi_ad9361_dev_if (
|
|||
generate
|
||||
for (l_inst = 0; l_inst <= 5; l_inst = l_inst + 1) begin: g_tx_data
|
||||
ad_lvds_out #(
|
||||
.BUFTYPE (PCORE_DEVICE_TYPE),
|
||||
.IODELAY_ENABLE (PCORE_DAC_IODELAY_ENABLE),
|
||||
.DEVICE_TYPE (DEVICE_TYPE),
|
||||
.IODELAY_ENABLE (DAC_IODELAY_ENABLE),
|
||||
.IODELAY_CTRL (0),
|
||||
.IODELAY_GROUP (PCORE_IODELAY_GROUP))
|
||||
.IODELAY_GROUP (IO_DELAY_GROUP))
|
||||
i_tx_data (
|
||||
.tx_clk (l_clk),
|
||||
.tx_data_p (tx_p_data_p[l_inst]),
|
||||
|
@ -444,10 +444,10 @@ module axi_ad9361_dev_if (
|
|||
// transmit frame interface, oddr -> obuf
|
||||
|
||||
ad_lvds_out #(
|
||||
.BUFTYPE (PCORE_DEVICE_TYPE),
|
||||
.IODELAY_ENABLE (PCORE_DAC_IODELAY_ENABLE),
|
||||
.DEVICE_TYPE (DEVICE_TYPE),
|
||||
.IODELAY_ENABLE (DAC_IODELAY_ENABLE),
|
||||
.IODELAY_CTRL (0),
|
||||
.IODELAY_GROUP (PCORE_IODELAY_GROUP))
|
||||
.IODELAY_GROUP (IO_DELAY_GROUP))
|
||||
i_tx_frame (
|
||||
.tx_clk (l_clk),
|
||||
.tx_data_p (tx_p_frame),
|
||||
|
@ -465,10 +465,10 @@ module axi_ad9361_dev_if (
|
|||
// transmit clock interface, oddr -> obuf
|
||||
|
||||
ad_lvds_out #(
|
||||
.BUFTYPE (PCORE_DEVICE_TYPE),
|
||||
.IODELAY_ENABLE (PCORE_DAC_IODELAY_ENABLE),
|
||||
.DEVICE_TYPE (DEVICE_TYPE),
|
||||
.IODELAY_ENABLE (DAC_IODELAY_ENABLE),
|
||||
.IODELAY_CTRL (0),
|
||||
.IODELAY_GROUP (PCORE_IODELAY_GROUP))
|
||||
.IODELAY_GROUP (IO_DELAY_GROUP))
|
||||
i_tx_clk (
|
||||
.tx_clk (l_clk),
|
||||
.tx_data_p (1'b0),
|
||||
|
@ -486,7 +486,7 @@ module axi_ad9361_dev_if (
|
|||
// device clock interface (receive clock)
|
||||
|
||||
ad_lvds_clk #(
|
||||
.BUFTYPE (PCORE_DEVICE_TYPE))
|
||||
.DEVICE_TYPE (DEVICE_TYPE))
|
||||
i_clk (
|
||||
.clk_in_p (rx_clk_in_p),
|
||||
.clk_in_n (rx_clk_in_n),
|
||||
|
|
|
@ -96,9 +96,9 @@ module axi_ad9361_dev_if (
|
|||
|
||||
// this parameter controls the buffer type based on the target device.
|
||||
|
||||
parameter PCORE_DEVICE_TYPE = 0;
|
||||
parameter PCORE_DAC_IODELAY_ENABLE = 0;
|
||||
parameter PCORE_IODELAY_GROUP = "dev_if_delay_group";
|
||||
parameter DEVICE_TYPE = 0;
|
||||
parameter DAC_IODELAY_ENABLE = 0;
|
||||
parameter IO_DELAY_GROUP = "dev_if_delay_group";
|
||||
localparam PCORE_7SERIES = 0;
|
||||
localparam PCORE_VIRTEX6 = 1;
|
||||
|
||||
|
|
|
@ -53,19 +53,19 @@ add_fileset_file axi_ad9361.v VERILOG PATH axi_ad9361.v TOP_LEVEL_FI
|
|||
|
||||
# parameters
|
||||
|
||||
add_parameter PCORE_ID INTEGER 0
|
||||
set_parameter_property PCORE_ID DEFAULT_VALUE 0
|
||||
set_parameter_property PCORE_ID DISPLAY_NAME PCORE_ID
|
||||
set_parameter_property PCORE_ID TYPE INTEGER
|
||||
set_parameter_property PCORE_ID UNITS None
|
||||
set_parameter_property PCORE_ID HDL_PARAMETER true
|
||||
add_parameter ID INTEGER 0
|
||||
set_parameter_property ID DEFAULT_VALUE 0
|
||||
set_parameter_property ID DISPLAY_NAME ID
|
||||
set_parameter_property ID TYPE INTEGER
|
||||
set_parameter_property ID UNITS None
|
||||
set_parameter_property ID HDL_PARAMETER true
|
||||
|
||||
add_parameter PCORE_DEVICE_TYPE INTEGER 0
|
||||
set_parameter_property PCORE_DEVICE_TYPE DEFAULT_VALUE 0
|
||||
set_parameter_property PCORE_DEVICE_TYPE DISPLAY_NAME PCORE_DEVICE_TYPE
|
||||
set_parameter_property PCORE_DEVICE_TYPE TYPE INTEGER
|
||||
set_parameter_property PCORE_DEVICE_TYPE UNITS None
|
||||
set_parameter_property PCORE_DEVICE_TYPE HDL_PARAMETER true
|
||||
add_parameter DEVICE_TYPE INTEGER 0
|
||||
set_parameter_property DEVICE_TYPE DEFAULT_VALUE 0
|
||||
set_parameter_property DEVICE_TYPE DISPLAY_NAME DEVICE_TYPE
|
||||
set_parameter_property DEVICE_TYPE TYPE INTEGER
|
||||
set_parameter_property DEVICE_TYPE UNITS None
|
||||
set_parameter_property DEVICE_TYPE HDL_PARAMETER true
|
||||
|
||||
# axi4 slave
|
||||
|
||||
|
|
|
@ -99,8 +99,8 @@ module axi_ad9361_rx (
|
|||
|
||||
// parameters
|
||||
|
||||
parameter DP_DISABLE = 0;
|
||||
parameter PCORE_ID = 0;
|
||||
parameter DATAPATH_DISABLE = 0;
|
||||
parameter ID = 0;
|
||||
|
||||
// adc interface
|
||||
|
||||
|
@ -205,9 +205,9 @@ module axi_ad9361_rx (
|
|||
// channel 0 (i)
|
||||
|
||||
axi_ad9361_rx_channel #(
|
||||
.IQSEL(0),
|
||||
.CHID(0),
|
||||
.DP_DISABLE (DP_DISABLE))
|
||||
.Q_OR_I_N(0),
|
||||
.CHANNEL_ID(0),
|
||||
.DATAPATH_DISABLE (DATAPATH_DISABLE))
|
||||
i_rx_channel_0 (
|
||||
.adc_clk (adc_clk),
|
||||
.adc_rst (adc_rst),
|
||||
|
@ -238,9 +238,9 @@ module axi_ad9361_rx (
|
|||
// channel 1 (q)
|
||||
|
||||
axi_ad9361_rx_channel #(
|
||||
.IQSEL(1),
|
||||
.CHID(1),
|
||||
.DP_DISABLE (DP_DISABLE))
|
||||
.Q_OR_I_N(1),
|
||||
.CHANNEL_ID(1),
|
||||
.DATAPATH_DISABLE (DATAPATH_DISABLE))
|
||||
i_rx_channel_1 (
|
||||
.adc_clk (adc_clk),
|
||||
.adc_rst (adc_rst),
|
||||
|
@ -271,9 +271,9 @@ module axi_ad9361_rx (
|
|||
// channel 2 (i)
|
||||
|
||||
axi_ad9361_rx_channel #(
|
||||
.IQSEL(0),
|
||||
.CHID(2),
|
||||
.DP_DISABLE (DP_DISABLE))
|
||||
.Q_OR_I_N(0),
|
||||
.CHANNEL_ID(2),
|
||||
.DATAPATH_DISABLE (DATAPATH_DISABLE))
|
||||
i_rx_channel_2 (
|
||||
.adc_clk (adc_clk),
|
||||
.adc_rst (adc_rst),
|
||||
|
@ -304,9 +304,9 @@ module axi_ad9361_rx (
|
|||
// channel 3 (q)
|
||||
|
||||
axi_ad9361_rx_channel #(
|
||||
.IQSEL(1),
|
||||
.CHID(3),
|
||||
.DP_DISABLE (DP_DISABLE))
|
||||
.Q_OR_I_N(1),
|
||||
.CHANNEL_ID(3),
|
||||
.DATAPATH_DISABLE (DATAPATH_DISABLE))
|
||||
i_rx_channel_3 (
|
||||
.adc_clk (adc_clk),
|
||||
.adc_rst (adc_rst),
|
||||
|
@ -336,7 +336,7 @@ module axi_ad9361_rx (
|
|||
|
||||
// common processor control
|
||||
|
||||
up_adc_common #(.PCORE_ID (PCORE_ID)) i_up_adc_common (
|
||||
up_adc_common #(.ID (ID)) i_up_adc_common (
|
||||
.mmcm_rst (),
|
||||
.adc_clk (adc_clk),
|
||||
.adc_rst (adc_rst),
|
||||
|
@ -377,7 +377,7 @@ module axi_ad9361_rx (
|
|||
|
||||
// adc delay control
|
||||
|
||||
up_delay_cntrl #(.IO_WIDTH(7), .IO_BASEADDR(6'h02)) i_delay_cntrl (
|
||||
up_delay_cntrl #(.DATA_WIDTH(7), .BASE_ADDRESS(6'h02)) i_delay_cntrl (
|
||||
.delay_clk (delay_clk),
|
||||
.delay_rst (delay_rst),
|
||||
.delay_locked (delay_locked),
|
||||
|
|
|
@ -78,9 +78,9 @@ module axi_ad9361_rx_channel (
|
|||
|
||||
// parameters
|
||||
|
||||
parameter IQSEL = 0;
|
||||
parameter CHID = 0;
|
||||
parameter DP_DISABLE = 0;
|
||||
parameter Q_OR_I_N = 0;
|
||||
parameter CHANNEL_ID = 0;
|
||||
parameter DATAPATH_DISABLE = 0;
|
||||
|
||||
// adc interface
|
||||
|
||||
|
@ -142,7 +142,7 @@ module axi_ad9361_rx_channel (
|
|||
assign adc_data_s = (adc_data_sel_s == 4'h0) ? adc_data : dac_data;
|
||||
assign adc_dcfilter_data_out = adc_dcfilter_data_s;
|
||||
|
||||
axi_ad9361_rx_pnmon #(.IQSEL (IQSEL), .PRBS_SEL (CHID)) i_rx_pnmon (
|
||||
axi_ad9361_rx_pnmon #(.Q_OR_I_N (Q_OR_I_N), .PRBS_SEL (CHANNEL_ID)) i_rx_pnmon (
|
||||
.adc_clk (adc_clk),
|
||||
.adc_valid (adc_valid),
|
||||
.adc_data_i (adc_data),
|
||||
|
@ -152,7 +152,7 @@ module axi_ad9361_rx_channel (
|
|||
.adc_pn_err (adc_pn_err_s));
|
||||
|
||||
generate
|
||||
if (DP_DISABLE == 1) begin
|
||||
if (DATAPATH_DISABLE == 1) begin
|
||||
assign adc_dfmt_valid_s = adc_valid;
|
||||
assign adc_dfmt_data_s = {4'd0, adc_data_s};
|
||||
end else begin
|
||||
|
@ -169,7 +169,7 @@ module axi_ad9361_rx_channel (
|
|||
endgenerate
|
||||
|
||||
generate
|
||||
if (DP_DISABLE == 1) begin
|
||||
if (DATAPATH_DISABLE == 1) begin
|
||||
assign adc_dcfilter_valid_s = adc_dfmt_valid_s;
|
||||
assign adc_dcfilter_data_s = adc_dfmt_data_s;
|
||||
end else begin
|
||||
|
@ -186,11 +186,11 @@ module axi_ad9361_rx_channel (
|
|||
endgenerate
|
||||
|
||||
generate
|
||||
if (DP_DISABLE == 1) begin
|
||||
if (DATAPATH_DISABLE == 1) begin
|
||||
assign adc_iqcor_valid = adc_dcfilter_valid_s;
|
||||
assign adc_iqcor_data = adc_dcfilter_data_s;
|
||||
end else begin
|
||||
ad_iqcor #(.IQSEL (IQSEL)) i_ad_iqcor (
|
||||
ad_iqcor #(.Q_OR_I_N (Q_OR_I_N)) i_ad_iqcor (
|
||||
.clk (adc_clk),
|
||||
.valid (adc_dcfilter_valid_s),
|
||||
.data_in (adc_dcfilter_data_s),
|
||||
|
@ -203,7 +203,7 @@ module axi_ad9361_rx_channel (
|
|||
end
|
||||
endgenerate
|
||||
|
||||
up_adc_channel #(.PCORE_ADC_CHID (CHID)) i_up_adc_channel (
|
||||
up_adc_channel #(.ADC_CHANNEL_ID (CHANNEL_ID)) i_up_adc_channel (
|
||||
.adc_clk (adc_clk),
|
||||
.adc_rst (adc_rst),
|
||||
.adc_enable (adc_enable),
|
||||
|
|
|
@ -57,7 +57,7 @@ module axi_ad9361_rx_pnmon (
|
|||
|
||||
// parameters
|
||||
|
||||
parameter IQSEL = 0;
|
||||
parameter Q_OR_I_N = 0;
|
||||
parameter PRBS_SEL = 0;
|
||||
localparam PRBS_P09 = 0;
|
||||
localparam PRBS_P11 = 1;
|
||||
|
@ -255,8 +255,8 @@ module axi_ad9361_rx_pnmon (
|
|||
|
||||
// device specific, assuming lower nibble is lost-
|
||||
|
||||
assign adc_pn0_data_i_s = (IQSEL == 1) ? adc_data_q : adc_data_i;
|
||||
assign adc_pn0_data_q_s = (IQSEL == 1) ? adc_data_i : adc_data_q;
|
||||
assign adc_pn0_data_i_s = (Q_OR_I_N == 1) ? adc_data_q : adc_data_i;
|
||||
assign adc_pn0_data_q_s = (Q_OR_I_N == 1) ? adc_data_i : adc_data_q;
|
||||
assign adc_pn0_data_q_rev_s = brfn(adc_pn0_data_q_s);
|
||||
assign adc_pn0_data_s = {adc_pn0_data_i_s, adc_pn0_data_q_rev_s[3:0]};
|
||||
assign adc_pn0_iq_match_s = (adc_pn0_data_i_s[7:0] == adc_pn0_data_q_rev_s[11:4]) ? 1'b1 : 1'b0;
|
||||
|
|
|
@ -65,7 +65,7 @@ module axi_ad9361_tdd_if(
|
|||
|
||||
// parameters
|
||||
|
||||
parameter MODE_OF_ENABLE = 0;
|
||||
parameter LEVEL_OR_PULSE_N = 0; // the control signals are edge (pulse) or level sensitive
|
||||
|
||||
localparam PULSE_MODE = 0;
|
||||
localparam LEVEL_MODE = 1;
|
||||
|
@ -111,7 +111,7 @@ module axi_ad9361_tdd_if(
|
|||
tdd_tx_rf_en_d <= tdd_tx_rf_en;
|
||||
end
|
||||
|
||||
assign ad9361_enable_s = (MODE_OF_ENABLE == PULSE_MODE) ?
|
||||
assign ad9361_enable_s = (LEVEL_OR_PULSE_N == PULSE_MODE) ?
|
||||
((~tdd_rx_rf_en_d & tdd_rx_rf_en) | (tdd_rx_rf_en_d & ~tdd_rx_rf_en) |
|
||||
(~tdd_tx_rf_en_d & tdd_tx_rf_en) | (tdd_tx_rf_en_d & ~tdd_tx_rf_en)) :
|
||||
(tdd_rx_rf_en | tdd_tx_rf_en);
|
||||
|
|
|
@ -100,8 +100,8 @@ module axi_ad9361_tx (
|
|||
|
||||
// parameters
|
||||
|
||||
parameter DP_DISABLE = 0;
|
||||
parameter PCORE_ID = 0;
|
||||
parameter DATAPATH_DISABLE = 0;
|
||||
parameter ID = 0;
|
||||
|
||||
// dac interface
|
||||
|
||||
|
@ -189,7 +189,7 @@ module axi_ad9361_tx (
|
|||
|
||||
// master/slave
|
||||
|
||||
assign dac_data_sync_s = (PCORE_ID == 0) ? dac_sync_out : dac_sync_in;
|
||||
assign dac_data_sync_s = (ID == 0) ? dac_sync_out : dac_sync_in;
|
||||
|
||||
always @(posedge dac_clk) begin
|
||||
dac_data_sync <= dac_data_sync_s;
|
||||
|
@ -235,9 +235,9 @@ module axi_ad9361_tx (
|
|||
// dac channel
|
||||
|
||||
axi_ad9361_tx_channel #(
|
||||
.CHID (0),
|
||||
.IQSEL (0),
|
||||
.DP_DISABLE (DP_DISABLE))
|
||||
.CHANNEL_ID (0),
|
||||
.Q_OR_I_N (0),
|
||||
.DATAPATH_DISABLE (DATAPATH_DISABLE))
|
||||
i_tx_channel_0 (
|
||||
.dac_clk (dac_clk),
|
||||
.dac_rst (dac_rst),
|
||||
|
@ -264,9 +264,9 @@ module axi_ad9361_tx (
|
|||
// dac channel
|
||||
|
||||
axi_ad9361_tx_channel #(
|
||||
.CHID (1),
|
||||
.IQSEL (1),
|
||||
.DP_DISABLE (DP_DISABLE))
|
||||
.CHANNEL_ID (1),
|
||||
.Q_OR_I_N (1),
|
||||
.DATAPATH_DISABLE (DATAPATH_DISABLE))
|
||||
i_tx_channel_1 (
|
||||
.dac_clk (dac_clk),
|
||||
.dac_rst (dac_rst),
|
||||
|
@ -293,9 +293,9 @@ module axi_ad9361_tx (
|
|||
// dac channel
|
||||
|
||||
axi_ad9361_tx_channel #(
|
||||
.CHID (2),
|
||||
.IQSEL (0),
|
||||
.DP_DISABLE (DP_DISABLE))
|
||||
.CHANNEL_ID (2),
|
||||
.Q_OR_I_N (0),
|
||||
.DATAPATH_DISABLE (DATAPATH_DISABLE))
|
||||
i_tx_channel_2 (
|
||||
.dac_clk (dac_clk),
|
||||
.dac_rst (dac_rst),
|
||||
|
@ -322,9 +322,9 @@ module axi_ad9361_tx (
|
|||
// dac channel
|
||||
|
||||
axi_ad9361_tx_channel #(
|
||||
.CHID (3),
|
||||
.IQSEL (1),
|
||||
.DP_DISABLE (DP_DISABLE))
|
||||
.CHANNEL_ID (3),
|
||||
.Q_OR_I_N (1),
|
||||
.DATAPATH_DISABLE (DATAPATH_DISABLE))
|
||||
i_tx_channel_3 (
|
||||
.dac_clk (dac_clk),
|
||||
.dac_rst (dac_rst),
|
||||
|
@ -350,7 +350,7 @@ module axi_ad9361_tx (
|
|||
|
||||
// dac common processor interface
|
||||
|
||||
up_dac_common #(.PCORE_ID (PCORE_ID)) i_up_dac_common (
|
||||
up_dac_common #(.ID (ID)) i_up_dac_common (
|
||||
.mmcm_rst (),
|
||||
.dac_clk (dac_clk),
|
||||
.dac_rst (dac_rst),
|
||||
|
@ -389,7 +389,7 @@ module axi_ad9361_tx (
|
|||
|
||||
// dac delay control
|
||||
|
||||
up_delay_cntrl #(.IO_WIDTH(8), .IO_BASEADDR(6'h12)) i_delay_cntrl (
|
||||
up_delay_cntrl #(.DATA_WIDTH(8), .BASE_ADDRESS(6'h12)) i_delay_cntrl (
|
||||
.delay_clk (delay_clk),
|
||||
.delay_rst (delay_rst),
|
||||
.delay_locked (delay_locked),
|
||||
|
|
|
@ -73,10 +73,10 @@ module axi_ad9361_tx_channel (
|
|||
|
||||
// parameters
|
||||
|
||||
parameter CHID = 32'h0;
|
||||
parameter IQSEL = 0;
|
||||
parameter DP_DISABLE = 0;
|
||||
localparam PRBS_SEL = CHID;
|
||||
parameter CHANNEL_ID = 32'h0;
|
||||
parameter Q_OR_I_N = 0;
|
||||
parameter DATAPATH_DISABLE = 0;
|
||||
localparam PRBS_SEL = CHANNEL_ID;
|
||||
localparam PRBS_P09 = 0;
|
||||
localparam PRBS_P11 = 1;
|
||||
localparam PRBS_P15 = 2;
|
||||
|
@ -281,11 +281,11 @@ module axi_ad9361_tx_channel (
|
|||
end
|
||||
|
||||
generate
|
||||
if (DP_DISABLE == 1) begin
|
||||
if (DATAPATH_DISABLE == 1) begin
|
||||
assign dac_iqcor_valid_s = dac_valid;
|
||||
assign dac_iqcor_data_s = {dac_data_out, 4'd0};
|
||||
end else begin
|
||||
ad_iqcor #(.IQSEL (IQSEL)) i_ad_iqcor (
|
||||
ad_iqcor #(.Q_OR_I_N (Q_OR_I_N)) i_ad_iqcor (
|
||||
.clk (dac_clk),
|
||||
.valid (dac_valid),
|
||||
.data_in ({dac_data_out, 4'd0}),
|
||||
|
@ -361,7 +361,7 @@ module axi_ad9361_tx_channel (
|
|||
// dds
|
||||
|
||||
generate
|
||||
if (DP_DISABLE == 1) begin
|
||||
if (DATAPATH_DISABLE == 1) begin
|
||||
assign dac_dds_data_s = 16'd0;
|
||||
end else begin
|
||||
ad_dds i_dds (
|
||||
|
@ -377,7 +377,7 @@ module axi_ad9361_tx_channel (
|
|||
|
||||
// single channel processor
|
||||
|
||||
up_dac_channel #(.PCORE_DAC_CHID(CHID)) i_up_dac_channel (
|
||||
up_dac_channel #(.DAC_CHANNEL_ID(CHANNEL_ID)) i_up_dac_channel (
|
||||
.dac_clk (dac_clk),
|
||||
.dac_rst (dac_rst),
|
||||
.dac_dds_scale_1 (dac_dds_scale_1_s),
|
||||
|
|
|
@ -86,9 +86,9 @@ module axi_ad9434 (
|
|||
localparam SERIES7 = 0;
|
||||
localparam SERIES6 = 1;
|
||||
|
||||
parameter PCORE_ID = 0;
|
||||
parameter PCORE_DEVTYPE = SERIES7;
|
||||
parameter PCORE_IODELAY_GROUP = "dev_if_delay_group";
|
||||
parameter ID = 0;
|
||||
parameter DEVICE_TYPE = SERIES7;
|
||||
parameter IO_DELAY_GROUP = "dev_if_delay_group";
|
||||
|
||||
// physical interface
|
||||
input adc_clk_in_p;
|
||||
|
@ -178,8 +178,8 @@ module axi_ad9434 (
|
|||
assign adc_enable = 1'b1;
|
||||
|
||||
axi_ad9434_if #(
|
||||
.PCORE_DEVTYPE(PCORE_DEVTYPE),
|
||||
.PCORE_IODELAY_GROUP(PCORE_IODELAY_GROUP))
|
||||
.DEVICE_TYPE(DEVICE_TYPE),
|
||||
.IO_DELAY_GROUP(IO_DELAY_GROUP))
|
||||
i_if(
|
||||
.adc_clk_in_p(adc_clk_in_p),
|
||||
.adc_clk_in_n(adc_clk_in_n),
|
||||
|
@ -210,7 +210,7 @@ module axi_ad9434 (
|
|||
.up_drp_locked(up_drp_locked_s));
|
||||
|
||||
// common processor control
|
||||
axi_ad9434_core #(.PCORE_ID(PCORE_ID))
|
||||
axi_ad9434_core #(.ID(ID))
|
||||
i_core (
|
||||
.adc_clk(adc_clk),
|
||||
.adc_data(adc_data_if_s),
|
||||
|
|
|
@ -93,7 +93,7 @@ module axi_ad9434_core (
|
|||
adc_status);
|
||||
|
||||
// parameters
|
||||
parameter PCORE_ID = 0;
|
||||
parameter ID = 0;
|
||||
|
||||
// device interface
|
||||
input adc_clk;
|
||||
|
@ -200,7 +200,7 @@ module axi_ad9434_core (
|
|||
end
|
||||
|
||||
up_adc_common #(
|
||||
.PCORE_ID(PCORE_ID))
|
||||
.ID(ID))
|
||||
i_adc_common(
|
||||
.mmcm_rst (mmcm_rst),
|
||||
|
||||
|
@ -246,7 +246,7 @@ module axi_ad9434_core (
|
|||
.up_rack (up_rack_s[0]));
|
||||
|
||||
up_adc_channel #(
|
||||
.PCORE_ADC_CHID(0))
|
||||
.ADC_CHANNEL_ID(0))
|
||||
i_adc_channel(
|
||||
.adc_clk (adc_clk),
|
||||
.adc_rst (adc_rst),
|
||||
|
@ -295,7 +295,7 @@ module axi_ad9434_core (
|
|||
|
||||
// adc delay control
|
||||
|
||||
up_delay_cntrl #(.IO_WIDTH(13), .IO_BASEADDR(6'h02)) i_delay_cntrl (
|
||||
up_delay_cntrl #(.DATA_WIDTH(13), .BASE_ADDRESS(6'h02)) i_delay_cntrl (
|
||||
.delay_clk (delay_clk),
|
||||
.delay_rst (delay_rst),
|
||||
.delay_locked (delay_locked),
|
||||
|
|
|
@ -71,7 +71,7 @@ module axi_ad9434_if (
|
|||
// mmcm reset
|
||||
mmcm_rst,
|
||||
|
||||
// drp interface for MMCM
|
||||
// drp interface for MMCM_OR_BUFR_N
|
||||
up_rstn,
|
||||
up_drp_sel,
|
||||
up_drp_wr,
|
||||
|
@ -82,11 +82,11 @@ module axi_ad9434_if (
|
|||
up_drp_locked);
|
||||
|
||||
// parameters
|
||||
parameter PCORE_DEVTYPE = 0; // 0 - 7Series / 1 - 6Series
|
||||
parameter PCORE_IODELAY_GROUP = "dev_if_delay_group";
|
||||
parameter DEVICE_TYPE = 0; // 0 - 7Series / 1 - 6Series
|
||||
parameter IO_DELAY_GROUP = "dev_if_delay_group";
|
||||
|
||||
// buffer type based on the target device.
|
||||
localparam PCORE_BUFTYPE = PCORE_DEVTYPE;
|
||||
localparam DEVICE_TYPE = DEVICE_TYPE;
|
||||
localparam SDR = 0;
|
||||
|
||||
// adc interface (clk, data, over-range)
|
||||
|
@ -151,11 +151,11 @@ module axi_ad9434_if (
|
|||
generate
|
||||
for (l_inst = 0; l_inst <= 11; l_inst = l_inst + 1) begin : g_adc_if
|
||||
ad_serdes_in #(
|
||||
.DEVICE_TYPE(PCORE_DEVTYPE),
|
||||
.DEVICE_TYPE(DEVICE_TYPE),
|
||||
.IODELAY_CTRL(0),
|
||||
.IODELAY_GROUP(PCORE_IODELAY_GROUP),
|
||||
.IF_TYPE(SDR),
|
||||
.PARALLEL_WIDTH(4))
|
||||
.IODELAY_GROUP(IO_DELAY_GROUP),
|
||||
.DDR_OR_SDR_N(SDR),
|
||||
.DATA_WIDTH(4))
|
||||
i_adc_data (
|
||||
.rst(adc_rst),
|
||||
.clk(adc_clk_in),
|
||||
|
@ -182,11 +182,11 @@ module axi_ad9434_if (
|
|||
|
||||
// over-range interface
|
||||
ad_serdes_in #(
|
||||
.DEVICE_TYPE(PCORE_DEVTYPE),
|
||||
.DEVICE_TYPE(DEVICE_TYPE),
|
||||
.IODELAY_CTRL(1),
|
||||
.IODELAY_GROUP(PCORE_IODELAY_GROUP),
|
||||
.IF_TYPE(SDR),
|
||||
.PARALLEL_WIDTH(4))
|
||||
.IODELAY_GROUP(IO_DELAY_GROUP),
|
||||
.DDR_OR_SDR_N(SDR),
|
||||
.DATA_WIDTH(4))
|
||||
i_adc_data (
|
||||
.rst(adc_rst),
|
||||
.clk(adc_clk_in),
|
||||
|
@ -209,9 +209,9 @@ module axi_ad9434_if (
|
|||
.delay_rst(delay_rst),
|
||||
.delay_locked(delay_locked));
|
||||
|
||||
// clock input buffers and MMCM
|
||||
// clock input buffers and MMCM_OR_BUFR_N
|
||||
ad_serdes_clk #(
|
||||
.MMCM_DEVICE_TYPE (PCORE_DEVTYPE),
|
||||
.MMCM_DEVICE_TYPE (DEVICE_TYPE),
|
||||
.MMCM_CLKIN_PERIOD (2),
|
||||
.MMCM_VCO_DIV (6),
|
||||
.MMCM_VCO_MUL (12),
|
||||
|
@ -236,7 +236,7 @@ module axi_ad9434_if (
|
|||
// adc overange
|
||||
assign adc_or = adc_or_s[0] | adc_or_s[1] | adc_or_s[2] | adc_or_s[3];
|
||||
|
||||
// adc status: adc is up, if both the MMCM and DELAY blocks are up
|
||||
// adc status: adc is up, if both the MMCM_OR_BUFR_N and DELAY blocks are up
|
||||
always @(posedge adc_div_clk) begin
|
||||
if(adc_rst == 1'b1) begin
|
||||
adc_status_m1 <= 1'b0;
|
||||
|
|
|
@ -87,9 +87,9 @@ module axi_ad9467(
|
|||
|
||||
// parameters
|
||||
|
||||
parameter PCORE_ID = 0;
|
||||
parameter PCORE_BUFTYPE = 0;
|
||||
parameter PCORE_IODELAY_GROUP = "dev_if_delay_group";
|
||||
parameter ID = 0;
|
||||
parameter DEVICE_TYPE = 0;
|
||||
parameter IO_DELAY_GROUP = "dev_if_delay_group";
|
||||
|
||||
// physical interface
|
||||
|
||||
|
@ -192,8 +192,8 @@ module axi_ad9467(
|
|||
// main (device interface)
|
||||
|
||||
axi_ad9467_if #(
|
||||
.PCORE_BUFTYPE (PCORE_BUFTYPE),
|
||||
.PCORE_IODELAY_GROUP (PCORE_IODELAY_GROUP))
|
||||
.DEVICE_TYPE (DEVICE_TYPE),
|
||||
.IO_DELAY_GROUP (IO_DELAY_GROUP))
|
||||
i_if (
|
||||
.adc_clk_in_p (adc_clk_in_p),
|
||||
.adc_clk_in_n (adc_clk_in_n),
|
||||
|
@ -215,7 +215,7 @@ module axi_ad9467(
|
|||
|
||||
// channel
|
||||
|
||||
axi_ad9467_channel #(.CHID(0)) i_channel (
|
||||
axi_ad9467_channel #(.CHANNEL_ID(0)) i_channel (
|
||||
.adc_clk (adc_clk),
|
||||
.adc_rst (adc_rst),
|
||||
.adc_data (adc_data_s),
|
||||
|
@ -238,7 +238,7 @@ module axi_ad9467(
|
|||
|
||||
// adc delay control
|
||||
|
||||
up_delay_cntrl #(.IO_WIDTH(9), .IO_BASEADDR(6'h02)) i_delay_cntrl (
|
||||
up_delay_cntrl #(.DATA_WIDTH(9), .BASE_ADDRESS(6'h02)) i_delay_cntrl (
|
||||
.delay_clk (delay_clk),
|
||||
.delay_rst (delay_rst),
|
||||
.delay_locked (delay_locked_s),
|
||||
|
@ -258,7 +258,7 @@ module axi_ad9467(
|
|||
|
||||
// common processor control
|
||||
|
||||
up_adc_common #(.PCORE_ID(PCORE_ID)) i_up_adc_common (
|
||||
up_adc_common #(.ID(ID)) i_up_adc_common (
|
||||
.mmcm_rst (),
|
||||
.adc_clk (adc_clk),
|
||||
.adc_rst (adc_rst),
|
||||
|
|
|
@ -69,7 +69,7 @@ module axi_ad9467_channel(
|
|||
|
||||
// parameters
|
||||
|
||||
parameter CHID = 0;
|
||||
parameter CHANNEL_ID = 0;
|
||||
|
||||
// adc interface
|
||||
|
||||
|
@ -127,7 +127,7 @@ module axi_ad9467_channel(
|
|||
.dfmt_type(adc_dfmt_type_s),
|
||||
.dfmt_se(adc_dfmt_se_s));
|
||||
|
||||
up_adc_channel #(.PCORE_ADC_CHID(0)) i_up_adc_channel (
|
||||
up_adc_channel #(.ADC_CHANNEL_ID(0)) i_up_adc_channel (
|
||||
.adc_clk (adc_clk),
|
||||
.adc_rst (adc_rst),
|
||||
.adc_enable (adc_enable),
|
||||
|
|
|
@ -74,8 +74,8 @@ module axi_ad9467_if (
|
|||
|
||||
// buffer type based on the target device.
|
||||
|
||||
parameter PCORE_BUFTYPE = 0;
|
||||
parameter PCORE_IODELAY_GROUP = "dev_if_delay_group";
|
||||
parameter DEVICE_TYPE = 0;
|
||||
parameter IO_DELAY_GROUP = "dev_if_delay_group";
|
||||
|
||||
// adc interface (clk, data, over-range)
|
||||
|
||||
|
@ -165,9 +165,9 @@ module axi_ad9467_if (
|
|||
generate
|
||||
for (l_inst = 0; l_inst <= 7; l_inst = l_inst + 1) begin : g_adc_if
|
||||
ad_lvds_in #(
|
||||
.BUFTYPE (PCORE_BUFTYPE),
|
||||
.DEVICE_TYPE (DEVICE_TYPE),
|
||||
.IODELAY_CTRL (0),
|
||||
.IODELAY_GROUP (PCORE_IODELAY_GROUP))
|
||||
.IODELAY_GROUP (IO_DELAY_GROUP))
|
||||
i_adc_data (
|
||||
.rx_clk (adc_clk),
|
||||
.rx_data_in_p (adc_data_in_p[l_inst]),
|
||||
|
@ -187,9 +187,9 @@ module axi_ad9467_if (
|
|||
// over-range interface
|
||||
|
||||
ad_lvds_in #(
|
||||
.BUFTYPE (PCORE_BUFTYPE),
|
||||
.DEVICE_TYPE (DEVICE_TYPE),
|
||||
.IODELAY_CTRL (1),
|
||||
.IODELAY_GROUP (PCORE_IODELAY_GROUP))
|
||||
.IODELAY_GROUP (IO_DELAY_GROUP))
|
||||
i_adc_or (
|
||||
.rx_clk (adc_clk),
|
||||
.rx_data_in_p (adc_or_in_p),
|
||||
|
@ -207,7 +207,7 @@ module axi_ad9467_if (
|
|||
// clock
|
||||
|
||||
ad_lvds_clk #(
|
||||
.BUFTYPE (PCORE_BUFTYPE))
|
||||
.DEVICE_TYPE (DEVICE_TYPE))
|
||||
i_adc_clk (
|
||||
.clk_in_p (adc_clk_in_p),
|
||||
.clk_in_n (adc_clk_in_n),
|
||||
|
|
|
@ -81,9 +81,9 @@ module axi_ad9625 (
|
|||
s_axi_rdata,
|
||||
s_axi_rready);
|
||||
|
||||
parameter PCORE_ID = 0;
|
||||
parameter PCORE_DEVICE_TYPE = 0;
|
||||
parameter PCORE_IODELAY_GROUP = "adc_if_delay_group";
|
||||
parameter ID = 0;
|
||||
parameter DEVICE_TYPE = 0;
|
||||
parameter IO_DELAY_GROUP = "adc_if_delay_group";
|
||||
|
||||
// jesd interface
|
||||
// rx_clk is (line-rate/40)
|
||||
|
@ -177,7 +177,7 @@ module axi_ad9625 (
|
|||
|
||||
assign adc_valid = 1'b1;
|
||||
|
||||
axi_ad9625_if #(.PCORE_ID(PCORE_ID)) i_if (
|
||||
axi_ad9625_if #(.ID(ID)) i_if (
|
||||
.rx_clk (rx_clk),
|
||||
.rx_data (rx_data),
|
||||
.adc_clk (adc_clk),
|
||||
|
@ -214,7 +214,7 @@ module axi_ad9625 (
|
|||
|
||||
// common processor control
|
||||
|
||||
up_adc_common #(.PCORE_ID(PCORE_ID)) i_up_adc_common (
|
||||
up_adc_common #(.ID(ID)) i_up_adc_common (
|
||||
.mmcm_rst (),
|
||||
.adc_clk (adc_clk),
|
||||
.adc_rst (adc_rst),
|
||||
|
|
|
@ -131,7 +131,7 @@ module axi_ad9625_channel (
|
|||
end
|
||||
endgenerate
|
||||
|
||||
up_adc_channel #(.PCORE_ADC_CHID(0)) i_up_adc_channel (
|
||||
up_adc_channel #(.ADC_CHANNEL_ID(0)) i_up_adc_channel (
|
||||
.adc_clk (adc_clk),
|
||||
.adc_rst (adc_rst),
|
||||
.adc_enable (adc_enable),
|
||||
|
|
|
@ -59,7 +59,7 @@ module axi_ad9625_if (
|
|||
adc_raddr_in,
|
||||
adc_raddr_out);
|
||||
|
||||
parameter PCORE_ID = 0;
|
||||
parameter ID = 0;
|
||||
|
||||
// jesd interface
|
||||
// rx_clk is ref_clk/4
|
||||
|
@ -127,7 +127,7 @@ module axi_ad9625_if (
|
|||
|
||||
// synchronization mode, multiple instances
|
||||
|
||||
assign adc_raddr_s = (PCORE_ID == 0) ? adc_raddr_out : adc_raddr_in;
|
||||
assign adc_raddr_s = (ID == 0) ? adc_raddr_out : adc_raddr_in;
|
||||
|
||||
always @(posedge rx_clk) begin
|
||||
adc_data <= adc_rdata_s;
|
||||
|
@ -219,7 +219,7 @@ module axi_ad9625_if (
|
|||
|
||||
// alignment fifo
|
||||
|
||||
ad_mem #(.ADDR_WIDTH(4), .DATA_WIDTH(192)) i_mem (
|
||||
ad_mem #(.ADDRESS_WIDTH(4), .DATA_WIDTH(192)) i_mem (
|
||||
.clka (rx_clk),
|
||||
.wea (1'b1),
|
||||
.addra (adc_waddr),
|
||||
|
|
|
@ -91,10 +91,10 @@ module axi_ad9643 (
|
|||
|
||||
// parameters
|
||||
|
||||
parameter PCORE_ID = 0;
|
||||
parameter PCORE_DEVICE_TYPE = 0;
|
||||
parameter PCORE_ADC_DP_DISABLE = 0;
|
||||
parameter PCORE_IODELAY_GROUP = "adc_if_delay_group";
|
||||
parameter ID = 0;
|
||||
parameter DEVICE_TYPE = 0;
|
||||
parameter ADC_DATAPATH_DISABLE = 0;
|
||||
parameter IO_DELAY_GROUP = "adc_if_delay_group";
|
||||
|
||||
// adc interface (clk, data, over-range)
|
||||
|
||||
|
@ -224,9 +224,9 @@ module axi_ad9643 (
|
|||
// channel
|
||||
|
||||
axi_ad9643_channel #(
|
||||
.IQSEL(0),
|
||||
.CHID(0),
|
||||
.DP_DISABLE (PCORE_ADC_DP_DISABLE))
|
||||
.Q_OR_I_N(0),
|
||||
.CHANNEL_ID(0),
|
||||
.DATAPATH_DISABLE (ADC_DATAPATH_DISABLE))
|
||||
i_channel_0 (
|
||||
.adc_clk (adc_clk),
|
||||
.adc_rst (adc_rst),
|
||||
|
@ -253,9 +253,9 @@ module axi_ad9643 (
|
|||
// channel
|
||||
|
||||
axi_ad9643_channel #(
|
||||
.IQSEL(1),
|
||||
.CHID(1),
|
||||
.DP_DISABLE (PCORE_ADC_DP_DISABLE))
|
||||
.Q_OR_I_N(1),
|
||||
.CHANNEL_ID(1),
|
||||
.DATAPATH_DISABLE (ADC_DATAPATH_DISABLE))
|
||||
i_channel_1 (
|
||||
.adc_clk (adc_clk),
|
||||
.adc_rst (adc_rst),
|
||||
|
@ -282,8 +282,8 @@ module axi_ad9643 (
|
|||
// main (device interface)
|
||||
|
||||
axi_ad9643_if #(
|
||||
.PCORE_BUFTYPE (PCORE_DEVICE_TYPE),
|
||||
.PCORE_IODELAY_GROUP (PCORE_IODELAY_GROUP))
|
||||
.DEVICE_TYPE (DEVICE_TYPE),
|
||||
.IO_DELAY_GROUP (IO_DELAY_GROUP))
|
||||
i_if (
|
||||
.adc_clk_in_p (adc_clk_in_p),
|
||||
.adc_clk_in_n (adc_clk_in_n),
|
||||
|
@ -309,7 +309,7 @@ module axi_ad9643 (
|
|||
|
||||
// common processor control
|
||||
|
||||
up_adc_common #(.PCORE_ID(PCORE_ID)) i_up_adc_common (
|
||||
up_adc_common #(.ID(ID)) i_up_adc_common (
|
||||
.mmcm_rst (),
|
||||
.adc_clk (adc_clk),
|
||||
.adc_rst (adc_rst),
|
||||
|
@ -350,7 +350,7 @@ module axi_ad9643 (
|
|||
|
||||
// adc delay control
|
||||
|
||||
up_delay_cntrl #(.IO_WIDTH(15), .IO_BASEADDR(6'h02)) i_delay_cntrl (
|
||||
up_delay_cntrl #(.DATA_WIDTH(15), .BASE_ADDRESS(6'h02)) i_delay_cntrl (
|
||||
.delay_clk (delay_clk),
|
||||
.delay_rst (delay_rst),
|
||||
.delay_locked (delay_locked_s),
|
||||
|
|
|
@ -72,9 +72,9 @@ module axi_ad9643_channel (
|
|||
|
||||
// parameters
|
||||
|
||||
parameter IQSEL = 0;
|
||||
parameter CHID = 0;
|
||||
parameter DP_DISABLE = 0;
|
||||
parameter Q_OR_I_N = 0;
|
||||
parameter CHANNEL_ID = 0;
|
||||
parameter DATAPATH_DISABLE = 0;
|
||||
|
||||
// adc interface
|
||||
|
||||
|
@ -133,7 +133,7 @@ module axi_ad9643_channel (
|
|||
.adc_pnseq_sel (adc_pnseq_sel_s));
|
||||
|
||||
generate
|
||||
if (DP_DISABLE == 1) begin
|
||||
if (DATAPATH_DISABLE == 1) begin
|
||||
assign adc_dfmt_data_s = {2'd0, adc_data};
|
||||
end else begin
|
||||
ad_datafmt #(.DATA_WIDTH(14)) i_ad_datafmt (
|
||||
|
@ -149,7 +149,7 @@ module axi_ad9643_channel (
|
|||
endgenerate
|
||||
|
||||
generate
|
||||
if (DP_DISABLE == 1) begin
|
||||
if (DATAPATH_DISABLE == 1) begin
|
||||
assign adc_dcfilter_data_out = adc_dfmt_data_s;
|
||||
end else begin
|
||||
ad_dcfilter i_ad_dcfilter (
|
||||
|
@ -167,10 +167,10 @@ module axi_ad9643_channel (
|
|||
assign adc_dcfilter_data_out = adc_dcfilter_data_s;
|
||||
|
||||
generate
|
||||
if (DP_DISABLE == 1) begin
|
||||
if (DATAPATH_DISABLE == 1) begin
|
||||
assign adc_iqcor_data = adc_dcfilter_data_s;
|
||||
end else begin
|
||||
ad_iqcor #(.IQSEL(IQSEL)) i_ad_iqcor (
|
||||
ad_iqcor #(.Q_OR_I_N(Q_OR_I_N)) i_ad_iqcor (
|
||||
.clk (adc_clk),
|
||||
.valid (1'b1),
|
||||
.data_in (adc_dcfilter_data_s),
|
||||
|
@ -183,7 +183,7 @@ module axi_ad9643_channel (
|
|||
end
|
||||
endgenerate
|
||||
|
||||
up_adc_channel #(.PCORE_ADC_CHID(CHID)) i_up_adc_channel (
|
||||
up_adc_channel #(.ADC_CHANNEL_ID(CHANNEL_ID)) i_up_adc_channel (
|
||||
.adc_clk (adc_clk),
|
||||
.adc_rst (adc_rst),
|
||||
.adc_enable (adc_enable),
|
||||
|
|
|
@ -79,8 +79,8 @@ module axi_ad9643_if (
|
|||
|
||||
// This parameter controls the buffer type based on the target device.
|
||||
|
||||
parameter PCORE_BUFTYPE = 0;
|
||||
parameter PCORE_IODELAY_GROUP = "adc_if_delay_group";
|
||||
parameter DEVICE_TYPE = 0;
|
||||
parameter IO_DELAY_GROUP = "adc_if_delay_group";
|
||||
|
||||
// adc interface (clk, data, over-range)
|
||||
|
||||
|
@ -201,9 +201,9 @@ module axi_ad9643_if (
|
|||
generate
|
||||
for (l_inst = 0; l_inst <= 13; l_inst = l_inst + 1) begin : g_adc_if
|
||||
ad_lvds_in #(
|
||||
.BUFTYPE (PCORE_BUFTYPE),
|
||||
.DEVICE_TYPE (DEVICE_TYPE),
|
||||
.IODELAY_CTRL (0),
|
||||
.IODELAY_GROUP (PCORE_IODELAY_GROUP))
|
||||
.IODELAY_GROUP (IO_DELAY_GROUP))
|
||||
i_adc_data (
|
||||
.rx_clk (adc_clk),
|
||||
.rx_data_in_p (adc_data_in_p[l_inst]),
|
||||
|
@ -223,9 +223,9 @@ module axi_ad9643_if (
|
|||
// over-range interface
|
||||
|
||||
ad_lvds_in #(
|
||||
.BUFTYPE (PCORE_BUFTYPE),
|
||||
.DEVICE_TYPE (DEVICE_TYPE),
|
||||
.IODELAY_CTRL (1),
|
||||
.IODELAY_GROUP (PCORE_IODELAY_GROUP))
|
||||
.IODELAY_GROUP (IO_DELAY_GROUP))
|
||||
i_adc_or (
|
||||
.rx_clk (adc_clk),
|
||||
.rx_data_in_p (adc_or_in_p),
|
||||
|
@ -243,7 +243,7 @@ module axi_ad9643_if (
|
|||
// clock
|
||||
|
||||
ad_lvds_clk #(
|
||||
.BUFTYPE (PCORE_BUFTYPE))
|
||||
.DEVICE_TYPE (DEVICE_TYPE))
|
||||
i_adc_clk (
|
||||
.clk_in_p (adc_clk_in_p),
|
||||
.clk_in_n (adc_clk_in_n),
|
||||
|
|
|
@ -90,10 +90,10 @@ module axi_ad9652 (
|
|||
|
||||
// parameters
|
||||
|
||||
parameter PCORE_ID = 0;
|
||||
parameter PCORE_DEVICE_TYPE = 0;
|
||||
parameter PCORE_ADC_DP_DISABLE = 0;
|
||||
parameter PCORE_IODELAY_GROUP = "adc_if_delay_group";
|
||||
parameter ID = 0;
|
||||
parameter DEVICE_TYPE = 0;
|
||||
parameter ADC_DATAPATH_DISABLE = 0;
|
||||
parameter IO_DELAY_GROUP = "adc_if_delay_group";
|
||||
|
||||
// adc interface (clk, data, over-range)
|
||||
|
||||
|
@ -221,9 +221,9 @@ module axi_ad9652 (
|
|||
// channel
|
||||
|
||||
axi_ad9652_channel #(
|
||||
.IQSEL(0),
|
||||
.CHID(0),
|
||||
.DP_DISABLE (PCORE_ADC_DP_DISABLE))
|
||||
.Q_OR_I_N(0),
|
||||
.CHANNEL_ID(0),
|
||||
.DATAPATH_DISABLE (ADC_DATAPATH_DISABLE))
|
||||
i_channel_0 (
|
||||
.adc_clk (adc_clk),
|
||||
.adc_rst (adc_rst),
|
||||
|
@ -250,9 +250,9 @@ module axi_ad9652 (
|
|||
// channel
|
||||
|
||||
axi_ad9652_channel #(
|
||||
.IQSEL(1),
|
||||
.CHID(1),
|
||||
.DP_DISABLE (PCORE_ADC_DP_DISABLE))
|
||||
.Q_OR_I_N(1),
|
||||
.CHANNEL_ID(1),
|
||||
.DATAPATH_DISABLE (ADC_DATAPATH_DISABLE))
|
||||
i_channel_1 (
|
||||
.adc_clk (adc_clk),
|
||||
.adc_rst (adc_rst),
|
||||
|
@ -279,8 +279,8 @@ module axi_ad9652 (
|
|||
// main (device interface)
|
||||
|
||||
axi_ad9652_if #(
|
||||
.PCORE_BUFTYPE (PCORE_DEVICE_TYPE),
|
||||
.PCORE_IODELAY_GROUP (PCORE_IODELAY_GROUP))
|
||||
.DEVICE_TYPE (DEVICE_TYPE),
|
||||
.IO_DELAY_GROUP (IO_DELAY_GROUP))
|
||||
i_if (
|
||||
.adc_clk_in_p (adc_clk_in_p),
|
||||
.adc_clk_in_n (adc_clk_in_n),
|
||||
|
@ -305,7 +305,7 @@ module axi_ad9652 (
|
|||
|
||||
// common processor control
|
||||
|
||||
up_adc_common #(.PCORE_ID(PCORE_ID)) i_up_adc_common (
|
||||
up_adc_common #(.ID(ID)) i_up_adc_common (
|
||||
.mmcm_rst (),
|
||||
.adc_clk (adc_clk),
|
||||
.adc_rst (adc_rst),
|
||||
|
@ -346,7 +346,7 @@ module axi_ad9652 (
|
|||
|
||||
// adc delay control
|
||||
|
||||
up_delay_cntrl #(.IO_WIDTH(17), .IO_BASEADDR(6'h02)) i_delay_cntrl (
|
||||
up_delay_cntrl #(.DATA_WIDTH(17), .BASE_ADDRESS(6'h02)) i_delay_cntrl (
|
||||
.delay_clk (delay_clk),
|
||||
.delay_rst (delay_rst),
|
||||
.delay_locked (delay_locked_s),
|
||||
|
|
|
@ -74,9 +74,9 @@ module axi_ad9652_channel (
|
|||
|
||||
// parameters
|
||||
|
||||
parameter IQSEL = 0;
|
||||
parameter CHID = 0;
|
||||
parameter DP_DISABLE = 0;
|
||||
parameter Q_OR_I_N = 0;
|
||||
parameter CHANNEL_ID = 0;
|
||||
parameter DATAPATH_DISABLE = 0;
|
||||
|
||||
// adc interface
|
||||
|
||||
|
@ -131,7 +131,7 @@ module axi_ad9652_channel (
|
|||
.adc_pnseq_sel (adc_pnseq_sel_s));
|
||||
|
||||
generate
|
||||
if (DP_DISABLE == 1) begin
|
||||
if (DATAPATH_DISABLE == 1) begin
|
||||
assign adc_dcfilter_data_out = adc_data;
|
||||
end else begin
|
||||
ad_dcfilter i_ad_dcfilter (
|
||||
|
@ -149,10 +149,10 @@ module axi_ad9652_channel (
|
|||
assign adc_dcfilter_data_out = adc_dcfilter_data_s;
|
||||
|
||||
generate
|
||||
if (DP_DISABLE == 1) begin
|
||||
if (DATAPATH_DISABLE == 1) begin
|
||||
assign adc_iqcor_data = adc_dcfilter_data_s;
|
||||
end else begin
|
||||
ad_iqcor #(.IQSEL(IQSEL)) i_ad_iqcor (
|
||||
ad_iqcor #(.Q_OR_I_N(Q_OR_I_N)) i_ad_iqcor (
|
||||
.clk (adc_clk),
|
||||
.valid (1'b1),
|
||||
.data_in (adc_dcfilter_data_s),
|
||||
|
@ -165,7 +165,7 @@ module axi_ad9652_channel (
|
|||
end
|
||||
endgenerate
|
||||
|
||||
up_adc_channel #(.PCORE_ADC_CHID(CHID)) i_up_adc_channel (
|
||||
up_adc_channel #(.ADC_CHANNEL_ID(CHANNEL_ID)) i_up_adc_channel (
|
||||
.adc_clk (adc_clk),
|
||||
.adc_rst (adc_rst),
|
||||
.adc_enable (adc_enable),
|
||||
|
|
|
@ -78,8 +78,8 @@ module axi_ad9652_if (
|
|||
|
||||
// This parameter controls the buffer type based on the target device.
|
||||
|
||||
parameter PCORE_BUFTYPE = 0;
|
||||
parameter PCORE_IODELAY_GROUP = "adc_if_delay_group";
|
||||
parameter DEVICE_TYPE = 0;
|
||||
parameter IO_DELAY_GROUP = "adc_if_delay_group";
|
||||
|
||||
// adc interface (clk, data, over-range)
|
||||
|
||||
|
@ -170,9 +170,9 @@ module axi_ad9652_if (
|
|||
generate
|
||||
for (l_inst = 0; l_inst <= 15; l_inst = l_inst + 1) begin : g_adc_if
|
||||
ad_lvds_in #(
|
||||
.BUFTYPE (PCORE_BUFTYPE),
|
||||
.DEVICE_TYPE (DEVICE_TYPE),
|
||||
.IODELAY_CTRL (0),
|
||||
.IODELAY_GROUP (PCORE_IODELAY_GROUP))
|
||||
.IODELAY_GROUP (IO_DELAY_GROUP))
|
||||
i_adc_data (
|
||||
.rx_clk (adc_clk),
|
||||
.rx_data_in_p (adc_data_in_p[l_inst]),
|
||||
|
@ -192,9 +192,9 @@ module axi_ad9652_if (
|
|||
// over-range interface
|
||||
|
||||
ad_lvds_in #(
|
||||
.BUFTYPE (PCORE_BUFTYPE),
|
||||
.DEVICE_TYPE (DEVICE_TYPE),
|
||||
.IODELAY_CTRL (1),
|
||||
.IODELAY_GROUP (PCORE_IODELAY_GROUP))
|
||||
.IODELAY_GROUP (IO_DELAY_GROUP))
|
||||
i_adc_or (
|
||||
.rx_clk (adc_clk),
|
||||
.rx_data_in_p (adc_or_in_p),
|
||||
|
@ -212,7 +212,7 @@ module axi_ad9652_if (
|
|||
// clock
|
||||
|
||||
ad_lvds_clk #(
|
||||
.BUFTYPE (PCORE_BUFTYPE))
|
||||
.DEVICE_TYPE (DEVICE_TYPE))
|
||||
i_adc_clk (
|
||||
.clk_in_p (adc_clk_in_p),
|
||||
.clk_in_n (adc_clk_in_n),
|
||||
|
|
|
@ -85,16 +85,16 @@ module axi_ad9671 (
|
|||
s_axi_rdata,
|
||||
s_axi_rready);
|
||||
|
||||
parameter PCORE_ID = 0;
|
||||
parameter PCORE_DEVICE_TYPE = 0;
|
||||
parameter PCORE_4L_2L_N = 1;
|
||||
parameter PCORE_IODELAY_GROUP = "adc_if_delay_group";
|
||||
parameter ID = 0;
|
||||
parameter DEVICE_TYPE = 0;
|
||||
parameter QUAD_OR_DUAL_N = 1;
|
||||
parameter IO_DELAY_GROUP = "adc_if_delay_group";
|
||||
|
||||
// jesd interface
|
||||
// rx_clk is the jesd clock (ref_clk/2)
|
||||
|
||||
input rx_clk;
|
||||
input [(64*PCORE_4L_2L_N)+63:0] rx_data;
|
||||
input [(64*QUAD_OR_DUAL_N)+63:0] rx_data;
|
||||
input rx_sof;
|
||||
|
||||
// dma interface
|
||||
|
@ -201,8 +201,8 @@ module axi_ad9671 (
|
|||
// main (device interface)
|
||||
|
||||
axi_ad9671_if #(
|
||||
.PCORE_4L_2L_N(PCORE_4L_2L_N),
|
||||
.PCORE_ID(PCORE_ID)
|
||||
.QUAD_OR_DUAL_N(QUAD_OR_DUAL_N),
|
||||
.ID(ID)
|
||||
) i_if (
|
||||
.rx_clk (rx_clk),
|
||||
.rx_data (rx_data),
|
||||
|
@ -240,7 +240,7 @@ module axi_ad9671 (
|
|||
genvar n;
|
||||
generate
|
||||
for (n = 0; n < 8; n = n + 1) begin: g_channel
|
||||
axi_ad9671_channel #(.CHID(n)) i_channel (
|
||||
axi_ad9671_channel #(.CHANNEL_ID(n)) i_channel (
|
||||
.adc_clk (adc_clk),
|
||||
.adc_rst (adc_rst),
|
||||
.adc_valid (adc_valid_s),
|
||||
|
@ -268,7 +268,7 @@ module axi_ad9671 (
|
|||
// common processor control
|
||||
|
||||
up_adc_common #(
|
||||
.PCORE_ID(PCORE_ID)
|
||||
.ID(ID)
|
||||
) i_up_adc_common (
|
||||
.mmcm_rst (),
|
||||
.adc_clk (adc_clk),
|
||||
|
@ -311,7 +311,7 @@ module axi_ad9671 (
|
|||
// up bus interface
|
||||
|
||||
up_axi #(
|
||||
.PCORE_ADDR_WIDTH (14)
|
||||
.ADDRESS_WIDTH (14)
|
||||
) i_up_axi (
|
||||
.up_rstn (up_rstn),
|
||||
.up_clk (up_clk),
|
||||
|
|
|
@ -74,7 +74,7 @@ module axi_ad9671_channel (
|
|||
|
||||
// parameters
|
||||
|
||||
parameter CHID = 0;
|
||||
parameter CHANNEL_ID = 0;
|
||||
|
||||
// adc interface
|
||||
|
||||
|
@ -135,7 +135,7 @@ module axi_ad9671_channel (
|
|||
.dfmt_type (adc_dfmt_type_s),
|
||||
.dfmt_se (adc_dfmt_se_s));
|
||||
|
||||
up_adc_channel #(.PCORE_ADC_CHID(CHID)) i_up_adc_channel (
|
||||
up_adc_channel #(.ADC_CHANNEL_ID(CHANNEL_ID)) i_up_adc_channel (
|
||||
.adc_clk (adc_clk),
|
||||
.adc_rst (adc_rst),
|
||||
.adc_enable (adc_enable),
|
||||
|
|
|
@ -31,26 +31,26 @@ add_fileset_file axi_ad9671.v VERILOG PATH axi_ad9671.v TOP_LEVEL_FILE
|
|||
|
||||
# parameters
|
||||
|
||||
add_parameter PCORE_ID INTEGER 0
|
||||
set_parameter_property PCORE_ID DEFAULT_VALUE 0
|
||||
set_parameter_property PCORE_ID DISPLAY_NAME PCORE_ID
|
||||
set_parameter_property PCORE_ID TYPE INTEGER
|
||||
set_parameter_property PCORE_ID UNITS None
|
||||
set_parameter_property PCORE_ID HDL_PARAMETER true
|
||||
add_parameter ID INTEGER 0
|
||||
set_parameter_property ID DEFAULT_VALUE 0
|
||||
set_parameter_property ID DISPLAY_NAME ID
|
||||
set_parameter_property ID TYPE INTEGER
|
||||
set_parameter_property ID UNITS None
|
||||
set_parameter_property ID HDL_PARAMETER true
|
||||
|
||||
add_parameter PCORE_DEVICE_TYPE INTEGER 0
|
||||
set_parameter_property PCORE_DEVICE_TYPE DEFAULT_VALUE 0
|
||||
set_parameter_property PCORE_DEVICE_TYPE DISPLAY_NAME PCORE_DEVICE_TYPE
|
||||
set_parameter_property PCORE_DEVICE_TYPE TYPE INTEGER
|
||||
set_parameter_property PCORE_DEVICE_TYPE UNITS None
|
||||
set_parameter_property PCORE_DEVICE_TYPE HDL_PARAMETER true
|
||||
add_parameter DEVICE_TYPE INTEGER 0
|
||||
set_parameter_property DEVICE_TYPE DEFAULT_VALUE 0
|
||||
set_parameter_property DEVICE_TYPE DISPLAY_NAME DEVICE_TYPE
|
||||
set_parameter_property DEVICE_TYPE TYPE INTEGER
|
||||
set_parameter_property DEVICE_TYPE UNITS None
|
||||
set_parameter_property DEVICE_TYPE HDL_PARAMETER true
|
||||
|
||||
add_parameter PCORE_4L_2L_N INTEGER 0
|
||||
set_parameter_property PCORE_4L_2L_N DEFAULT_VALUE 1
|
||||
set_parameter_property PCORE_4L_2L_N DISPLAY_NAME PCORE_4L_2L_N
|
||||
set_parameter_property PCORE_4L_2L_N TYPE INTEGER
|
||||
set_parameter_property PCORE_4L_2L_N UNITS None
|
||||
set_parameter_property PCORE_4L_2L_N HDL_PARAMETER true
|
||||
add_parameter QUAD_OR_DUAL_N INTEGER 0
|
||||
set_parameter_property QUAD_OR_DUAL_N DEFAULT_VALUE 1
|
||||
set_parameter_property QUAD_OR_DUAL_N DISPLAY_NAME QUAD_OR_DUAL_N
|
||||
set_parameter_property QUAD_OR_DUAL_N TYPE INTEGER
|
||||
set_parameter_property QUAD_OR_DUAL_N UNITS None
|
||||
set_parameter_property QUAD_OR_DUAL_N HDL_PARAMETER true
|
||||
|
||||
# axi4 slave
|
||||
|
||||
|
@ -91,7 +91,7 @@ add_interface_port xcvr_clk rx_clk clk Input 1
|
|||
|
||||
add_interface xcvr_data conduit end
|
||||
set_interface_property xcvr_data associatedClock xcvr_clk
|
||||
add_interface_port xcvr_data rx_data data Input 64*PCORE_4L_2L_N+64
|
||||
add_interface_port xcvr_data rx_data data Input 64*QUAD_OR_DUAL_N+64
|
||||
add_interface_port xcvr_data rx_sof data_sof Input 1
|
||||
|
||||
add_interface xcvr_sync conduit end
|
||||
|
|
|
@ -80,15 +80,15 @@ module axi_ad9671_if (
|
|||
|
||||
// parameters
|
||||
|
||||
parameter PCORE_4L_2L_N = 1;
|
||||
parameter PCORE_ID = 0;
|
||||
parameter QUAD_OR_DUAL_N = 1;
|
||||
parameter ID = 0;
|
||||
|
||||
// jesd interface
|
||||
// rx_clk is (line-rate/40)
|
||||
|
||||
input rx_clk;
|
||||
input rx_sof;
|
||||
input [(64*PCORE_4L_2L_N)+63:0] rx_data;
|
||||
input [(64*QUAD_OR_DUAL_N)+63:0] rx_data;
|
||||
|
||||
// adc data output
|
||||
|
||||
|
@ -181,8 +181,8 @@ module axi_ad9671_if (
|
|||
assign adc_wdata = {adc_data_h_s, adc_data_g_s, adc_data_f_s, adc_data_e_s,
|
||||
adc_data_d_s, adc_data_c_s, adc_data_b_s, adc_data_a_s};
|
||||
|
||||
assign adc_raddr_s = (PCORE_ID == 0) ? adc_raddr_out : adc_raddr_in;
|
||||
assign adc_sync_s = (PCORE_ID == 0) ? adc_sync_out : adc_sync_in;
|
||||
assign adc_raddr_s = (ID == 0) ? adc_raddr_out : adc_raddr_in;
|
||||
assign adc_sync_s = (ID == 0) ? adc_sync_out : adc_sync_in;
|
||||
|
||||
always @(posedge rx_clk) begin
|
||||
adc_data_a <= adc_rdata[ 15: 0];
|
||||
|
@ -217,7 +217,7 @@ module axi_ad9671_if (
|
|||
end
|
||||
|
||||
always @(posedge rx_clk) begin
|
||||
if (PCORE_4L_2L_N == 1'b1) begin
|
||||
if (QUAD_OR_DUAL_N == 1'b1) begin
|
||||
int_valid <= 1'b1;
|
||||
int_data <= rx_data;
|
||||
end else begin
|
||||
|
@ -236,7 +236,7 @@ module axi_ad9671_if (
|
|||
end
|
||||
end
|
||||
|
||||
ad_mem #(.ADDR_WIDTH(4), .DATA_WIDTH(128)) i_mem (
|
||||
ad_mem #(.ADDRESS_WIDTH(4), .DATA_WIDTH(128)) i_mem (
|
||||
.clka(rx_clk),
|
||||
.wea(int_valid),
|
||||
.addra(adc_waddr),
|
||||
|
|
|
@ -81,9 +81,9 @@ module axi_ad9680 (
|
|||
s_axi_rdata,
|
||||
s_axi_rready);
|
||||
|
||||
parameter PCORE_ID = 0;
|
||||
parameter PCORE_DEVICE_TYPE = 0;
|
||||
parameter PCORE_IODELAY_GROUP = "adc_if_delay_group";
|
||||
parameter ID = 0;
|
||||
parameter DEVICE_TYPE = 0;
|
||||
parameter IO_DELAY_GROUP = "adc_if_delay_group";
|
||||
|
||||
// jesd interface
|
||||
// rx_clk is (line-rate/40)
|
||||
|
@ -206,7 +206,7 @@ module axi_ad9680 (
|
|||
|
||||
// channel
|
||||
|
||||
axi_ad9680_channel #(.IQSEL(0), .CHID(0)) i_channel_0 (
|
||||
axi_ad9680_channel #(.Q_OR_I_N(0), .CHANNEL_ID(0)) i_channel_0 (
|
||||
.adc_clk (adc_clk),
|
||||
.adc_rst (adc_rst),
|
||||
.adc_data (adc_data_a_s),
|
||||
|
@ -229,7 +229,7 @@ module axi_ad9680 (
|
|||
|
||||
// channel
|
||||
|
||||
axi_ad9680_channel #(.IQSEL(1), .CHID(1)) i_channel_1 (
|
||||
axi_ad9680_channel #(.Q_OR_I_N(1), .CHANNEL_ID(1)) i_channel_1 (
|
||||
.adc_clk (adc_clk),
|
||||
.adc_rst (adc_rst),
|
||||
.adc_data (adc_data_b_s),
|
||||
|
@ -252,7 +252,7 @@ module axi_ad9680 (
|
|||
|
||||
// common processor control
|
||||
|
||||
up_adc_common #(.PCORE_ID(PCORE_ID)) i_up_adc_common (
|
||||
up_adc_common #(.ID(ID)) i_up_adc_common (
|
||||
.mmcm_rst (),
|
||||
.adc_clk (adc_clk),
|
||||
.adc_rst (adc_rst),
|
||||
|
|
|
@ -72,8 +72,8 @@ module axi_ad9680_channel (
|
|||
|
||||
// parameters
|
||||
|
||||
parameter IQSEL = 0;
|
||||
parameter CHID = 0;
|
||||
parameter Q_OR_I_N = 0;
|
||||
parameter CHANNEL_ID = 0;
|
||||
|
||||
// adc interface
|
||||
|
||||
|
@ -136,7 +136,7 @@ module axi_ad9680_channel (
|
|||
end
|
||||
endgenerate
|
||||
|
||||
up_adc_channel #(.PCORE_ADC_CHID(CHID)) i_up_adc_channel (
|
||||
up_adc_channel #(.ADC_CHANNEL_ID(CHANNEL_ID)) i_up_adc_channel (
|
||||
.adc_clk (adc_clk),
|
||||
.adc_rst (adc_rst),
|
||||
.adc_enable (adc_enable),
|
||||
|
|
|
@ -32,12 +32,12 @@ add_fileset_file ad_axi_ip_constr.sdc SDC PATH $ad_hdl_dir/library/common/ad
|
|||
|
||||
# parameters
|
||||
|
||||
add_parameter PCORE_ID INTEGER 0
|
||||
set_parameter_property PCORE_ID DEFAULT_VALUE 0
|
||||
set_parameter_property PCORE_ID DISPLAY_NAME PCORE_ID
|
||||
set_parameter_property PCORE_ID TYPE INTEGER
|
||||
set_parameter_property PCORE_ID UNITS None
|
||||
set_parameter_property PCORE_ID HDL_PARAMETER true
|
||||
add_parameter ID INTEGER 0
|
||||
set_parameter_property ID DEFAULT_VALUE 0
|
||||
set_parameter_property ID DISPLAY_NAME ID
|
||||
set_parameter_property ID TYPE INTEGER
|
||||
set_parameter_property ID UNITS None
|
||||
set_parameter_property ID HDL_PARAMETER true
|
||||
|
||||
# axi4 slave
|
||||
|
||||
|
|
|
@ -85,12 +85,12 @@ module axi_ad9739a (
|
|||
|
||||
// parameters
|
||||
|
||||
parameter PCORE_ID = 0;
|
||||
parameter PCORE_DEVICE_TYPE = 0;
|
||||
parameter PCORE_SERDES_DDR_N = 1;
|
||||
parameter PCORE_MMCM_BUFIO_N = 1;
|
||||
parameter PCORE_DAC_DP_DISABLE = 0;
|
||||
parameter PCORE_IODELAY_GROUP = "dev_if_delay_group";
|
||||
parameter ID = 0;
|
||||
parameter DEVICE_TYPE = 0;
|
||||
parameter SERDES_OR_DDR_N = 1;
|
||||
parameter MMCM_OR_BUFIO_N = 1;
|
||||
parameter DAC_DATAPATH_DISABLE = 0;
|
||||
parameter IO_DELAY_GROUP = "dev_if_delay_group";
|
||||
|
||||
// dac interface
|
||||
|
||||
|
@ -175,7 +175,7 @@ module axi_ad9739a (
|
|||
|
||||
// device interface
|
||||
|
||||
axi_ad9739a_if #(.PCORE_DEVICE_TYPE (PCORE_DEVICE_TYPE)) i_if (
|
||||
axi_ad9739a_if #(.DEVICE_TYPE (DEVICE_TYPE)) i_if (
|
||||
.dac_clk_in_p (dac_clk_in_p),
|
||||
.dac_clk_in_n (dac_clk_in_n),
|
||||
.dac_clk_out_p (dac_clk_out_p),
|
||||
|
@ -207,7 +207,7 @@ module axi_ad9739a (
|
|||
|
||||
// core
|
||||
|
||||
axi_ad9739a_core #(.PCORE_ID(PCORE_ID), .DP_DISABLE(PCORE_DAC_DP_DISABLE)) i_core (
|
||||
axi_ad9739a_core #(.ID(ID), .DATAPATH_DISABLE(DAC_DATAPATH_DISABLE)) i_core (
|
||||
.dac_div_clk (dac_div_clk),
|
||||
.dac_rst (dac_rst),
|
||||
.dac_data_00 (dac_data_00_s),
|
||||
|
|
|
@ -84,8 +84,8 @@ module axi_ad9739a_channel (
|
|||
|
||||
// parameters
|
||||
|
||||
parameter CHID = 32'h0;
|
||||
parameter DP_DISABLE = 0;
|
||||
parameter CHANNEL_ID = 32'h0;
|
||||
parameter DATAPATH_DISABLE = 0;
|
||||
|
||||
// dac interface
|
||||
|
||||
|
@ -397,7 +397,7 @@ module axi_ad9739a_channel (
|
|||
end
|
||||
|
||||
generate
|
||||
if (DP_DISABLE == 1) begin
|
||||
if (DATAPATH_DISABLE == 1) begin
|
||||
assign dac_dds_data_00_s = 16'd0;
|
||||
end else begin
|
||||
ad_dds i_dds_0 (
|
||||
|
@ -412,7 +412,7 @@ module axi_ad9739a_channel (
|
|||
endgenerate
|
||||
|
||||
generate
|
||||
if (DP_DISABLE == 1) begin
|
||||
if (DATAPATH_DISABLE == 1) begin
|
||||
assign dac_dds_data_01_s = 16'd0;
|
||||
end else begin
|
||||
ad_dds i_dds_1 (
|
||||
|
@ -427,7 +427,7 @@ module axi_ad9739a_channel (
|
|||
endgenerate
|
||||
|
||||
generate
|
||||
if (DP_DISABLE == 1) begin
|
||||
if (DATAPATH_DISABLE == 1) begin
|
||||
assign dac_dds_data_02_s = 16'd0;
|
||||
end else begin
|
||||
ad_dds i_dds_2 (
|
||||
|
@ -442,7 +442,7 @@ module axi_ad9739a_channel (
|
|||
endgenerate
|
||||
|
||||
generate
|
||||
if (DP_DISABLE == 1) begin
|
||||
if (DATAPATH_DISABLE == 1) begin
|
||||
assign dac_dds_data_03_s = 16'd0;
|
||||
end else begin
|
||||
ad_dds i_dds_3 (
|
||||
|
@ -457,7 +457,7 @@ module axi_ad9739a_channel (
|
|||
endgenerate
|
||||
|
||||
generate
|
||||
if (DP_DISABLE == 1) begin
|
||||
if (DATAPATH_DISABLE == 1) begin
|
||||
assign dac_dds_data_04_s = 16'd0;
|
||||
end else begin
|
||||
ad_dds i_dds_0 (
|
||||
|
@ -472,7 +472,7 @@ module axi_ad9739a_channel (
|
|||
endgenerate
|
||||
|
||||
generate
|
||||
if (DP_DISABLE == 1) begin
|
||||
if (DATAPATH_DISABLE == 1) begin
|
||||
assign dac_dds_data_05_s = 16'd0;
|
||||
end else begin
|
||||
ad_dds i_dds_0 (
|
||||
|
@ -487,7 +487,7 @@ module axi_ad9739a_channel (
|
|||
endgenerate
|
||||
|
||||
generate
|
||||
if (DP_DISABLE == 1) begin
|
||||
if (DATAPATH_DISABLE == 1) begin
|
||||
assign dac_dds_data_06_s = 16'd0;
|
||||
end else begin
|
||||
ad_dds i_dds_0 (
|
||||
|
@ -502,7 +502,7 @@ module axi_ad9739a_channel (
|
|||
endgenerate
|
||||
|
||||
generate
|
||||
if (DP_DISABLE == 1) begin
|
||||
if (DATAPATH_DISABLE == 1) begin
|
||||
assign dac_dds_data_07_s = 16'd0;
|
||||
end else begin
|
||||
ad_dds i_dds_0 (
|
||||
|
@ -517,7 +517,7 @@ module axi_ad9739a_channel (
|
|||
endgenerate
|
||||
|
||||
generate
|
||||
if (DP_DISABLE == 1) begin
|
||||
if (DATAPATH_DISABLE == 1) begin
|
||||
assign dac_dds_data_08_s = 16'd0;
|
||||
end else begin
|
||||
ad_dds i_dds_0 (
|
||||
|
@ -532,7 +532,7 @@ module axi_ad9739a_channel (
|
|||
endgenerate
|
||||
|
||||
generate
|
||||
if (DP_DISABLE == 1) begin
|
||||
if (DATAPATH_DISABLE == 1) begin
|
||||
assign dac_dds_data_09_s = 16'd0;
|
||||
end else begin
|
||||
ad_dds i_dds_0 (
|
||||
|
@ -547,7 +547,7 @@ module axi_ad9739a_channel (
|
|||
endgenerate
|
||||
|
||||
generate
|
||||
if (DP_DISABLE == 1) begin
|
||||
if (DATAPATH_DISABLE == 1) begin
|
||||
assign dac_dds_data_10_s = 16'd0;
|
||||
end else begin
|
||||
ad_dds i_dds_0 (
|
||||
|
@ -562,7 +562,7 @@ module axi_ad9739a_channel (
|
|||
endgenerate
|
||||
|
||||
generate
|
||||
if (DP_DISABLE == 1) begin
|
||||
if (DATAPATH_DISABLE == 1) begin
|
||||
assign dac_dds_data_11_s = 16'd0;
|
||||
end else begin
|
||||
ad_dds i_dds_0 (
|
||||
|
@ -577,7 +577,7 @@ module axi_ad9739a_channel (
|
|||
endgenerate
|
||||
|
||||
generate
|
||||
if (DP_DISABLE == 1) begin
|
||||
if (DATAPATH_DISABLE == 1) begin
|
||||
assign dac_dds_data_12_s = 16'd0;
|
||||
end else begin
|
||||
ad_dds i_dds_0 (
|
||||
|
@ -592,7 +592,7 @@ module axi_ad9739a_channel (
|
|||
endgenerate
|
||||
|
||||
generate
|
||||
if (DP_DISABLE == 1) begin
|
||||
if (DATAPATH_DISABLE == 1) begin
|
||||
assign dac_dds_data_13_s = 16'd0;
|
||||
end else begin
|
||||
ad_dds i_dds_0 (
|
||||
|
@ -607,7 +607,7 @@ module axi_ad9739a_channel (
|
|||
endgenerate
|
||||
|
||||
generate
|
||||
if (DP_DISABLE == 1) begin
|
||||
if (DATAPATH_DISABLE == 1) begin
|
||||
assign dac_dds_data_14_s = 16'd0;
|
||||
end else begin
|
||||
ad_dds i_dds_0 (
|
||||
|
@ -622,7 +622,7 @@ module axi_ad9739a_channel (
|
|||
endgenerate
|
||||
|
||||
generate
|
||||
if (DP_DISABLE == 1) begin
|
||||
if (DATAPATH_DISABLE == 1) begin
|
||||
assign dac_dds_data_15_s = 16'd0;
|
||||
end else begin
|
||||
ad_dds i_dds_0 (
|
||||
|
@ -638,7 +638,7 @@ module axi_ad9739a_channel (
|
|||
|
||||
// single channel processor
|
||||
|
||||
up_dac_channel #(.PCORE_DAC_CHID(CHID)) i_up_dac_channel (
|
||||
up_dac_channel #(.DAC_CHANNEL_ID(CHANNEL_ID)) i_up_dac_channel (
|
||||
.dac_clk (dac_div_clk),
|
||||
.dac_rst (dac_rst),
|
||||
.dac_dds_scale_1 (dac_dds_scale_1_s),
|
||||
|
|
|
@ -86,8 +86,8 @@ module axi_ad9739a_core (
|
|||
|
||||
// parameters
|
||||
|
||||
parameter PCORE_ID = 0;
|
||||
parameter DP_DISABLE = 0;
|
||||
parameter ID = 0;
|
||||
parameter DATAPATH_DISABLE = 0;
|
||||
|
||||
// dac interface
|
||||
|
||||
|
@ -170,8 +170,8 @@ module axi_ad9739a_core (
|
|||
// dac channel
|
||||
|
||||
axi_ad9739a_channel #(
|
||||
.CHID(0),
|
||||
.DP_DISABLE(DP_DISABLE))
|
||||
.CHANNEL_ID(0),
|
||||
.DATAPATH_DISABLE(DATAPATH_DISABLE))
|
||||
i_channel_0 (
|
||||
.dac_div_clk (dac_div_clk),
|
||||
.dac_rst (dac_rst),
|
||||
|
@ -208,7 +208,7 @@ module axi_ad9739a_core (
|
|||
|
||||
// dac common processor interface
|
||||
|
||||
up_dac_common #(.PCORE_ID(PCORE_ID)) i_up_dac_common (
|
||||
up_dac_common #(.ID(ID)) i_up_dac_common (
|
||||
.mmcm_rst (),
|
||||
.dac_clk (dac_div_clk),
|
||||
.dac_rst (dac_rst),
|
||||
|
|
|
@ -82,7 +82,7 @@ module axi_ad9739a_if (
|
|||
|
||||
// parameters
|
||||
|
||||
parameter PCORE_DEVICE_TYPE = 0;
|
||||
parameter DEVICE_TYPE = 0;
|
||||
|
||||
// dac interface
|
||||
|
||||
|
@ -143,9 +143,9 @@ module axi_ad9739a_if (
|
|||
// dac data output serdes(s) & buffers
|
||||
|
||||
ad_serdes_out #(
|
||||
.SERDES(1),
|
||||
.SERDES_OR_DDR_N(1),
|
||||
.DATA_WIDTH(14),
|
||||
.DEVICE_TYPE (PCORE_DEVICE_TYPE))
|
||||
.DEVICE_TYPE (DEVICE_TYPE))
|
||||
i_serdes_out_data_a (
|
||||
.rst (dac_rst),
|
||||
.clk (dac_clk),
|
||||
|
@ -164,9 +164,9 @@ module axi_ad9739a_if (
|
|||
// dac data output serdes(s) & buffers
|
||||
|
||||
ad_serdes_out #(
|
||||
.SERDES(1),
|
||||
.SERDES_OR_DDR_N(1),
|
||||
.DATA_WIDTH(14),
|
||||
.DEVICE_TYPE (PCORE_DEVICE_TYPE))
|
||||
.DEVICE_TYPE (DEVICE_TYPE))
|
||||
i_serdes_out_data_b (
|
||||
.rst (dac_rst),
|
||||
.clk (dac_clk),
|
||||
|
@ -185,9 +185,9 @@ module axi_ad9739a_if (
|
|||
// dac clock output serdes & buffer
|
||||
|
||||
ad_serdes_out #(
|
||||
.SERDES(1),
|
||||
.SERDES_OR_DDR_N(1),
|
||||
.DATA_WIDTH(1),
|
||||
.DEVICE_TYPE (PCORE_DEVICE_TYPE))
|
||||
.DEVICE_TYPE (DEVICE_TYPE))
|
||||
i_serdes_out_clk (
|
||||
.rst (dac_rst),
|
||||
.clk (dac_clk),
|
||||
|
|
|
@ -114,7 +114,7 @@ module axi_adcfifo (
|
|||
parameter AXI_SIZE = 2;
|
||||
parameter AXI_LENGTH = 16;
|
||||
parameter AXI_ADDRESS = 32'h00000000;
|
||||
parameter AXI_ADDRLIMIT = 32'hffffffff;
|
||||
parameter AXI_ADDRESS_LIMIT = 32'hffffffff;
|
||||
parameter AXI_BYTE_WIDTH = AXI_DATA_WIDTH/8;
|
||||
|
||||
// adc interface
|
||||
|
@ -215,7 +215,7 @@ module axi_adcfifo (
|
|||
.AXI_SIZE (AXI_SIZE),
|
||||
.AXI_LENGTH (AXI_LENGTH),
|
||||
.AXI_ADDRESS (AXI_ADDRESS),
|
||||
.AXI_ADDRLIMIT (AXI_ADDRLIMIT))
|
||||
.AXI_ADDRESS_LIMIT (AXI_ADDRESS_LIMIT))
|
||||
i_wr (
|
||||
.dma_xfer_req (dma_xfer_req),
|
||||
.axi_rd_req (axi_rd_req_s),
|
||||
|
@ -258,7 +258,7 @@ module axi_adcfifo (
|
|||
.AXI_SIZE (AXI_SIZE),
|
||||
.AXI_LENGTH (AXI_LENGTH),
|
||||
.AXI_ADDRESS (AXI_ADDRESS),
|
||||
.AXI_ADDRLIMIT (AXI_ADDRLIMIT))
|
||||
.AXI_ADDRESS_LIMIT (AXI_ADDRESS_LIMIT))
|
||||
i_rd (
|
||||
.dma_xfer_req (dma_xfer_req),
|
||||
.axi_rd_req (axi_rd_req_s),
|
||||
|
|
|
@ -62,9 +62,9 @@ module axi_adcfifo_dma (
|
|||
parameter DMA_READY_ENABLE = 1;
|
||||
|
||||
localparam DMA_MEM_RATIO = AXI_DATA_WIDTH/DMA_DATA_WIDTH;
|
||||
localparam DMA_ADDR_WIDTH = 8;
|
||||
localparam AXI_ADDR_WIDTH = (DMA_MEM_RATIO == 2) ? (DMA_ADDR_WIDTH - 1) :
|
||||
((DMA_MEM_RATIO == 4) ? (DMA_ADDR_WIDTH - 2) : (DMA_ADDR_WIDTH - 3));
|
||||
localparam DMA_ADDRESS_WIDTH = 8;
|
||||
localparam AXI_ADDRESS_WIDTH = (DMA_MEM_RATIO == 2) ? (DMA_ADDRESS_WIDTH - 1) :
|
||||
((DMA_MEM_RATIO == 4) ? (DMA_ADDRESS_WIDTH - 2) : (DMA_ADDRESS_WIDTH - 3));
|
||||
|
||||
// adc write
|
||||
|
||||
|
@ -86,32 +86,32 @@ module axi_adcfifo_dma (
|
|||
|
||||
// internal registers
|
||||
|
||||
reg [AXI_ADDR_WIDTH-1:0] axi_waddr = 'd0;
|
||||
reg [AXI_ADDRESS_WIDTH-1:0] axi_waddr = 'd0;
|
||||
reg [ 2:0] axi_waddr_rel_count = 'd0;
|
||||
reg axi_waddr_rel_t = 'd0;
|
||||
reg [AXI_ADDR_WIDTH-1:0] axi_waddr_rel = 'd0;
|
||||
reg [AXI_ADDRESS_WIDTH-1:0] axi_waddr_rel = 'd0;
|
||||
reg [ 2:0] axi_raddr_rel_t_m = 'd0;
|
||||
reg [DMA_ADDR_WIDTH-1:0] axi_raddr_rel = 'd0;
|
||||
reg [DMA_ADDR_WIDTH-1:0] axi_addr_diff = 'd0;
|
||||
reg [DMA_ADDRESS_WIDTH-1:0] axi_raddr_rel = 'd0;
|
||||
reg [DMA_ADDRESS_WIDTH-1:0] axi_addr_diff = 'd0;
|
||||
reg axi_dready = 'd0;
|
||||
reg dma_rst = 'd0;
|
||||
reg [ 2:0] dma_waddr_rel_t_m = 'd0;
|
||||
reg [AXI_ADDR_WIDTH-1:0] dma_waddr_rel = 'd0;
|
||||
reg [AXI_ADDRESS_WIDTH-1:0] dma_waddr_rel = 'd0;
|
||||
reg dma_rd = 'd0;
|
||||
reg dma_rd_d = 'd0;
|
||||
reg [DMA_DATA_WIDTH-1:0] dma_rdata_d = 'd0;
|
||||
reg [DMA_ADDR_WIDTH-1:0] dma_raddr = 'd0;
|
||||
reg [DMA_ADDRESS_WIDTH-1:0] dma_raddr = 'd0;
|
||||
reg [ 2:0] dma_raddr_rel_count = 'd0;
|
||||
reg dma_raddr_rel_t = 'd0;
|
||||
reg [DMA_ADDR_WIDTH-1:0] dma_raddr_rel = 'd0;
|
||||
reg [DMA_ADDRESS_WIDTH-1:0] dma_raddr_rel = 'd0;
|
||||
|
||||
// internal signals
|
||||
|
||||
wire [DMA_ADDR_WIDTH:0] axi_addr_diff_s;
|
||||
wire [DMA_ADDRESS_WIDTH:0] axi_addr_diff_s;
|
||||
wire axi_raddr_rel_t_s;
|
||||
wire [DMA_ADDR_WIDTH-1:0] axi_waddr_s;
|
||||
wire [DMA_ADDRESS_WIDTH-1:0] axi_waddr_s;
|
||||
wire dma_waddr_rel_t_s;
|
||||
wire [DMA_ADDR_WIDTH-1:0] dma_waddr_rel_s;
|
||||
wire [DMA_ADDRESS_WIDTH-1:0] dma_waddr_rel_s;
|
||||
wire dma_wready_s;
|
||||
wire dma_rd_s;
|
||||
wire [DMA_DATA_WIDTH-1:0] dma_rdata_s;
|
||||
|
@ -152,7 +152,7 @@ module axi_adcfifo_dma (
|
|||
if (axi_raddr_rel_t_s == 1'b1) begin
|
||||
axi_raddr_rel <= dma_raddr_rel;
|
||||
end
|
||||
axi_addr_diff <= axi_addr_diff_s[DMA_ADDR_WIDTH-1:0];
|
||||
axi_addr_diff <= axi_addr_diff_s[DMA_ADDRESS_WIDTH-1:0];
|
||||
if (axi_addr_diff >= 180) begin
|
||||
axi_dready <= 1'b0;
|
||||
end else if (axi_addr_diff <= 8) begin
|
||||
|
@ -211,10 +211,10 @@ module axi_adcfifo_dma (
|
|||
// instantiations
|
||||
|
||||
ad_mem_asym #(
|
||||
.ADDR_WIDTH_A (AXI_ADDR_WIDTH),
|
||||
.DATA_WIDTH_A (AXI_DATA_WIDTH),
|
||||
.ADDR_WIDTH_B (DMA_ADDR_WIDTH),
|
||||
.DATA_WIDTH_B (DMA_DATA_WIDTH))
|
||||
.A_ADDRESS_WIDTH (AXI_ADDRESS_WIDTH),
|
||||
.A_DATA_WIDTH (AXI_DATA_WIDTH),
|
||||
.B_ADDRESS_WIDTH (DMA_ADDRESS_WIDTH),
|
||||
.B_DATA_WIDTH (DMA_DATA_WIDTH))
|
||||
i_mem_asym (
|
||||
.clka (axi_clk),
|
||||
.wea (axi_dvalid),
|
||||
|
|
|
@ -91,7 +91,7 @@ module axi_adcfifo_rd (
|
|||
parameter AXI_SIZE = 2;
|
||||
parameter AXI_LENGTH = 16;
|
||||
parameter AXI_ADDRESS = 32'h00000000;
|
||||
parameter AXI_ADDRLIMIT = 32'h00000000;
|
||||
parameter AXI_ADDRESS_LIMIT = 32'h00000000;
|
||||
localparam AXI_BYTE_WIDTH = AXI_DATA_WIDTH/8;
|
||||
localparam AXI_AWINCR = AXI_LENGTH * AXI_BYTE_WIDTH;
|
||||
localparam BUF_THRESHOLD_LO = 6'd3;
|
||||
|
|
|
@ -97,7 +97,7 @@ module axi_adcfifo_wr (
|
|||
parameter AXI_SIZE = 2;
|
||||
parameter AXI_LENGTH = 16;
|
||||
parameter AXI_ADDRESS = 32'h00000000;
|
||||
parameter AXI_ADDRLIMIT = 32'h00000000;
|
||||
parameter AXI_ADDRESS_LIMIT = 32'h00000000;
|
||||
localparam AXI_BYTE_WIDTH = AXI_DATA_WIDTH/8;
|
||||
localparam AXI_AWINCR = AXI_LENGTH * AXI_BYTE_WIDTH;
|
||||
localparam BUF_THRESHOLD_LO = 8'd6;
|
||||
|
@ -259,7 +259,7 @@ module axi_adcfifo_wr (
|
|||
adc_xfer_init <= adc_xfer_req_m[1] & ~adc_xfer_req_m[2];
|
||||
if (adc_xfer_init == 1'b1) begin
|
||||
adc_xfer_limit <= 1'd1;
|
||||
end else if ((adc_xfer_addr >= AXI_ADDRLIMIT) || (adc_xfer_enable == 1'b0)) begin
|
||||
end else if ((adc_xfer_addr >= AXI_ADDRESS_LIMIT) || (adc_xfer_enable == 1'b0)) begin
|
||||
adc_xfer_limit <= 1'd0;
|
||||
end
|
||||
if (adc_xfer_init == 1'b1) begin
|
||||
|
@ -464,7 +464,7 @@ module axi_adcfifo_wr (
|
|||
|
||||
// buffer
|
||||
|
||||
ad_mem #(.DATA_WIDTH(AXI_DATA_WIDTH), .ADDR_WIDTH(8)) i_mem (
|
||||
ad_mem #(.DATA_WIDTH(AXI_DATA_WIDTH), .ADDRESS_WIDTH(8)) i_mem (
|
||||
.clka (adc_clk),
|
||||
.wea (adc_wr),
|
||||
.addra (adc_waddr),
|
||||
|
|
|
@ -68,13 +68,13 @@ module axi_clkgen (
|
|||
|
||||
// parameters
|
||||
|
||||
parameter PCORE_ID = 0;
|
||||
parameter PCORE_DEVICE_TYPE = 0;
|
||||
parameter PCORE_CLKIN_PERIOD = 5.0;
|
||||
parameter PCORE_VCO_DIV = 11;
|
||||
parameter PCORE_VCO_MUL = 49;
|
||||
parameter PCORE_CLK0_DIV = 6;
|
||||
parameter PCORE_CLK1_DIV = 6;
|
||||
parameter ID = 0;
|
||||
parameter DEVICE_TYPE = 0;
|
||||
parameter CLKIN_PERIOD = 5.0;
|
||||
parameter VCO_DIV = 11;
|
||||
parameter VCO_MUL = 49;
|
||||
parameter CLK0_DIV = 6;
|
||||
parameter CLK1_DIV = 6;
|
||||
|
||||
// clocks
|
||||
|
||||
|
@ -189,12 +189,12 @@ module axi_clkgen (
|
|||
// mmcm instantiations
|
||||
|
||||
ad_mmcm_drp #(
|
||||
.MMCM_DEVICE_TYPE (PCORE_DEVICE_TYPE),
|
||||
.MMCM_CLKIN_PERIOD (PCORE_CLKIN_PERIOD),
|
||||
.MMCM_VCO_DIV (PCORE_VCO_DIV),
|
||||
.MMCM_VCO_MUL (PCORE_VCO_MUL),
|
||||
.MMCM_CLK0_DIV (PCORE_CLK0_DIV),
|
||||
.MMCM_CLK1_DIV (PCORE_CLK1_DIV))
|
||||
.MMCM_DEVICE_TYPE (DEVICE_TYPE),
|
||||
.MMCM_CLKIN_PERIOD (CLKIN_PERIOD),
|
||||
.MMCM_VCO_DIV (VCO_DIV),
|
||||
.MMCM_VCO_MUL (VCO_MUL),
|
||||
.MMCM_CLK0_DIV (CLK0_DIV),
|
||||
.MMCM_CLK1_DIV (CLK1_DIV))
|
||||
i_mmcm_drp (
|
||||
.clk (clk),
|
||||
.mmcm_rst (mmcm_rst),
|
||||
|
|
|
@ -43,34 +43,34 @@ module dmac_2d_transfer (
|
|||
input req_valid,
|
||||
output reg req_ready,
|
||||
|
||||
input [31:C_BYTES_PER_BEAT_WIDTH_DEST] req_dest_address,
|
||||
input [31:C_BYTES_PER_BEAT_WIDTH_SRC] req_src_address,
|
||||
input [C_DMA_LENGTH_WIDTH-1:0] req_x_length,
|
||||
input [C_DMA_LENGTH_WIDTH-1:0] req_y_length,
|
||||
input [C_DMA_LENGTH_WIDTH-1:0] req_dest_stride,
|
||||
input [C_DMA_LENGTH_WIDTH-1:0] req_src_stride,
|
||||
input [31:BYTES_PER_BEAT_WIDTH_DEST] req_dest_address,
|
||||
input [31:BYTES_PER_BEAT_WIDTH_SRC] req_src_address,
|
||||
input [DMA_LENGTH_WIDTH-1:0] req_x_length,
|
||||
input [DMA_LENGTH_WIDTH-1:0] req_y_length,
|
||||
input [DMA_LENGTH_WIDTH-1:0] req_dest_stride,
|
||||
input [DMA_LENGTH_WIDTH-1:0] req_src_stride,
|
||||
input req_sync_transfer_start,
|
||||
output reg req_eot,
|
||||
|
||||
output reg out_req_valid,
|
||||
input out_req_ready,
|
||||
output [31:C_BYTES_PER_BEAT_WIDTH_DEST] out_req_dest_address,
|
||||
output [31:C_BYTES_PER_BEAT_WIDTH_SRC] out_req_src_address,
|
||||
output [C_DMA_LENGTH_WIDTH-1:0] out_req_length,
|
||||
output [31:BYTES_PER_BEAT_WIDTH_DEST] out_req_dest_address,
|
||||
output [31:BYTES_PER_BEAT_WIDTH_SRC] out_req_src_address,
|
||||
output [DMA_LENGTH_WIDTH-1:0] out_req_length,
|
||||
output reg out_req_sync_transfer_start,
|
||||
input out_eot
|
||||
);
|
||||
|
||||
parameter C_DMA_LENGTH_WIDTH = 24;
|
||||
parameter C_BYTES_PER_BEAT_WIDTH_SRC = 3;
|
||||
parameter C_BYTES_PER_BEAT_WIDTH_DEST = 3;
|
||||
parameter DMA_LENGTH_WIDTH = 24;
|
||||
parameter BYTES_PER_BEAT_WIDTH_SRC = 3;
|
||||
parameter BYTES_PER_BEAT_WIDTH_DEST = 3;
|
||||
|
||||
reg [31:C_BYTES_PER_BEAT_WIDTH_DEST] dest_address;
|
||||
reg [31:C_BYTES_PER_BEAT_WIDTH_SRC] src_address;
|
||||
reg [C_DMA_LENGTH_WIDTH-1:0] x_length;
|
||||
reg [C_DMA_LENGTH_WIDTH-1:0] y_length;
|
||||
reg [C_DMA_LENGTH_WIDTH-1:0] dest_stride;
|
||||
reg [C_DMA_LENGTH_WIDTH-1:0] src_stride;
|
||||
reg [31:BYTES_PER_BEAT_WIDTH_DEST] dest_address;
|
||||
reg [31:BYTES_PER_BEAT_WIDTH_SRC] src_address;
|
||||
reg [DMA_LENGTH_WIDTH-1:0] x_length;
|
||||
reg [DMA_LENGTH_WIDTH-1:0] y_length;
|
||||
reg [DMA_LENGTH_WIDTH-1:0] dest_stride;
|
||||
reg [DMA_LENGTH_WIDTH-1:0] src_stride;
|
||||
|
||||
reg [1:0] req_id;
|
||||
reg [1:0] eot_id;
|
||||
|
@ -126,8 +126,8 @@ begin
|
|||
end
|
||||
end else begin
|
||||
if (out_req_valid && out_req_ready) begin
|
||||
dest_address <= dest_address + dest_stride[C_DMA_LENGTH_WIDTH-1:C_BYTES_PER_BEAT_WIDTH_DEST];
|
||||
src_address <= src_address + src_stride[C_DMA_LENGTH_WIDTH-1:C_BYTES_PER_BEAT_WIDTH_SRC];
|
||||
dest_address <= dest_address + dest_stride[DMA_LENGTH_WIDTH-1:BYTES_PER_BEAT_WIDTH_DEST];
|
||||
src_address <= src_address + src_stride[DMA_LENGTH_WIDTH-1:BYTES_PER_BEAT_WIDTH_SRC];
|
||||
y_length <= y_length - 1'b1;
|
||||
out_req_sync_transfer_start <= 1'b0;
|
||||
if (y_length == 0) begin
|
||||
|
|
|
@ -41,11 +41,11 @@ module dmac_address_generator (
|
|||
|
||||
input req_valid,
|
||||
output reg req_ready,
|
||||
input [31:C_BYTES_PER_BEAT_WIDTH] req_address,
|
||||
input [C_BEATS_PER_BURST_WIDTH-1:0] req_last_burst_length,
|
||||
input [31:BYTES_PER_BEAT_WIDTH] req_address,
|
||||
input [BEATS_PER_BURST_WIDTH-1:0] req_last_burst_length,
|
||||
|
||||
output reg [C_ID_WIDTH-1:0] id,
|
||||
input [C_ID_WIDTH-1:0] request_id,
|
||||
output reg [ID_WIDTH-1:0] id,
|
||||
input [ID_WIDTH-1:0] request_id,
|
||||
input sync_id,
|
||||
|
||||
input eot,
|
||||
|
@ -65,11 +65,11 @@ module dmac_address_generator (
|
|||
);
|
||||
|
||||
|
||||
parameter C_ID_WIDTH = 3;
|
||||
parameter C_DMA_DATA_WIDTH = 64;
|
||||
parameter C_BEATS_PER_BURST_WIDTH = 4;
|
||||
parameter C_BYTES_PER_BEAT_WIDTH = $clog2(C_DMA_DATA_WIDTH/8);
|
||||
localparam MAX_BEATS_PER_BURST = 2**(C_BEATS_PER_BURST_WIDTH);
|
||||
parameter ID_WIDTH = 3;
|
||||
parameter DMA_DATA_WIDTH = 64;
|
||||
parameter BEATS_PER_BURST_WIDTH = 4;
|
||||
parameter BYTES_PER_BEAT_WIDTH = $clog2(DMA_DATA_WIDTH/8);
|
||||
localparam MAX_BEATS_PER_BURST = 2**(BEATS_PER_BURST_WIDTH);
|
||||
|
||||
`include "inc_id.h"
|
||||
|
||||
|
@ -77,12 +77,12 @@ assign burst = 2'b01;
|
|||
assign prot = 3'b000;
|
||||
assign cache = 4'b0011;
|
||||
assign len = length;
|
||||
assign size = $clog2(C_DMA_DATA_WIDTH/8);
|
||||
assign size = $clog2(DMA_DATA_WIDTH/8);
|
||||
|
||||
reg [7:0] length = 'h0;
|
||||
reg [31-C_BYTES_PER_BEAT_WIDTH:0] address = 'h00;
|
||||
reg [C_BEATS_PER_BURST_WIDTH-1:0] last_burst_len = 'h00;
|
||||
assign addr = {address, {C_BYTES_PER_BEAT_WIDTH{1'b0}}};
|
||||
reg [31-BYTES_PER_BEAT_WIDTH:0] address = 'h00;
|
||||
reg [BEATS_PER_BURST_WIDTH-1:0] last_burst_len = 'h00;
|
||||
assign addr = {address, {BYTES_PER_BEAT_WIDTH{1'b0}}};
|
||||
|
||||
reg addr_valid_d1;
|
||||
reg last = 1'b0;
|
||||
|
|
|
@ -72,7 +72,7 @@ module axi_dmac (
|
|||
|
||||
// Write address
|
||||
output [31:0] m_dest_axi_awaddr,
|
||||
output [7-(4*C_DMA_AXI_PROTOCOL_DEST):0] m_dest_axi_awlen,
|
||||
output [7-(4*DMA_AXI_PROTOCOL_DEST):0] m_dest_axi_awlen,
|
||||
output [ 2:0] m_dest_axi_awsize,
|
||||
output [ 1:0] m_dest_axi_awburst,
|
||||
output [ 2:0] m_dest_axi_awprot,
|
||||
|
@ -81,8 +81,8 @@ module axi_dmac (
|
|||
input m_dest_axi_awready,
|
||||
|
||||
// Write data
|
||||
output [C_DMA_DATA_WIDTH_DEST-1:0] m_dest_axi_wdata,
|
||||
output [(C_DMA_DATA_WIDTH_DEST/8)-1:0] m_dest_axi_wstrb,
|
||||
output [DMA_DATA_WIDTH_DEST-1:0] m_dest_axi_wdata,
|
||||
output [(DMA_DATA_WIDTH_DEST/8)-1:0] m_dest_axi_wstrb,
|
||||
input m_dest_axi_wready,
|
||||
output m_dest_axi_wvalid,
|
||||
output m_dest_axi_wlast,
|
||||
|
@ -95,7 +95,7 @@ module axi_dmac (
|
|||
// Unused read interface
|
||||
output m_dest_axi_arvalid,
|
||||
output [31:0] m_dest_axi_araddr,
|
||||
output [7-(4*C_DMA_AXI_PROTOCOL_DEST):0] m_dest_axi_arlen,
|
||||
output [7-(4*DMA_AXI_PROTOCOL_DEST):0] m_dest_axi_arlen,
|
||||
output [ 2:0] m_dest_axi_arsize,
|
||||
output [ 1:0] m_dest_axi_arburst,
|
||||
output [ 3:0] m_dest_axi_arcache,
|
||||
|
@ -103,21 +103,21 @@ module axi_dmac (
|
|||
input m_dest_axi_arready,
|
||||
input m_dest_axi_rvalid,
|
||||
input [ 1:0] m_dest_axi_rresp,
|
||||
input [C_DMA_DATA_WIDTH_DEST-1:0] m_dest_axi_rdata,
|
||||
input [DMA_DATA_WIDTH_DEST-1:0] m_dest_axi_rdata,
|
||||
output m_dest_axi_rready,
|
||||
|
||||
// Read address
|
||||
input m_src_axi_arready,
|
||||
output m_src_axi_arvalid,
|
||||
output [31:0] m_src_axi_araddr,
|
||||
output [7-(4*C_DMA_AXI_PROTOCOL_SRC):0] m_src_axi_arlen,
|
||||
output [7-(4*DMA_AXI_PROTOCOL_SRC):0] m_src_axi_arlen,
|
||||
output [ 2:0] m_src_axi_arsize,
|
||||
output [ 1:0] m_src_axi_arburst,
|
||||
output [ 2:0] m_src_axi_arprot,
|
||||
output [ 3:0] m_src_axi_arcache,
|
||||
|
||||
// Read data and response
|
||||
input [C_DMA_DATA_WIDTH_SRC-1:0] m_src_axi_rdata,
|
||||
input [DMA_DATA_WIDTH_SRC-1:0] m_src_axi_rdata,
|
||||
output m_src_axi_rready,
|
||||
input m_src_axi_rvalid,
|
||||
input [ 1:0] m_src_axi_rresp,
|
||||
|
@ -125,15 +125,15 @@ module axi_dmac (
|
|||
// Unused write interface
|
||||
output m_src_axi_awvalid,
|
||||
output [31:0] m_src_axi_awaddr,
|
||||
output [7-(4*C_DMA_AXI_PROTOCOL_SRC):0] m_src_axi_awlen,
|
||||
output [7-(4*DMA_AXI_PROTOCOL_SRC):0] m_src_axi_awlen,
|
||||
output [ 2:0] m_src_axi_awsize,
|
||||
output [ 1:0] m_src_axi_awburst,
|
||||
output [ 3:0] m_src_axi_awcache,
|
||||
output [ 2:0] m_src_axi_awprot,
|
||||
input m_src_axi_awready,
|
||||
output m_src_axi_wvalid,
|
||||
output [C_DMA_DATA_WIDTH_SRC-1:0] m_src_axi_wdata,
|
||||
output [(C_DMA_DATA_WIDTH_SRC/8)-1:0] m_src_axi_wstrb,
|
||||
output [DMA_DATA_WIDTH_SRC-1:0] m_src_axi_wdata,
|
||||
output [(DMA_DATA_WIDTH_SRC/8)-1:0] m_src_axi_wstrb,
|
||||
output m_src_axi_wlast,
|
||||
input m_src_axi_wready,
|
||||
input m_src_axi_bvalid,
|
||||
|
@ -144,7 +144,7 @@ module axi_dmac (
|
|||
input s_axis_aclk,
|
||||
output s_axis_ready,
|
||||
input s_axis_valid,
|
||||
input [C_DMA_DATA_WIDTH_SRC-1:0] s_axis_data,
|
||||
input [DMA_DATA_WIDTH_SRC-1:0] s_axis_data,
|
||||
input [0:0] s_axis_user,
|
||||
output s_axis_xfer_req,
|
||||
|
||||
|
@ -152,14 +152,14 @@ module axi_dmac (
|
|||
input m_axis_aclk,
|
||||
input m_axis_ready,
|
||||
output m_axis_valid,
|
||||
output [C_DMA_DATA_WIDTH_DEST-1:0] m_axis_data,
|
||||
output [DMA_DATA_WIDTH_DEST-1:0] m_axis_data,
|
||||
output m_axis_last,
|
||||
output m_axis_xfer_req,
|
||||
|
||||
// Input FIFO interface
|
||||
input fifo_wr_clk,
|
||||
input fifo_wr_en,
|
||||
input [C_DMA_DATA_WIDTH_SRC-1:0] fifo_wr_din,
|
||||
input [DMA_DATA_WIDTH_SRC-1:0] fifo_wr_din,
|
||||
output fifo_wr_overflow,
|
||||
input fifo_wr_sync,
|
||||
output fifo_wr_xfer_req,
|
||||
|
@ -168,34 +168,34 @@ module axi_dmac (
|
|||
input fifo_rd_clk,
|
||||
input fifo_rd_en,
|
||||
output fifo_rd_valid,
|
||||
output [C_DMA_DATA_WIDTH_DEST-1:0] fifo_rd_dout,
|
||||
output [DMA_DATA_WIDTH_DEST-1:0] fifo_rd_dout,
|
||||
output fifo_rd_underflow,
|
||||
output fifo_rd_xfer_req
|
||||
);
|
||||
|
||||
parameter PCORE_ID = 0;
|
||||
parameter ID = 0;
|
||||
|
||||
parameter C_DMA_DATA_WIDTH_SRC = 64;
|
||||
parameter C_DMA_DATA_WIDTH_DEST = 64;
|
||||
parameter C_DMA_LENGTH_WIDTH = 24;
|
||||
parameter C_2D_TRANSFER = 1;
|
||||
parameter DMA_DATA_WIDTH_SRC = 64;
|
||||
parameter DMA_DATA_WIDTH_DEST = 64;
|
||||
parameter DMA_LENGTH_WIDTH = 24;
|
||||
parameter 2D_TRANSFER = 1;
|
||||
|
||||
parameter C_CLKS_ASYNC_REQ_SRC = 1;
|
||||
parameter C_CLKS_ASYNC_SRC_DEST = 1;
|
||||
parameter C_CLKS_ASYNC_DEST_REQ = 1;
|
||||
parameter ASYNC_CLK_REQ_SRC = 1;
|
||||
parameter ASYNC_CLK_SRC_DEST = 1;
|
||||
parameter ASYNC_CLK_DEST_REQ = 1;
|
||||
|
||||
parameter C_AXI_SLICE_DEST = 0;
|
||||
parameter C_AXI_SLICE_SRC = 0;
|
||||
parameter C_SYNC_TRANSFER_START = 0;
|
||||
parameter C_CYCLIC = 1;
|
||||
parameter AXI_SLICE_DEST = 0;
|
||||
parameter AXI_SLICE_SRC = 0;
|
||||
parameter SYNC_TRANSFER_START = 0;
|
||||
parameter CYCLIC = 1;
|
||||
|
||||
parameter C_DMA_AXI_PROTOCOL_DEST = 0;
|
||||
parameter C_DMA_AXI_PROTOCOL_SRC = 0;
|
||||
parameter C_DMA_TYPE_DEST = 0;
|
||||
parameter C_DMA_TYPE_SRC = 2;
|
||||
parameter DMA_AXI_PROTOCOL_DEST = 0;
|
||||
parameter DMA_AXI_PROTOCOL_SRC = 0;
|
||||
parameter DMA_TYPE_DEST = 0;
|
||||
parameter DMA_TYPE_SRC = 2;
|
||||
|
||||
parameter C_MAX_BYTES_PER_BURST = 128;
|
||||
parameter C_FIFO_SIZE = 4; // In bursts
|
||||
parameter MAX_BYTES_PER_BURST = 128;
|
||||
parameter FIFO_SIZE = 4; // In bursts
|
||||
|
||||
localparam DMA_TYPE_AXI_MM = 0;
|
||||
localparam DMA_TYPE_AXI_STREAM = 1;
|
||||
|
@ -203,26 +203,26 @@ localparam DMA_TYPE_FIFO = 2;
|
|||
|
||||
localparam PCORE_VERSION = 'h00040062;
|
||||
|
||||
localparam HAS_DEST_ADDR = C_DMA_TYPE_DEST == DMA_TYPE_AXI_MM;
|
||||
localparam HAS_SRC_ADDR = C_DMA_TYPE_SRC == DMA_TYPE_AXI_MM;
|
||||
localparam HAS_DEST_ADDR = DMA_TYPE_DEST == DMA_TYPE_AXI_MM;
|
||||
localparam HAS_SRC_ADDR = DMA_TYPE_SRC == DMA_TYPE_AXI_MM;
|
||||
|
||||
// Argh... "[Synth 8-2722] system function call clog2 is not allowed here"
|
||||
localparam BYTES_PER_BEAT_WIDTH_DEST = C_DMA_DATA_WIDTH_DEST > 1024 ? 8 :
|
||||
C_DMA_DATA_WIDTH_DEST > 512 ? 7 :
|
||||
C_DMA_DATA_WIDTH_DEST > 256 ? 6 :
|
||||
C_DMA_DATA_WIDTH_DEST > 128 ? 5 :
|
||||
C_DMA_DATA_WIDTH_DEST > 64 ? 4 :
|
||||
C_DMA_DATA_WIDTH_DEST > 32 ? 3 :
|
||||
C_DMA_DATA_WIDTH_DEST > 16 ? 2 :
|
||||
C_DMA_DATA_WIDTH_DEST > 8 ? 1 : 0;
|
||||
localparam BYTES_PER_BEAT_WIDTH_SRC = C_DMA_DATA_WIDTH_SRC > 1024 ? 8 :
|
||||
C_DMA_DATA_WIDTH_SRC > 512 ? 7 :
|
||||
C_DMA_DATA_WIDTH_SRC > 256 ? 6 :
|
||||
C_DMA_DATA_WIDTH_SRC > 128 ? 5 :
|
||||
C_DMA_DATA_WIDTH_SRC > 64 ? 4 :
|
||||
C_DMA_DATA_WIDTH_SRC > 32 ? 3 :
|
||||
C_DMA_DATA_WIDTH_SRC > 16 ? 2 :
|
||||
C_DMA_DATA_WIDTH_SRC > 8 ? 1 : 0;
|
||||
localparam BYTES_PER_BEAT_WIDTH_DEST = DMA_DATA_WIDTH_DEST > 1024 ? 8 :
|
||||
DMA_DATA_WIDTH_DEST > 512 ? 7 :
|
||||
DMA_DATA_WIDTH_DEST > 256 ? 6 :
|
||||
DMA_DATA_WIDTH_DEST > 128 ? 5 :
|
||||
DMA_DATA_WIDTH_DEST > 64 ? 4 :
|
||||
DMA_DATA_WIDTH_DEST > 32 ? 3 :
|
||||
DMA_DATA_WIDTH_DEST > 16 ? 2 :
|
||||
DMA_DATA_WIDTH_DEST > 8 ? 1 : 0;
|
||||
localparam BYTES_PER_BEAT_WIDTH_SRC = DMA_DATA_WIDTH_SRC > 1024 ? 8 :
|
||||
DMA_DATA_WIDTH_SRC > 512 ? 7 :
|
||||
DMA_DATA_WIDTH_SRC > 256 ? 6 :
|
||||
DMA_DATA_WIDTH_SRC > 128 ? 5 :
|
||||
DMA_DATA_WIDTH_SRC > 64 ? 4 :
|
||||
DMA_DATA_WIDTH_SRC > 32 ? 3 :
|
||||
DMA_DATA_WIDTH_SRC > 16 ? 2 :
|
||||
DMA_DATA_WIDTH_SRC > 8 ? 1 : 0;
|
||||
|
||||
// Register interface signals
|
||||
reg [31:0] up_rdata = 'd0;
|
||||
|
@ -263,12 +263,12 @@ reg up_axis_xlast = 1'b1;
|
|||
|
||||
reg [31:BYTES_PER_BEAT_WIDTH_DEST] up_dma_dest_address = 'h00;
|
||||
reg [31:BYTES_PER_BEAT_WIDTH_SRC] up_dma_src_address = 'h00;
|
||||
reg [C_DMA_LENGTH_WIDTH-1:0] up_dma_x_length = 'h00;
|
||||
reg [C_DMA_LENGTH_WIDTH-1:0] up_dma_y_length = 'h00;
|
||||
reg [C_DMA_LENGTH_WIDTH-1:0] up_dma_src_stride = 'h00;
|
||||
reg [C_DMA_LENGTH_WIDTH-1:0] up_dma_dest_stride = 'h00;
|
||||
reg up_dma_cyclic = C_CYCLIC;
|
||||
wire up_dma_sync_transfer_start = C_SYNC_TRANSFER_START ? 1'b1 : 1'b0;
|
||||
reg [DMA_LENGTH_WIDTH-1:0] up_dma_x_length = 'h00;
|
||||
reg [DMA_LENGTH_WIDTH-1:0] up_dma_y_length = 'h00;
|
||||
reg [DMA_LENGTH_WIDTH-1:0] up_dma_src_stride = 'h00;
|
||||
reg [DMA_LENGTH_WIDTH-1:0] up_dma_dest_stride = 'h00;
|
||||
reg up_dma_cyclic = CYCLIC;
|
||||
wire up_dma_sync_transfer_start = SYNC_TRANSFER_START ? 1'b1 : 1'b0;
|
||||
|
||||
// ID signals from the DMAC, just for debugging
|
||||
wire [2:0] dest_request_id;
|
||||
|
@ -298,7 +298,7 @@ assign m_src_axi_wstrb = 'd0;
|
|||
assign m_src_axi_wlast = 'd0;
|
||||
|
||||
up_axi #(
|
||||
.PCORE_ADDR_WIDTH (12)
|
||||
.ADDRESS_WIDTH (12)
|
||||
) i_up_axi (
|
||||
.up_rstn(s_axi_aresetn),
|
||||
.up_clk(s_axi_aclk),
|
||||
|
@ -386,15 +386,15 @@ begin
|
|||
12'h020: up_irq_mask <= up_wdata;
|
||||
12'h100: {up_pause, up_enable} <= up_wdata[1:0];
|
||||
12'h103: begin
|
||||
if (C_CYCLIC) up_dma_cyclic <= up_wdata[0];
|
||||
if (CYCLIC) up_dma_cyclic <= up_wdata[0];
|
||||
up_axis_xlast <= up_wdata[1];
|
||||
end
|
||||
12'h104: up_dma_dest_address <= up_wdata[31:BYTES_PER_BEAT_WIDTH_DEST];
|
||||
12'h105: up_dma_src_address <= up_wdata[31:BYTES_PER_BEAT_WIDTH_SRC];
|
||||
12'h106: up_dma_x_length <= up_wdata[C_DMA_LENGTH_WIDTH-1:0];
|
||||
12'h107: up_dma_y_length <= up_wdata[C_DMA_LENGTH_WIDTH-1:0];
|
||||
12'h108: up_dma_dest_stride <= up_wdata[C_DMA_LENGTH_WIDTH-1:0];
|
||||
12'h109: up_dma_src_stride <= up_wdata[C_DMA_LENGTH_WIDTH-1:0];
|
||||
12'h106: up_dma_x_length <= up_wdata[DMA_LENGTH_WIDTH-1:0];
|
||||
12'h107: up_dma_y_length <= up_wdata[DMA_LENGTH_WIDTH-1:0];
|
||||
12'h108: up_dma_dest_stride <= up_wdata[DMA_LENGTH_WIDTH-1:0];
|
||||
12'h109: up_dma_src_stride <= up_wdata[DMA_LENGTH_WIDTH-1:0];
|
||||
endcase
|
||||
end
|
||||
end
|
||||
|
@ -409,7 +409,7 @@ begin
|
|||
up_rack <= up_rreq;
|
||||
case (up_raddr)
|
||||
12'h000: up_rdata <= PCORE_VERSION;
|
||||
12'h001: up_rdata <= PCORE_ID;
|
||||
12'h001: up_rdata <= ID;
|
||||
12'h002: up_rdata <= up_scratch;
|
||||
12'h020: up_rdata <= up_irq_mask;
|
||||
12'h021: up_rdata <= up_irq_pending;
|
||||
|
@ -421,9 +421,9 @@ begin
|
|||
12'h104: up_rdata <= HAS_DEST_ADDR ? {up_dma_dest_address,{BYTES_PER_BEAT_WIDTH_DEST{1'b0}}} : 'h00;
|
||||
12'h105: up_rdata <= HAS_SRC_ADDR ? {up_dma_src_address,{BYTES_PER_BEAT_WIDTH_SRC{1'b0}}} : 'h00;
|
||||
12'h106: up_rdata <= up_dma_x_length;
|
||||
12'h107: up_rdata <= C_2D_TRANSFER ? up_dma_y_length : 'h00;
|
||||
12'h108: up_rdata <= C_2D_TRANSFER ? up_dma_dest_stride : 'h00;
|
||||
12'h109: up_rdata <= C_2D_TRANSFER ? up_dma_src_stride : 'h00;
|
||||
12'h107: up_rdata <= 2D_TRANSFER ? up_dma_y_length : 'h00;
|
||||
12'h108: up_rdata <= 2D_TRANSFER ? up_dma_dest_stride : 'h00;
|
||||
12'h109: up_rdata <= 2D_TRANSFER ? up_dma_src_stride : 'h00;
|
||||
12'h10a: up_rdata <= up_transfer_done_bitmap;
|
||||
12'h10b: up_rdata <= up_transfer_id_eot;
|
||||
12'h10c: up_rdata <= 'h00; // Status
|
||||
|
@ -460,7 +460,7 @@ wire dma_req_valid;
|
|||
wire dma_req_ready;
|
||||
wire [31:BYTES_PER_BEAT_WIDTH_DEST] dma_req_dest_address;
|
||||
wire [31:BYTES_PER_BEAT_WIDTH_SRC] dma_req_src_address;
|
||||
wire [C_DMA_LENGTH_WIDTH-1:0] dma_req_length;
|
||||
wire [DMA_LENGTH_WIDTH-1:0] dma_req_length;
|
||||
wire dma_req_eot;
|
||||
wire dma_req_sync_transfer_start;
|
||||
wire up_req_eot;
|
||||
|
@ -469,12 +469,12 @@ assign up_sot = up_dma_cyclic ? 1'b0 : up_dma_req_valid & up_dma_req_ready;
|
|||
assign up_eot = up_dma_cyclic ? 1'b0 : up_req_eot;
|
||||
|
||||
|
||||
generate if (C_2D_TRANSFER == 1) begin
|
||||
generate if (2D_TRANSFER == 1) begin
|
||||
|
||||
dmac_2d_transfer #(
|
||||
.C_DMA_LENGTH_WIDTH(C_DMA_LENGTH_WIDTH),
|
||||
.C_BYTES_PER_BEAT_WIDTH_DEST(BYTES_PER_BEAT_WIDTH_DEST),
|
||||
.C_BYTES_PER_BEAT_WIDTH_SRC(BYTES_PER_BEAT_WIDTH_SRC)
|
||||
.DMA_LENGTH_WIDTH(DMA_LENGTH_WIDTH),
|
||||
.BYTES_PER_BEAT_WIDTH_DEST(BYTES_PER_BEAT_WIDTH_DEST),
|
||||
.BYTES_PER_BEAT_WIDTH_SRC(BYTES_PER_BEAT_WIDTH_SRC)
|
||||
) i_2d_transfer (
|
||||
.req_aclk(s_axi_aclk),
|
||||
.req_aresetn(s_axi_aresetn),
|
||||
|
@ -513,20 +513,20 @@ assign up_req_eot = dma_req_eot;
|
|||
end endgenerate
|
||||
|
||||
dmac_request_arb #(
|
||||
.C_DMA_DATA_WIDTH_SRC(C_DMA_DATA_WIDTH_SRC),
|
||||
.C_DMA_DATA_WIDTH_DEST(C_DMA_DATA_WIDTH_DEST),
|
||||
.C_DMA_LENGTH_WIDTH(C_DMA_LENGTH_WIDTH),
|
||||
.C_BYTES_PER_BEAT_WIDTH_DEST(BYTES_PER_BEAT_WIDTH_DEST),
|
||||
.C_BYTES_PER_BEAT_WIDTH_SRC(BYTES_PER_BEAT_WIDTH_SRC),
|
||||
.C_DMA_TYPE_DEST(C_DMA_TYPE_DEST),
|
||||
.C_DMA_TYPE_SRC(C_DMA_TYPE_SRC),
|
||||
.C_CLKS_ASYNC_REQ_SRC(C_CLKS_ASYNC_REQ_SRC),
|
||||
.C_CLKS_ASYNC_SRC_DEST(C_CLKS_ASYNC_SRC_DEST),
|
||||
.C_CLKS_ASYNC_DEST_REQ(C_CLKS_ASYNC_DEST_REQ),
|
||||
.C_AXI_SLICE_DEST(C_AXI_SLICE_DEST),
|
||||
.C_AXI_SLICE_SRC(C_AXI_SLICE_SRC),
|
||||
.C_MAX_BYTES_PER_BURST(C_MAX_BYTES_PER_BURST),
|
||||
.C_FIFO_SIZE(C_FIFO_SIZE)
|
||||
.DMA_DATA_WIDTH_SRC(DMA_DATA_WIDTH_SRC),
|
||||
.DMA_DATA_WIDTH_DEST(DMA_DATA_WIDTH_DEST),
|
||||
.DMA_LENGTH_WIDTH(DMA_LENGTH_WIDTH),
|
||||
.BYTES_PER_BEAT_WIDTH_DEST(BYTES_PER_BEAT_WIDTH_DEST),
|
||||
.BYTES_PER_BEAT_WIDTH_SRC(BYTES_PER_BEAT_WIDTH_SRC),
|
||||
.DMA_TYPE_DEST(DMA_TYPE_DEST),
|
||||
.DMA_TYPE_SRC(DMA_TYPE_SRC),
|
||||
.ASYNC_CLK_REQ_SRC(ASYNC_CLK_REQ_SRC),
|
||||
.ASYNC_CLK_SRC_DEST(ASYNC_CLK_SRC_DEST),
|
||||
.ASYNC_CLK_DEST_REQ(ASYNC_CLK_DEST_REQ),
|
||||
.AXI_SLICE_DEST(AXI_SLICE_DEST),
|
||||
.AXI_SLICE_SRC(AXI_SLICE_SRC),
|
||||
.MAX_BYTES_PER_BURST(MAX_BYTES_PER_BURST),
|
||||
.FIFO_SIZE(FIFO_SIZE)
|
||||
) i_request_arb (
|
||||
.req_aclk(s_axi_aclk),
|
||||
.req_aresetn(s_axi_aresetn),
|
||||
|
|
|
@ -45,12 +45,12 @@ add_fileset_file axi_dmac_constr.sdc SDC PATH axi_dmac_constr.sdc
|
|||
|
||||
# parameters
|
||||
|
||||
add_parameter PCORE_ID INTEGER 0
|
||||
set_parameter_property PCORE_ID DEFAULT_VALUE 0
|
||||
set_parameter_property PCORE_ID DISPLAY_NAME PCORE_ID
|
||||
set_parameter_property PCORE_ID TYPE INTEGER
|
||||
set_parameter_property PCORE_ID UNITS None
|
||||
set_parameter_property PCORE_ID HDL_PARAMETER true
|
||||
add_parameter ID INTEGER 0
|
||||
set_parameter_property ID DEFAULT_VALUE 0
|
||||
set_parameter_property ID DISPLAY_NAME ID
|
||||
set_parameter_property ID TYPE INTEGER
|
||||
set_parameter_property ID UNITS None
|
||||
set_parameter_property ID HDL_PARAMETER true
|
||||
|
||||
add_parameter C_DMA_DATA_WIDTH_SRC INTEGER 0
|
||||
set_parameter_property C_DMA_DATA_WIDTH_SRC DEFAULT_VALUE 64
|
||||
|
@ -80,26 +80,26 @@ set_parameter_property C_2D_TRANSFER TYPE INTEGER
|
|||
set_parameter_property C_2D_TRANSFER UNITS None
|
||||
set_parameter_property C_2D_TRANSFER HDL_PARAMETER true
|
||||
|
||||
add_parameter C_CLKS_ASYNC_REQ_SRC INTEGER 0
|
||||
set_parameter_property C_CLKS_ASYNC_REQ_SRC DEFAULT_VALUE 1
|
||||
set_parameter_property C_CLKS_ASYNC_REQ_SRC DISPLAY_NAME C_CLKS_ASYNC_REQ_SRC
|
||||
set_parameter_property C_CLKS_ASYNC_REQ_SRC TYPE INTEGER
|
||||
set_parameter_property C_CLKS_ASYNC_REQ_SRC UNITS None
|
||||
set_parameter_property C_CLKS_ASYNC_REQ_SRC HDL_PARAMETER true
|
||||
add_parameter ASYNC_CLK_REQ_SRC INTEGER 0
|
||||
set_parameter_property ASYNC_CLK_REQ_SRC DEFAULT_VALUE 1
|
||||
set_parameter_property ASYNC_CLK_REQ_SRC DISPLAY_NAME ASYNC_CLK_REQ_SRC
|
||||
set_parameter_property ASYNC_CLK_REQ_SRC TYPE INTEGER
|
||||
set_parameter_property ASYNC_CLK_REQ_SRC UNITS None
|
||||
set_parameter_property ASYNC_CLK_REQ_SRC HDL_PARAMETER true
|
||||
|
||||
add_parameter C_CLKS_ASYNC_SRC_DEST INTEGER 0
|
||||
set_parameter_property C_CLKS_ASYNC_SRC_DEST DEFAULT_VALUE 1
|
||||
set_parameter_property C_CLKS_ASYNC_SRC_DEST DISPLAY_NAME C_CLKS_ASYNC_SRC_DEST
|
||||
set_parameter_property C_CLKS_ASYNC_SRC_DEST TYPE INTEGER
|
||||
set_parameter_property C_CLKS_ASYNC_SRC_DEST UNITS None
|
||||
set_parameter_property C_CLKS_ASYNC_SRC_DEST HDL_PARAMETER true
|
||||
add_parameter ASYNC_CLK_SRC_DEST INTEGER 0
|
||||
set_parameter_property ASYNC_CLK_SRC_DEST DEFAULT_VALUE 1
|
||||
set_parameter_property ASYNC_CLK_SRC_DEST DISPLAY_NAME ASYNC_CLK_SRC_DEST
|
||||
set_parameter_property ASYNC_CLK_SRC_DEST TYPE INTEGER
|
||||
set_parameter_property ASYNC_CLK_SRC_DEST UNITS None
|
||||
set_parameter_property ASYNC_CLK_SRC_DEST HDL_PARAMETER true
|
||||
|
||||
add_parameter C_CLKS_ASYNC_DEST_REQ INTEGER 0
|
||||
set_parameter_property C_CLKS_ASYNC_DEST_REQ DEFAULT_VALUE 1
|
||||
set_parameter_property C_CLKS_ASYNC_DEST_REQ DISPLAY_NAME C_CLKS_ASYNC_DEST_REQ
|
||||
set_parameter_property C_CLKS_ASYNC_DEST_REQ TYPE INTEGER
|
||||
set_parameter_property C_CLKS_ASYNC_DEST_REQ UNITS None
|
||||
set_parameter_property C_CLKS_ASYNC_DEST_REQ HDL_PARAMETER true
|
||||
add_parameter ASYNC_CLK_DEST_REQ INTEGER 0
|
||||
set_parameter_property ASYNC_CLK_DEST_REQ DEFAULT_VALUE 1
|
||||
set_parameter_property ASYNC_CLK_DEST_REQ DISPLAY_NAME ASYNC_CLK_DEST_REQ
|
||||
set_parameter_property ASYNC_CLK_DEST_REQ TYPE INTEGER
|
||||
set_parameter_property ASYNC_CLK_DEST_REQ UNITS None
|
||||
set_parameter_property ASYNC_CLK_DEST_REQ HDL_PARAMETER true
|
||||
|
||||
add_parameter C_AXI_SLICE_DEST INTEGER 0
|
||||
set_parameter_property C_AXI_SLICE_DEST DEFAULT_VALUE 0
|
||||
|
|
|
@ -40,8 +40,8 @@ module dmac_data_mover (
|
|||
input clk,
|
||||
input resetn,
|
||||
|
||||
input [C_ID_WIDTH-1:0] request_id,
|
||||
output [C_ID_WIDTH-1:0] response_id,
|
||||
input [ID_WIDTH-1:0] request_id,
|
||||
output [ID_WIDTH-1:0] response_id,
|
||||
input sync_id,
|
||||
input eot,
|
||||
|
||||
|
@ -52,30 +52,30 @@ module dmac_data_mover (
|
|||
|
||||
output s_axi_ready,
|
||||
input s_axi_valid,
|
||||
input [C_DATA_WIDTH-1:0] s_axi_data,
|
||||
input [DATA_WIDTH-1:0] s_axi_data,
|
||||
|
||||
input m_axi_ready,
|
||||
output m_axi_valid,
|
||||
output [C_DATA_WIDTH-1:0] m_axi_data,
|
||||
output [DATA_WIDTH-1:0] m_axi_data,
|
||||
output m_axi_last,
|
||||
|
||||
input req_valid,
|
||||
output req_ready,
|
||||
input [C_BEATS_PER_BURST_WIDTH-1:0] req_last_burst_length
|
||||
input [BEATS_PER_BURST_WIDTH-1:0] req_last_burst_length
|
||||
);
|
||||
|
||||
parameter C_ID_WIDTH = 3;
|
||||
parameter C_DATA_WIDTH = 64;
|
||||
parameter C_DISABLE_WAIT_FOR_ID = 1;
|
||||
parameter C_BEATS_PER_BURST_WIDTH = 4;
|
||||
localparam MAX_BEATS_PER_BURST = 2**(C_BEATS_PER_BURST_WIDTH);
|
||||
parameter ID_WIDTH = 3;
|
||||
parameter DATA_WIDTH = 64;
|
||||
parameter DISABLE_WAIT_FOR_ID = 1;
|
||||
parameter BEATS_PER_BURST_WIDTH = 4;
|
||||
localparam MAX_BEATS_PER_BURST = 2**(BEATS_PER_BURST_WIDTH);
|
||||
|
||||
`include "inc_id.h"
|
||||
|
||||
reg [C_BEATS_PER_BURST_WIDTH-1:0] last_burst_length = 'h00;
|
||||
reg [C_BEATS_PER_BURST_WIDTH-1:0] beat_counter = 'h00;
|
||||
reg [C_ID_WIDTH-1:0] id = 'h00;
|
||||
reg [C_ID_WIDTH-1:0] id_next = 'h00;
|
||||
reg [BEATS_PER_BURST_WIDTH-1:0] last_burst_length = 'h00;
|
||||
reg [BEATS_PER_BURST_WIDTH-1:0] beat_counter = 'h00;
|
||||
reg [ID_WIDTH-1:0] id = 'h00;
|
||||
reg [ID_WIDTH-1:0] id_next = 'h00;
|
||||
|
||||
reg pending_burst = 1'b0;
|
||||
reg active = 1'b0;
|
||||
|
@ -108,7 +108,7 @@ always @(posedge clk) begin
|
|||
if (enable) begin
|
||||
enabled <= 1'b1;
|
||||
end else begin
|
||||
if (C_DISABLE_WAIT_FOR_ID == 0) begin
|
||||
if (DISABLE_WAIT_FOR_ID == 0) begin
|
||||
// We are not allowed to just deassert valid, so wait until the
|
||||
// current beat has been accepted
|
||||
if (~s_axi_valid || m_axi_ready)
|
||||
|
|
|
@ -42,9 +42,9 @@ module dmac_dest_mm_axi (
|
|||
|
||||
input req_valid,
|
||||
output req_ready,
|
||||
input [31:C_BYTES_PER_BEAT_WIDTH] req_address,
|
||||
input [C_BEATS_PER_BURST_WIDTH-1:0] req_last_burst_length,
|
||||
input [C_BYTES_PER_BEAT_WIDTH-1:0] req_last_beat_bytes,
|
||||
input [31:BYTES_PER_BEAT_WIDTH] req_address,
|
||||
input [BEATS_PER_BURST_WIDTH-1:0] req_last_burst_length,
|
||||
input [BYTES_PER_BEAT_WIDTH-1:0] req_last_beat_bytes,
|
||||
|
||||
input enable,
|
||||
output enabled,
|
||||
|
@ -57,18 +57,18 @@ module dmac_dest_mm_axi (
|
|||
output [1:0] response_resp,
|
||||
output response_resp_eot,
|
||||
|
||||
input [C_ID_WIDTH-1:0] request_id,
|
||||
output [C_ID_WIDTH-1:0] response_id,
|
||||
input [ID_WIDTH-1:0] request_id,
|
||||
output [ID_WIDTH-1:0] response_id,
|
||||
|
||||
output [C_ID_WIDTH-1:0] data_id,
|
||||
output [C_ID_WIDTH-1:0] address_id,
|
||||
output [ID_WIDTH-1:0] data_id,
|
||||
output [ID_WIDTH-1:0] address_id,
|
||||
input data_eot,
|
||||
input address_eot,
|
||||
input response_eot,
|
||||
|
||||
input fifo_valid,
|
||||
output fifo_ready,
|
||||
input [C_DMA_DATA_WIDTH-1:0] fifo_data,
|
||||
input [DMA_DATA_WIDTH-1:0] fifo_data,
|
||||
|
||||
// Write address
|
||||
input m_axi_awready,
|
||||
|
@ -81,8 +81,8 @@ module dmac_dest_mm_axi (
|
|||
output [ 3:0] m_axi_awcache,
|
||||
|
||||
// Write data
|
||||
output [C_DMA_DATA_WIDTH-1:0] m_axi_wdata,
|
||||
output [(C_DMA_DATA_WIDTH/8)-1:0] m_axi_wstrb,
|
||||
output [DMA_DATA_WIDTH-1:0] m_axi_wdata,
|
||||
output [(DMA_DATA_WIDTH/8)-1:0] m_axi_wstrb,
|
||||
input m_axi_wready,
|
||||
output m_axi_wvalid,
|
||||
output m_axi_wlast,
|
||||
|
@ -93,12 +93,12 @@ module dmac_dest_mm_axi (
|
|||
output m_axi_bready
|
||||
);
|
||||
|
||||
parameter C_ID_WIDTH = 3;
|
||||
parameter C_DMA_DATA_WIDTH = 64;
|
||||
parameter C_BYTES_PER_BEAT_WIDTH = $clog2(C_DMA_DATA_WIDTH/8);
|
||||
parameter C_BEATS_PER_BURST_WIDTH = 4;
|
||||
parameter ID_WIDTH = 3;
|
||||
parameter DMA_DATA_WIDTH = 64;
|
||||
parameter BYTES_PER_BEAT_WIDTH = $clog2(DMA_DATA_WIDTH/8);
|
||||
parameter BEATS_PER_BURST_WIDTH = 4;
|
||||
|
||||
reg [(C_DMA_DATA_WIDTH/8)-1:0] wstrb;
|
||||
reg [(DMA_DATA_WIDTH/8)-1:0] wstrb;
|
||||
|
||||
wire address_req_valid;
|
||||
wire address_req_ready;
|
||||
|
@ -113,7 +113,7 @@ wire _fifo_ready;
|
|||
assign fifo_ready = _fifo_ready | ~enabled;
|
||||
|
||||
splitter #(
|
||||
.C_NUM_M(2)
|
||||
.NUM_M(2)
|
||||
) i_req_splitter (
|
||||
.clk(m_axi_aclk),
|
||||
.resetn(m_axi_aresetn),
|
||||
|
@ -130,10 +130,10 @@ splitter #(
|
|||
);
|
||||
|
||||
dmac_address_generator #(
|
||||
.C_ID_WIDTH(C_ID_WIDTH),
|
||||
.C_BEATS_PER_BURST_WIDTH(C_BEATS_PER_BURST_WIDTH),
|
||||
.C_BYTES_PER_BEAT_WIDTH(C_BYTES_PER_BEAT_WIDTH),
|
||||
.C_DMA_DATA_WIDTH(C_DMA_DATA_WIDTH)
|
||||
.ID_WIDTH(ID_WIDTH),
|
||||
.BEATS_PER_BURST_WIDTH(BEATS_PER_BURST_WIDTH),
|
||||
.BYTES_PER_BEAT_WIDTH(BYTES_PER_BEAT_WIDTH),
|
||||
.DMA_DATA_WIDTH(DMA_DATA_WIDTH)
|
||||
) i_addr_gen (
|
||||
.clk(m_axi_aclk),
|
||||
.resetn(m_axi_aresetn),
|
||||
|
@ -164,9 +164,9 @@ dmac_address_generator #(
|
|||
);
|
||||
|
||||
dmac_data_mover # (
|
||||
.C_ID_WIDTH(C_ID_WIDTH),
|
||||
.C_DATA_WIDTH(C_DMA_DATA_WIDTH),
|
||||
.C_BEATS_PER_BURST_WIDTH(C_BEATS_PER_BURST_WIDTH)
|
||||
.ID_WIDTH(ID_WIDTH),
|
||||
.DATA_WIDTH(DMA_DATA_WIDTH),
|
||||
.BEATS_PER_BURST_WIDTH(BEATS_PER_BURST_WIDTH)
|
||||
) i_data_mover (
|
||||
.clk(m_axi_aclk),
|
||||
.resetn(m_axi_aresetn),
|
||||
|
@ -197,14 +197,14 @@ begin
|
|||
if (data_eot & m_axi_wlast) begin
|
||||
wstrb <= (1 << (req_last_beat_bytes + 1)) - 1;
|
||||
end else begin
|
||||
wstrb <= {(C_DMA_DATA_WIDTH/8){1'b1}};
|
||||
wstrb <= {(DMA_DATA_WIDTH/8){1'b1}};
|
||||
end
|
||||
end
|
||||
|
||||
assign m_axi_wstrb = wstrb;
|
||||
|
||||
dmac_response_handler #(
|
||||
.C_ID_WIDTH(C_ID_WIDTH)
|
||||
.ID_WIDTH(ID_WIDTH)
|
||||
) i_response_handler (
|
||||
.clk(m_axi_aclk),
|
||||
.resetn(m_axi_aresetn),
|
||||
|
|
|
@ -46,24 +46,24 @@ module dmac_dest_axi_stream (
|
|||
output sync_id_ret,
|
||||
output xfer_req,
|
||||
|
||||
input [C_ID_WIDTH-1:0] request_id,
|
||||
output [C_ID_WIDTH-1:0] response_id,
|
||||
output [C_ID_WIDTH-1:0] data_id,
|
||||
input [ID_WIDTH-1:0] request_id,
|
||||
output [ID_WIDTH-1:0] response_id,
|
||||
output [ID_WIDTH-1:0] data_id,
|
||||
input data_eot,
|
||||
input response_eot,
|
||||
|
||||
input m_axis_ready,
|
||||
output m_axis_valid,
|
||||
output [C_S_AXIS_DATA_WIDTH-1:0] m_axis_data,
|
||||
output [S_AXIS_DATA_WIDTH-1:0] m_axis_data,
|
||||
output m_axis_last,
|
||||
|
||||
output fifo_ready,
|
||||
input fifo_valid,
|
||||
input [C_S_AXIS_DATA_WIDTH-1:0] fifo_data,
|
||||
input [S_AXIS_DATA_WIDTH-1:0] fifo_data,
|
||||
|
||||
input req_valid,
|
||||
output req_ready,
|
||||
input [C_BEATS_PER_BURST_WIDTH-1:0] req_last_burst_length,
|
||||
input [BEATS_PER_BURST_WIDTH-1:0] req_last_burst_length,
|
||||
input req_xlast,
|
||||
|
||||
output response_valid,
|
||||
|
@ -72,9 +72,9 @@ module dmac_dest_axi_stream (
|
|||
output [1:0] response_resp
|
||||
);
|
||||
|
||||
parameter C_ID_WIDTH = 3;
|
||||
parameter C_S_AXIS_DATA_WIDTH = 64;
|
||||
parameter C_BEATS_PER_BURST_WIDTH = 4;
|
||||
parameter ID_WIDTH = 3;
|
||||
parameter S_AXIS_DATA_WIDTH = 64;
|
||||
parameter BEATS_PER_BURST_WIDTH = 4;
|
||||
|
||||
reg req_xlast_d = 1'b0;
|
||||
|
||||
|
@ -97,10 +97,10 @@ end
|
|||
assign m_axis_last = (req_xlast_d == 1'b1) ? m_axis_last_s : 1'b0;
|
||||
|
||||
dmac_data_mover # (
|
||||
.C_ID_WIDTH(C_ID_WIDTH),
|
||||
.C_DATA_WIDTH(C_S_AXIS_DATA_WIDTH),
|
||||
.C_BEATS_PER_BURST_WIDTH(C_BEATS_PER_BURST_WIDTH),
|
||||
.C_DISABLE_WAIT_FOR_ID(0)
|
||||
.ID_WIDTH(ID_WIDTH),
|
||||
.DATA_WIDTH(S_AXIS_DATA_WIDTH),
|
||||
.BEATS_PER_BURST_WIDTH(BEATS_PER_BURST_WIDTH),
|
||||
.DISABLE_WAIT_FOR_ID(0)
|
||||
) i_data_mover (
|
||||
.clk(s_axis_aclk),
|
||||
.resetn(s_axis_aresetn),
|
||||
|
@ -128,7 +128,7 @@ dmac_data_mover # (
|
|||
);
|
||||
|
||||
dmac_response_generator # (
|
||||
.C_ID_WIDTH(C_ID_WIDTH)
|
||||
.ID_WIDTH(ID_WIDTH)
|
||||
) i_response_generator (
|
||||
.clk(s_axis_aclk),
|
||||
.resetn(s_axis_aresetn),
|
||||
|
|
|
@ -45,14 +45,14 @@ module dmac_dest_fifo_inf (
|
|||
input sync_id,
|
||||
output sync_id_ret,
|
||||
|
||||
input [C_ID_WIDTH-1:0] request_id,
|
||||
output [C_ID_WIDTH-1:0] response_id,
|
||||
output [C_ID_WIDTH-1:0] data_id,
|
||||
input [ID_WIDTH-1:0] request_id,
|
||||
output [ID_WIDTH-1:0] response_id,
|
||||
output [ID_WIDTH-1:0] data_id,
|
||||
input data_eot,
|
||||
input response_eot,
|
||||
|
||||
input en,
|
||||
output [C_DATA_WIDTH-1:0] dout,
|
||||
output [DATA_WIDTH-1:0] dout,
|
||||
output valid,
|
||||
output underflow,
|
||||
|
||||
|
@ -60,11 +60,11 @@ module dmac_dest_fifo_inf (
|
|||
|
||||
output fifo_ready,
|
||||
input fifo_valid,
|
||||
input [C_DATA_WIDTH-1:0] fifo_data,
|
||||
input [DATA_WIDTH-1:0] fifo_data,
|
||||
|
||||
input req_valid,
|
||||
output req_ready,
|
||||
input [C_BEATS_PER_BURST_WIDTH-1:0] req_last_burst_length,
|
||||
input [BEATS_PER_BURST_WIDTH-1:0] req_last_burst_length,
|
||||
|
||||
output response_valid,
|
||||
input response_ready,
|
||||
|
@ -72,9 +72,9 @@ module dmac_dest_fifo_inf (
|
|||
output [1:0] response_resp
|
||||
);
|
||||
|
||||
parameter C_ID_WIDTH = 3;
|
||||
parameter C_DATA_WIDTH = 64;
|
||||
parameter C_BEATS_PER_BURST_WIDTH = 4;
|
||||
parameter ID_WIDTH = 3;
|
||||
parameter DATA_WIDTH = 64;
|
||||
parameter BEATS_PER_BURST_WIDTH = 4;
|
||||
|
||||
assign sync_id_ret = sync_id;
|
||||
wire data_enabled;
|
||||
|
@ -100,10 +100,10 @@ assign data_ready = en_d1 & (data_valid | ~enable);
|
|||
assign valid = en_d1 & data_valid & enable;
|
||||
|
||||
dmac_data_mover # (
|
||||
.C_ID_WIDTH(C_ID_WIDTH),
|
||||
.C_DATA_WIDTH(C_DATA_WIDTH),
|
||||
.C_BEATS_PER_BURST_WIDTH(C_BEATS_PER_BURST_WIDTH),
|
||||
.C_DISABLE_WAIT_FOR_ID(0)
|
||||
.ID_WIDTH(ID_WIDTH),
|
||||
.DATA_WIDTH(DATA_WIDTH),
|
||||
.BEATS_PER_BURST_WIDTH(BEATS_PER_BURST_WIDTH),
|
||||
.DISABLE_WAIT_FOR_ID(0)
|
||||
) i_data_mover (
|
||||
.clk(clk),
|
||||
.resetn(resetn),
|
||||
|
@ -131,7 +131,7 @@ dmac_data_mover # (
|
|||
);
|
||||
|
||||
dmac_response_generator # (
|
||||
.C_ID_WIDTH(C_ID_WIDTH)
|
||||
.ID_WIDTH(ID_WIDTH)
|
||||
) i_response_generator (
|
||||
.clk(clk),
|
||||
.resetn(resetn),
|
||||
|
|
|
@ -42,9 +42,9 @@ module dmac_request_arb (
|
|||
|
||||
input req_valid,
|
||||
output req_ready,
|
||||
input [31:C_BYTES_PER_BEAT_WIDTH_DEST] req_dest_address,
|
||||
input [31:C_BYTES_PER_BEAT_WIDTH_SRC] req_src_address,
|
||||
input [C_DMA_LENGTH_WIDTH-1:0] req_length,
|
||||
input [31:BYTES_PER_BEAT_WIDTH_DEST] req_dest_address,
|
||||
input [31:BYTES_PER_BEAT_WIDTH_SRC] req_src_address,
|
||||
input [DMA_LENGTH_WIDTH-1:0] req_length,
|
||||
input req_xlast,
|
||||
input req_sync_transfer_start,
|
||||
|
||||
|
@ -70,8 +70,8 @@ module dmac_request_arb (
|
|||
input m_axi_awready,
|
||||
|
||||
// Write data
|
||||
output [C_DMA_DATA_WIDTH_DEST-1:0] m_axi_wdata,
|
||||
output [(C_DMA_DATA_WIDTH_DEST/8)-1:0] m_axi_wstrb,
|
||||
output [DMA_DATA_WIDTH_DEST-1:0] m_axi_wdata,
|
||||
output [(DMA_DATA_WIDTH_DEST/8)-1:0] m_axi_wstrb,
|
||||
input m_axi_wready,
|
||||
output m_axi_wvalid,
|
||||
output m_axi_wlast,
|
||||
|
@ -92,7 +92,7 @@ module dmac_request_arb (
|
|||
output [ 3:0] m_axi_arcache,
|
||||
|
||||
// Read data and response
|
||||
input [C_DMA_DATA_WIDTH_SRC-1:0] m_axi_rdata,
|
||||
input [DMA_DATA_WIDTH_SRC-1:0] m_axi_rdata,
|
||||
output m_axi_rready,
|
||||
input m_axi_rvalid,
|
||||
input [ 1:0] m_axi_rresp,
|
||||
|
@ -101,7 +101,7 @@ module dmac_request_arb (
|
|||
input s_axis_aclk,
|
||||
output s_axis_ready,
|
||||
input s_axis_valid,
|
||||
input [C_DMA_DATA_WIDTH_SRC-1:0] s_axis_data,
|
||||
input [DMA_DATA_WIDTH_SRC-1:0] s_axis_data,
|
||||
input [0:0] s_axis_user,
|
||||
output s_axis_xfer_req,
|
||||
|
||||
|
@ -109,14 +109,14 @@ module dmac_request_arb (
|
|||
input m_axis_aclk,
|
||||
input m_axis_ready,
|
||||
output m_axis_valid,
|
||||
output [C_DMA_DATA_WIDTH_DEST-1:0] m_axis_data,
|
||||
output [DMA_DATA_WIDTH_DEST-1:0] m_axis_data,
|
||||
output m_axis_last,
|
||||
output m_axis_xfer_req,
|
||||
|
||||
// Input FIFO interface
|
||||
input fifo_wr_clk,
|
||||
input fifo_wr_en,
|
||||
input [C_DMA_DATA_WIDTH_SRC-1:0] fifo_wr_din,
|
||||
input [DMA_DATA_WIDTH_SRC-1:0] fifo_wr_din,
|
||||
output fifo_wr_overflow,
|
||||
input fifo_wr_sync,
|
||||
output fifo_wr_xfer_req,
|
||||
|
@ -125,69 +125,69 @@ module dmac_request_arb (
|
|||
input fifo_rd_clk,
|
||||
input fifo_rd_en,
|
||||
output fifo_rd_valid,
|
||||
output [C_DMA_DATA_WIDTH_DEST-1:0] fifo_rd_dout,
|
||||
output [DMA_DATA_WIDTH_DEST-1:0] fifo_rd_dout,
|
||||
output fifo_rd_underflow,
|
||||
output fifo_rd_xfer_req,
|
||||
|
||||
output [C_ID_WIDTH-1:0] dbg_dest_request_id,
|
||||
output [C_ID_WIDTH-1:0] dbg_dest_address_id,
|
||||
output [C_ID_WIDTH-1:0] dbg_dest_data_id,
|
||||
output [C_ID_WIDTH-1:0] dbg_dest_response_id,
|
||||
output [C_ID_WIDTH-1:0] dbg_src_request_id,
|
||||
output [C_ID_WIDTH-1:0] dbg_src_address_id,
|
||||
output [C_ID_WIDTH-1:0] dbg_src_data_id,
|
||||
output [C_ID_WIDTH-1:0] dbg_src_response_id,
|
||||
output [ID_WIDTH-1:0] dbg_dest_request_id,
|
||||
output [ID_WIDTH-1:0] dbg_dest_address_id,
|
||||
output [ID_WIDTH-1:0] dbg_dest_data_id,
|
||||
output [ID_WIDTH-1:0] dbg_dest_response_id,
|
||||
output [ID_WIDTH-1:0] dbg_src_request_id,
|
||||
output [ID_WIDTH-1:0] dbg_src_address_id,
|
||||
output [ID_WIDTH-1:0] dbg_src_data_id,
|
||||
output [ID_WIDTH-1:0] dbg_src_response_id,
|
||||
output [7:0] dbg_status
|
||||
);
|
||||
|
||||
parameter C_DMA_DATA_WIDTH_SRC = 64;
|
||||
parameter C_DMA_DATA_WIDTH_DEST = 64;
|
||||
parameter C_DMA_LENGTH_WIDTH = 24;
|
||||
parameter DMA_DATA_WIDTH_SRC = 64;
|
||||
parameter DMA_DATA_WIDTH_DEST = 64;
|
||||
parameter DMA_LENGTH_WIDTH = 24;
|
||||
|
||||
parameter C_BYTES_PER_BEAT_WIDTH_DEST = $clog2(C_DMA_DATA_WIDTH_DEST/8);
|
||||
parameter C_BYTES_PER_BEAT_WIDTH_SRC = $clog2(C_DMA_DATA_WIDTH_SRC/8);
|
||||
parameter BYTES_PER_BEAT_WIDTH_DEST = $clog2(DMA_DATA_WIDTH_DEST/8);
|
||||
parameter BYTES_PER_BEAT_WIDTH_SRC = $clog2(DMA_DATA_WIDTH_SRC/8);
|
||||
|
||||
parameter C_DMA_TYPE_DEST = DMA_TYPE_MM_AXI;
|
||||
parameter C_DMA_TYPE_SRC = DMA_TYPE_FIFO;
|
||||
parameter DMA_TYPE_DEST = DMA_TYPE_MM_AXI;
|
||||
parameter DMA_TYPE_SRC = DMA_TYPE_FIFO;
|
||||
|
||||
parameter C_CLKS_ASYNC_REQ_SRC = 1;
|
||||
parameter C_CLKS_ASYNC_SRC_DEST = 1;
|
||||
parameter C_CLKS_ASYNC_DEST_REQ = 1;
|
||||
parameter ASYNC_CLK_REQ_SRC = 1;
|
||||
parameter ASYNC_CLK_SRC_DEST = 1;
|
||||
parameter ASYNC_CLK_DEST_REQ = 1;
|
||||
|
||||
parameter C_AXI_SLICE_DEST = 0;
|
||||
parameter C_AXI_SLICE_SRC = 0;
|
||||
parameter AXI_SLICE_DEST = 0;
|
||||
parameter AXI_SLICE_SRC = 0;
|
||||
|
||||
parameter C_MAX_BYTES_PER_BURST = 128;
|
||||
parameter C_FIFO_SIZE = 4;
|
||||
parameter MAX_BYTES_PER_BURST = 128;
|
||||
parameter FIFO_SIZE = 4;
|
||||
|
||||
parameter C_ID_WIDTH = $clog2(C_FIFO_SIZE * 2);
|
||||
parameter ID_WIDTH = $clog2(FIFO_SIZE*2);
|
||||
|
||||
localparam DMA_TYPE_MM_AXI = 0;
|
||||
localparam DMA_TYPE_STREAM_AXI = 1;
|
||||
localparam DMA_TYPE_FIFO = 2;
|
||||
|
||||
localparam DMA_ADDR_WIDTH_DEST = 32 - C_BYTES_PER_BEAT_WIDTH_DEST;
|
||||
localparam DMA_ADDR_WIDTH_SRC = 32 - C_BYTES_PER_BEAT_WIDTH_SRC;
|
||||
localparam DMA_ADDRESS_WIDTH_DEST = 32 - BYTES_PER_BEAT_WIDTH_DEST;
|
||||
localparam DMA_ADDRESS_WIDTH_SRC = 32 - BYTES_PER_BEAT_WIDTH_SRC;
|
||||
|
||||
localparam DMA_DATA_WIDTH = C_DMA_DATA_WIDTH_SRC < C_DMA_DATA_WIDTH_DEST ?
|
||||
C_DMA_DATA_WIDTH_DEST : C_DMA_DATA_WIDTH_SRC;
|
||||
localparam DMA_DATA_WIDTH = DMA_DATA_WIDTH_SRC < DMA_DATA_WIDTH_DEST ?
|
||||
DMA_DATA_WIDTH_DEST : DMA_DATA_WIDTH_SRC;
|
||||
|
||||
|
||||
|
||||
// Bytes per burst is the same for both dest and src, but bytes per beat may
|
||||
// differ, so beats per burst may also differ
|
||||
|
||||
parameter BYTES_PER_BURST_WIDTH = $clog2(C_MAX_BYTES_PER_BURST);
|
||||
localparam BEATS_PER_BURST_WIDTH_SRC = BYTES_PER_BURST_WIDTH - C_BYTES_PER_BEAT_WIDTH_SRC;
|
||||
localparam BEATS_PER_BURST_WIDTH_DEST = BYTES_PER_BURST_WIDTH - C_BYTES_PER_BEAT_WIDTH_DEST;
|
||||
parameter BYTES_PER_BURST_WIDTH = $clog2(MAX_BYTES_PER_BURST);
|
||||
localparam BEATS_PER_BURST_WIDTH_SRC = BYTES_PER_BURST_WIDTH - BYTES_PER_BEAT_WIDTH_SRC;
|
||||
localparam BEATS_PER_BURST_WIDTH_DEST = BYTES_PER_BURST_WIDTH - BYTES_PER_BEAT_WIDTH_DEST;
|
||||
|
||||
localparam BURSTS_PER_TRANSFER_WIDTH = C_DMA_LENGTH_WIDTH - BYTES_PER_BURST_WIDTH;
|
||||
localparam BURSTS_PER_TRANSFER_WIDTH = DMA_LENGTH_WIDTH - BYTES_PER_BURST_WIDTH;
|
||||
|
||||
reg [0:2**C_ID_WIDTH-1] eot_mem;
|
||||
reg [0:2**ID_WIDTH-1] eot_mem;
|
||||
wire request_eot;
|
||||
|
||||
wire [C_ID_WIDTH-1:0] request_id;
|
||||
wire [C_ID_WIDTH-1:0] response_id;
|
||||
wire [ID_WIDTH-1:0] request_id;
|
||||
wire [ID_WIDTH-1:0] response_id;
|
||||
|
||||
wire enabled_src;
|
||||
wire enabled_dest;
|
||||
|
@ -217,9 +217,9 @@ wire dest_clk;
|
|||
wire dest_resetn;
|
||||
wire dest_req_valid;
|
||||
wire dest_req_ready;
|
||||
wire [DMA_ADDR_WIDTH_DEST-1:0] dest_req_address;
|
||||
wire [DMA_ADDRESS_WIDTH_DEST-1:0] dest_req_address;
|
||||
wire [BEATS_PER_BURST_WIDTH_DEST-1:0] dest_req_last_burst_length;
|
||||
wire [C_BYTES_PER_BEAT_WIDTH_DEST-1:0] dest_req_last_beat_bytes;
|
||||
wire [BYTES_PER_BEAT_WIDTH_DEST-1:0] dest_req_last_beat_bytes;
|
||||
wire dest_req_xlast;
|
||||
|
||||
wire dest_response_valid;
|
||||
|
@ -228,15 +228,15 @@ wire dest_response_empty;
|
|||
wire [1:0] dest_response_resp;
|
||||
wire dest_response_resp_eot;
|
||||
|
||||
wire [C_ID_WIDTH-1:0] dest_request_id;
|
||||
wire [C_ID_WIDTH-1:0] dest_response_id;
|
||||
wire [ID_WIDTH-1:0] dest_request_id;
|
||||
wire [ID_WIDTH-1:0] dest_response_id;
|
||||
|
||||
wire dest_valid;
|
||||
wire dest_ready;
|
||||
wire [C_DMA_DATA_WIDTH_DEST-1:0] dest_data;
|
||||
wire [DMA_DATA_WIDTH_DEST-1:0] dest_data;
|
||||
wire dest_fifo_repacked_valid;
|
||||
wire dest_fifo_repacked_ready;
|
||||
wire [C_DMA_DATA_WIDTH_DEST-1:0] dest_fifo_repacked_data;
|
||||
wire [DMA_DATA_WIDTH_DEST-1:0] dest_fifo_repacked_data;
|
||||
wire dest_fifo_valid;
|
||||
wire dest_fifo_ready;
|
||||
wire [DMA_DATA_WIDTH-1:0] dest_fifo_data;
|
||||
|
@ -245,7 +245,7 @@ wire src_clk;
|
|||
wire src_resetn;
|
||||
wire src_req_valid;
|
||||
wire src_req_ready;
|
||||
wire [DMA_ADDR_WIDTH_SRC-1:0] src_req_address;
|
||||
wire [DMA_ADDRESS_WIDTH_SRC-1:0] src_req_address;
|
||||
wire [BEATS_PER_BURST_WIDTH_SRC-1:0] src_req_last_burst_length;
|
||||
wire src_req_sync_transfer_start;
|
||||
|
||||
|
@ -254,15 +254,15 @@ wire src_response_ready;
|
|||
wire src_response_empty;
|
||||
wire [1:0] src_response_resp;
|
||||
|
||||
wire [C_ID_WIDTH-1:0] src_request_id;
|
||||
wire [C_ID_WIDTH-1:0] src_response_id;
|
||||
wire [ID_WIDTH-1:0] src_request_id;
|
||||
wire [ID_WIDTH-1:0] src_response_id;
|
||||
|
||||
wire src_valid;
|
||||
wire src_ready;
|
||||
wire [C_DMA_DATA_WIDTH_SRC-1:0] src_data;
|
||||
wire [DMA_DATA_WIDTH_SRC-1:0] src_data;
|
||||
wire src_fifo_valid;
|
||||
wire src_fifo_ready;
|
||||
wire [C_DMA_DATA_WIDTH_SRC-1:0] src_fifo_data;
|
||||
wire [DMA_DATA_WIDTH_SRC-1:0] src_fifo_data;
|
||||
wire src_fifo_repacked_valid;
|
||||
wire src_fifo_repacked_ready;
|
||||
wire [DMA_DATA_WIDTH-1:0] src_fifo_repacked_data;
|
||||
|
@ -339,11 +339,11 @@ begin
|
|||
end
|
||||
end
|
||||
|
||||
generate if (C_CLKS_ASYNC_REQ_SRC) begin
|
||||
generate if (ASYNC_CLK_REQ_SRC) begin
|
||||
|
||||
wire src_async_resetn_source;
|
||||
|
||||
if (C_DMA_TYPE_SRC == DMA_TYPE_MM_AXI) begin
|
||||
if (DMA_TYPE_SRC == DMA_TYPE_MM_AXI) begin
|
||||
assign src_async_resetn_source = m_src_axi_aresetn;
|
||||
end else begin
|
||||
assign src_async_resetn_source = req_aresetn;
|
||||
|
@ -363,10 +363,10 @@ end else begin
|
|||
assign src_resetn = req_aresetn;
|
||||
end endgenerate
|
||||
|
||||
generate if (C_CLKS_ASYNC_DEST_REQ) begin
|
||||
generate if (ASYNC_CLK_DEST_REQ) begin
|
||||
wire dest_async_resetn_source;
|
||||
|
||||
if (C_DMA_TYPE_DEST == DMA_TYPE_MM_AXI) begin
|
||||
if (DMA_TYPE_DEST == DMA_TYPE_MM_AXI) begin
|
||||
assign dest_async_resetn_source = m_dest_axi_aresetn;
|
||||
end else begin
|
||||
assign dest_async_resetn_source = req_aresetn;
|
||||
|
@ -386,12 +386,12 @@ end else begin
|
|||
assign dest_resetn = req_aresetn;
|
||||
end endgenerate
|
||||
|
||||
generate if (C_DMA_TYPE_DEST == DMA_TYPE_MM_AXI) begin
|
||||
generate if (DMA_TYPE_DEST == DMA_TYPE_MM_AXI) begin
|
||||
|
||||
assign dest_clk = m_dest_axi_aclk;
|
||||
|
||||
wire [C_ID_WIDTH-1:0] dest_data_id;
|
||||
wire [C_ID_WIDTH-1:0] dest_address_id;
|
||||
wire [ID_WIDTH-1:0] dest_data_id;
|
||||
wire [ID_WIDTH-1:0] dest_address_id;
|
||||
wire dest_address_eot = eot_mem[dest_address_id];
|
||||
wire dest_data_eot = eot_mem[dest_data_id];
|
||||
wire dest_response_eot = eot_mem[dest_response_id];
|
||||
|
@ -400,10 +400,10 @@ assign dbg_dest_address_id = dest_address_id;
|
|||
assign dbg_dest_data_id = dest_data_id;
|
||||
|
||||
dmac_dest_mm_axi #(
|
||||
.C_ID_WIDTH(C_ID_WIDTH),
|
||||
.C_DMA_DATA_WIDTH(C_DMA_DATA_WIDTH_DEST),
|
||||
.C_BEATS_PER_BURST_WIDTH(BEATS_PER_BURST_WIDTH_DEST),
|
||||
.C_BYTES_PER_BEAT_WIDTH(C_BYTES_PER_BEAT_WIDTH_DEST)
|
||||
.ID_WIDTH(ID_WIDTH),
|
||||
.DMA_DATA_WIDTH(DMA_DATA_WIDTH_DEST),
|
||||
.BEATS_PER_BURST_WIDTH(BEATS_PER_BURST_WIDTH_DEST),
|
||||
.BYTES_PER_BEAT_WIDTH(BYTES_PER_BEAT_WIDTH_DEST)
|
||||
) i_dest_dma_mm (
|
||||
.m_axi_aclk(m_dest_axi_aclk),
|
||||
.m_axi_aresetn(dest_resetn),
|
||||
|
@ -477,11 +477,11 @@ assign m_axi_bready = 1'b0;
|
|||
|
||||
end
|
||||
|
||||
if (C_DMA_TYPE_DEST == DMA_TYPE_STREAM_AXI) begin
|
||||
if (DMA_TYPE_DEST == DMA_TYPE_STREAM_AXI) begin
|
||||
|
||||
assign dest_clk = m_axis_aclk;
|
||||
|
||||
wire [C_ID_WIDTH-1:0] data_id;
|
||||
wire [ID_WIDTH-1:0] data_id;
|
||||
|
||||
wire data_eot = eot_mem[data_id];
|
||||
wire response_eot = eot_mem[dest_response_id];
|
||||
|
@ -490,9 +490,9 @@ assign dbg_dest_address_id = 'h00;
|
|||
assign dbg_dest_data_id = data_id;
|
||||
|
||||
dmac_dest_axi_stream #(
|
||||
.C_ID_WIDTH(C_ID_WIDTH),
|
||||
.C_S_AXIS_DATA_WIDTH(C_DMA_DATA_WIDTH_DEST),
|
||||
.C_BEATS_PER_BURST_WIDTH(BEATS_PER_BURST_WIDTH_DEST)
|
||||
.ID_WIDTH(ID_WIDTH),
|
||||
.S_AXIS_DATA_WIDTH(DMA_DATA_WIDTH_DEST),
|
||||
.BEATS_PER_BURST_WIDTH(BEATS_PER_BURST_WIDTH_DEST)
|
||||
) i_dest_dma_stream (
|
||||
.s_axis_aclk(m_axis_aclk),
|
||||
.s_axis_aresetn(dest_resetn),
|
||||
|
@ -537,11 +537,11 @@ assign m_axis_data = 'h00;
|
|||
|
||||
end
|
||||
|
||||
if (C_DMA_TYPE_DEST == DMA_TYPE_FIFO) begin
|
||||
if (DMA_TYPE_DEST == DMA_TYPE_FIFO) begin
|
||||
|
||||
assign dest_clk = fifo_rd_clk;
|
||||
|
||||
wire [C_ID_WIDTH-1:0] data_id;
|
||||
wire [ID_WIDTH-1:0] data_id;
|
||||
|
||||
wire data_eot = eot_mem[data_id];
|
||||
wire response_eot = eot_mem[dest_response_id];
|
||||
|
@ -550,9 +550,9 @@ assign dbg_dest_address_id = 'h00;
|
|||
assign dbg_dest_data_id = data_id;
|
||||
|
||||
dmac_dest_fifo_inf #(
|
||||
.C_ID_WIDTH(C_ID_WIDTH),
|
||||
.C_DATA_WIDTH(C_DMA_DATA_WIDTH_DEST),
|
||||
.C_BEATS_PER_BURST_WIDTH(BEATS_PER_BURST_WIDTH_DEST)
|
||||
.ID_WIDTH(ID_WIDTH),
|
||||
.DATA_WIDTH(DMA_DATA_WIDTH_DEST),
|
||||
.BEATS_PER_BURST_WIDTH(BEATS_PER_BURST_WIDTH_DEST)
|
||||
) i_dest_dma_fifo (
|
||||
.clk(fifo_rd_clk),
|
||||
.resetn(dest_resetn),
|
||||
|
@ -597,12 +597,12 @@ assign fifo_rd_underflow = 1'b0;
|
|||
|
||||
end endgenerate
|
||||
|
||||
generate if (C_DMA_TYPE_SRC == DMA_TYPE_MM_AXI) begin
|
||||
generate if (DMA_TYPE_SRC == DMA_TYPE_MM_AXI) begin
|
||||
|
||||
assign src_clk = m_src_axi_aclk;
|
||||
|
||||
wire [C_ID_WIDTH-1:0] src_data_id;
|
||||
wire [C_ID_WIDTH-1:0] src_address_id;
|
||||
wire [ID_WIDTH-1:0] src_data_id;
|
||||
wire [ID_WIDTH-1:0] src_address_id;
|
||||
wire src_address_eot = eot_mem[src_address_id];
|
||||
wire src_data_eot = eot_mem[src_data_id];
|
||||
|
||||
|
@ -610,10 +610,10 @@ assign dbg_src_address_id = src_address_id;
|
|||
assign dbg_src_data_id = src_data_id;
|
||||
|
||||
dmac_src_mm_axi #(
|
||||
.C_ID_WIDTH(C_ID_WIDTH),
|
||||
.C_DMA_DATA_WIDTH(C_DMA_DATA_WIDTH_SRC),
|
||||
.C_BEATS_PER_BURST_WIDTH(BEATS_PER_BURST_WIDTH_SRC),
|
||||
.C_BYTES_PER_BEAT_WIDTH(C_BYTES_PER_BEAT_WIDTH_SRC)
|
||||
.ID_WIDTH(ID_WIDTH),
|
||||
.DMA_DATA_WIDTH(DMA_DATA_WIDTH_SRC),
|
||||
.BEATS_PER_BURST_WIDTH(BEATS_PER_BURST_WIDTH_SRC),
|
||||
.BYTES_PER_BEAT_WIDTH(BYTES_PER_BEAT_WIDTH_SRC)
|
||||
) i_src_dma_mm (
|
||||
.m_axi_aclk(m_src_axi_aclk),
|
||||
.m_axi_aresetn(src_resetn),
|
||||
|
@ -673,7 +673,7 @@ assign m_axi_rready = 1'b0;
|
|||
|
||||
end
|
||||
|
||||
if (C_DMA_TYPE_SRC == DMA_TYPE_STREAM_AXI) begin
|
||||
if (DMA_TYPE_SRC == DMA_TYPE_STREAM_AXI) begin
|
||||
|
||||
assign src_clk = s_axis_aclk;
|
||||
|
||||
|
@ -687,9 +687,9 @@ assign src_response_valid = 1'b0;
|
|||
assign src_response_resp = 2'b0;
|
||||
|
||||
dmac_src_axi_stream #(
|
||||
.C_ID_WIDTH(C_ID_WIDTH),
|
||||
.C_S_AXIS_DATA_WIDTH(C_DMA_DATA_WIDTH_SRC),
|
||||
.C_BEATS_PER_BURST_WIDTH(BEATS_PER_BURST_WIDTH_SRC)
|
||||
.ID_WIDTH(ID_WIDTH),
|
||||
.S_AXIS_DATA_WIDTH(DMA_DATA_WIDTH_SRC),
|
||||
.BEATS_PER_BURST_WIDTH(BEATS_PER_BURST_WIDTH_SRC)
|
||||
) i_src_dma_stream (
|
||||
.s_axis_aclk(s_axis_aclk),
|
||||
.s_axis_aresetn(src_resetn),
|
||||
|
@ -726,7 +726,7 @@ assign s_axis_ready = 1'b0;
|
|||
|
||||
end
|
||||
|
||||
if (C_DMA_TYPE_SRC == DMA_TYPE_FIFO) begin
|
||||
if (DMA_TYPE_SRC == DMA_TYPE_FIFO) begin
|
||||
|
||||
assign src_clk = fifo_wr_clk;
|
||||
|
||||
|
@ -740,9 +740,9 @@ assign src_response_valid = 1'b0;
|
|||
assign src_response_resp = 2'b0;
|
||||
|
||||
dmac_src_fifo_inf #(
|
||||
.C_ID_WIDTH(C_ID_WIDTH),
|
||||
.C_DATA_WIDTH(C_DMA_DATA_WIDTH_SRC),
|
||||
.C_BEATS_PER_BURST_WIDTH(BEATS_PER_BURST_WIDTH_SRC)
|
||||
.ID_WIDTH(ID_WIDTH),
|
||||
.DATA_WIDTH(DMA_DATA_WIDTH_SRC),
|
||||
.BEATS_PER_BURST_WIDTH(BEATS_PER_BURST_WIDTH_SRC)
|
||||
) i_src_dma_fifo (
|
||||
.clk(fifo_wr_clk),
|
||||
.resetn(src_resetn),
|
||||
|
@ -781,8 +781,8 @@ assign fifo_wr_xfer_req = 1'b0;
|
|||
end endgenerate
|
||||
|
||||
sync_bits #(
|
||||
.NUM_BITS(C_ID_WIDTH),
|
||||
.CLK_ASYNC(C_CLKS_ASYNC_REQ_SRC)
|
||||
.NUM_OF_BITS(ID_WIDTH),
|
||||
.ASYNC_CLK(ASYNC_CLK_REQ_SRC)
|
||||
) i_sync_src_request_id (
|
||||
.out_clk(src_clk),
|
||||
.out_resetn(src_resetn),
|
||||
|
@ -791,8 +791,8 @@ sync_bits #(
|
|||
);
|
||||
|
||||
sync_bits #(
|
||||
.NUM_BITS(C_ID_WIDTH),
|
||||
.CLK_ASYNC(C_CLKS_ASYNC_SRC_DEST)
|
||||
.NUM_OF_BITS(ID_WIDTH),
|
||||
.ASYNC_CLK(ASYNC_CLK_SRC_DEST)
|
||||
) i_sync_dest_request_id (
|
||||
.out_clk(dest_clk),
|
||||
.out_resetn(dest_resetn),
|
||||
|
@ -801,8 +801,8 @@ sync_bits #(
|
|||
);
|
||||
|
||||
sync_bits #(
|
||||
.NUM_BITS(C_ID_WIDTH),
|
||||
.CLK_ASYNC(C_CLKS_ASYNC_DEST_REQ)
|
||||
.NUM_OF_BITS(ID_WIDTH),
|
||||
.ASYNC_CLK(ASYNC_CLK_DEST_REQ)
|
||||
) i_sync_req_response_id (
|
||||
.out_clk(req_aclk),
|
||||
.out_resetn(req_aresetn),
|
||||
|
@ -811,9 +811,9 @@ sync_bits #(
|
|||
);
|
||||
|
||||
axi_register_slice #(
|
||||
.DATA_WIDTH(C_DMA_DATA_WIDTH_SRC),
|
||||
.FORWARD_REGISTERED(C_AXI_SLICE_SRC),
|
||||
.BACKWARD_REGISTERED(C_AXI_SLICE_SRC)
|
||||
.DATA_WIDTH(DMA_DATA_WIDTH_SRC),
|
||||
.FORWARD_REGISTERED(AXI_SLICE_SRC),
|
||||
.BACKWARD_REGISTERED(AXI_SLICE_SRC)
|
||||
) i_src_slice (
|
||||
.clk(src_clk),
|
||||
.resetn(src_resetn),
|
||||
|
@ -826,8 +826,8 @@ axi_register_slice #(
|
|||
);
|
||||
|
||||
util_axis_resize #(
|
||||
.C_S_DATA_WIDTH(C_DMA_DATA_WIDTH_SRC),
|
||||
.C_M_DATA_WIDTH(DMA_DATA_WIDTH)
|
||||
.SLAVE_DATA_WIDTH(DMA_DATA_WIDTH_SRC),
|
||||
.MASTER_DATA_WIDTH(DMA_DATA_WIDTH)
|
||||
) i_src_repack (
|
||||
.clk(src_clk),
|
||||
.resetn(src_resetn & src_enable),
|
||||
|
@ -840,9 +840,9 @@ util_axis_resize #(
|
|||
);
|
||||
|
||||
util_axis_fifo #(
|
||||
.C_DATA_WIDTH(DMA_DATA_WIDTH),
|
||||
.C_ADDRESS_WIDTH($clog2(C_MAX_BYTES_PER_BURST / (DMA_DATA_WIDTH / 8) * C_FIFO_SIZE)),
|
||||
.C_CLKS_ASYNC(C_CLKS_ASYNC_SRC_DEST)
|
||||
.DATA_WIDTH(DMA_DATA_WIDTH),
|
||||
.ADDRESS_WIDTH($clog2(MAX_BYTES_PER_BURST / (DMA_DATA_WIDTH / 8) * FIFO_SIZE)),
|
||||
.ASYNC_CLK(ASYNC_CLK_SRC_DEST)
|
||||
) i_fifo (
|
||||
.s_axis_aclk(src_clk),
|
||||
.s_axis_aresetn(src_resetn),
|
||||
|
@ -859,8 +859,8 @@ util_axis_fifo #(
|
|||
);
|
||||
|
||||
util_axis_resize #(
|
||||
.C_S_DATA_WIDTH(DMA_DATA_WIDTH),
|
||||
.C_M_DATA_WIDTH(C_DMA_DATA_WIDTH_DEST)
|
||||
.SLAVE_DATA_WIDTH(DMA_DATA_WIDTH),
|
||||
.MASTER_DATA_WIDTH(DMA_DATA_WIDTH_DEST)
|
||||
) i_dest_repack (
|
||||
.clk(dest_clk),
|
||||
.resetn(dest_resetn & dest_enable),
|
||||
|
@ -874,11 +874,11 @@ util_axis_resize #(
|
|||
|
||||
wire _dest_valid;
|
||||
wire _dest_ready;
|
||||
wire [C_DMA_DATA_WIDTH_DEST-1:0] _dest_data;
|
||||
wire [DMA_DATA_WIDTH_DEST-1:0] _dest_data;
|
||||
|
||||
axi_register_slice #(
|
||||
.DATA_WIDTH(C_DMA_DATA_WIDTH_DEST),
|
||||
.FORWARD_REGISTERED(C_AXI_SLICE_DEST)
|
||||
.DATA_WIDTH(DMA_DATA_WIDTH_DEST),
|
||||
.FORWARD_REGISTERED(AXI_SLICE_DEST)
|
||||
) i_dest_slice2 (
|
||||
.clk(dest_clk),
|
||||
.resetn(dest_resetn),
|
||||
|
@ -891,9 +891,9 @@ axi_register_slice #(
|
|||
);
|
||||
|
||||
axi_register_slice #(
|
||||
.DATA_WIDTH(C_DMA_DATA_WIDTH_DEST),
|
||||
.FORWARD_REGISTERED(C_AXI_SLICE_DEST),
|
||||
.BACKWARD_REGISTERED(C_AXI_SLICE_DEST)
|
||||
.DATA_WIDTH(DMA_DATA_WIDTH_DEST),
|
||||
.FORWARD_REGISTERED(AXI_SLICE_DEST),
|
||||
.BACKWARD_REGISTERED(AXI_SLICE_DEST)
|
||||
) i_dest_slice (
|
||||
.clk(dest_clk),
|
||||
.resetn(dest_resetn),
|
||||
|
@ -926,7 +926,7 @@ end
|
|||
assign req_ready = _req_ready & _req_valid & enable;
|
||||
|
||||
splitter #(
|
||||
.C_NUM_M(3)
|
||||
.NUM_M(3)
|
||||
) i_req_splitter (
|
||||
.clk(req_aclk),
|
||||
.resetn(req_aresetn),
|
||||
|
@ -945,9 +945,9 @@ splitter #(
|
|||
);
|
||||
|
||||
util_axis_fifo #(
|
||||
.C_DATA_WIDTH(DMA_ADDR_WIDTH_DEST + BEATS_PER_BURST_WIDTH_DEST + C_BYTES_PER_BEAT_WIDTH_DEST + 1),
|
||||
.C_ADDRESS_WIDTH(0),
|
||||
.C_CLKS_ASYNC(C_CLKS_ASYNC_DEST_REQ)
|
||||
.DATA_WIDTH(DMA_ADDRESS_WIDTH_DEST + BEATS_PER_BURST_WIDTH_DEST + BYTES_PER_BEAT_WIDTH_DEST + 1),
|
||||
.ADDRESS_WIDTH(0),
|
||||
.ASYNC_CLK(ASYNC_CLK_DEST_REQ)
|
||||
) i_dest_req_fifo (
|
||||
.s_axis_aclk(req_aclk),
|
||||
.s_axis_aresetn(req_aresetn),
|
||||
|
@ -956,8 +956,8 @@ util_axis_fifo #(
|
|||
.s_axis_empty(req_dest_empty),
|
||||
.s_axis_data({
|
||||
req_dest_address,
|
||||
req_length[BYTES_PER_BURST_WIDTH-1:C_BYTES_PER_BEAT_WIDTH_DEST],
|
||||
req_length[C_BYTES_PER_BEAT_WIDTH_DEST-1:0],
|
||||
req_length[BYTES_PER_BURST_WIDTH-1:BYTES_PER_BEAT_WIDTH_DEST],
|
||||
req_length[BYTES_PER_BEAT_WIDTH_DEST-1:0],
|
||||
req_xlast
|
||||
}),
|
||||
.m_axis_aclk(dest_clk),
|
||||
|
@ -973,9 +973,9 @@ util_axis_fifo #(
|
|||
);
|
||||
|
||||
util_axis_fifo #(
|
||||
.C_DATA_WIDTH(DMA_ADDR_WIDTH_SRC + BEATS_PER_BURST_WIDTH_SRC + 1),
|
||||
.C_ADDRESS_WIDTH(0),
|
||||
.C_CLKS_ASYNC(C_CLKS_ASYNC_REQ_SRC)
|
||||
.DATA_WIDTH(DMA_ADDRESS_WIDTH_SRC + BEATS_PER_BURST_WIDTH_SRC + 1),
|
||||
.ADDRESS_WIDTH(0),
|
||||
.ASYNC_CLK(ASYNC_CLK_REQ_SRC)
|
||||
) i_src_req_fifo (
|
||||
.s_axis_aclk(req_aclk),
|
||||
.s_axis_aresetn(req_aresetn),
|
||||
|
@ -984,7 +984,7 @@ util_axis_fifo #(
|
|||
.s_axis_empty(req_src_empty),
|
||||
.s_axis_data({
|
||||
req_src_address,
|
||||
req_length[BYTES_PER_BURST_WIDTH-1:C_BYTES_PER_BEAT_WIDTH_SRC],
|
||||
req_length[BYTES_PER_BURST_WIDTH-1:BYTES_PER_BEAT_WIDTH_SRC],
|
||||
req_sync_transfer_start
|
||||
}),
|
||||
.m_axis_aclk(src_clk),
|
||||
|
@ -999,9 +999,9 @@ util_axis_fifo #(
|
|||
);
|
||||
|
||||
util_axis_fifo #(
|
||||
.C_DATA_WIDTH(3),
|
||||
.C_ADDRESS_WIDTH(0),
|
||||
.C_CLKS_ASYNC(C_CLKS_ASYNC_DEST_REQ)
|
||||
.DATA_WIDTH(3),
|
||||
.ADDRESS_WIDTH(0),
|
||||
.ASYNC_CLK(ASYNC_CLK_DEST_REQ)
|
||||
) i_dest_response_fifo (
|
||||
.s_axis_aclk(dest_clk),
|
||||
.s_axis_aresetn(dest_resetn),
|
||||
|
@ -1018,9 +1018,9 @@ util_axis_fifo #(
|
|||
|
||||
/* Unused for now
|
||||
util_axis_fifo #(
|
||||
.C_DATA_WIDTH(2),
|
||||
.C_ADDRESS_WIDTH(0),
|
||||
.C_CLKS_ASYNC(C_CLKS_ASYNC_REQ_SRC)
|
||||
.DATA_WIDTH(2),
|
||||
.ADDRESS_WIDTH(0),
|
||||
.ASYNC_CLK(ASYNC_CLK_REQ_SRC)
|
||||
) i_src_response_fifo (
|
||||
.s_axis_aclk(src_clk),
|
||||
.s_axis_aresetn(src_resetn),
|
||||
|
@ -1038,8 +1038,8 @@ assign src_response_empty = 1'b1;
|
|||
assign src_response_ready = 1'b1;
|
||||
|
||||
dmac_request_generator #(
|
||||
.C_ID_WIDTH(C_ID_WIDTH),
|
||||
.C_BURSTS_PER_TRANSFER_WIDTH(BURSTS_PER_TRANSFER_WIDTH)
|
||||
.ID_WIDTH(ID_WIDTH),
|
||||
.BURSTS_PER_TRANSFER_WIDTH(BURSTS_PER_TRANSFER_WIDTH)
|
||||
) i_req_gen (
|
||||
.req_aclk(req_aclk),
|
||||
.req_aresetn(req_aresetn),
|
||||
|
@ -1049,7 +1049,7 @@ dmac_request_generator #(
|
|||
|
||||
.req_valid(req_gen_valid),
|
||||
.req_ready(req_gen_ready),
|
||||
.req_burst_count(req_length[C_DMA_LENGTH_WIDTH-1:BYTES_PER_BURST_WIDTH]),
|
||||
.req_burst_count(req_length[DMA_LENGTH_WIDTH-1:BYTES_PER_BURST_WIDTH]),
|
||||
|
||||
.enable(do_enable),
|
||||
.pause(pause),
|
||||
|
@ -1058,8 +1058,8 @@ dmac_request_generator #(
|
|||
);
|
||||
|
||||
sync_bits #(
|
||||
.NUM_BITS(3),
|
||||
.CLK_ASYNC(C_CLKS_ASYNC_DEST_REQ)
|
||||
.NUM_OF_BITS(3),
|
||||
.ASYNC_CLK(ASYNC_CLK_DEST_REQ)
|
||||
) i_sync_control_dest (
|
||||
.out_clk(dest_clk),
|
||||
.out_resetn(dest_resetn),
|
||||
|
@ -1068,8 +1068,8 @@ sync_bits #(
|
|||
);
|
||||
|
||||
sync_bits #(
|
||||
.NUM_BITS(2),
|
||||
.CLK_ASYNC(C_CLKS_ASYNC_DEST_REQ)
|
||||
.NUM_OF_BITS(2),
|
||||
.ASYNC_CLK(ASYNC_CLK_DEST_REQ)
|
||||
) i_sync_status_dest (
|
||||
.out_clk(req_aclk),
|
||||
.out_resetn(req_aresetn),
|
||||
|
@ -1078,8 +1078,8 @@ sync_bits #(
|
|||
);
|
||||
|
||||
sync_bits #(
|
||||
.NUM_BITS(3),
|
||||
.CLK_ASYNC(C_CLKS_ASYNC_REQ_SRC)
|
||||
.NUM_OF_BITS(3),
|
||||
.ASYNC_CLK(ASYNC_CLK_REQ_SRC)
|
||||
) i_sync_control_src (
|
||||
.out_clk(src_clk),
|
||||
.out_resetn(src_resetn),
|
||||
|
@ -1088,8 +1088,8 @@ sync_bits #(
|
|||
);
|
||||
|
||||
sync_bits #(
|
||||
.NUM_BITS(3),
|
||||
.CLK_ASYNC(C_CLKS_ASYNC_REQ_SRC)
|
||||
.NUM_OF_BITS(3),
|
||||
.ASYNC_CLK(ASYNC_CLK_REQ_SRC)
|
||||
) i_sync_status_src (
|
||||
.out_clk(req_aclk),
|
||||
.out_resetn(req_aresetn),
|
||||
|
|
|
@ -40,12 +40,12 @@ module dmac_request_generator (
|
|||
input req_aclk,
|
||||
input req_aresetn,
|
||||
|
||||
output [C_ID_WIDTH-1:0] request_id,
|
||||
input [C_ID_WIDTH-1:0] response_id,
|
||||
output [ID_WIDTH-1:0] request_id,
|
||||
input [ID_WIDTH-1:0] response_id,
|
||||
|
||||
input req_valid,
|
||||
output reg req_ready,
|
||||
input [C_BURSTS_PER_TRANSFER_WIDTH-1:0] req_burst_count,
|
||||
input [BURSTS_PER_TRANSFER_WIDTH-1:0] req_burst_count,
|
||||
|
||||
input enable,
|
||||
input pause,
|
||||
|
@ -53,8 +53,8 @@ module dmac_request_generator (
|
|||
output eot
|
||||
);
|
||||
|
||||
parameter C_ID_WIDTH = 3;
|
||||
parameter C_BURSTS_PER_TRANSFER_WIDTH = 17;
|
||||
parameter ID_WIDTH = 3;
|
||||
parameter BURSTS_PER_TRANSFER_WIDTH = 17;
|
||||
|
||||
`include "inc_id.h"
|
||||
|
||||
|
@ -65,9 +65,9 @@ parameter C_BURSTS_PER_TRANSFER_WIDTH = 17;
|
|||
* care that only the requested ammount of bytes is transfered.
|
||||
*/
|
||||
|
||||
reg [C_BURSTS_PER_TRANSFER_WIDTH-1:0] burst_count = 'h00;
|
||||
reg [C_ID_WIDTH-1:0] id;
|
||||
wire [C_ID_WIDTH-1:0] id_next = inc_id(id);
|
||||
reg [BURSTS_PER_TRANSFER_WIDTH-1:0] burst_count = 'h00;
|
||||
reg [ID_WIDTH-1:0] id;
|
||||
wire [ID_WIDTH-1:0] id_next = inc_id(id);
|
||||
|
||||
assign eot = burst_count == 'h00;
|
||||
assign request_id = id;
|
||||
|
|
|
@ -43,8 +43,8 @@ module dmac_response_generator (
|
|||
input enable,
|
||||
output reg enabled,
|
||||
|
||||
input [C_ID_WIDTH-1:0] request_id,
|
||||
output reg [C_ID_WIDTH-1:0] response_id,
|
||||
input [ID_WIDTH-1:0] request_id,
|
||||
output reg [ID_WIDTH-1:0] response_id,
|
||||
input sync_id,
|
||||
|
||||
input eot,
|
||||
|
@ -55,7 +55,7 @@ module dmac_response_generator (
|
|||
output [1:0] resp_resp
|
||||
);
|
||||
|
||||
parameter C_ID_WIDTH = 3;
|
||||
parameter ID_WIDTH = 3;
|
||||
|
||||
`include "inc_id.h"
|
||||
`include "resp.h"
|
||||
|
|
|
@ -44,8 +44,8 @@ module dmac_response_handler (
|
|||
output bready,
|
||||
input [1:0] bresp,
|
||||
|
||||
output reg [C_ID_WIDTH-1:0] id,
|
||||
input [C_ID_WIDTH-1:0] request_id,
|
||||
output reg [ID_WIDTH-1:0] id,
|
||||
input [ID_WIDTH-1:0] request_id,
|
||||
input sync_id,
|
||||
|
||||
input enable,
|
||||
|
@ -59,7 +59,7 @@ module dmac_response_handler (
|
|||
output [1:0] resp_resp
|
||||
);
|
||||
|
||||
parameter C_ID_WIDTH = 3;
|
||||
parameter ID_WIDTH = 3;
|
||||
|
||||
`include "resp.h"
|
||||
`include "inc_id.h"
|
||||
|
|
|
@ -43,24 +43,24 @@ module splitter (
|
|||
input s_valid,
|
||||
output s_ready,
|
||||
|
||||
output [C_NUM_M-1:0] m_valid,
|
||||
input [C_NUM_M-1:0] m_ready
|
||||
output [NUM_M-1:0] m_valid,
|
||||
input [NUM_M-1:0] m_ready
|
||||
);
|
||||
|
||||
parameter C_NUM_M = 2;
|
||||
parameter NUM_M = 2;
|
||||
|
||||
reg [C_NUM_M-1:0] acked;
|
||||
reg [NUM_M-1:0] acked;
|
||||
|
||||
assign s_ready = &(m_ready | acked);
|
||||
assign m_valid = s_valid ? ~acked : {C_NUM_M{1'b0}};
|
||||
assign m_valid = s_valid ? ~acked : {NUM_M{1'b0}};
|
||||
|
||||
always @(posedge clk)
|
||||
begin
|
||||
if (resetn == 1'b0) begin
|
||||
acked <= {C_NUM_M{1'b0}};
|
||||
acked <= {NUM_M{1'b0}};
|
||||
end else begin
|
||||
if (s_valid & s_ready)
|
||||
acked <= {C_NUM_M{1'b0}};
|
||||
acked <= {NUM_M{1'b0}};
|
||||
else
|
||||
acked <= acked | (m_ready & m_valid);
|
||||
end
|
||||
|
|
|
@ -42,8 +42,8 @@ module dmac_src_mm_axi (
|
|||
|
||||
input req_valid,
|
||||
output req_ready,
|
||||
input [31:C_BYTES_PER_BEAT_WIDTH] req_address,
|
||||
input [C_BEATS_PER_BURST_WIDTH-1:0] req_last_burst_length,
|
||||
input [31:BYTES_PER_BEAT_WIDTH] req_address,
|
||||
input [BEATS_PER_BURST_WIDTH-1:0] req_last_burst_length,
|
||||
|
||||
input enable,
|
||||
output enabled,
|
||||
|
@ -55,17 +55,17 @@ module dmac_src_mm_axi (
|
|||
input response_ready,
|
||||
output [1:0] response_resp,
|
||||
|
||||
input [C_ID_WIDTH-1:0] request_id,
|
||||
output [C_ID_WIDTH-1:0] response_id,
|
||||
input [ID_WIDTH-1:0] request_id,
|
||||
output [ID_WIDTH-1:0] response_id,
|
||||
|
||||
output [C_ID_WIDTH-1:0] data_id,
|
||||
output [C_ID_WIDTH-1:0] address_id,
|
||||
output [ID_WIDTH-1:0] data_id,
|
||||
output [ID_WIDTH-1:0] address_id,
|
||||
input data_eot,
|
||||
input address_eot,
|
||||
|
||||
output fifo_valid,
|
||||
input fifo_ready,
|
||||
output [C_DMA_DATA_WIDTH-1:0] fifo_data,
|
||||
output [DMA_DATA_WIDTH-1:0] fifo_data,
|
||||
|
||||
// Read address
|
||||
input m_axi_arready,
|
||||
|
@ -78,16 +78,16 @@ module dmac_src_mm_axi (
|
|||
output [ 3:0] m_axi_arcache,
|
||||
|
||||
// Read data and response
|
||||
input [C_DMA_DATA_WIDTH-1:0] m_axi_rdata,
|
||||
input [DMA_DATA_WIDTH-1:0] m_axi_rdata,
|
||||
output m_axi_rready,
|
||||
input m_axi_rvalid,
|
||||
input [ 1:0] m_axi_rresp
|
||||
);
|
||||
|
||||
parameter C_ID_WIDTH = 3;
|
||||
parameter C_DMA_DATA_WIDTH = 64;
|
||||
parameter C_BYTES_PER_BEAT_WIDTH = 3;
|
||||
parameter C_BEATS_PER_BURST_WIDTH = 4;
|
||||
parameter ID_WIDTH = 3;
|
||||
parameter DMA_DATA_WIDTH = 64;
|
||||
parameter BYTES_PER_BEAT_WIDTH = 3;
|
||||
parameter BEATS_PER_BURST_WIDTH = 4;
|
||||
|
||||
`include "resp.h"
|
||||
|
||||
|
@ -105,7 +105,7 @@ assign response_valid = 1'b0;
|
|||
assign response_resp = RESP_OKAY;
|
||||
|
||||
splitter #(
|
||||
.C_NUM_M(2)
|
||||
.NUM_M(2)
|
||||
) i_req_splitter (
|
||||
.clk(m_axi_aclk),
|
||||
.resetn(m_axi_aresetn),
|
||||
|
@ -122,10 +122,10 @@ splitter #(
|
|||
);
|
||||
|
||||
dmac_address_generator #(
|
||||
.C_ID_WIDTH(C_ID_WIDTH),
|
||||
.C_BEATS_PER_BURST_WIDTH(C_BEATS_PER_BURST_WIDTH),
|
||||
.C_BYTES_PER_BEAT_WIDTH(C_BYTES_PER_BEAT_WIDTH),
|
||||
.C_DMA_DATA_WIDTH(C_DMA_DATA_WIDTH)
|
||||
.ID_WIDTH(ID_WIDTH),
|
||||
.BEATS_PER_BURST_WIDTH(BEATS_PER_BURST_WIDTH),
|
||||
.BYTES_PER_BEAT_WIDTH(BYTES_PER_BEAT_WIDTH),
|
||||
.DMA_DATA_WIDTH(DMA_DATA_WIDTH)
|
||||
) i_addr_gen (
|
||||
.clk(m_axi_aclk),
|
||||
.resetn(m_axi_aresetn),
|
||||
|
@ -156,9 +156,9 @@ dmac_address_generator #(
|
|||
);
|
||||
|
||||
dmac_data_mover # (
|
||||
.C_ID_WIDTH(C_ID_WIDTH),
|
||||
.C_DATA_WIDTH(C_DMA_DATA_WIDTH),
|
||||
.C_BEATS_PER_BURST_WIDTH(C_BEATS_PER_BURST_WIDTH)
|
||||
.ID_WIDTH(ID_WIDTH),
|
||||
.DATA_WIDTH(DMA_DATA_WIDTH),
|
||||
.BEATS_PER_BURST_WIDTH(BEATS_PER_BURST_WIDTH)
|
||||
) i_data_mover (
|
||||
.clk(m_axi_aclk),
|
||||
.resetn(m_axi_aresetn),
|
||||
|
|
|
@ -45,30 +45,30 @@ module dmac_src_axi_stream (
|
|||
input sync_id,
|
||||
output sync_id_ret,
|
||||
|
||||
input [C_ID_WIDTH-1:0] request_id,
|
||||
output [C_ID_WIDTH-1:0] response_id,
|
||||
input [ID_WIDTH-1:0] request_id,
|
||||
output [ID_WIDTH-1:0] response_id,
|
||||
input eot,
|
||||
|
||||
output s_axis_ready,
|
||||
input s_axis_valid,
|
||||
input [C_S_AXIS_DATA_WIDTH-1:0] s_axis_data,
|
||||
input [S_AXIS_DATA_WIDTH-1:0] s_axis_data,
|
||||
input [0:0] s_axis_user,
|
||||
output s_axis_xfer_req,
|
||||
|
||||
input fifo_ready,
|
||||
output fifo_valid,
|
||||
output [C_S_AXIS_DATA_WIDTH-1:0] fifo_data,
|
||||
output [S_AXIS_DATA_WIDTH-1:0] fifo_data,
|
||||
|
||||
input req_valid,
|
||||
output req_ready,
|
||||
input [C_BEATS_PER_BURST_WIDTH-1:0] req_last_burst_length,
|
||||
input [BEATS_PER_BURST_WIDTH-1:0] req_last_burst_length,
|
||||
input req_sync_transfer_start
|
||||
);
|
||||
|
||||
parameter C_ID_WIDTH = 3;
|
||||
parameter C_S_AXIS_DATA_WIDTH = 64;
|
||||
parameter C_LENGTH_WIDTH = 24;
|
||||
parameter C_BEATS_PER_BURST_WIDTH = 4;
|
||||
parameter ID_WIDTH = 3;
|
||||
parameter S_AXIS_DATA_WIDTH = 64;
|
||||
parameter LENGTH_WIDTH = 24;
|
||||
parameter BEATS_PER_BURST_WIDTH = 4;
|
||||
|
||||
reg needs_sync = 1'b0;
|
||||
wire sync = s_axis_user[0];
|
||||
|
@ -90,10 +90,10 @@ begin
|
|||
end
|
||||
|
||||
dmac_data_mover # (
|
||||
.C_ID_WIDTH(C_ID_WIDTH),
|
||||
.C_DATA_WIDTH(C_S_AXIS_DATA_WIDTH),
|
||||
.C_DISABLE_WAIT_FOR_ID(0),
|
||||
.C_BEATS_PER_BURST_WIDTH(C_BEATS_PER_BURST_WIDTH)
|
||||
.ID_WIDTH(ID_WIDTH),
|
||||
.DATA_WIDTH(S_AXIS_DATA_WIDTH),
|
||||
.DISABLE_WAIT_FOR_ID(0),
|
||||
.BEATS_PER_BURST_WIDTH(BEATS_PER_BURST_WIDTH)
|
||||
) i_data_mover (
|
||||
.clk(s_axis_aclk),
|
||||
.resetn(s_axis_aresetn),
|
||||
|
|
|
@ -45,29 +45,29 @@ module dmac_src_fifo_inf (
|
|||
input sync_id,
|
||||
output sync_id_ret,
|
||||
|
||||
input [C_ID_WIDTH-1:0] request_id,
|
||||
output [C_ID_WIDTH-1:0] response_id,
|
||||
input [ID_WIDTH-1:0] request_id,
|
||||
output [ID_WIDTH-1:0] response_id,
|
||||
input eot,
|
||||
|
||||
input en,
|
||||
input [C_DATA_WIDTH-1:0] din,
|
||||
input [DATA_WIDTH-1:0] din,
|
||||
output reg overflow,
|
||||
input sync,
|
||||
output xfer_req,
|
||||
|
||||
input fifo_ready,
|
||||
output fifo_valid,
|
||||
output [C_DATA_WIDTH-1:0] fifo_data,
|
||||
output [DATA_WIDTH-1:0] fifo_data,
|
||||
|
||||
input req_valid,
|
||||
output req_ready,
|
||||
input [C_BEATS_PER_BURST_WIDTH-1:0] req_last_burst_length,
|
||||
input [BEATS_PER_BURST_WIDTH-1:0] req_last_burst_length,
|
||||
input req_sync_transfer_start
|
||||
);
|
||||
|
||||
parameter C_ID_WIDTH = 3;
|
||||
parameter C_DATA_WIDTH = 64;
|
||||
parameter C_BEATS_PER_BURST_WIDTH = 4;
|
||||
parameter ID_WIDTH = 3;
|
||||
parameter DATA_WIDTH = 64;
|
||||
parameter BEATS_PER_BURST_WIDTH = 4;
|
||||
|
||||
wire ready;
|
||||
|
||||
|
@ -104,10 +104,10 @@ end
|
|||
assign sync_id_ret = sync_id;
|
||||
|
||||
dmac_data_mover # (
|
||||
.C_ID_WIDTH(C_ID_WIDTH),
|
||||
.C_DATA_WIDTH(C_DATA_WIDTH),
|
||||
.C_DISABLE_WAIT_FOR_ID(0),
|
||||
.C_BEATS_PER_BURST_WIDTH(C_BEATS_PER_BURST_WIDTH)
|
||||
.ID_WIDTH(ID_WIDTH),
|
||||
.DATA_WIDTH(DATA_WIDTH),
|
||||
.DISABLE_WAIT_FOR_ID(0),
|
||||
.BEATS_PER_BURST_WIDTH(BEATS_PER_BURST_WIDTH)
|
||||
) i_data_mover (
|
||||
.clk(clk),
|
||||
.resetn(resetn),
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
module axi_generic_adc (
|
||||
input adc_clk,
|
||||
output [NUM_CHANNELS-1:0] adc_enable,
|
||||
output [NUM_OF_CHANNELS-1:0] adc_enable,
|
||||
input adc_dovf,
|
||||
|
||||
input s_axi_aclk,
|
||||
|
@ -24,8 +24,8 @@ module axi_generic_adc (
|
|||
input s_axi_rready
|
||||
);
|
||||
|
||||
parameter NUM_CHANNELS = 2;
|
||||
parameter PCORE_ID = 0;
|
||||
parameter NUM_OF_CHANNELS = 2;
|
||||
parameter ID = 0;
|
||||
|
||||
reg [31:0] up_rdata = 'd0;
|
||||
reg up_rack = 'd0;
|
||||
|
@ -43,9 +43,9 @@ wire up_sel_s;
|
|||
wire up_wr_s;
|
||||
wire [13:0] up_addr_s;
|
||||
wire [31:0] up_wdata_s;
|
||||
wire [31:0] up_rdata_s[0:NUM_CHANNELS];
|
||||
wire up_rack_s[0:NUM_CHANNELS];
|
||||
wire up_wack_s[0:NUM_CHANNELS];
|
||||
wire [31:0] up_rdata_s[0:NUM_OF_CHANNELS];
|
||||
wire up_rack_s[0:NUM_OF_CHANNELS];
|
||||
wire up_wack_s[0:NUM_OF_CHANNELS];
|
||||
|
||||
reg [31:0] up_rdata_r;
|
||||
reg up_rack_r;
|
||||
|
@ -60,7 +60,7 @@ begin
|
|||
up_rdata_r = 'h00;
|
||||
up_rack_r = 'h00;
|
||||
up_wack_r = 'h00;
|
||||
for (j = 0; j <= NUM_CHANNELS; j=j+1) begin
|
||||
for (j = 0; j <= NUM_OF_CHANNELS; j=j+1) begin
|
||||
up_rack_r = up_rack_r | up_rack_s[j];
|
||||
up_wack_r = up_wack_r | up_wack_s[j];
|
||||
up_rdata_r = up_rdata_r | up_rdata_s[j];
|
||||
|
@ -79,7 +79,7 @@ always @(negedge up_rstn or posedge up_clk) begin
|
|||
end
|
||||
end
|
||||
|
||||
up_adc_common #(.PCORE_ID(PCORE_ID)) i_up_adc_common (
|
||||
up_adc_common #(.ID(ID)) i_up_adc_common (
|
||||
.mmcm_rst (),
|
||||
.adc_clk (adc_clk),
|
||||
.adc_rst (adc_rst),
|
||||
|
@ -110,11 +110,11 @@ up_adc_common #(.PCORE_ID(PCORE_ID)) i_up_adc_common (
|
|||
.up_wreq (up_wreq_s),
|
||||
.up_waddr (up_waddr_s),
|
||||
.up_wdata (up_wdata_s),
|
||||
.up_wack (up_wack_s[NUM_CHANNELS]),
|
||||
.up_wack (up_wack_s[NUM_OF_CHANNELS]),
|
||||
.up_rreq (up_rreq_s),
|
||||
.up_raddr (up_raddr_s),
|
||||
.up_rdata (up_rdata_s[NUM_CHANNELS]),
|
||||
.up_rack (up_rack_s[NUM_CHANNELS]));
|
||||
.up_rdata (up_rdata_s[NUM_OF_CHANNELS]),
|
||||
.up_rack (up_rack_s[NUM_OF_CHANNELS]));
|
||||
|
||||
// up bus interface
|
||||
|
||||
|
@ -150,8 +150,8 @@ up_axi i_up_axi (
|
|||
generate
|
||||
genvar i;
|
||||
|
||||
for (i = 0; i < NUM_CHANNELS; i=i+1) begin
|
||||
up_adc_channel #(.PCORE_ADC_CHID(i)) i_up_adc_channel (
|
||||
for (i = 0; i < NUM_OF_CHANNELS; i=i+1) begin
|
||||
up_adc_channel #(.ADC_CHANNEL_ID(i)) i_up_adc_channel (
|
||||
.adc_clk (adc_clk),
|
||||
.adc_rst (adc_rst),
|
||||
.adc_enable (adc_enable[i]),
|
||||
|
|
|
@ -77,7 +77,7 @@ module axi_hdmi_rx (
|
|||
|
||||
// parameters
|
||||
|
||||
parameter PCORE_ID = 0;
|
||||
parameter ID = 0;
|
||||
|
||||
// hdmi interface
|
||||
|
||||
|
|
|
@ -321,7 +321,7 @@ module axi_hdmi_rx_core (
|
|||
|
||||
// super sampling, 422 to 444
|
||||
|
||||
ad_ss_422to444 #(.Cr_Cb_N(0), .DELAY_DATA_WIDTH(2)) i_ss (
|
||||
ad_ss_422to444 #(.CR_CB_N(0), .DELAY_DATA_WIDTH(2)) i_ss (
|
||||
.clk (hdmi_clk),
|
||||
.s422_de (hdmi_de_422),
|
||||
.s422_sync ({hdmi_sof_422, hdmi_de_422}),
|
||||
|
|
|
@ -101,10 +101,10 @@ module axi_hdmi_tx (
|
|||
|
||||
// parameters
|
||||
|
||||
parameter PCORE_ID = 0;
|
||||
parameter PCORE_Cr_Cb_N = 0;
|
||||
parameter PCORE_DEVICE_TYPE = 0;
|
||||
parameter PCORE_EMBEDDED_SYNC = 0;
|
||||
parameter ID = 0;
|
||||
parameter CR_CB_N = 0;
|
||||
parameter DEVICE_TYPE = 0;
|
||||
parameter EMBEDDED_SYNC = 0;
|
||||
|
||||
localparam XILINX_7SERIES = 0;
|
||||
localparam XILINX_ULTRASCALE = 1;
|
||||
|
@ -326,8 +326,8 @@ module axi_hdmi_tx (
|
|||
// hdmi interface
|
||||
|
||||
axi_hdmi_tx_core #(
|
||||
.Cr_Cb_N(PCORE_Cr_Cb_N),
|
||||
.EMBEDDED_SYNC(PCORE_EMBEDDED_SYNC))
|
||||
.CR_CB_N(CR_CB_N),
|
||||
.EMBEDDED_SYNC(EMBEDDED_SYNC))
|
||||
i_tx_core (
|
||||
.hdmi_clk (hdmi_clk),
|
||||
.hdmi_rst (hdmi_rst),
|
||||
|
@ -373,7 +373,7 @@ module axi_hdmi_tx (
|
|||
// hdmi output clock
|
||||
|
||||
generate
|
||||
if (PCORE_DEVICE_TYPE == XILINX_ULTRASCALE) begin
|
||||
if (DEVICE_TYPE == XILINX_ULTRASCALE) begin
|
||||
ODDRE1 #(.SRVAL(1'b0)) i_clk_oddr (
|
||||
.SR (1'b0),
|
||||
.D1 (1'b1),
|
||||
|
@ -381,7 +381,7 @@ module axi_hdmi_tx (
|
|||
.C (hdmi_clk),
|
||||
.Q (hdmi_out_clk));
|
||||
end
|
||||
if (PCORE_DEVICE_TYPE == ALTERA_5SERIES) begin
|
||||
if (DEVICE_TYPE == ALTERA_5SERIES) begin
|
||||
altddio_out #(.WIDTH(1)) i_clk_oddr (
|
||||
.aclr (1'b0),
|
||||
.aset (1'b0),
|
||||
|
@ -395,7 +395,7 @@ module axi_hdmi_tx (
|
|||
.oe_out (),
|
||||
.dataout (hdmi_out_clk));
|
||||
end
|
||||
if (PCORE_DEVICE_TYPE == XILINX_7SERIES) begin
|
||||
if (DEVICE_TYPE == XILINX_7SERIES) begin
|
||||
ODDR #(.INIT(1'b0)) i_clk_oddr (
|
||||
.R (1'b0),
|
||||
.S (1'b0),
|
||||
|
|
|
@ -118,11 +118,11 @@ module axi_hdmi_tx_alt (
|
|||
s_axi_rlast,
|
||||
s_axi_rready);
|
||||
|
||||
parameter PCORE_ID = 0;
|
||||
parameter PCORE_AXI_ID_WIDTH = 3;
|
||||
parameter PCORE_DEVICE_TYPE = 0;
|
||||
parameter PCORE_Cr_Cb_N = 0;
|
||||
parameter PCORE_EMBEDDED_SYNC = 0;
|
||||
parameter ID = 0;
|
||||
parameter AXI_ID_WIDTH = 3;
|
||||
parameter DEVICE_TYPE = 0;
|
||||
parameter CR_CB_N = 0;
|
||||
parameter EMBEDDED_SYNC = 0;
|
||||
|
||||
// hdmi interface
|
||||
|
||||
|
@ -167,7 +167,7 @@ module axi_hdmi_tx_alt (
|
|||
input s_axi_aresetn;
|
||||
input s_axi_awvalid;
|
||||
input [13:0] s_axi_awaddr;
|
||||
input [(PCORE_AXI_ID_WIDTH-1):0] s_axi_awid;
|
||||
input [(AXI_ID_WIDTH-1):0] s_axi_awid;
|
||||
input [ 7:0] s_axi_awlen;
|
||||
input [ 2:0] s_axi_awsize;
|
||||
input [ 1:0] s_axi_awburst;
|
||||
|
@ -182,11 +182,11 @@ module axi_hdmi_tx_alt (
|
|||
output s_axi_wready;
|
||||
output s_axi_bvalid;
|
||||
output [ 1:0] s_axi_bresp;
|
||||
output [(PCORE_AXI_ID_WIDTH-1):0] s_axi_bid;
|
||||
output [(AXI_ID_WIDTH-1):0] s_axi_bid;
|
||||
input s_axi_bready;
|
||||
input s_axi_arvalid;
|
||||
input [13:0] s_axi_araddr;
|
||||
input [(PCORE_AXI_ID_WIDTH-1):0] s_axi_arid;
|
||||
input [(AXI_ID_WIDTH-1):0] s_axi_arid;
|
||||
input [ 7:0] s_axi_arlen;
|
||||
input [ 2:0] s_axi_arsize;
|
||||
input [ 1:0] s_axi_arburst;
|
||||
|
@ -197,7 +197,7 @@ module axi_hdmi_tx_alt (
|
|||
output s_axi_rvalid;
|
||||
output [ 1:0] s_axi_rresp;
|
||||
output [31:0] s_axi_rdata;
|
||||
output [(PCORE_AXI_ID_WIDTH-1):0] s_axi_rid;
|
||||
output [(AXI_ID_WIDTH-1):0] s_axi_rid;
|
||||
output s_axi_rlast;
|
||||
input s_axi_rready;
|
||||
|
||||
|
@ -214,10 +214,10 @@ module axi_hdmi_tx_alt (
|
|||
// hdmi tx lite version
|
||||
|
||||
axi_hdmi_tx #(
|
||||
.PCORE_ID (PCORE_ID),
|
||||
.PCORE_Cr_Cb_N (PCORE_Cr_Cb_N),
|
||||
.PCORE_DEVICE_TYPE (PCORE_DEVICE_TYPE),
|
||||
.PCORE_EMBEDDED_SYNC (PCORE_EMBEDDED_SYNC))
|
||||
.ID (ID),
|
||||
.CR_CB_N (CR_CB_N),
|
||||
.DEVICE_TYPE (DEVICE_TYPE),
|
||||
.EMBEDDED_SYNC (EMBEDDED_SYNC))
|
||||
i_hdmi_tx (
|
||||
.hdmi_clk (hdmi_clk),
|
||||
.hdmi_out_clk (hdmi_out_clk),
|
||||
|
|
|
@ -101,7 +101,7 @@ module axi_hdmi_tx_core (
|
|||
|
||||
// parameters
|
||||
|
||||
parameter Cr_Cb_N = 0;
|
||||
parameter CR_CB_N = 0;
|
||||
parameter EMBEDDED_SYNC = 0;
|
||||
|
||||
// hdmi interface
|
||||
|
@ -539,7 +539,7 @@ module axi_hdmi_tx_core (
|
|||
|
||||
// data memory
|
||||
|
||||
ad_mem #(.DATA_WIDTH(48), .ADDR_WIDTH(9)) i_mem (
|
||||
ad_mem #(.DATA_WIDTH(48), .ADDRESS_WIDTH(9)) i_mem (
|
||||
.clka (vdma_clk),
|
||||
.wea (vdma_wr),
|
||||
.addra (vdma_waddr),
|
||||
|
@ -567,7 +567,7 @@ module axi_hdmi_tx_core (
|
|||
|
||||
// sub sampling, 444 to 422
|
||||
|
||||
ad_ss_444to422 #(.DELAY_DATA_WIDTH(5), .Cr_Cb_N(Cr_Cb_N)) i_ss_444to422 (
|
||||
ad_ss_444to422 #(.DELAY_DATA_WIDTH(5), .CR_CB_N(CR_CB_N)) i_ss_444to422 (
|
||||
.clk (hdmi_clk),
|
||||
.s444_de (hdmi_24_data_e),
|
||||
.s444_sync ({hdmi_24_hsync,
|
||||
|
|
|
@ -33,40 +33,40 @@ add_fileset_file axi_hdmi_tx_alt.v VERILOG PATH axi_hdmi_tx_alt.v TOP_LEVEL_F
|
|||
|
||||
# parameters
|
||||
|
||||
add_parameter PCORE_ID INTEGER 0
|
||||
set_parameter_property PCORE_ID DEFAULT_VALUE 0
|
||||
set_parameter_property PCORE_ID DISPLAY_NAME PCORE_ID
|
||||
set_parameter_property PCORE_ID TYPE INTEGER
|
||||
set_parameter_property PCORE_ID UNITS None
|
||||
set_parameter_property PCORE_ID HDL_PARAMETER true
|
||||
add_parameter ID INTEGER 0
|
||||
set_parameter_property ID DEFAULT_VALUE 0
|
||||
set_parameter_property ID DISPLAY_NAME ID
|
||||
set_parameter_property ID TYPE INTEGER
|
||||
set_parameter_property ID UNITS None
|
||||
set_parameter_property ID HDL_PARAMETER true
|
||||
|
||||
add_parameter PCORE_DEVICE_TYPE INTEGER 0
|
||||
set_parameter_property PCORE_DEVICE_TYPE DEFAULT_VALUE 16
|
||||
set_parameter_property PCORE_DEVICE_TYPE DISPLAY_NAME PCORE_DEVICE_TYPE
|
||||
set_parameter_property PCORE_DEVICE_TYPE TYPE INTEGER
|
||||
set_parameter_property PCORE_DEVICE_TYPE UNITS None
|
||||
set_parameter_property PCORE_DEVICE_TYPE HDL_PARAMETER true
|
||||
add_parameter DEVICE_TYPE INTEGER 0
|
||||
set_parameter_property DEVICE_TYPE DEFAULT_VALUE 16
|
||||
set_parameter_property DEVICE_TYPE DISPLAY_NAME DEVICE_TYPE
|
||||
set_parameter_property DEVICE_TYPE TYPE INTEGER
|
||||
set_parameter_property DEVICE_TYPE UNITS None
|
||||
set_parameter_property DEVICE_TYPE HDL_PARAMETER true
|
||||
|
||||
add_parameter PCORE_AXI_ID_WIDTH INTEGER 0
|
||||
set_parameter_property PCORE_AXI_ID_WIDTH DEFAULT_VALUE 3
|
||||
set_parameter_property PCORE_AXI_ID_WIDTH DISPLAY_NAME PCORE_AXI_ID_WIDTH
|
||||
set_parameter_property PCORE_AXI_ID_WIDTH TYPE INTEGER
|
||||
set_parameter_property PCORE_AXI_ID_WIDTH UNITS None
|
||||
set_parameter_property PCORE_AXI_ID_WIDTH HDL_PARAMETER true
|
||||
add_parameter AXI_ID_WIDTH INTEGER 0
|
||||
set_parameter_property AXI_ID_WIDTH DEFAULT_VALUE 3
|
||||
set_parameter_property AXI_ID_WIDTH DISPLAY_NAME AXI_ID_WIDTH
|
||||
set_parameter_property AXI_ID_WIDTH TYPE INTEGER
|
||||
set_parameter_property AXI_ID_WIDTH UNITS None
|
||||
set_parameter_property AXI_ID_WIDTH HDL_PARAMETER true
|
||||
|
||||
add_parameter PCORE_Cr_Cb_N INTEGER 0
|
||||
set_parameter_property PCORE_Cr_Cb_N DEFAULT_VALUE 0
|
||||
set_parameter_property PCORE_Cr_Cb_N DISPLAY_NAME PCORE_Cr_Cb_N
|
||||
set_parameter_property PCORE_Cr_Cb_N TYPE INTEGER
|
||||
set_parameter_property PCORE_Cr_Cb_N UNITS None
|
||||
set_parameter_property PCORE_Cr_Cb_N HDL_PARAMETER true
|
||||
add_parameter CR_CB_N INTEGER 0
|
||||
set_parameter_property CR_CB_N DEFAULT_VALUE 0
|
||||
set_parameter_property CR_CB_N DISPLAY_NAME CR_CB_N
|
||||
set_parameter_property CR_CB_N TYPE INTEGER
|
||||
set_parameter_property CR_CB_N UNITS None
|
||||
set_parameter_property CR_CB_N HDL_PARAMETER true
|
||||
|
||||
add_parameter PCORE_EMBEDDED_SYNC INTEGER 0
|
||||
set_parameter_property PCORE_EMBEDDED_SYNC DEFAULT_VALUE 0
|
||||
set_parameter_property PCORE_EMBEDDED_SYNC DISPLAY_NAME PCORE_EMBEDDED_SYNC
|
||||
set_parameter_property PCORE_EMBEDDED_SYNC TYPE INTEGER
|
||||
set_parameter_property PCORE_EMBEDDED_SYNC UNITS None
|
||||
set_parameter_property PCORE_EMBEDDED_SYNC HDL_PARAMETER true
|
||||
add_parameter EMBEDDED_SYNC INTEGER 0
|
||||
set_parameter_property EMBEDDED_SYNC DEFAULT_VALUE 0
|
||||
set_parameter_property EMBEDDED_SYNC DISPLAY_NAME EMBEDDED_SYNC
|
||||
set_parameter_property EMBEDDED_SYNC TYPE INTEGER
|
||||
set_parameter_property EMBEDDED_SYNC UNITS None
|
||||
set_parameter_property EMBEDDED_SYNC HDL_PARAMETER true
|
||||
|
||||
# axi4 slave
|
||||
|
||||
|
@ -97,7 +97,7 @@ add_interface_port s_axi s_axi_rvalid rvalid Output 1
|
|||
add_interface_port s_axi s_axi_rresp rresp Output 2
|
||||
add_interface_port s_axi s_axi_rdata rdata Output 32
|
||||
add_interface_port s_axi s_axi_rready rready Input 1
|
||||
add_interface_port s_axi s_axi_awid awid Input PCORE_AXI_ID_WIDTH
|
||||
add_interface_port s_axi s_axi_awid awid Input AXI_ID_WIDTH
|
||||
add_interface_port s_axi s_axi_awlen awlen Input 8
|
||||
add_interface_port s_axi s_axi_awsize awsize Input 3
|
||||
add_interface_port s_axi s_axi_awburst awburst Input 2
|
||||
|
@ -105,15 +105,15 @@ add_interface_port s_axi s_axi_awlock awlock Input 1
|
|||
add_interface_port s_axi s_axi_awcache awcache Input 4
|
||||
add_interface_port s_axi s_axi_awprot awprot Input 3
|
||||
add_interface_port s_axi s_axi_wlast wlast Input 1
|
||||
add_interface_port s_axi s_axi_bid bid Output PCORE_AXI_ID_WIDTH
|
||||
add_interface_port s_axi s_axi_arid arid Input PCORE_AXI_ID_WIDTH
|
||||
add_interface_port s_axi s_axi_bid bid Output AXI_ID_WIDTH
|
||||
add_interface_port s_axi s_axi_arid arid Input AXI_ID_WIDTH
|
||||
add_interface_port s_axi s_axi_arlen arlen Input 8
|
||||
add_interface_port s_axi s_axi_arsize arsize Input 3
|
||||
add_interface_port s_axi s_axi_arburst arburst Input 2
|
||||
add_interface_port s_axi s_axi_arlock arlock Input 1
|
||||
add_interface_port s_axi s_axi_arcache arcache Input 4
|
||||
add_interface_port s_axi s_axi_arprot arprot Input 3
|
||||
add_interface_port s_axi s_axi_rid rid Output PCORE_AXI_ID_WIDTH
|
||||
add_interface_port s_axi s_axi_rid rid Output AXI_ID_WIDTH
|
||||
add_interface_port s_axi s_axi_rlast rlast Output 1
|
||||
|
||||
# hdmi interface
|
||||
|
|
|
@ -41,7 +41,7 @@ module axi_jesd_gt #(
|
|||
|
||||
parameter integer ID = 0,
|
||||
parameter integer NUM_OF_LANES = 8,
|
||||
parameter integer GTH_GTX_N = 0,
|
||||
parameter integer GTH_OR_GTX_N = 0,
|
||||
parameter integer QPLL0_ENABLE = 1,
|
||||
parameter integer QPLL0_REFCLK_DIV = 1,
|
||||
parameter [26:0] QPLL0_CFG = 27'h0680181,
|
||||
|
@ -1445,7 +1445,7 @@ module axi_jesd_gt #(
|
|||
for (n = 0; n < NUM_OF_LANES; n = n + 1) begin: g_lane_1
|
||||
ad_gt_channel_1 #(
|
||||
.ID (n),
|
||||
.GTH_GTX_N (GTH_GTX_N),
|
||||
.GTH_OR_GTX_N (GTH_OR_GTX_N),
|
||||
.PMA_RSV (PMA_RSV[n]),
|
||||
.CPLL_FBDIV (CPLL_FBDIV[n]),
|
||||
.RX_OUT_DIV (RX_OUT_DIV[n]),
|
||||
|
@ -1540,7 +1540,7 @@ module axi_jesd_gt #(
|
|||
|
||||
ad_gt_common_1 #(
|
||||
.ID (0),
|
||||
.GTH_GTX_N (GTH_GTX_N),
|
||||
.GTH_OR_GTX_N (GTH_OR_GTX_N),
|
||||
.QPLL0_ENABLE (QPLL0_ENABLE),
|
||||
.QPLL0_REFCLK_DIV (QPLL0_REFCLK_DIV),
|
||||
.QPLL0_CFG (QPLL0_CFG),
|
||||
|
|
|
@ -97,8 +97,8 @@ module axi_jesd_xcvr (
|
|||
s_axi_rresp,
|
||||
s_axi_rready);
|
||||
|
||||
parameter PCORE_ID = 0;
|
||||
parameter PCORE_DEVICE_TYPE = 0;
|
||||
parameter ID = 0;
|
||||
parameter DEVICE_TYPE = 0;
|
||||
parameter PCORE_NUM_OF_TX_LANES = 4;
|
||||
parameter PCORE_NUM_OF_RX_LANES = 4;
|
||||
|
||||
|
@ -249,8 +249,8 @@ module axi_jesd_xcvr (
|
|||
// processor
|
||||
|
||||
up_xcvr #(
|
||||
.PCORE_ID(PCORE_ID),
|
||||
.PCORE_DEVICE_TYPE(PCORE_DEVICE_TYPE))
|
||||
.ID(ID),
|
||||
.DEVICE_TYPE(DEVICE_TYPE))
|
||||
i_up_xcvr (
|
||||
.rst (rst),
|
||||
.rx_clk (rx_clk),
|
||||
|
|
|
@ -24,19 +24,19 @@ add_fileset_file axi_jesd_xcvr_constr.sdc SDC PATH axi_jesd_xcvr_constr.sdc
|
|||
|
||||
# parameters
|
||||
|
||||
add_parameter PCORE_ID INTEGER 0
|
||||
set_parameter_property PCORE_ID DEFAULT_VALUE 0
|
||||
set_parameter_property PCORE_ID DISPLAY_NAME PCORE_ID
|
||||
set_parameter_property PCORE_ID TYPE INTEGER
|
||||
set_parameter_property PCORE_ID UNITS None
|
||||
set_parameter_property PCORE_ID HDL_PARAMETER true
|
||||
add_parameter ID INTEGER 0
|
||||
set_parameter_property ID DEFAULT_VALUE 0
|
||||
set_parameter_property ID DISPLAY_NAME ID
|
||||
set_parameter_property ID TYPE INTEGER
|
||||
set_parameter_property ID UNITS None
|
||||
set_parameter_property ID HDL_PARAMETER true
|
||||
|
||||
add_parameter PCORE_DEVICE_TYPE INTEGER 0
|
||||
set_parameter_property PCORE_DEVICE_TYPE DEFAULT_VALUE 0
|
||||
set_parameter_property PCORE_DEVICE_TYPE DISPLAY_NAME PCORE_DEVICE_TYPE
|
||||
set_parameter_property PCORE_DEVICE_TYPE TYPE INTEGER
|
||||
set_parameter_property PCORE_DEVICE_TYPE UNITS None
|
||||
set_parameter_property PCORE_DEVICE_TYPE HDL_PARAMETER true
|
||||
add_parameter DEVICE_TYPE INTEGER 0
|
||||
set_parameter_property DEVICE_TYPE DEFAULT_VALUE 0
|
||||
set_parameter_property DEVICE_TYPE DISPLAY_NAME DEVICE_TYPE
|
||||
set_parameter_property DEVICE_TYPE TYPE INTEGER
|
||||
set_parameter_property DEVICE_TYPE UNITS None
|
||||
set_parameter_property DEVICE_TYPE HDL_PARAMETER true
|
||||
|
||||
add_parameter PCORE_NUM_OF_TX_LANES INTEGER 0
|
||||
set_parameter_property PCORE_NUM_OF_TX_LANES DEFAULT_VALUE 4
|
||||
|
|
|
@ -309,7 +309,7 @@ control_registers control_reg_inst(
|
|||
.calibrate_adcs_o(),
|
||||
.pwm_open_o(pwm_open_s));
|
||||
|
||||
up_adc_channel #(.PCORE_ADC_CHID(0)) adc_channel0(
|
||||
up_adc_channel #(.ADC_CHANNEL_ID(0)) adc_channel0(
|
||||
.adc_clk(ref_clk),
|
||||
.adc_rst(adc_rst),
|
||||
.adc_enable(adc_enable_c0),
|
||||
|
@ -355,7 +355,7 @@ up_adc_channel #(.PCORE_ADC_CHID(0)) adc_channel0(
|
|||
.up_rdata (rdata_c0_s),
|
||||
.up_rack (rack_c0_s));
|
||||
|
||||
up_adc_channel #(.PCORE_ADC_CHID(1)) adc_channel1(
|
||||
up_adc_channel #(.ADC_CHANNEL_ID(1)) adc_channel1(
|
||||
.adc_clk(ref_clk),
|
||||
.adc_rst(adc_rst),
|
||||
.adc_enable(adc_enable_c1),
|
||||
|
@ -401,7 +401,7 @@ up_adc_channel #(.PCORE_ADC_CHID(1)) adc_channel1(
|
|||
.up_rdata (rdata_c1_s),
|
||||
.up_rack (rack_c1_s));
|
||||
|
||||
up_adc_channel #(.PCORE_ADC_CHID(2)) adc_channel2(
|
||||
up_adc_channel #(.ADC_CHANNEL_ID(2)) adc_channel2(
|
||||
.adc_clk(ref_clk),
|
||||
.adc_rst(adc_rst),
|
||||
.adc_enable(adc_enable_c2),
|
||||
|
@ -447,7 +447,7 @@ up_adc_channel #(.PCORE_ADC_CHID(2)) adc_channel2(
|
|||
.up_rdata (rdata_c2_s),
|
||||
.up_rack (rack_c2_s));
|
||||
|
||||
up_adc_channel #(.PCORE_ADC_CHID(3)) adc_channel3(
|
||||
up_adc_channel #(.ADC_CHANNEL_ID(3)) adc_channel3(
|
||||
.adc_clk(ref_clk),
|
||||
.adc_rst(adc_rst),
|
||||
.adc_enable(adc_enable_c3),
|
||||
|
@ -493,7 +493,7 @@ up_adc_channel #(.PCORE_ADC_CHID(3)) adc_channel3(
|
|||
.up_rdata (rdata_c3_s),
|
||||
.up_rack (rack_c3_s));
|
||||
|
||||
up_adc_channel #(.PCORE_ADC_CHID(4)) adc_channel4(
|
||||
up_adc_channel #(.ADC_CHANNEL_ID(4)) adc_channel4(
|
||||
.adc_clk(ref_clk),
|
||||
.adc_rst(adc_rst),
|
||||
.adc_enable(adc_enable_c4),
|
||||
|
@ -539,7 +539,7 @@ up_adc_channel #(.PCORE_ADC_CHID(4)) adc_channel4(
|
|||
.up_rdata (rdata_c4_s),
|
||||
.up_rack (rack_c4_s));
|
||||
|
||||
up_adc_channel #(.PCORE_ADC_CHID(5)) adc_channel5(
|
||||
up_adc_channel #(.ADC_CHANNEL_ID(5)) adc_channel5(
|
||||
.adc_clk(ref_clk),
|
||||
.adc_rst(adc_rst),
|
||||
.adc_enable(adc_enable_c5),
|
||||
|
@ -585,7 +585,7 @@ up_adc_channel #(.PCORE_ADC_CHID(5)) adc_channel5(
|
|||
.up_rdata (rdata_c5_s),
|
||||
.up_rack (rack_c5_s));
|
||||
|
||||
up_adc_channel #(.PCORE_ADC_CHID(6)) adc_channel6(
|
||||
up_adc_channel #(.ADC_CHANNEL_ID(6)) adc_channel6(
|
||||
.adc_clk(ref_clk),
|
||||
.adc_rst(adc_rst),
|
||||
.adc_enable(adc_enable_c6),
|
||||
|
@ -631,7 +631,7 @@ up_adc_channel #(.PCORE_ADC_CHID(6)) adc_channel6(
|
|||
.up_rdata (rdata_c6_s),
|
||||
.up_rack (rack_c6_s));
|
||||
|
||||
up_adc_channel #(.PCORE_ADC_CHID(7)) adc_channel7(
|
||||
up_adc_channel #(.ADC_CHANNEL_ID(7)) adc_channel7(
|
||||
.adc_clk(ref_clk),
|
||||
.adc_rst(adc_rst),
|
||||
.adc_enable(adc_enable_c7),
|
||||
|
|
|
@ -197,7 +197,7 @@ ad7401 vbus_if(
|
|||
.data_rd_ready_o(),
|
||||
.adc_mdata_i(adc_vbus_dat_i));
|
||||
|
||||
up_adc_channel #(.PCORE_ADC_CHID(0)) i_up_adc_channel_ia(
|
||||
up_adc_channel #(.ADC_CHANNEL_ID(0)) i_up_adc_channel_ia(
|
||||
.adc_clk(adc_clk_o),
|
||||
.adc_rst(adc_rst),
|
||||
.adc_enable(adc_enable_ia),
|
||||
|
@ -243,7 +243,7 @@ up_adc_channel #(.PCORE_ADC_CHID(0)) i_up_adc_channel_ia(
|
|||
.up_rdata (up_rdata_0_s),
|
||||
.up_rack (up_rack_0_s));
|
||||
|
||||
up_adc_channel #(.PCORE_ADC_CHID(1)) i_up_adc_channel_ib(
|
||||
up_adc_channel #(.ADC_CHANNEL_ID(1)) i_up_adc_channel_ib(
|
||||
.adc_clk(adc_clk_o),
|
||||
.adc_rst(adc_rst),
|
||||
.adc_enable(adc_enable_ib),
|
||||
|
@ -289,7 +289,7 @@ up_adc_channel #(.PCORE_ADC_CHID(1)) i_up_adc_channel_ib(
|
|||
.up_rdata (up_rdata_1_s),
|
||||
.up_rack (up_rack_1_s));
|
||||
|
||||
up_adc_channel #(.PCORE_ADC_CHID(2)) i_up_adc_channel_vbus(
|
||||
up_adc_channel #(.ADC_CHANNEL_ID(2)) i_up_adc_channel_vbus(
|
||||
.adc_clk(adc_clk_o),
|
||||
.adc_rst(adc_rst),
|
||||
.adc_enable(adc_enable_vbus),
|
||||
|
@ -335,7 +335,7 @@ up_adc_channel #(.PCORE_ADC_CHID(2)) i_up_adc_channel_vbus(
|
|||
.up_rdata (up_rdata_2_s),
|
||||
.up_rack (up_rack_2_s));
|
||||
|
||||
up_adc_channel #(.PCORE_ADC_CHID(3)) i_up_adc_channel_stub(
|
||||
up_adc_channel #(.ADC_CHANNEL_ID(3)) i_up_adc_channel_stub(
|
||||
.adc_clk(adc_clk_o),
|
||||
.adc_rst(adc_rst),
|
||||
.adc_enable(adc_enable_stub),
|
||||
|
|
|
@ -134,7 +134,7 @@ end
|
|||
|
||||
// HALL sensors debouncers
|
||||
debouncer
|
||||
#( .DEBOUNCER_LEN(400))
|
||||
#( .DEBOUNCER_LENGTH(400))
|
||||
position_0(
|
||||
.clk_i(ref_clk),
|
||||
.rst_i(adc_rst),
|
||||
|
@ -142,7 +142,7 @@ position_0(
|
|||
.sig_o(position_s[0]));
|
||||
|
||||
debouncer
|
||||
#( .DEBOUNCER_LEN(400))
|
||||
#( .DEBOUNCER_LENGTH(400))
|
||||
position_1(
|
||||
.clk_i(ref_clk),
|
||||
.rst_i(adc_rst),
|
||||
|
@ -150,7 +150,7 @@ position_1(
|
|||
.sig_o(position_s[1]));
|
||||
|
||||
debouncer
|
||||
#( .DEBOUNCER_LEN(400))
|
||||
#( .DEBOUNCER_LENGTH(400))
|
||||
position_2(
|
||||
.clk_i(ref_clk),
|
||||
.rst_i(adc_rst),
|
||||
|
|
|
@ -60,7 +60,7 @@
|
|||
module debouncer
|
||||
//----------- Paramters Declarations -------------------------------------------
|
||||
#(
|
||||
parameter DEBOUNCER_LEN = 4
|
||||
parameter DEBOUNCER_LENGTH = 4
|
||||
)
|
||||
//----------- Ports Declarations -----------------------------------------------
|
||||
(
|
||||
|
@ -72,7 +72,7 @@ module debouncer
|
|||
//------------------------------------------------------------------------------
|
||||
//----------- Registers Declarations -------------------------------------------
|
||||
//------------------------------------------------------------------------------
|
||||
reg [DEBOUNCER_LEN-1:0] shift_reg;
|
||||
reg [DEBOUNCER_LENGTH-1:0] shift_reg;
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
//----------- Assign/Always Blocks ---------------------------------------------
|
||||
|
@ -87,12 +87,12 @@ begin
|
|||
end
|
||||
else
|
||||
begin
|
||||
shift_reg <= {shift_reg[DEBOUNCER_LEN-2:0], sig_i};
|
||||
if(shift_reg == {DEBOUNCER_LEN{1'b1}})
|
||||
shift_reg <= {shift_reg[DEBOUNCER_LENGTH-2:0], sig_i};
|
||||
if(shift_reg == {DEBOUNCER_LENGTH{1'b1}})
|
||||
begin
|
||||
sig_o <= 1'b1;
|
||||
end
|
||||
else if(shift_reg == {DEBOUNCER_LEN{1'b0}})
|
||||
else if(shift_reg == {DEBOUNCER_LENGTH{1'b0}})
|
||||
begin
|
||||
sig_o <= 1'b0;
|
||||
end
|
||||
|
|
|
@ -53,34 +53,34 @@ module ad_addsub (
|
|||
|
||||
// parameters
|
||||
|
||||
parameter A_WIDTH = 32;
|
||||
parameter CONST_VALUE = 32'h1;
|
||||
parameter ADD_SUB = 0;
|
||||
parameter A_DATA_WIDTH = 32;
|
||||
parameter B_DATA_VALUE = 32'h1;
|
||||
parameter ADD_OR_SUB_N = 0;
|
||||
|
||||
localparam ADDER = 0;
|
||||
localparam SUBSTRACTER = 1;
|
||||
localparam ADDER = 1;
|
||||
localparam SUBSTRACTER = 0;
|
||||
|
||||
// I/O definitions
|
||||
|
||||
input clk;
|
||||
input [(A_WIDTH-1):0] A;
|
||||
input [(A_WIDTH-1):0] Amax;
|
||||
output [(A_WIDTH-1):0] out;
|
||||
input [(A_DATA_WIDTH-1):0] A;
|
||||
input [(A_DATA_WIDTH-1):0] Amax;
|
||||
output [(A_DATA_WIDTH-1):0] out;
|
||||
input CE;
|
||||
|
||||
// registers
|
||||
|
||||
reg [(A_WIDTH-1):0] out = 'b0;
|
||||
reg [A_WIDTH:0] out_d = 'b0;
|
||||
reg [A_WIDTH:0] out_d2 = 'b0;
|
||||
reg [(A_WIDTH-1):0] A_d = 'b0;
|
||||
reg [(A_WIDTH-1):0] A_d2 = 'b0;
|
||||
reg [(A_WIDTH-1):0] Amax_d = 'b0;
|
||||
reg [(A_WIDTH-1):0] Amax_d2 = 'b0;
|
||||
reg [(A_DATA_WIDTH-1):0] out = 'b0;
|
||||
reg [A_DATA_WIDTH:0] out_d = 'b0;
|
||||
reg [A_DATA_WIDTH:0] out_d2 = 'b0;
|
||||
reg [(A_DATA_WIDTH-1):0] A_d = 'b0;
|
||||
reg [(A_DATA_WIDTH-1):0] A_d2 = 'b0;
|
||||
reg [(A_DATA_WIDTH-1):0] Amax_d = 'b0;
|
||||
reg [(A_DATA_WIDTH-1):0] Amax_d2 = 'b0;
|
||||
|
||||
// constant regs
|
||||
|
||||
reg [(A_WIDTH-1):0] B_reg = CONST_VALUE;
|
||||
reg [(A_DATA_WIDTH-1):0] B_reg = B_DATA_VALUE;
|
||||
|
||||
// latch the inputs
|
||||
|
||||
|
@ -94,7 +94,7 @@ module ad_addsub (
|
|||
// ADDER/SUBSTRACTER
|
||||
|
||||
always @(posedge clk) begin
|
||||
if ( ADD_SUB == ADDER ) begin
|
||||
if ( ADD_OR_SUB_N == ADDER ) begin
|
||||
out_d <= A_d + B_reg;
|
||||
end else begin
|
||||
out_d <= A_d - B_reg;
|
||||
|
@ -104,14 +104,14 @@ module ad_addsub (
|
|||
// Resolve
|
||||
|
||||
always @(posedge clk) begin
|
||||
if ( ADD_SUB == ADDER ) begin
|
||||
if ( ADD_OR_SUB_N == ADDER ) begin
|
||||
if ( out_d > Amax_d2 ) begin
|
||||
out_d2 <= out_d - Amax_d2;
|
||||
end else begin
|
||||
out_d2 <= out_d;
|
||||
end
|
||||
end else begin // SUBSTRACTER
|
||||
if ( out_d[A_WIDTH] == 1'b1 ) begin
|
||||
if ( out_d[A_DATA_WIDTH] == 1'b1 ) begin
|
||||
out_d2 <= Amax_d2 + out_d;
|
||||
end else begin
|
||||
out_d2 <= out_d;
|
||||
|
|
|
@ -315,7 +315,7 @@ module ad_axis_dma_rx (
|
|||
|
||||
// buffer (mainly for clock domain transfer)
|
||||
|
||||
ad_mem #(.DATA_WIDTH(DATA_WIDTH), .ADDR_WIDTH(6)) i_mem (
|
||||
ad_mem #(.DATA_WIDTH(DATA_WIDTH), .ADDRESS_WIDTH(6)) i_mem (
|
||||
.clka (adc_clk),
|
||||
.wea (adc_wr),
|
||||
.addra (adc_waddr),
|
||||
|
|
|
@ -266,7 +266,7 @@ module ad_axis_dma_tx (
|
|||
|
||||
// memory
|
||||
|
||||
ad_mem #(.DATA_WIDTH(DATA_WIDTH), .ADDR_WIDTH(6)) i_mem (
|
||||
ad_mem #(.DATA_WIDTH(DATA_WIDTH), .ADDRESS_WIDTH(6)) i_mem (
|
||||
.clka (dma_clk),
|
||||
.wea (dma_wr),
|
||||
.addra (dma_waddr),
|
||||
|
|
|
@ -103,8 +103,8 @@ module ad_csc_1_mul (
|
|||
|
||||
MULT_MACRO #(
|
||||
.LATENCY (3),
|
||||
.WIDTH_A (17),
|
||||
.WIDTH_B (9))
|
||||
.A_DATA_WIDTH (17),
|
||||
.B_DATA_WIDTH (9))
|
||||
i_mult_macro (
|
||||
.CE (1'b1),
|
||||
.RST (1'b0),
|
||||
|
|
|
@ -104,7 +104,7 @@ module ad_gt_channel (
|
|||
|
||||
// parameters
|
||||
|
||||
parameter integer GTH_GTX_N = 0;
|
||||
parameter integer GTH_OR_GTX_N = 0;
|
||||
parameter [31:0] PMA_RSV = 32'h00018480;
|
||||
parameter integer CPLL_FBDIV = 2;
|
||||
parameter integer RX_OUT_DIV = 1;
|
||||
|
@ -248,7 +248,7 @@ module ad_gt_channel (
|
|||
assign tx_out_clk = tx_out_clk_s;
|
||||
end
|
||||
|
||||
if (GTH_GTX_N == 0) begin
|
||||
if (GTH_OR_GTX_N == 0) begin
|
||||
|
||||
assign rx_sys_clk_sel_s = rx_sys_clk_sel;
|
||||
assign tx_sys_clk_sel_s = tx_sys_clk_sel;
|
||||
|
@ -700,7 +700,7 @@ module ad_gt_channel (
|
|||
.TXQPISENN ());
|
||||
end
|
||||
|
||||
if (GTH_GTX_N == 1) begin
|
||||
if (GTH_OR_GTX_N == 1) begin
|
||||
|
||||
assign rx_sys_clk_sel_s = (rx_sys_clk_sel == 2'd3) ? 2'b10 : 2'b00;
|
||||
assign tx_sys_clk_sel_s = (tx_sys_clk_sel == 2'd3) ? 2'b10 : 2'b00;
|
||||
|
|
|
@ -146,7 +146,7 @@ module ad_gt_channel_1 (
|
|||
// parameters
|
||||
|
||||
parameter integer ID = 0;
|
||||
parameter integer GTH_GTX_N = 0;
|
||||
parameter integer GTH_OR_GTX_N = 0;
|
||||
parameter [31:0] PMA_RSV = 32'h00018480;
|
||||
parameter integer CPLL_FBDIV = 2;
|
||||
parameter integer RX_OUT_DIV = 1;
|
||||
|
@ -320,7 +320,7 @@ module ad_gt_channel_1 (
|
|||
.rx_data (rx_data));
|
||||
|
||||
ad_gt_channel #(
|
||||
.GTH_GTX_N (GTH_GTX_N),
|
||||
.GTH_OR_GTX_N (GTH_OR_GTX_N),
|
||||
.PMA_RSV (PMA_RSV),
|
||||
.CPLL_FBDIV (CPLL_FBDIV),
|
||||
.RX_OUT_DIV (RX_OUT_DIV),
|
||||
|
@ -380,7 +380,7 @@ module ad_gt_channel_1 (
|
|||
.up_drp_rxrate (up_drp_rxrate_s));
|
||||
|
||||
ad_gt_es #(
|
||||
.GTH_GTX_N (GTH_GTX_N))
|
||||
.GTH_OR_GTX_N (GTH_OR_GTX_N))
|
||||
i_es (
|
||||
.lpm_dfe_n (lpm_dfe_n_s),
|
||||
.up_rstn (up_rstn),
|
||||
|
@ -421,7 +421,7 @@ module ad_gt_channel_1 (
|
|||
|
||||
up_gt_channel #(
|
||||
.ID (ID),
|
||||
.GTH_GTX_N (GTH_GTX_N))
|
||||
.GTH_OR_GTX_N (GTH_OR_GTX_N))
|
||||
i_up (
|
||||
.pll_rst (pll_rst),
|
||||
.lpm_dfe_n (lpm_dfe_n_s),
|
||||
|
|
|
@ -59,7 +59,7 @@ module ad_gt_common (
|
|||
|
||||
// parameters
|
||||
|
||||
parameter integer GTH_GTX_N = 0;
|
||||
parameter integer GTH_OR_GTX_N = 0;
|
||||
parameter integer QPLL_ENABLE = 1;
|
||||
parameter integer QPLL_REFCLK_DIV = 2;
|
||||
parameter [26:0] QPLL_CFG = 27'h06801C1;
|
||||
|
@ -96,7 +96,7 @@ module ad_gt_common (
|
|||
assign up_drp_ready = 1'd0;
|
||||
end
|
||||
|
||||
if ((QPLL_ENABLE == 1) && (GTH_GTX_N == 0)) begin
|
||||
if ((QPLL_ENABLE == 1) && (GTH_OR_GTX_N == 0)) begin
|
||||
GTXE2_COMMON #(
|
||||
.SIM_RESET_SPEEDUP ("TRUE"),
|
||||
.SIM_QPLLREFCLK_SEL (3'b001),
|
||||
|
@ -155,7 +155,7 @@ module ad_gt_common (
|
|||
.RCALENB (1'd1));
|
||||
end
|
||||
|
||||
if ((QPLL_ENABLE == 1) && (GTH_GTX_N == 1)) begin
|
||||
if ((QPLL_ENABLE == 1) && (GTH_OR_GTX_N == 1)) begin
|
||||
GTHE3_COMMON #(
|
||||
.SIM_RESET_SPEEDUP ("TRUE"),
|
||||
.SIM_VERSION (2),
|
||||
|
|
|
@ -66,7 +66,7 @@ module ad_gt_common_1 (
|
|||
// parameters
|
||||
|
||||
parameter integer ID = 0;
|
||||
parameter integer GTH_GTX_N = 0;
|
||||
parameter integer GTH_OR_GTX_N = 0;
|
||||
parameter integer QPLL0_ENABLE = 1;
|
||||
parameter integer QPLL0_REFCLK_DIV = 2;
|
||||
parameter [26:0] QPLL0_CFG = 27'h06801C1;
|
||||
|
@ -146,7 +146,7 @@ module ad_gt_common_1 (
|
|||
// instantiations
|
||||
|
||||
ad_gt_common #(
|
||||
.GTH_GTX_N (GTH_GTX_N),
|
||||
.GTH_OR_GTX_N (GTH_OR_GTX_N),
|
||||
.QPLL_ENABLE (QPLL0_ENABLE),
|
||||
.QPLL_REFCLK_DIV (QPLL0_REFCLK_DIV),
|
||||
.QPLL_CFG (QPLL0_CFG),
|
||||
|
@ -167,7 +167,7 @@ module ad_gt_common_1 (
|
|||
.up_drp_ready (up_drp_qpll0_ready_s));
|
||||
|
||||
ad_gt_common #(
|
||||
.GTH_GTX_N (GTH_GTX_N),
|
||||
.GTH_OR_GTX_N (GTH_OR_GTX_N),
|
||||
.QPLL_ENABLE (QPLL1_ENABLE),
|
||||
.QPLL_REFCLK_DIV (QPLL1_REFCLK_DIV),
|
||||
.QPLL_CFG (QPLL1_CFG),
|
||||
|
@ -188,7 +188,7 @@ module ad_gt_common_1 (
|
|||
.up_drp_ready (up_drp_qpll1_ready_s));
|
||||
|
||||
up_gt #(
|
||||
.GTH_GTX_N (GTH_GTX_N),
|
||||
.GTH_OR_GTX_N (GTH_OR_GTX_N),
|
||||
.ID (ID))
|
||||
i_up (
|
||||
.up_drp_qpll0_sel (up_drp_qpll0_sel_s),
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue