prcfg_lib: Change the prcfg_top interface
Use the device core's gpio_input and gpio_output registers to get/set status and control of PR.main
parent
75e624ef15
commit
dc78ced443
|
@ -45,8 +45,10 @@ module prcfg_top(
|
||||||
clk,
|
clk,
|
||||||
|
|
||||||
// gpio
|
// gpio
|
||||||
gpio_input,
|
dac_gpio_input,
|
||||||
gpio_output,
|
dac_gpio_output,
|
||||||
|
adc_gpio_input,
|
||||||
|
adc_gpio_output,
|
||||||
|
|
||||||
// TX side
|
// TX side
|
||||||
dma_dac_drd,
|
dma_dac_drd,
|
||||||
|
@ -80,8 +82,10 @@ module prcfg_top(
|
||||||
|
|
||||||
input clk;
|
input clk;
|
||||||
|
|
||||||
input [31:0] gpio_input;
|
input [31:0] dac_gpio_input;
|
||||||
output [31:0] gpio_output;
|
output [31:0] dac_gpio_output;
|
||||||
|
input [31:0] adc_gpio_input;
|
||||||
|
output [31:0] adc_gpio_output;
|
||||||
|
|
||||||
output dma_dac_drd;
|
output dma_dac_drd;
|
||||||
input dma_dac_dunf;
|
input dma_dac_dunf;
|
||||||
|
@ -101,11 +105,11 @@ module prcfg_top(
|
||||||
output [(DBUS_WIDTH - 1):0] dma_adc_ddata;
|
output [(DBUS_WIDTH - 1):0] dma_adc_ddata;
|
||||||
input dma_adc_ovf;
|
input dma_adc_ovf;
|
||||||
|
|
||||||
wire [31:0] gpio_output_s[(NUM_CHANNEL - 1):0];
|
wire [31:0] adc_gpio_out_s[(NUM_CHANNEL - 1):0];
|
||||||
wire [(NUM_CHANNEL - 1):0] gpio_output_s_inv[31:0];
|
wire [(NUM_CHANNEL - 1):0] adc_gpio_out_s_inv[31:0];
|
||||||
|
|
||||||
wire [31:0] adc_status_s[(NUM_CHANNEL - 1):0];
|
wire [31:0] dac_gpio_out_s[(NUM_CHANNEL - 1):0];
|
||||||
wire [31:0] dac_status_s[(NUM_CHANNEL - 1):0];
|
wire [(NUM_CHANNEL - 1):0] dac_gpio_out_s_inv[31:0];
|
||||||
|
|
||||||
genvar l_inst;
|
genvar l_inst;
|
||||||
|
|
||||||
|
@ -117,8 +121,8 @@ module prcfg_top(
|
||||||
.CHANNEL_ID(l_inst)
|
.CHANNEL_ID(l_inst)
|
||||||
) i_prcfg_adc_1 (
|
) i_prcfg_adc_1 (
|
||||||
.clk(clk),
|
.clk(clk),
|
||||||
.control(gpio_input),
|
.control(adc_gpio_input),
|
||||||
.status(adc_status_s[l_inst]),
|
.status(adc_gpio_out_s[l_inst]),
|
||||||
.src_adc_dwr(core_adc_dwr),
|
.src_adc_dwr(core_adc_dwr),
|
||||||
.src_adc_dsync(core_adc_dsync),
|
.src_adc_dsync(core_adc_dsync),
|
||||||
.src_adc_ddata(core_adc_ddata[(DATA_WIDTH - 1):0]),
|
.src_adc_ddata(core_adc_ddata[(DATA_WIDTH - 1):0]),
|
||||||
|
@ -133,8 +137,8 @@ module prcfg_top(
|
||||||
.CHANNEL_ID(l_inst)
|
.CHANNEL_ID(l_inst)
|
||||||
) i_prcfg_adc_1 (
|
) i_prcfg_adc_1 (
|
||||||
.clk(clk),
|
.clk(clk),
|
||||||
.control(gpio_input),
|
.control(adc_gpio_input),
|
||||||
.status(adc_status_s[l_inst]),
|
.status(adc_gpio_out_s[l_inst]),
|
||||||
.src_adc_dwr(core_adc_dwr),
|
.src_adc_dwr(core_adc_dwr),
|
||||||
.src_adc_dsync(core_adc_dsync),
|
.src_adc_dsync(core_adc_dsync),
|
||||||
.src_adc_ddata(core_adc_ddata[((DATA_WIDTH * (l_inst + 1)) - 1):(DATA_WIDTH * l_inst)]),
|
.src_adc_ddata(core_adc_ddata[((DATA_WIDTH * (l_inst + 1)) - 1):(DATA_WIDTH * l_inst)]),
|
||||||
|
@ -152,8 +156,8 @@ module prcfg_top(
|
||||||
.CHANNEL_ID(l_inst)
|
.CHANNEL_ID(l_inst)
|
||||||
) i_prcfg_dac_1 (
|
) i_prcfg_dac_1 (
|
||||||
.clk(clk),
|
.clk(clk),
|
||||||
.control(gpio_input),
|
.control(dac_gpio_input),
|
||||||
.status(dac_status_s[l_inst]),
|
.status(dac_gpio_out_s[l_inst]),
|
||||||
.src_dac_drd(dma_dac_drd),
|
.src_dac_drd(dma_dac_drd),
|
||||||
.src_dac_ddata(dma_dac_ddata[(DATA_WIDTH - 1):0]),
|
.src_dac_ddata(dma_dac_ddata[(DATA_WIDTH - 1):0]),
|
||||||
.src_dac_dunf(dma_dac_dunf),
|
.src_dac_dunf(dma_dac_dunf),
|
||||||
|
@ -166,8 +170,8 @@ module prcfg_top(
|
||||||
.CHANNEL_ID(l_inst)
|
.CHANNEL_ID(l_inst)
|
||||||
) i_prcfg_dac_1 (
|
) i_prcfg_dac_1 (
|
||||||
.clk(clk),
|
.clk(clk),
|
||||||
.control(gpio_input),
|
.control(dac_gpio_input),
|
||||||
.status(dac_status_s[l_inst]),
|
.status(dac_gpio_out_s[l_inst]),
|
||||||
.src_dac_drd(),
|
.src_dac_drd(),
|
||||||
.src_dac_ddata(dma_dac_ddata[((DATA_WIDTH * (l_inst + 1)) - 1):(DATA_WIDTH * l_inst)]),
|
.src_dac_ddata(dma_dac_ddata[((DATA_WIDTH * (l_inst + 1)) - 1):(DATA_WIDTH * l_inst)]),
|
||||||
.src_dac_dunf(dma_dac_dunf),
|
.src_dac_dunf(dma_dac_dunf),
|
||||||
|
@ -177,7 +181,6 @@ module prcfg_top(
|
||||||
);
|
);
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
assign gpio_output_s[l_inst] = adc_status_s[l_inst] | dac_status_s[l_inst];
|
|
||||||
|
|
||||||
end
|
end
|
||||||
endgenerate
|
endgenerate
|
||||||
|
@ -188,15 +191,17 @@ module prcfg_top(
|
||||||
generate
|
generate
|
||||||
for(i = 0; i < 32; i = i + 1) begin
|
for(i = 0; i < 32; i = i + 1) begin
|
||||||
for(j = 0; j < NUM_CHANNEL; j = j + 1) begin
|
for(j = 0; j < NUM_CHANNEL; j = j + 1) begin
|
||||||
assign gpio_output_s_inv[i][j] = gpio_output_s[j][i];
|
assign adc_gpio_out_s_inv[i][j] = adc_gpio_out_s[j][i];
|
||||||
|
assign dac_gpio_out_s_inv[i][j] = dac_gpio_out_s[j][i];
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
endgenerate
|
endgenerate
|
||||||
|
|
||||||
// generate gpio_output
|
// generate gpio_outputs
|
||||||
generate
|
generate
|
||||||
for(i = 0; i < 32; i = i + 1) begin
|
for(i = 0; i < 32; i = i + 1) begin
|
||||||
assign gpio_output[i] = |gpio_output_s_inv[i];
|
assign adc_gpio_output[i] = |adc_gpio_out_s_inv[i];
|
||||||
|
assign dac_gpio_output[i] = |dac_gpio_out_s_inv[i];
|
||||||
end
|
end
|
||||||
endgenerate
|
endgenerate
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue