axi_ad9963: Allow to disable the IDELAYs on the ADC data path
Not all designs need the IDELAYs. Disabling them can reduce power consumption of the system. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>main
parent
09ffe42603
commit
72cdd846b0
|
@ -43,6 +43,7 @@ module axi_ad9963 #(
|
||||||
|
|
||||||
parameter ID = 0,
|
parameter ID = 0,
|
||||||
parameter DEVICE_TYPE = 0,
|
parameter DEVICE_TYPE = 0,
|
||||||
|
parameter ADC_IODELAY_ENABLE = 0,
|
||||||
parameter DAC_IODELAY_ENABLE = 0,
|
parameter DAC_IODELAY_ENABLE = 0,
|
||||||
parameter IO_DELAY_GROUP = "dev_if_delay_group",
|
parameter IO_DELAY_GROUP = "dev_if_delay_group",
|
||||||
parameter DAC_DATAPATH_DISABLE = 0,
|
parameter DAC_DATAPATH_DISABLE = 0,
|
||||||
|
@ -176,6 +177,7 @@ module axi_ad9963 #(
|
||||||
|
|
||||||
axi_ad9963_if #(
|
axi_ad9963_if #(
|
||||||
.DEVICE_TYPE (DEVICE_TYPE),
|
.DEVICE_TYPE (DEVICE_TYPE),
|
||||||
|
.ADC_IODELAY_ENABLE (ADC_IODELAY_ENABLE),
|
||||||
.DAC_IODELAY_ENABLE (DAC_IODELAY_ENABLE),
|
.DAC_IODELAY_ENABLE (DAC_IODELAY_ENABLE),
|
||||||
.IO_DELAY_GROUP (IO_DELAY_GROUP))
|
.IO_DELAY_GROUP (IO_DELAY_GROUP))
|
||||||
i_dev_if (
|
i_dev_if (
|
||||||
|
@ -206,8 +208,9 @@ module axi_ad9963 #(
|
||||||
|
|
||||||
axi_ad9963_rx #(
|
axi_ad9963_rx #(
|
||||||
.ID (ID),
|
.ID (ID),
|
||||||
.DATAPATH_DISABLE (ADC_DATAPATH_DISABLE))
|
.DATAPATH_DISABLE (ADC_DATAPATH_DISABLE),
|
||||||
i_rx (
|
.IODELAY_ENABLE (ADC_IODELAY_ENABLE)
|
||||||
|
) i_rx (
|
||||||
.adc_rst (adc_rst),
|
.adc_rst (adc_rst),
|
||||||
.adc_clk (adc_clk),
|
.adc_clk (adc_clk),
|
||||||
.adc_valid (adc_valid_s),
|
.adc_valid (adc_valid_s),
|
||||||
|
|
|
@ -36,6 +36,7 @@ module axi_ad9963_if #(
|
||||||
|
|
||||||
parameter DEVICE_TYPE = 0,
|
parameter DEVICE_TYPE = 0,
|
||||||
parameter DAC_IODELAY_ENABLE = 0,
|
parameter DAC_IODELAY_ENABLE = 0,
|
||||||
|
parameter ADC_IODELAY_ENABLE = 0,
|
||||||
parameter IO_DELAY_GROUP = "dev_if_delay_group") (
|
parameter IO_DELAY_GROUP = "dev_if_delay_group") (
|
||||||
|
|
||||||
// physical interface (receive)
|
// physical interface (receive)
|
||||||
|
@ -135,6 +136,7 @@ module axi_ad9963_if #(
|
||||||
ad_lvds_in #(
|
ad_lvds_in #(
|
||||||
.SINGLE_ENDED (1),
|
.SINGLE_ENDED (1),
|
||||||
.DEVICE_TYPE (DEVICE_TYPE),
|
.DEVICE_TYPE (DEVICE_TYPE),
|
||||||
|
.IODELAY_ENABLE (ADC_IODELAY_ENABLE),
|
||||||
.IODELAY_CTRL (0),
|
.IODELAY_CTRL (0),
|
||||||
.IODELAY_GROUP (IO_DELAY_GROUP))
|
.IODELAY_GROUP (IO_DELAY_GROUP))
|
||||||
i_rx_data (
|
i_rx_data (
|
||||||
|
@ -158,6 +160,7 @@ module axi_ad9963_if #(
|
||||||
ad_lvds_in #(
|
ad_lvds_in #(
|
||||||
.SINGLE_ENDED (1),
|
.SINGLE_ENDED (1),
|
||||||
.DEVICE_TYPE (DEVICE_TYPE),
|
.DEVICE_TYPE (DEVICE_TYPE),
|
||||||
|
.IODELAY_ENABLE (ADC_IODELAY_ENABLE),
|
||||||
.IODELAY_CTRL (1),
|
.IODELAY_CTRL (1),
|
||||||
.IODELAY_GROUP (IO_DELAY_GROUP))
|
.IODELAY_GROUP (IO_DELAY_GROUP))
|
||||||
i_rx_iq (
|
i_rx_iq (
|
||||||
|
|
|
@ -42,6 +42,7 @@ module axi_ad9963_rx #(
|
||||||
// parameters
|
// parameters
|
||||||
|
|
||||||
parameter DATAPATH_DISABLE = 0,
|
parameter DATAPATH_DISABLE = 0,
|
||||||
|
parameter IODELAY_ENABLE = 0,
|
||||||
parameter ID = 0) (
|
parameter ID = 0) (
|
||||||
|
|
||||||
// adc interface
|
// adc interface
|
||||||
|
@ -233,6 +234,8 @@ module axi_ad9963_rx #(
|
||||||
|
|
||||||
// adc delay control
|
// adc delay control
|
||||||
|
|
||||||
|
generate if (IODELAY_ENABLE == 1) begin
|
||||||
|
|
||||||
up_delay_cntrl #(.DATA_WIDTH(13), .BASE_ADDRESS(6'h02)) i_delay_cntrl (
|
up_delay_cntrl #(.DATA_WIDTH(13), .BASE_ADDRESS(6'h02)) i_delay_cntrl (
|
||||||
.delay_clk (delay_clk),
|
.delay_clk (delay_clk),
|
||||||
.delay_rst (delay_rst),
|
.delay_rst (delay_rst),
|
||||||
|
@ -251,6 +254,16 @@ module axi_ad9963_rx #(
|
||||||
.up_rdata (up_rdata_s[3]),
|
.up_rdata (up_rdata_s[3]),
|
||||||
.up_rack (up_rack_s[3]));
|
.up_rack (up_rack_s[3]));
|
||||||
|
|
||||||
|
end else begin
|
||||||
|
assign up_dld = 'h00;
|
||||||
|
assign up_dwdata = 'h00;
|
||||||
|
assign delay_rst = 1'b1;
|
||||||
|
assign up_wack_s[3] = 0;
|
||||||
|
assign up_rack_s[3] = 0;
|
||||||
|
assign up_rdata_s[3] = 'h00;
|
||||||
|
end
|
||||||
|
endgenerate
|
||||||
|
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
// ***************************************************************************
|
// ***************************************************************************
|
||||||
|
|
Loading…
Reference in New Issue