ad7175: Fix dma issues
parent
9c8fe5f09c
commit
36c7034bd6
|
@ -53,18 +53,15 @@ module axi_ad7175 (
|
||||||
// dma interface
|
// dma interface
|
||||||
|
|
||||||
adc_clk,
|
adc_clk,
|
||||||
adc_valid_0,
|
|
||||||
adc_enable_0,
|
adc_enable_0,
|
||||||
adc_data_0,
|
adc_data_0,
|
||||||
adc_valid_1,
|
|
||||||
adc_enable_1,
|
adc_enable_1,
|
||||||
adc_data_1,
|
adc_data_1,
|
||||||
adc_valid_2,
|
|
||||||
adc_enable_2,
|
adc_enable_2,
|
||||||
adc_data_2,
|
adc_data_2,
|
||||||
adc_valid_3,
|
|
||||||
adc_enable_3,
|
adc_enable_3,
|
||||||
adc_data_3,
|
adc_data_3,
|
||||||
|
adc_valid_o,
|
||||||
adc_dovf,
|
adc_dovf,
|
||||||
adc_dunf,
|
adc_dunf,
|
||||||
|
|
||||||
|
@ -110,18 +107,15 @@ module axi_ad7175 (
|
||||||
// dma interface
|
// dma interface
|
||||||
|
|
||||||
output adc_clk;
|
output adc_clk;
|
||||||
output adc_valid_0;
|
|
||||||
output adc_enable_0;
|
output adc_enable_0;
|
||||||
output [31:0] adc_data_0;
|
output [31:0] adc_data_0;
|
||||||
output adc_valid_1;
|
|
||||||
output adc_enable_1;
|
output adc_enable_1;
|
||||||
output [31:0] adc_data_1;
|
output [31:0] adc_data_1;
|
||||||
output adc_valid_2;
|
|
||||||
output adc_enable_2;
|
output adc_enable_2;
|
||||||
output [31:0] adc_data_2;
|
output [31:0] adc_data_2;
|
||||||
output adc_valid_3;
|
|
||||||
output adc_enable_3;
|
output adc_enable_3;
|
||||||
output [31:0] adc_data_3;
|
output [31:0] adc_data_3;
|
||||||
|
output adc_valid_o;
|
||||||
input adc_dovf;
|
input adc_dovf;
|
||||||
input adc_dunf;
|
input adc_dunf;
|
||||||
|
|
||||||
|
@ -153,6 +147,8 @@ module axi_ad7175 (
|
||||||
reg [31:0] up_rdata = 'd0;
|
reg [31:0] up_rdata = 'd0;
|
||||||
reg up_rack = 'd0;
|
reg up_rack = 'd0;
|
||||||
reg up_wack = 'd0;
|
reg up_wack = 'd0;
|
||||||
|
wire adc_valid_s;
|
||||||
|
reg adc_valid_d1;
|
||||||
|
|
||||||
// internal clocks & resets
|
// internal clocks & resets
|
||||||
|
|
||||||
|
@ -183,12 +179,13 @@ module axi_ad7175 (
|
||||||
wire [31:0] adc_gpio_out;
|
wire [31:0] adc_gpio_out;
|
||||||
|
|
||||||
wire clk_div_update_rdy_s;
|
wire clk_div_update_rdy_s;
|
||||||
wire [23:0] phase_data_s;
|
wire [31:0] phase_data_s;
|
||||||
|
|
||||||
// signal name changes
|
// signal name changes
|
||||||
assign adc_clk = s_axi_aclk;
|
assign adc_clk = s_axi_aclk;
|
||||||
assign up_clk = s_axi_aclk;
|
assign up_clk = s_axi_aclk;
|
||||||
assign up_rstn = s_axi_aresetn;
|
assign up_rstn = s_axi_aresetn;
|
||||||
|
assign adc_valid_o = adc_valid_s & ~adc_valid_d1;
|
||||||
|
|
||||||
// processor read interface
|
// processor read interface
|
||||||
|
|
||||||
|
@ -201,6 +198,7 @@ module axi_ad7175 (
|
||||||
up_rdata <= up_rdata_s[0] | up_rdata_s[1] | up_rdata_s[2] | up_rdata_s[3] | up_rdata_s[4];
|
up_rdata <= up_rdata_s[0] | up_rdata_s[1] | up_rdata_s[2] | up_rdata_s[3] | up_rdata_s[4];
|
||||||
up_rack <= up_rack_s[0] | up_rack_s[1] | up_rack_s[2] | up_rack_s[3] | up_rack_s[4];
|
up_rack <= up_rack_s[0] | up_rack_s[1] | up_rack_s[2] | up_rack_s[3] | up_rack_s[4];
|
||||||
up_wack <= up_wack_s[0] | up_wack_s[1] | up_wack_s[2] | up_wack_s[3] | up_wack_s[4];
|
up_wack <= up_wack_s[0] | up_wack_s[1] | up_wack_s[2] | up_wack_s[3] | up_wack_s[4];
|
||||||
|
adc_valid_d1 <= adc_valid_s;
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -215,7 +213,7 @@ module axi_ad7175 (
|
||||||
.adc_data ({8'b0, adc_data_s[23:0]}),
|
.adc_data ({8'b0, adc_data_s[23:0]}),
|
||||||
.adc_valid_in(data_rd_ready_s && (adc_data_s[25:24] == 2'b0)),
|
.adc_valid_in(data_rd_ready_s && (adc_data_s[25:24] == 2'b0)),
|
||||||
.adc_data_out (adc_data_0),
|
.adc_data_out (adc_data_0),
|
||||||
.adc_valid (adc_valid_0),
|
.adc_valid (),
|
||||||
.adc_enable (adc_enable_0),
|
.adc_enable (adc_enable_0),
|
||||||
.up_rstn (up_rstn),
|
.up_rstn (up_rstn),
|
||||||
.up_clk (up_clk),
|
.up_clk (up_clk),
|
||||||
|
@ -236,10 +234,10 @@ module axi_ad7175 (
|
||||||
i_channel_1 (
|
i_channel_1 (
|
||||||
.adc_clk (adc_clk),
|
.adc_clk (adc_clk),
|
||||||
.adc_rst (adc_rst),
|
.adc_rst (adc_rst),
|
||||||
.adc_data ({8'b0, phase_data_s}),
|
.adc_data (phase_data_s),
|
||||||
.adc_valid_in(data_rd_ready_s && (adc_data_s[25:24] == 2'b0)),
|
.adc_valid_in(data_rd_ready_s && (adc_data_s[25:24] == 2'b0)),
|
||||||
.adc_data_out (adc_data_1),
|
.adc_data_out (adc_data_1),
|
||||||
.adc_valid (adc_valid_1),
|
.adc_valid (),
|
||||||
.adc_enable (adc_enable_1),
|
.adc_enable (adc_enable_1),
|
||||||
.up_rstn (up_rstn),
|
.up_rstn (up_rstn),
|
||||||
.up_clk (up_clk),
|
.up_clk (up_clk),
|
||||||
|
@ -263,7 +261,7 @@ module axi_ad7175 (
|
||||||
.adc_data ({8'b0, adc_data_s[23:0]}),
|
.adc_data ({8'b0, adc_data_s[23:0]}),
|
||||||
.adc_valid_in(data_rd_ready_s && (adc_data_s[25:24] == 2'b1)),
|
.adc_valid_in(data_rd_ready_s && (adc_data_s[25:24] == 2'b1)),
|
||||||
.adc_data_out (adc_data_2),
|
.adc_data_out (adc_data_2),
|
||||||
.adc_valid (adc_valid_2),
|
.adc_valid (),
|
||||||
.adc_enable (adc_enable_2),
|
.adc_enable (adc_enable_2),
|
||||||
.up_rstn (up_rstn),
|
.up_rstn (up_rstn),
|
||||||
.up_clk (up_clk),
|
.up_clk (up_clk),
|
||||||
|
@ -282,10 +280,10 @@ module axi_ad7175 (
|
||||||
i_channel_3 (
|
i_channel_3 (
|
||||||
.adc_clk (adc_clk),
|
.adc_clk (adc_clk),
|
||||||
.adc_rst (adc_rst),
|
.adc_rst (adc_rst),
|
||||||
.adc_data ({8'b0, phase_data_s}),
|
.adc_data (phase_data_s),
|
||||||
.adc_valid_in(data_rd_ready_s && (adc_data_s[25:24] == 2'b1)),
|
.adc_valid_in(data_rd_ready_s && (adc_data_s[25:24] == 2'b1)),
|
||||||
.adc_data_out (adc_data_3),
|
.adc_data_out (adc_data_3),
|
||||||
.adc_valid (adc_valid_3),
|
.adc_valid (adc_valid_s),
|
||||||
.adc_enable (adc_enable_3),
|
.adc_enable (adc_enable_3),
|
||||||
.up_rstn (up_rstn),
|
.up_rstn (up_rstn),
|
||||||
.up_clk (up_clk),
|
.up_clk (up_clk),
|
||||||
|
|
|
@ -11,7 +11,7 @@ adi_ip_files axi_ad7175 [list \
|
||||||
"$ad_hdl_dir/library/common/up_drp_cntrl.v" \
|
"$ad_hdl_dir/library/common/up_drp_cntrl.v" \
|
||||||
"$ad_hdl_dir/library/common/up_xfer_cntrl.v" \
|
"$ad_hdl_dir/library/common/up_xfer_cntrl.v" \
|
||||||
"$ad_hdl_dir/library/common/up_xfer_status.v" \
|
"$ad_hdl_dir/library/common/up_xfer_status.v" \
|
||||||
"$ad_hdl_dir/library/common/up_clock_mon.v" \
|
"$ad_hdl_dir/library/common/up_clock_mon.v" \
|
||||||
"$ad_hdl_dir/library/common/up_adc_channel.v" \
|
"$ad_hdl_dir/library/common/up_adc_channel.v" \
|
||||||
"up_adc_common.v" \
|
"up_adc_common.v" \
|
||||||
"ad_datafmt.v" \
|
"ad_datafmt.v" \
|
||||||
|
|
|
@ -49,7 +49,7 @@ connect_bd_net -net axi_ad7175_adc_cs_o [get_bd_ports adc_cs_o] [get_b
|
||||||
connect_bd_net -net axi_ad7175_adc_sclk_o [get_bd_ports adc_sclk_o] [get_bd_pins axi_ad7175/adc_sclk_o]
|
connect_bd_net -net axi_ad7175_adc_sclk_o [get_bd_ports adc_sclk_o] [get_bd_pins axi_ad7175/adc_sclk_o]
|
||||||
connect_bd_net -net axi_ad7175_led_clk_o [get_bd_ports led_clk_o] [get_bd_pins axi_ad7175/led_clk_o]
|
connect_bd_net -net axi_ad7175_led_clk_o [get_bd_ports led_clk_o] [get_bd_pins axi_ad7175/led_clk_o]
|
||||||
|
|
||||||
connect_bd_net -net axi_ad7175_dma_valid [get_bd_pins axi_ad7175/adc_valid_3] [get_bd_pins axi_ad7175_dma/fifo_wr_en]
|
connect_bd_net -net axi_ad7175_dma_valid [get_bd_pins axi_ad7175/adc_valid_o] [get_bd_pins axi_ad7175_dma/fifo_wr_en]
|
||||||
|
|
||||||
connect_bd_net -net axi_ad7175_dma_data_0 [get_bd_pins axi_ad7175/adc_data_0] [get_bd_ports adc_data_0]
|
connect_bd_net -net axi_ad7175_dma_data_0 [get_bd_pins axi_ad7175/adc_data_0] [get_bd_ports adc_data_0]
|
||||||
connect_bd_net -net axi_ad7175_dma_data_1 [get_bd_pins axi_ad7175/adc_data_1] [get_bd_ports adc_data_1]
|
connect_bd_net -net axi_ad7175_dma_data_1 [get_bd_pins axi_ad7175/adc_data_1] [get_bd_ports adc_data_1]
|
||||||
|
|
Loading…
Reference in New Issue