fmcomms2, fmcomms5: updated util_adc_pack and util_dac_unpack
The cores now support up to 8 channels, in 1, 2, 4, 8 channel active configurationmain
parent
a68f634de9
commit
7000897031
|
@ -43,18 +43,37 @@ module util_adc_pack (
|
||||||
|
|
||||||
clk,
|
clk,
|
||||||
|
|
||||||
chan_data_0,
|
|
||||||
chan_data_1,
|
|
||||||
chan_data_2,
|
|
||||||
chan_data_3,
|
|
||||||
chan_enable_0,
|
chan_enable_0,
|
||||||
chan_enable_1,
|
|
||||||
chan_enable_2,
|
|
||||||
chan_enable_3,
|
|
||||||
chan_valid_0,
|
chan_valid_0,
|
||||||
|
chan_data_0,
|
||||||
|
|
||||||
|
chan_enable_1,
|
||||||
chan_valid_1,
|
chan_valid_1,
|
||||||
|
chan_data_1,
|
||||||
|
|
||||||
|
chan_enable_2,
|
||||||
chan_valid_2,
|
chan_valid_2,
|
||||||
|
chan_data_2,
|
||||||
|
|
||||||
|
chan_enable_3,
|
||||||
chan_valid_3,
|
chan_valid_3,
|
||||||
|
chan_data_3,
|
||||||
|
|
||||||
|
chan_enable_4,
|
||||||
|
chan_valid_4,
|
||||||
|
chan_data_4,
|
||||||
|
|
||||||
|
chan_enable_5,
|
||||||
|
chan_valid_5,
|
||||||
|
chan_data_5,
|
||||||
|
|
||||||
|
chan_enable_6,
|
||||||
|
chan_valid_6,
|
||||||
|
chan_data_6,
|
||||||
|
|
||||||
|
chan_enable_7,
|
||||||
|
chan_valid_7,
|
||||||
|
chan_data_7,
|
||||||
|
|
||||||
ddata,
|
ddata,
|
||||||
dvalid,
|
dvalid,
|
||||||
|
@ -66,264 +85,361 @@ module util_adc_pack (
|
||||||
|
|
||||||
input clk;
|
input clk;
|
||||||
|
|
||||||
input [15:0] chan_data_0;
|
|
||||||
input [15:0] chan_data_1;
|
|
||||||
input [15:0] chan_data_2;
|
|
||||||
input [15:0] chan_data_3;
|
|
||||||
input chan_enable_0;
|
input chan_enable_0;
|
||||||
input chan_enable_1;
|
|
||||||
input chan_enable_2;
|
|
||||||
input chan_enable_3;
|
|
||||||
input chan_valid_0;
|
input chan_valid_0;
|
||||||
input chan_valid_1;
|
input [15:0] chan_data_0;
|
||||||
input chan_valid_2;
|
|
||||||
input chan_valid_3;
|
|
||||||
|
|
||||||
output [63:0] ddata;
|
input chan_enable_1;
|
||||||
|
input chan_valid_1;
|
||||||
|
input [15:0] chan_data_1;
|
||||||
|
|
||||||
|
input chan_enable_2;
|
||||||
|
input chan_valid_2;
|
||||||
|
input [15:0] chan_data_2;
|
||||||
|
|
||||||
|
input chan_enable_3;
|
||||||
|
input chan_valid_3;
|
||||||
|
input [15:0] chan_data_3;
|
||||||
|
|
||||||
|
input chan_enable_4;
|
||||||
|
input chan_valid_4;
|
||||||
|
input [15:0] chan_data_4;
|
||||||
|
|
||||||
|
input chan_enable_5;
|
||||||
|
input chan_valid_5;
|
||||||
|
input [15:0] chan_data_5;
|
||||||
|
|
||||||
|
input chan_enable_6;
|
||||||
|
input chan_valid_6;
|
||||||
|
input [15:0] chan_data_6;
|
||||||
|
|
||||||
|
input chan_valid_7;
|
||||||
|
input chan_enable_7;
|
||||||
|
input [15:0] chan_data_7;
|
||||||
|
|
||||||
|
output [127:0] ddata;
|
||||||
output dvalid;
|
output dvalid;
|
||||||
output dsync;
|
output dsync;
|
||||||
|
|
||||||
reg [47:0] adc_data_3_1110 = 'd0;
|
wire chan_valid;
|
||||||
reg [47:0] adc_data_3_1101 = 'd0;
|
wire [3:0] enable_cnt;
|
||||||
reg [47:0] adc_data_3_1011 = 'd0;
|
wire [2:0] enable_cnt_0;
|
||||||
reg [47:0] adc_data_3_0111 = 'd0;
|
wire [2:0] enable_cnt_1;
|
||||||
reg adc_iqcor_valid = 'd0;
|
|
||||||
reg adc_iqcor_valid_3 = 'd0;
|
|
||||||
reg adc_iqcor_sync = 'd0;
|
|
||||||
reg adc_iqcor_sync_3 = 'd0;
|
|
||||||
reg [63:0] adc_data = 'd0;
|
|
||||||
reg [63:0] adc_data_1110 = 'd0;
|
|
||||||
reg [63:0] adc_data_1101 = 'd0;
|
|
||||||
reg [63:0] adc_data_1011 = 'd0;
|
|
||||||
reg [63:0] adc_data_0111 = 'd0;
|
|
||||||
reg [ 1:0] adc_data_cnt = 'd0;
|
|
||||||
|
|
||||||
wire valid;
|
reg [127:0] packed_data = 0;
|
||||||
|
reg [63:0] temp_data_0 = 0;
|
||||||
|
reg [63:0] temp_data_1 = 0;
|
||||||
|
reg [7:0] path_enabled = 0;
|
||||||
|
reg [6:0] counter_0 = 0;
|
||||||
|
reg [7:0] en1 = 0;
|
||||||
|
reg [7:0] en2 = 0;
|
||||||
|
reg [7:0] en4 = 0;
|
||||||
|
reg [127:0] ddata = 0;
|
||||||
|
reg dvalid = 0;
|
||||||
|
reg chan_valid_d1 = 0;
|
||||||
|
|
||||||
assign dsync = adc_iqcor_sync;
|
assign enable_cnt = enable_cnt_0 + enable_cnt_1;
|
||||||
assign dvalid = adc_iqcor_valid;
|
assign enable_cnt_0 = chan_enable_0 + chan_enable_1 + chan_enable_2 + chan_enable_3;
|
||||||
assign ddata = adc_data;
|
assign enable_cnt_1 = chan_enable_4 + chan_enable_5 + chan_enable_6 + chan_enable_7;
|
||||||
|
assign chan_valid = chan_valid_0 | chan_valid_1 | chan_valid_2 | chan_valid_3 | chan_valid_4 | chan_valid_5 | chan_valid_6 | chan_valid_7 ;
|
||||||
|
assign dsync = dvalid;
|
||||||
|
|
||||||
assign valid = chan_valid_0 & chan_valid_1 & chan_valid_2 & chan_valid_3;
|
always @(chan_data_0, chan_data_1, chan_data_2, chan_data_3, chan_enable_0, chan_enable_1, chan_enable_2, chan_enable_3, chan_valid)
|
||||||
|
begin
|
||||||
always @(posedge clk) begin
|
if(chan_valid == 1'b1)
|
||||||
if (valid == 1'b1) begin
|
begin
|
||||||
adc_iqcor_valid_3 <= adc_data_cnt[0] | adc_data_cnt[1];
|
casex ({chan_enable_3,chan_enable_2,chan_enable_1,chan_enable_0})
|
||||||
adc_iqcor_sync_3 <= adc_data_cnt[0] & ~adc_data_cnt[1];
|
4'bxxx1: temp_data_0[15:0] = chan_data_0;
|
||||||
adc_data_3_1110[47:32] <= chan_data_3;
|
4'bxx10: temp_data_0[15:0] = chan_data_1;
|
||||||
adc_data_3_1110[31:16] <= chan_data_2;
|
4'bx100: temp_data_0[15:0] = chan_data_2;
|
||||||
adc_data_3_1110[15: 0] <= chan_data_1;
|
4'b1000: temp_data_0[15:0] = chan_data_3;
|
||||||
adc_data_3_1101[47:32] <= chan_data_3;
|
default: temp_data_0 [15:0] = 16'h0000;
|
||||||
adc_data_3_1101[31:16] <= chan_data_2;
|
endcase
|
||||||
adc_data_3_1101[15: 0] <= chan_data_0;
|
|
||||||
adc_data_3_1011[47:32] <= chan_data_3;
|
casex ({chan_enable_3,chan_enable_2,chan_enable_1,chan_enable_0})
|
||||||
adc_data_3_1011[31:16] <= chan_data_1;
|
4'bxx11: temp_data_0[31:16] = chan_data_1;
|
||||||
adc_data_3_1011[15: 0] <= chan_data_0;
|
4'bx110: temp_data_0[31:16] = chan_data_2;
|
||||||
adc_data_3_0111[47:32] <= chan_data_2;
|
4'bx101: temp_data_0[31:16] = chan_data_2;
|
||||||
adc_data_3_0111[31:16] <= chan_data_1;
|
4'b1001: temp_data_0[31:16] = chan_data_3;
|
||||||
adc_data_3_0111[15: 0] <= chan_data_0;
|
4'b1010: temp_data_0[31:16] = chan_data_3;
|
||||||
case (adc_data_cnt)
|
4'b1100: temp_data_0[31:16] = chan_data_3;
|
||||||
2'b11: begin
|
default: temp_data_0[31:16] = 16'h0000;
|
||||||
adc_data_1110[63:48] <= chan_data_3;
|
endcase
|
||||||
adc_data_1110[47:32] <= chan_data_2;
|
|
||||||
adc_data_1110[31:16] <= chan_data_1;
|
casex ({chan_enable_3,chan_enable_2,chan_enable_1,chan_enable_0})
|
||||||
adc_data_1110[15: 0] <= adc_data_3_1110[47:32];
|
4'bx111: temp_data_0[47:32] = chan_data_2;
|
||||||
adc_data_1101[63:48] <= chan_data_3;
|
4'b1011: temp_data_0[47:32] = chan_data_3;
|
||||||
adc_data_1101[47:32] <= chan_data_2;
|
4'b1101: temp_data_0[47:32] = chan_data_3;
|
||||||
adc_data_1101[31:16] <= chan_data_0;
|
4'b1110: temp_data_0[47:32] = chan_data_3;
|
||||||
adc_data_1101[15: 0] <= adc_data_3_1101[47:32];
|
default: temp_data_0[47:32] = 16'h0000;
|
||||||
adc_data_1011[63:48] <= chan_data_3;
|
|
||||||
adc_data_1011[47:32] <= chan_data_1;
|
|
||||||
adc_data_1011[31:16] <= chan_data_0;
|
|
||||||
adc_data_1011[15: 0] <= adc_data_3_1011[47:32];
|
|
||||||
adc_data_0111[63:48] <= chan_data_2;
|
|
||||||
adc_data_0111[47:32] <= chan_data_1;
|
|
||||||
adc_data_0111[31:16] <= chan_data_0;
|
|
||||||
adc_data_0111[15: 0] <= adc_data_3_0111[47:32];
|
|
||||||
end
|
|
||||||
2'b10: begin
|
|
||||||
adc_data_1110[63:48] <= chan_data_2;
|
|
||||||
adc_data_1110[47:32] <= chan_data_1;
|
|
||||||
adc_data_1110[31:16] <= adc_data_3_1110[47:32];
|
|
||||||
adc_data_1110[15: 0] <= adc_data_3_1110[31:16];
|
|
||||||
adc_data_1101[63:48] <= chan_data_2;
|
|
||||||
adc_data_1101[47:32] <= chan_data_0;
|
|
||||||
adc_data_1101[31:16] <= adc_data_3_1101[47:32];
|
|
||||||
adc_data_1101[15: 0] <= adc_data_3_1101[31:16];
|
|
||||||
adc_data_1011[63:48] <= chan_data_1;
|
|
||||||
adc_data_1011[47:32] <= chan_data_0;
|
|
||||||
adc_data_1011[31:16] <= adc_data_3_1011[47:32];
|
|
||||||
adc_data_1011[15: 0] <= adc_data_3_1011[31:16];
|
|
||||||
adc_data_0111[63:48] <= chan_data_1;
|
|
||||||
adc_data_0111[47:32] <= chan_data_0;
|
|
||||||
adc_data_0111[31:16] <= adc_data_3_0111[47:32];
|
|
||||||
adc_data_0111[15: 0] <= adc_data_3_0111[31:16];
|
|
||||||
end
|
|
||||||
2'b01: begin
|
|
||||||
adc_data_1110[63:48] <= chan_data_1;
|
|
||||||
adc_data_1110[47:32] <= adc_data_3_1110[47:32];
|
|
||||||
adc_data_1110[31:16] <= adc_data_3_1110[31:16];
|
|
||||||
adc_data_1110[15: 0] <= adc_data_3_1110[15: 0];
|
|
||||||
adc_data_1101[63:48] <= chan_data_0;
|
|
||||||
adc_data_1101[47:32] <= adc_data_3_1101[47:32];
|
|
||||||
adc_data_1101[31:16] <= adc_data_3_1101[31:16];
|
|
||||||
adc_data_1101[15: 0] <= adc_data_3_1101[15: 0];
|
|
||||||
adc_data_1011[63:48] <= chan_data_0;
|
|
||||||
adc_data_1011[47:32] <= adc_data_3_1011[47:32];
|
|
||||||
adc_data_1011[31:16] <= adc_data_3_1011[31:16];
|
|
||||||
adc_data_1011[15: 0] <= adc_data_3_1011[15: 0];
|
|
||||||
adc_data_0111[63:48] <= chan_data_0;
|
|
||||||
adc_data_0111[47:32] <= adc_data_3_0111[47:32];
|
|
||||||
adc_data_0111[31:16] <= adc_data_3_0111[31:16];
|
|
||||||
adc_data_0111[15: 0] <= adc_data_3_0111[15: 0];
|
|
||||||
end
|
|
||||||
default:begin
|
|
||||||
adc_data_1110[63:48] <= 16'hdead;
|
|
||||||
adc_data_1110[47:32] <= 16'hdead;
|
|
||||||
adc_data_1110[31:16] <= 16'hdead;
|
|
||||||
adc_data_1110[15: 0] <= 16'hdead;
|
|
||||||
adc_data_1101[63:48] <= 16'hdead;
|
|
||||||
adc_data_1101[47:32] <= 16'hdead;
|
|
||||||
adc_data_1101[31:16] <= 16'hdead;
|
|
||||||
adc_data_1101[15: 0] <= 16'hdead;
|
|
||||||
adc_data_1011[63:48] <= 16'hdead;
|
|
||||||
adc_data_1011[47:32] <= 16'hdead;
|
|
||||||
adc_data_1011[31:16] <= 16'hdead;
|
|
||||||
adc_data_1011[15: 0] <= 16'hdead;
|
|
||||||
adc_data_0111[63:48] <= 16'hdead;
|
|
||||||
adc_data_0111[47:32] <= 16'hdead;
|
|
||||||
adc_data_0111[31:16] <= 16'hdead;
|
|
||||||
adc_data_0111[15: 0] <= 16'hdead;
|
|
||||||
end
|
|
||||||
endcase
|
endcase
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
always @(posedge clk) begin
|
|
||||||
if (valid == 1'b1) begin
|
|
||||||
case ({chan_enable_3,chan_enable_2,chan_enable_1,chan_enable_0})
|
case ({chan_enable_3,chan_enable_2,chan_enable_1,chan_enable_0})
|
||||||
4'b1111: begin
|
4'b1111: temp_data_0[63:48] = chan_data_3;
|
||||||
adc_iqcor_valid <= 1'b1;
|
default: temp_data_0[63:48] = 16'h0000;
|
||||||
adc_iqcor_sync <= 1'b1;
|
endcase
|
||||||
adc_data[63:48] <= chan_data_3;
|
|
||||||
adc_data[47:32] <= chan_data_2;
|
|
||||||
adc_data[31:16] <= chan_data_1;
|
|
||||||
adc_data[15: 0] <= chan_data_0;
|
|
||||||
end
|
end
|
||||||
4'b1110: begin
|
else
|
||||||
adc_iqcor_sync <= adc_iqcor_sync_3;
|
begin
|
||||||
adc_iqcor_valid <= adc_iqcor_valid_3;
|
temp_data_0 = 64'h0;
|
||||||
adc_data <= adc_data_1110;
|
|
||||||
end
|
end
|
||||||
4'b1101: begin
|
|
||||||
adc_iqcor_sync <= adc_iqcor_sync_3;
|
|
||||||
adc_iqcor_valid <= adc_iqcor_valid_3;
|
|
||||||
adc_data <= adc_data_1101;
|
|
||||||
end
|
end
|
||||||
4'b1100: begin
|
|
||||||
adc_iqcor_sync <= 1'b1;
|
always @(chan_data_4, chan_data_5, chan_data_6, chan_data_7, chan_enable_4, chan_enable_5, chan_enable_6, chan_enable_7, chan_valid)
|
||||||
adc_iqcor_valid <= adc_data_cnt[0];
|
begin
|
||||||
adc_data[63:48] <= chan_data_3;
|
if(chan_valid == 1'b1)
|
||||||
adc_data[47:32] <= chan_data_2;
|
begin
|
||||||
adc_data[31:16] <= adc_data[63:48];
|
casex ({chan_enable_7,chan_enable_6,chan_enable_5,chan_enable_4})
|
||||||
adc_data[15: 0] <= adc_data[47:32];
|
4'bxxx1: temp_data_1[15:0] = chan_data_4;
|
||||||
|
4'bxx10: temp_data_1[15:0] = chan_data_5;
|
||||||
|
4'bx100: temp_data_1[15:0] = chan_data_6;
|
||||||
|
4'b1000: temp_data_1[15:0] = chan_data_7;
|
||||||
|
default: temp_data_1 [15:0] = 16'h0000;
|
||||||
|
endcase
|
||||||
|
|
||||||
|
casex ({chan_enable_7,chan_enable_6,chan_enable_5,chan_enable_4})
|
||||||
|
4'bxx11: temp_data_1[31:16] = chan_data_5;
|
||||||
|
4'bx110: temp_data_1[31:16] = chan_data_6;
|
||||||
|
4'bx101: temp_data_1[31:16] = chan_data_6;
|
||||||
|
4'b1001: temp_data_1[31:16] = chan_data_7;
|
||||||
|
4'b1010: temp_data_1[31:16] = chan_data_7;
|
||||||
|
4'b1100: temp_data_1[31:16] = chan_data_7;
|
||||||
|
default: temp_data_1[31:16] = 16'h0000;
|
||||||
|
endcase
|
||||||
|
|
||||||
|
casex ({chan_enable_7,chan_enable_6,chan_enable_5,chan_enable_4})
|
||||||
|
4'bx111: temp_data_1[47:32] = chan_data_6;
|
||||||
|
4'b1011: temp_data_1[47:32] = chan_data_7;
|
||||||
|
4'b1101: temp_data_1[47:32] = chan_data_7;
|
||||||
|
4'b1110: temp_data_1[47:32] = chan_data_7;
|
||||||
|
default: temp_data_1[47:32] = 16'h0000;
|
||||||
|
endcase
|
||||||
|
|
||||||
|
case ({chan_enable_7,chan_enable_6,chan_enable_5,chan_enable_4})
|
||||||
|
4'b1111: temp_data_1[63:48] = chan_data_7;
|
||||||
|
default: temp_data_1[63:48] = 16'h0000;
|
||||||
|
endcase
|
||||||
end
|
end
|
||||||
4'b1011: begin
|
else
|
||||||
adc_iqcor_sync <= adc_iqcor_sync_3;
|
begin
|
||||||
adc_iqcor_valid <= adc_iqcor_valid_3;
|
temp_data_1 = 64'h0;
|
||||||
adc_data <= adc_data_1011;
|
|
||||||
end
|
end
|
||||||
4'b1010: begin
|
|
||||||
adc_iqcor_sync <= 1'b1;
|
|
||||||
adc_iqcor_valid <= adc_data_cnt[0];
|
|
||||||
adc_data[63:48] <= chan_data_3;
|
|
||||||
adc_data[47:32] <= chan_data_1;
|
|
||||||
adc_data[31:16] <= adc_data[63:48];
|
|
||||||
adc_data[15: 0] <= adc_data[47:32];
|
|
||||||
end
|
end
|
||||||
4'b1001: begin
|
|
||||||
adc_iqcor_sync <= 1'b1;
|
always @(temp_data_0, temp_data_1, enable_cnt_0)
|
||||||
adc_iqcor_valid <= adc_data_cnt[0];
|
begin
|
||||||
adc_data[63:48] <= chan_data_3;
|
packed_data = temp_data_0 | temp_data_1 << enable_cnt_0 * 16;
|
||||||
adc_data[47:32] <= chan_data_0;
|
|
||||||
adc_data[31:16] <= adc_data[63:48];
|
|
||||||
adc_data[15: 0] <= adc_data[47:32];
|
|
||||||
end
|
end
|
||||||
4'b1000: begin
|
|
||||||
adc_iqcor_sync <= 1'b1;
|
always @(enable_cnt)
|
||||||
adc_iqcor_valid <= adc_data_cnt[1] & adc_data_cnt[0];
|
begin
|
||||||
adc_data[63:48] <= chan_data_3;
|
case(enable_cnt)
|
||||||
adc_data[47:32] <= adc_data[63:48];
|
4'h1: path_enabled = 8'h01;
|
||||||
adc_data[31:16] <= adc_data[47:32];
|
4'h2: path_enabled = 8'h02;
|
||||||
adc_data[15: 0] <= adc_data[31:16];
|
4'h4: path_enabled = 8'h08;
|
||||||
|
4'h8: path_enabled = 8'h80;
|
||||||
|
default: path_enabled = 8'h0;
|
||||||
|
endcase
|
||||||
end
|
end
|
||||||
4'b0111: begin
|
|
||||||
adc_iqcor_sync <= adc_iqcor_sync_3;
|
always @(posedge clk)
|
||||||
adc_iqcor_valid <= adc_iqcor_valid_3;
|
begin
|
||||||
adc_data <= adc_data_0111;
|
if (path_enabled == 8'h0)
|
||||||
|
begin
|
||||||
|
counter_0 <= 7'h0;
|
||||||
end
|
end
|
||||||
4'b0110: begin
|
else
|
||||||
adc_iqcor_sync <= 1'b1;
|
begin
|
||||||
adc_iqcor_valid <= adc_data_cnt[0];
|
if( chan_valid == 1'b1)
|
||||||
adc_data[63:48] <= chan_data_2;
|
begin
|
||||||
adc_data[47:32] <= chan_data_1;
|
if (counter_0 > 7)
|
||||||
adc_data[31:16] <= adc_data[63:48];
|
begin
|
||||||
adc_data[15: 0] <= adc_data[47:32];
|
counter_0 <= counter_0 - 8 + enable_cnt;
|
||||||
end
|
end
|
||||||
4'b0101: begin
|
else
|
||||||
adc_iqcor_sync <= 1'b1;
|
begin
|
||||||
adc_iqcor_valid <= adc_data_cnt[0];
|
counter_0 <= counter_0 + enable_cnt;
|
||||||
adc_data[63:48] <= chan_data_2;
|
|
||||||
adc_data[47:32] <= chan_data_0;
|
|
||||||
adc_data[31:16] <= adc_data[63:48];
|
|
||||||
adc_data[15: 0] <= adc_data[47:32];
|
|
||||||
end
|
end
|
||||||
4'b0100: begin
|
if ((counter_0 == (8 - enable_cnt)) || (path_enabled == 8'h80) )
|
||||||
adc_iqcor_sync <= 1'b1;
|
begin
|
||||||
adc_iqcor_valid <= adc_data_cnt[1] & adc_data_cnt[0];
|
dvalid <= 1'b1;
|
||||||
adc_data[63:48] <= chan_data_2;
|
|
||||||
adc_data[47:32] <= adc_data[63:48];
|
|
||||||
adc_data[31:16] <= adc_data[47:32];
|
|
||||||
adc_data[15: 0] <= adc_data[31:16];
|
|
||||||
end
|
end
|
||||||
4'b0011: begin
|
else
|
||||||
adc_iqcor_sync <= 1'b1;
|
begin
|
||||||
adc_iqcor_valid <= adc_data_cnt[0];
|
dvalid <= 1'b0;
|
||||||
adc_data[63:48] <= chan_data_1;
|
|
||||||
adc_data[47:32] <= chan_data_0;
|
|
||||||
adc_data[31:16] <= adc_data[63:48];
|
|
||||||
adc_data[15: 0] <= adc_data[47:32];
|
|
||||||
end
|
end
|
||||||
4'b0010: begin
|
|
||||||
adc_iqcor_sync <= 1'b1;
|
|
||||||
adc_iqcor_valid <= adc_data_cnt[1] & adc_data_cnt[0];
|
|
||||||
adc_data[63:48] <= chan_data_1;
|
|
||||||
adc_data[47:32] <= adc_data[63:48];
|
|
||||||
adc_data[31:16] <= adc_data[47:32];
|
|
||||||
adc_data[15: 0] <= adc_data[31:16];
|
|
||||||
end
|
end
|
||||||
4'b0001: begin
|
else
|
||||||
adc_iqcor_sync <= 1'b1;
|
begin
|
||||||
adc_iqcor_valid <= adc_data_cnt[1] & adc_data_cnt[0];
|
dvalid <= 1'b0;
|
||||||
adc_data[63:48] <= chan_data_0;
|
|
||||||
adc_data[47:32] <= adc_data[63:48];
|
|
||||||
adc_data[31:16] <= adc_data[47:32];
|
|
||||||
adc_data[15: 0] <= adc_data[31:16];
|
|
||||||
end
|
end
|
||||||
default: begin
|
end
|
||||||
adc_iqcor_valid <= 1'b1;
|
end
|
||||||
adc_data[63:48] <= 16'hdead;
|
|
||||||
adc_data[47:32] <= 16'hdead;
|
always @(counter_0, path_enabled)
|
||||||
adc_data[31:16] <= 16'hdead;
|
begin
|
||||||
adc_data[15: 0] <= 16'hdead;
|
case (counter_0)
|
||||||
|
0:
|
||||||
|
begin
|
||||||
|
en1 = path_enabled[0];
|
||||||
|
en2 = {2{path_enabled[1]}};
|
||||||
|
en4 = {4{path_enabled[3]}};
|
||||||
|
end
|
||||||
|
1:
|
||||||
|
begin
|
||||||
|
en1 = path_enabled[0] << 1;
|
||||||
|
en2 = {2{path_enabled[1]}} << 0;
|
||||||
|
en4 = {4{path_enabled[3]}} << 0;
|
||||||
|
end
|
||||||
|
2:
|
||||||
|
begin
|
||||||
|
en1 = path_enabled[0] << 2;
|
||||||
|
en2 = {2{path_enabled[1]}} << 2;
|
||||||
|
en4 = {4{path_enabled[3]}} << 0;
|
||||||
|
end
|
||||||
|
3:
|
||||||
|
begin
|
||||||
|
en1 = path_enabled[0] << 3;
|
||||||
|
en2 = {2{path_enabled[1]}} << 2;
|
||||||
|
en4 = {4{path_enabled[3]}} << 0;
|
||||||
|
end
|
||||||
|
4:
|
||||||
|
begin
|
||||||
|
en1 = path_enabled[0] << 4;
|
||||||
|
en2 = {2{path_enabled[1]}} << 4;
|
||||||
|
en4 = {4{path_enabled[3]}} << 4;
|
||||||
|
end
|
||||||
|
5:
|
||||||
|
begin
|
||||||
|
en1 = path_enabled[0] << 5;
|
||||||
|
en2 = {2{path_enabled[1]}} << 4;
|
||||||
|
en4 = {4{path_enabled[3]}} << 4;
|
||||||
|
end
|
||||||
|
6:
|
||||||
|
begin
|
||||||
|
en1 = path_enabled[0] << 6;
|
||||||
|
en2 = {2{path_enabled[1]}} << 6;
|
||||||
|
en4 = {4{path_enabled[3]}} << 4;
|
||||||
|
end
|
||||||
|
7:
|
||||||
|
begin
|
||||||
|
en1 = path_enabled[0] << 7;
|
||||||
|
en2 = {2{path_enabled[1]}} << 6;
|
||||||
|
en4 = {4{path_enabled[3]}} << 4;
|
||||||
|
end
|
||||||
|
8:
|
||||||
|
begin
|
||||||
|
en1 = path_enabled[0] << 0;
|
||||||
|
en2 = {2{path_enabled[1]}} << 0;
|
||||||
|
en4 = {4{path_enabled[3]}} << 0;
|
||||||
|
end
|
||||||
|
default:
|
||||||
|
begin
|
||||||
|
en1 = 8'h0;
|
||||||
|
en2 = 8'h0;
|
||||||
|
en4 = 8'h0;
|
||||||
end
|
end
|
||||||
endcase
|
endcase
|
||||||
adc_data_cnt <= adc_data_cnt + 1'b1;
|
|
||||||
end else begin
|
|
||||||
adc_iqcor_valid <= 1'b0;
|
|
||||||
adc_data <= adc_data;
|
|
||||||
adc_data_cnt <= adc_data_cnt;
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
always @(posedge clk)
|
||||||
|
begin
|
||||||
|
// ddata[15:0]
|
||||||
|
if ((en1[0] | en2[0] | en4[0] | path_enabled[7]) == 1'b1)
|
||||||
|
begin
|
||||||
|
ddata[15:0] <= packed_data[15:0];
|
||||||
|
end
|
||||||
|
|
||||||
|
// ddata[31:16]
|
||||||
|
if( en1[1] == 1'b1)
|
||||||
|
begin
|
||||||
|
ddata[31:16] <= packed_data[15:0];
|
||||||
|
end
|
||||||
|
if ( (en2[1] | en4[1] | path_enabled[7]) == 1'b1)
|
||||||
|
begin
|
||||||
|
ddata[31:16] <= packed_data[31:16];
|
||||||
|
end
|
||||||
|
|
||||||
|
// ddata[47:32]
|
||||||
|
if ((en1[2] | en2[2]) == 1'b1)
|
||||||
|
begin
|
||||||
|
ddata[47:32] <= packed_data[15:0];
|
||||||
|
end
|
||||||
|
if ((en4[2] | path_enabled[7]) == 1'b1)
|
||||||
|
begin
|
||||||
|
ddata[47:32] <= packed_data[47:32];
|
||||||
|
end
|
||||||
|
|
||||||
|
// ddata[63:48]
|
||||||
|
if (en1[3] == 1'b1)
|
||||||
|
begin
|
||||||
|
ddata[63:48] <= packed_data[15:0];
|
||||||
|
end
|
||||||
|
if (en2[3] == 1'b1)
|
||||||
|
begin
|
||||||
|
ddata[63:48] <= packed_data[31:16];
|
||||||
|
end
|
||||||
|
if ((en4[3] | path_enabled[7]) == 1'b1)
|
||||||
|
begin
|
||||||
|
ddata[63:48] <= packed_data[63:48];
|
||||||
|
end
|
||||||
|
|
||||||
|
// ddata[79:64]
|
||||||
|
if ((en1[4] | en2[4] | en4[4]) == 1'b1)
|
||||||
|
begin
|
||||||
|
ddata[79:64] <= packed_data[15:0];
|
||||||
|
end
|
||||||
|
if (path_enabled[7] == 1'b1)
|
||||||
|
begin
|
||||||
|
ddata[79:64] <= packed_data[79:64];
|
||||||
|
end
|
||||||
|
|
||||||
|
// ddata[95:80]
|
||||||
|
if (en1[5] == 1'b1)
|
||||||
|
begin
|
||||||
|
ddata[95:80] <= packed_data[15:0];
|
||||||
|
end
|
||||||
|
if ((en2[5] | en4[5]) == 1'b1)
|
||||||
|
begin
|
||||||
|
ddata[95:80] <= packed_data[31:16];
|
||||||
|
end
|
||||||
|
if (path_enabled[7] == 1'b1)
|
||||||
|
begin
|
||||||
|
ddata[95:80] <= packed_data[95:80];
|
||||||
|
end
|
||||||
|
|
||||||
|
// ddata[111:96]
|
||||||
|
if ((en1[6] | en2[6]) == 1'b1)
|
||||||
|
begin
|
||||||
|
ddata[111:96] <= packed_data[15:0];
|
||||||
|
end
|
||||||
|
if (en4[6] == 1'b1)
|
||||||
|
begin
|
||||||
|
ddata[111:96] <= packed_data[47:32];
|
||||||
|
end
|
||||||
|
if (path_enabled[7] == 1'b1)
|
||||||
|
begin
|
||||||
|
ddata[111:96] <= packed_data[111:96];
|
||||||
|
end
|
||||||
|
|
||||||
|
// ddata[127:112]
|
||||||
|
if (en1[7] == 1'b1)
|
||||||
|
begin
|
||||||
|
ddata[127:112] <= packed_data[15:0];
|
||||||
|
end
|
||||||
|
if (en2[7] == 1'b1)
|
||||||
|
begin
|
||||||
|
ddata[127:112] <= packed_data[31:16];
|
||||||
|
end
|
||||||
|
if (en4[7] == 1'b1)
|
||||||
|
begin
|
||||||
|
ddata[127:112] <= packed_data[63:48];
|
||||||
|
end
|
||||||
|
if (path_enabled[7] == 1'b1)
|
||||||
|
begin
|
||||||
|
ddata[127:112] <= packed_data[127:112];
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
endmodule
|
endmodule
|
||||||
|
|
|
@ -41,6 +41,8 @@
|
||||||
|
|
||||||
module util_dac_unpack (
|
module util_dac_unpack (
|
||||||
|
|
||||||
|
clk,
|
||||||
|
|
||||||
dac_enable_00,
|
dac_enable_00,
|
||||||
dac_valid_00,
|
dac_valid_00,
|
||||||
dac_data_00,
|
dac_data_00,
|
||||||
|
@ -57,9 +59,28 @@ module util_dac_unpack (
|
||||||
dac_valid_03,
|
dac_valid_03,
|
||||||
dac_data_03,
|
dac_data_03,
|
||||||
|
|
||||||
|
dac_enable_04,
|
||||||
|
dac_valid_04,
|
||||||
|
dac_data_04,
|
||||||
|
|
||||||
|
dac_enable_05,
|
||||||
|
dac_valid_05,
|
||||||
|
dac_data_05,
|
||||||
|
|
||||||
|
dac_enable_06,
|
||||||
|
dac_valid_06,
|
||||||
|
dac_data_06,
|
||||||
|
|
||||||
|
dac_enable_07,
|
||||||
|
dac_valid_07,
|
||||||
|
dac_data_07,
|
||||||
|
|
||||||
|
fifo_valid,
|
||||||
dma_rd,
|
dma_rd,
|
||||||
dma_data);
|
dma_data);
|
||||||
|
|
||||||
|
input clk;
|
||||||
|
|
||||||
input dac_enable_00;
|
input dac_enable_00;
|
||||||
input dac_valid_00;
|
input dac_valid_00;
|
||||||
output [ 15:0] dac_data_00;
|
output [ 15:0] dac_data_00;
|
||||||
|
@ -76,14 +97,732 @@ module util_dac_unpack (
|
||||||
input dac_valid_03;
|
input dac_valid_03;
|
||||||
output [ 15:0] dac_data_03;
|
output [ 15:0] dac_data_03;
|
||||||
|
|
||||||
output dma_rd;
|
input dac_enable_04;
|
||||||
input [ 63:0] dma_data;
|
input dac_valid_04;
|
||||||
|
output [ 15:0] dac_data_04;
|
||||||
|
|
||||||
assign dma_rd = dac_valid_00 | dac_valid_01 | dac_valid_02 | dac_valid_03;
|
input dac_enable_05;
|
||||||
assign dac_data_00 = dma_data[15: 0];
|
input dac_valid_05;
|
||||||
assign dac_data_01 = dma_data[31:16];
|
output [ 15:0] dac_data_05;
|
||||||
assign dac_data_02 = dma_data[47:32];
|
|
||||||
assign dac_data_03 = dma_data[63:48];
|
input dac_enable_06;
|
||||||
|
input dac_valid_06;
|
||||||
|
output [ 15:0] dac_data_06;
|
||||||
|
|
||||||
|
input dac_enable_07;
|
||||||
|
input dac_valid_07;
|
||||||
|
output [ 15:0] dac_data_07;
|
||||||
|
|
||||||
|
input fifo_valid;
|
||||||
|
output dma_rd;
|
||||||
|
input [127:0] dma_data;
|
||||||
|
|
||||||
|
wire [3:0] enable_cnt;
|
||||||
|
wire dac_chan_valid;
|
||||||
|
|
||||||
|
wire [ 1:0] position_2;
|
||||||
|
wire [ 1:0] position_3;
|
||||||
|
wire [ 2:0] position_4;
|
||||||
|
wire [ 2:0] position_5;
|
||||||
|
wire [ 2:0] position_6;
|
||||||
|
wire [ 2:0] position_7;
|
||||||
|
|
||||||
|
reg [ 7:0] path_enabled = 0;
|
||||||
|
reg [ 2:0] counter_0 = 0;
|
||||||
|
reg [ 2:0] counter_d1 = 0;
|
||||||
|
reg [ 15:0] dac_data_00 = 16'h0;
|
||||||
|
reg [ 15:0] dac_data_01 = 16'h0;
|
||||||
|
reg [ 15:0] dac_data_02 = 16'h0;
|
||||||
|
reg [ 15:0] dac_data_03 = 16'h0;
|
||||||
|
reg [ 15:0] dac_data_04 = 16'h0;
|
||||||
|
reg [ 15:0] dac_data_05 = 16'h0;
|
||||||
|
reg [ 15:0] dac_data_06 = 16'h0;
|
||||||
|
reg [ 15:0] dac_data_07 = 16'h0;
|
||||||
|
reg [127:0] buffer_r = 128'h0;
|
||||||
|
reg dma_rd = 1'b0;
|
||||||
|
reg start = 1'b0;
|
||||||
|
|
||||||
|
assign enable_cnt = dac_enable_07 + dac_enable_06 + dac_enable_05 + dac_enable_04 + dac_enable_03 + dac_enable_02 + dac_enable_01 + dac_enable_00;
|
||||||
|
|
||||||
|
assign position_2 = dac_enable_00 + dac_enable_01;
|
||||||
|
assign position_3 = dac_enable_00 + dac_enable_01 + dac_enable_02;
|
||||||
|
assign position_4 = dac_enable_00 + dac_enable_01 + dac_enable_02 + dac_enable_03;
|
||||||
|
assign position_5 = dac_enable_00 + dac_enable_01 + dac_enable_02 + dac_enable_03 + dac_enable_04;
|
||||||
|
assign position_6 = dac_enable_00 + dac_enable_01 + dac_enable_02 + dac_enable_03 + dac_enable_04 + dac_enable_05;
|
||||||
|
assign position_7 = dac_enable_00 + dac_enable_01 + dac_enable_02 + dac_enable_03 + dac_enable_04 + dac_enable_05 + dac_enable_06;
|
||||||
|
|
||||||
|
assign dac_chan_valid = dac_valid_07 | dac_valid_06 | dac_valid_05 | dac_valid_04 | dac_valid_03 | dac_valid_02 | dac_valid_01 | dac_valid_00;
|
||||||
|
|
||||||
|
always @(enable_cnt)
|
||||||
|
begin
|
||||||
|
case(enable_cnt)
|
||||||
|
4'h1: path_enabled = 8'h01;
|
||||||
|
4'h2: path_enabled = 8'h02;
|
||||||
|
4'h4: path_enabled = 8'h08;
|
||||||
|
4'h8: path_enabled = 8'h80;
|
||||||
|
default: path_enabled = 8'h0;
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
|
||||||
|
always @(posedge clk)
|
||||||
|
begin
|
||||||
|
counter_d1 <= counter_0;
|
||||||
|
case (path_enabled)
|
||||||
|
8'h1:
|
||||||
|
begin
|
||||||
|
if (counter_0 == 7 && counter_d1 == 6)
|
||||||
|
begin
|
||||||
|
dma_rd <= 1'b1;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
dma_rd <= 1'b0;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
8'h02:
|
||||||
|
begin
|
||||||
|
if(counter_0 == 6 && counter_d1 == 4)
|
||||||
|
begin
|
||||||
|
dma_rd <= 1'b1;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
dma_rd <= 1'b0;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
8'h08:
|
||||||
|
begin
|
||||||
|
if(counter_0 == 4 && counter_d1 == 0)
|
||||||
|
begin
|
||||||
|
dma_rd <= 1'b1;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
dma_rd <= 1'b0;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
8'h80:
|
||||||
|
begin
|
||||||
|
dma_rd <= 1'b1;
|
||||||
|
end
|
||||||
|
default : dma_rd <= 1'b0;
|
||||||
|
endcase
|
||||||
|
|
||||||
|
if (fifo_valid == 1'b1)
|
||||||
|
begin
|
||||||
|
buffer_r <= dma_data;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
always @(posedge clk)
|
||||||
|
begin
|
||||||
|
if (path_enabled == 8'h0)
|
||||||
|
begin
|
||||||
|
counter_0 <= 3'h0;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
if (dac_chan_valid == 1'b1 )
|
||||||
|
begin
|
||||||
|
counter_0 <= counter_0 + enable_cnt;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
always @(posedge clk)
|
||||||
|
begin
|
||||||
|
|
||||||
|
// channel 0
|
||||||
|
if (dac_enable_00 == 1'b1)
|
||||||
|
begin
|
||||||
|
case(counter_0)
|
||||||
|
0:
|
||||||
|
begin
|
||||||
|
dac_data_00 <= buffer_r[15:0];
|
||||||
|
end
|
||||||
|
1:
|
||||||
|
begin
|
||||||
|
dac_data_00 <= buffer_r[31:16];
|
||||||
|
end
|
||||||
|
2:
|
||||||
|
begin
|
||||||
|
dac_data_00 <= buffer_r[47:32];
|
||||||
|
end
|
||||||
|
3:
|
||||||
|
begin
|
||||||
|
dac_data_00 <= buffer_r [63:48];
|
||||||
|
end
|
||||||
|
4:
|
||||||
|
begin
|
||||||
|
dac_data_00 <= buffer_r [79:64];
|
||||||
|
end
|
||||||
|
5:
|
||||||
|
begin
|
||||||
|
dac_data_00 <= buffer_r [95:80];
|
||||||
|
end
|
||||||
|
6:
|
||||||
|
begin
|
||||||
|
dac_data_00 <= buffer_r [111:96];
|
||||||
|
end
|
||||||
|
7:
|
||||||
|
begin
|
||||||
|
dac_data_00 <= buffer_r [127:112];
|
||||||
|
end
|
||||||
|
default:
|
||||||
|
begin
|
||||||
|
dac_data_00 <= 16'hdead;
|
||||||
|
end
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
dac_data_00 <= 16'h0;
|
||||||
|
end
|
||||||
|
|
||||||
|
// channel 1
|
||||||
|
if (dac_enable_01 == 1'b1)
|
||||||
|
begin
|
||||||
|
case (counter_0)
|
||||||
|
0:
|
||||||
|
begin
|
||||||
|
if (dac_enable_00 == 1'b0)
|
||||||
|
begin
|
||||||
|
dac_data_01 <= buffer_r[15:0];
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
dac_data_01 <= buffer_r[31:16];
|
||||||
|
end
|
||||||
|
end
|
||||||
|
1:
|
||||||
|
begin
|
||||||
|
dac_data_01 <= buffer_r[31:16];
|
||||||
|
end
|
||||||
|
2:
|
||||||
|
begin
|
||||||
|
if (dac_enable_00 == 1'b0 )
|
||||||
|
begin
|
||||||
|
dac_data_01 <= buffer_r[47:32];
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
dac_data_01 <= buffer_r[63:48];
|
||||||
|
end
|
||||||
|
end
|
||||||
|
3:
|
||||||
|
begin
|
||||||
|
dac_data_01 <= buffer_r[63:48];
|
||||||
|
end
|
||||||
|
4:
|
||||||
|
begin
|
||||||
|
begin
|
||||||
|
if (dac_enable_00 == 1'b0)
|
||||||
|
begin
|
||||||
|
dac_data_01 <= buffer_r[79:64];
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
dac_data_01 <= buffer_r[95:80];
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
5:
|
||||||
|
begin
|
||||||
|
dac_data_01 <= buffer_r[95:80];
|
||||||
|
end
|
||||||
|
6:
|
||||||
|
begin
|
||||||
|
if (path_enabled == 8'h1)
|
||||||
|
begin
|
||||||
|
dac_data_01 <= buffer_r [111:96];
|
||||||
|
end
|
||||||
|
if (path_enabled == 8'h2)
|
||||||
|
begin
|
||||||
|
if (dac_enable_00 == 1'b0)
|
||||||
|
begin
|
||||||
|
dac_data_01 <= buffer_r[111:96];
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
dac_data_01 <= buffer_r[127:112];
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
7:
|
||||||
|
begin
|
||||||
|
dac_data_01 <= buffer_r[127:112];
|
||||||
|
end
|
||||||
|
default:
|
||||||
|
begin
|
||||||
|
dac_data_01 <= 16'hdead;
|
||||||
|
end
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
dac_data_01 <= 16'h0;
|
||||||
|
end
|
||||||
|
|
||||||
|
// channel 2
|
||||||
|
if (dac_enable_02 == 1'b1)
|
||||||
|
begin
|
||||||
|
case (counter_0)
|
||||||
|
0:
|
||||||
|
begin
|
||||||
|
if (position_2 == 2'h00)
|
||||||
|
begin
|
||||||
|
dac_data_02 <= buffer_r[15:0];
|
||||||
|
end
|
||||||
|
if (position_2 == 2'h01)
|
||||||
|
begin
|
||||||
|
dac_data_02 <= buffer_r[31:16];
|
||||||
|
end
|
||||||
|
if (position_2 == 2'h02)
|
||||||
|
begin
|
||||||
|
dac_data_02 <= buffer_r[47:32];
|
||||||
|
end
|
||||||
|
end
|
||||||
|
1:
|
||||||
|
begin
|
||||||
|
dac_data_02 <= buffer_r[31:16];
|
||||||
|
end
|
||||||
|
2:
|
||||||
|
begin
|
||||||
|
if (position_2 == 2'h00)
|
||||||
|
begin
|
||||||
|
dac_data_02 <= buffer_r[47:32];
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
dac_data_02 <= buffer_r[63:48];
|
||||||
|
end
|
||||||
|
end
|
||||||
|
3:
|
||||||
|
begin
|
||||||
|
dac_data_02 <= buffer_r[63:48];
|
||||||
|
end
|
||||||
|
4:
|
||||||
|
begin
|
||||||
|
if (position_2 == 2'h00)
|
||||||
|
begin
|
||||||
|
dac_data_02 <= buffer_r[79:64];
|
||||||
|
end
|
||||||
|
if (position_2 == 2'h01)
|
||||||
|
begin
|
||||||
|
dac_data_02 <= buffer_r[95:80];
|
||||||
|
end
|
||||||
|
if (position_2 == 2'h02)
|
||||||
|
begin
|
||||||
|
dac_data_02 <= buffer_r[111:96];
|
||||||
|
end
|
||||||
|
end
|
||||||
|
5:
|
||||||
|
begin
|
||||||
|
dac_data_02 <= buffer_r[95:80];
|
||||||
|
end
|
||||||
|
6:
|
||||||
|
begin
|
||||||
|
if (position_2 == 2'h00)
|
||||||
|
begin
|
||||||
|
dac_data_02 <= buffer_r[111:96];
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
dac_data_02 <= buffer_r[127:112];
|
||||||
|
end
|
||||||
|
end
|
||||||
|
7:
|
||||||
|
begin
|
||||||
|
dac_data_02 <= buffer_r[127:112];
|
||||||
|
end
|
||||||
|
default:
|
||||||
|
begin
|
||||||
|
dac_data_02 <= 16'hdead;
|
||||||
|
end
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
dac_data_02 <= 16'h0;
|
||||||
|
end
|
||||||
|
|
||||||
|
// channel 3
|
||||||
|
if (dac_enable_03 == 1'b1)
|
||||||
|
begin
|
||||||
|
case (counter_0)
|
||||||
|
0:
|
||||||
|
begin
|
||||||
|
if (position_3 == 2'h00)
|
||||||
|
begin
|
||||||
|
dac_data_03 <= buffer_r [15:0];
|
||||||
|
end
|
||||||
|
if (position_3 == 2'h01)
|
||||||
|
begin
|
||||||
|
dac_data_03 <= buffer_r [31:16];
|
||||||
|
end
|
||||||
|
if (position_3 == 2'h02)
|
||||||
|
begin
|
||||||
|
dac_data_03 <= buffer_r [47:32];
|
||||||
|
end
|
||||||
|
if (position_3 == 2'h03)
|
||||||
|
begin
|
||||||
|
dac_data_03 <= buffer_r [63:48];
|
||||||
|
end
|
||||||
|
end
|
||||||
|
1:
|
||||||
|
begin
|
||||||
|
dac_data_03 <= buffer_r [31:16];
|
||||||
|
end
|
||||||
|
2:
|
||||||
|
begin
|
||||||
|
if (position_3 == 2'h00)
|
||||||
|
begin
|
||||||
|
dac_data_03 <= buffer_r [47:32];
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
dac_data_03 <= buffer_r [63:48];
|
||||||
|
end
|
||||||
|
end
|
||||||
|
3:
|
||||||
|
begin
|
||||||
|
dac_data_03 <= buffer_r [63:48];
|
||||||
|
end
|
||||||
|
4:
|
||||||
|
begin
|
||||||
|
if (position_3 == 2'h00)
|
||||||
|
begin
|
||||||
|
dac_data_03 <= buffer_r [79:64];
|
||||||
|
end
|
||||||
|
if (position_3 == 2'h01)
|
||||||
|
begin
|
||||||
|
dac_data_03 <= buffer_r [95:80];
|
||||||
|
end
|
||||||
|
if (position_3 == 2'h02)
|
||||||
|
begin
|
||||||
|
dac_data_03 <= buffer_r [111:96];
|
||||||
|
end
|
||||||
|
if (position_3 == 2'h03)
|
||||||
|
begin
|
||||||
|
dac_data_03 <= buffer_r [127:112];
|
||||||
|
end
|
||||||
|
end
|
||||||
|
5:
|
||||||
|
begin
|
||||||
|
dac_data_03 <= buffer_r [95:80];
|
||||||
|
end
|
||||||
|
6:
|
||||||
|
begin
|
||||||
|
if (position_3 == 2'h00)
|
||||||
|
begin
|
||||||
|
dac_data_03 <= buffer_r [111:96];
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
dac_data_03 <= buffer_r [127:112];
|
||||||
|
end
|
||||||
|
end
|
||||||
|
7:
|
||||||
|
begin
|
||||||
|
dac_data_03 <= buffer_r [127:112];
|
||||||
|
end
|
||||||
|
default:
|
||||||
|
begin
|
||||||
|
dac_data_03 <= 16'hdead;
|
||||||
|
end
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
dac_data_03 <= 16'h0;
|
||||||
|
end
|
||||||
|
|
||||||
|
// channel 4
|
||||||
|
if (dac_enable_04 == 1'b1)
|
||||||
|
begin
|
||||||
|
case (counter_0)
|
||||||
|
0:
|
||||||
|
begin
|
||||||
|
case (position_4)
|
||||||
|
0: dac_data_04 <= buffer_r [15:0];
|
||||||
|
1: dac_data_04 <= buffer_r [31:16];
|
||||||
|
2: dac_data_04 <= buffer_r [47:32];
|
||||||
|
3: dac_data_04 <= buffer_r [63:48];
|
||||||
|
default: dac_data_04 <= buffer_r[79:64];
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
1:
|
||||||
|
begin
|
||||||
|
dac_data_04 <= buffer_r [31:16];
|
||||||
|
end
|
||||||
|
2:
|
||||||
|
begin
|
||||||
|
if (position_4 == 3'h00)
|
||||||
|
begin
|
||||||
|
dac_data_04 <= buffer_r [47:32];
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
dac_data_04 <= buffer_r [63:48];
|
||||||
|
end
|
||||||
|
end
|
||||||
|
3:
|
||||||
|
begin
|
||||||
|
dac_data_04 <= buffer_r [63:48];
|
||||||
|
end
|
||||||
|
4:
|
||||||
|
begin
|
||||||
|
case (position_4)
|
||||||
|
0: dac_data_04 <= buffer_r [79:64];
|
||||||
|
1: dac_data_04 <= buffer_r [95:80];
|
||||||
|
2: dac_data_04 <= buffer_r [111:96];
|
||||||
|
default: dac_data_04 <= buffer_r [127:112];
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
5:
|
||||||
|
begin
|
||||||
|
dac_data_04 <= buffer_r [95:80];
|
||||||
|
end
|
||||||
|
6:
|
||||||
|
begin
|
||||||
|
if (position_4 == 2'h00)
|
||||||
|
begin
|
||||||
|
dac_data_04 <= buffer_r [111:96];
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
dac_data_04 <= buffer_r [127:112];
|
||||||
|
end
|
||||||
|
end
|
||||||
|
7:
|
||||||
|
begin
|
||||||
|
dac_data_04 <= buffer_r [127:112];
|
||||||
|
end
|
||||||
|
default:
|
||||||
|
begin
|
||||||
|
dac_data_04 <= 16'hdead;
|
||||||
|
end
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
dac_data_04 <= 16'h0;
|
||||||
|
end
|
||||||
|
|
||||||
|
// channel 5
|
||||||
|
if (dac_enable_05 == 1'b1)
|
||||||
|
begin
|
||||||
|
case (counter_0)
|
||||||
|
0:
|
||||||
|
begin
|
||||||
|
case (position_5)
|
||||||
|
0: dac_data_05 <= buffer_r [15:0];
|
||||||
|
1: dac_data_05 <= buffer_r [31:16];
|
||||||
|
2: dac_data_05 <= buffer_r [47:32];
|
||||||
|
3: dac_data_05 <= buffer_r [63:48];
|
||||||
|
default: dac_data_05 <= buffer_r[95:80];
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
1:
|
||||||
|
begin
|
||||||
|
dac_data_05 <= buffer_r [31:16];
|
||||||
|
end
|
||||||
|
2:
|
||||||
|
begin
|
||||||
|
if (position_5 == 3'h00)
|
||||||
|
begin
|
||||||
|
dac_data_05 <= buffer_r [47:32];
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
dac_data_05 <= buffer_r [63:48];
|
||||||
|
end
|
||||||
|
end
|
||||||
|
3:
|
||||||
|
begin
|
||||||
|
dac_data_05 <= buffer_r [63:48];
|
||||||
|
end
|
||||||
|
4:
|
||||||
|
begin
|
||||||
|
case (position_5)
|
||||||
|
0: dac_data_05 <= buffer_r [79:64];
|
||||||
|
1: dac_data_05 <= buffer_r [95:80];
|
||||||
|
2: dac_data_05 <= buffer_r [111:96];
|
||||||
|
default: dac_data_05 <= buffer_r [127:112];
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
5:
|
||||||
|
begin
|
||||||
|
dac_data_05 <= buffer_r [95:80];
|
||||||
|
end
|
||||||
|
6:
|
||||||
|
begin
|
||||||
|
if (position_5 == 2'h00)
|
||||||
|
begin
|
||||||
|
dac_data_05 <= buffer_r [111:96];
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
dac_data_05 <= buffer_r [127:112];
|
||||||
|
end
|
||||||
|
end
|
||||||
|
7:
|
||||||
|
begin
|
||||||
|
dac_data_05 <= buffer_r [127:112];
|
||||||
|
end
|
||||||
|
default:
|
||||||
|
begin
|
||||||
|
dac_data_05 <= 16'hdead;
|
||||||
|
end
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
dac_data_05 <= 16'h0;
|
||||||
|
end
|
||||||
|
|
||||||
|
// channel 6
|
||||||
|
if (dac_enable_06 == 1'b1)
|
||||||
|
begin
|
||||||
|
case (counter_0)
|
||||||
|
0:
|
||||||
|
begin
|
||||||
|
case (position_6)
|
||||||
|
0: dac_data_06 <= buffer_r [15:0];
|
||||||
|
1: dac_data_06 <= buffer_r [31:16];
|
||||||
|
2: dac_data_06 <= buffer_r [47:32];
|
||||||
|
3: dac_data_06 <= buffer_r [63:48];
|
||||||
|
default: dac_data_06 <= buffer_r[111:96];
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
1:
|
||||||
|
begin
|
||||||
|
dac_data_06 <= buffer_r [31:16];
|
||||||
|
end
|
||||||
|
2:
|
||||||
|
begin
|
||||||
|
if (position_6 == 3'h00)
|
||||||
|
begin
|
||||||
|
dac_data_06 <= buffer_r [47:32];
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
dac_data_06 <= buffer_r [63:48];
|
||||||
|
end
|
||||||
|
end
|
||||||
|
3:
|
||||||
|
begin
|
||||||
|
dac_data_06 <= buffer_r [63:48];
|
||||||
|
end
|
||||||
|
4:
|
||||||
|
begin
|
||||||
|
case (position_6)
|
||||||
|
0: dac_data_06 <= buffer_r [79:64];
|
||||||
|
1: dac_data_06 <= buffer_r [95:80];
|
||||||
|
2: dac_data_06 <= buffer_r [111:96];
|
||||||
|
default: dac_data_06 <= buffer_r [127:112];
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
5:
|
||||||
|
begin
|
||||||
|
dac_data_06 <= buffer_r [95:80];
|
||||||
|
end
|
||||||
|
6:
|
||||||
|
begin
|
||||||
|
if (position_6 == 2'h00)
|
||||||
|
begin
|
||||||
|
dac_data_06 <= buffer_r [111:96];
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
dac_data_06 <= buffer_r [127:112];
|
||||||
|
end
|
||||||
|
end
|
||||||
|
7:
|
||||||
|
begin
|
||||||
|
dac_data_06 <= buffer_r [127:112];
|
||||||
|
end
|
||||||
|
default:
|
||||||
|
begin
|
||||||
|
dac_data_06 <= 16'hdead;
|
||||||
|
end
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
dac_data_06 <= 16'h0;
|
||||||
|
end
|
||||||
|
|
||||||
|
// channel 7
|
||||||
|
if (dac_enable_07 == 1'b1)
|
||||||
|
begin
|
||||||
|
case (counter_0)
|
||||||
|
0:
|
||||||
|
begin
|
||||||
|
case (position_7)
|
||||||
|
0: dac_data_07 <= buffer_r[15:0];
|
||||||
|
1: dac_data_07 <= buffer_r[31:16];
|
||||||
|
3: dac_data_07 <= buffer_r[63:48];
|
||||||
|
default: dac_data_07 <= buffer_r[127:112];
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
1:
|
||||||
|
begin
|
||||||
|
dac_data_07 <= buffer_r [31:16];
|
||||||
|
end
|
||||||
|
2:
|
||||||
|
begin
|
||||||
|
if (position_7 == 3'h00)
|
||||||
|
begin
|
||||||
|
dac_data_07 <= buffer_r [47:32];
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
dac_data_07 <= buffer_r [63:48];
|
||||||
|
end
|
||||||
|
end
|
||||||
|
3:
|
||||||
|
begin
|
||||||
|
dac_data_07 <= buffer_r [63:48];
|
||||||
|
end
|
||||||
|
4:
|
||||||
|
begin
|
||||||
|
case (position_7)
|
||||||
|
0: dac_data_07 <= buffer_r [79:64];
|
||||||
|
1: dac_data_07 <= buffer_r [95:80];
|
||||||
|
default: dac_data_07 <= buffer_r [127:112];
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
5:
|
||||||
|
begin
|
||||||
|
dac_data_07 <= buffer_r [95:80];
|
||||||
|
end
|
||||||
|
6:
|
||||||
|
begin
|
||||||
|
if (position_7 == 2'h00)
|
||||||
|
begin
|
||||||
|
dac_data_07 <= buffer_r [111:96];
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
dac_data_07 <= buffer_r [127:112];
|
||||||
|
end
|
||||||
|
end
|
||||||
|
7:
|
||||||
|
begin
|
||||||
|
dac_data_07 <= buffer_r [127:112];
|
||||||
|
end
|
||||||
|
default:
|
||||||
|
begin
|
||||||
|
dac_data_07 <= 16'hdead;
|
||||||
|
end
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
dac_data_07 <= 16'h0;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
|
|
|
@ -45,12 +45,17 @@
|
||||||
set_property -dict [list CONFIG.C_CLKS_ASYNC_SRC_DEST {1}] $axi_ad9361_dac_dma
|
set_property -dict [list CONFIG.C_CLKS_ASYNC_SRC_DEST {1}] $axi_ad9361_dac_dma
|
||||||
set_property -dict [list CONFIG.C_CLKS_ASYNC_REQ_SRC {1}] $axi_ad9361_dac_dma
|
set_property -dict [list CONFIG.C_CLKS_ASYNC_REQ_SRC {1}] $axi_ad9361_dac_dma
|
||||||
set_property -dict [list CONFIG.C_2D_TRANSFER {0}] $axi_ad9361_dac_dma
|
set_property -dict [list CONFIG.C_2D_TRANSFER {0}] $axi_ad9361_dac_dma
|
||||||
|
set_property -dict [list CONFIG.C_DMA_DATA_WIDTH_DEST {128}] $axi_ad9361_dac_dma
|
||||||
|
|
||||||
# channel packing for the ADC
|
# channel packing for the ADC
|
||||||
set util_adc_pack [create_bd_cell -type ip -vlnv analog.com:user:util_adc_pack:1.0 util_adc_pack]
|
set util_adc_pack [create_bd_cell -type ip -vlnv analog.com:user:util_adc_pack:1.0 util_adc_pack]
|
||||||
|
|
||||||
set util_dac_unpack [create_bd_cell -type ip -vlnv analog.com:user:util_dac_unpack:1.0 util_dac_unpack]
|
set util_dac_unpack [create_bd_cell -type ip -vlnv analog.com:user:util_dac_unpack:1.0 util_dac_unpack]
|
||||||
|
|
||||||
|
# constant 0
|
||||||
|
set constant_0 [create_bd_cell -type ip -vlnv xilinx.com:ip:xlconstant:1.0 constant_0]
|
||||||
|
set_property -dict [list CONFIG.CONST_VAL {0}] $constant_0
|
||||||
|
|
||||||
if {$sys_zynq == 1} {
|
if {$sys_zynq == 1} {
|
||||||
set axi_ad9361_dac_dma_interconnect [create_bd_cell -type ip -vlnv xilinx.com:ip:axi_interconnect:2.1 axi_ad9361_dac_dma_interconnect]
|
set axi_ad9361_dac_dma_interconnect [create_bd_cell -type ip -vlnv xilinx.com:ip:axi_interconnect:2.1 axi_ad9361_dac_dma_interconnect]
|
||||||
set_property -dict [list CONFIG.NUM_MI {1}] $axi_ad9361_dac_dma_interconnect
|
set_property -dict [list CONFIG.NUM_MI {1}] $axi_ad9361_dac_dma_interconnect
|
||||||
|
@ -67,6 +72,7 @@ if {$sys_zynq == 1} {
|
||||||
set_property -dict [list CONFIG.C_CLKS_ASYNC_SRC_DEST {1}] $axi_ad9361_adc_dma
|
set_property -dict [list CONFIG.C_CLKS_ASYNC_SRC_DEST {1}] $axi_ad9361_adc_dma
|
||||||
set_property -dict [list CONFIG.C_CLKS_ASYNC_REQ_SRC {1}] $axi_ad9361_adc_dma
|
set_property -dict [list CONFIG.C_CLKS_ASYNC_REQ_SRC {1}] $axi_ad9361_adc_dma
|
||||||
set_property -dict [list CONFIG.C_2D_TRANSFER {0}] $axi_ad9361_adc_dma
|
set_property -dict [list CONFIG.C_2D_TRANSFER {0}] $axi_ad9361_adc_dma
|
||||||
|
set_property -dict [list CONFIG.C_DMA_DATA_WIDTH_SRC {128}] $axi_ad9361_adc_dma
|
||||||
|
|
||||||
if {$sys_zynq == 1} {
|
if {$sys_zynq == 1} {
|
||||||
set axi_ad9361_adc_dma_interconnect [create_bd_cell -type ip -vlnv xilinx.com:ip:axi_interconnect:2.1 axi_ad9361_adc_dma_interconnect]
|
set axi_ad9361_adc_dma_interconnect [create_bd_cell -type ip -vlnv xilinx.com:ip:axi_interconnect:2.1 axi_ad9361_adc_dma_interconnect]
|
||||||
|
@ -167,6 +173,14 @@ if {$sys_zynq == 0} {
|
||||||
connect_bd_net -net axi_ad9361_tx_data_out_n [get_bd_ports tx_data_out_n] [get_bd_pins axi_ad9361/tx_data_out_n]
|
connect_bd_net -net axi_ad9361_tx_data_out_n [get_bd_ports tx_data_out_n] [get_bd_pins axi_ad9361/tx_data_out_n]
|
||||||
|
|
||||||
connect_bd_net -net axi_ad9361_clk [get_bd_pins util_adc_pack/clk]
|
connect_bd_net -net axi_ad9361_clk [get_bd_pins util_adc_pack/clk]
|
||||||
|
connect_bd_net -net gnd [get_bd_pins constant_0/const] [get_bd_pins util_adc_pack/chan_valid_4]
|
||||||
|
connect_bd_net -net gnd [get_bd_pins constant_0/const] [get_bd_pins util_adc_pack/chan_valid_5]
|
||||||
|
connect_bd_net -net gnd [get_bd_pins constant_0/const] [get_bd_pins util_adc_pack/chan_valid_6]
|
||||||
|
connect_bd_net -net gnd [get_bd_pins constant_0/const] [get_bd_pins util_adc_pack/chan_valid_7]
|
||||||
|
connect_bd_net -net gnd [get_bd_pins constant_0/const] [get_bd_pins util_adc_pack/chan_enable_4]
|
||||||
|
connect_bd_net -net gnd [get_bd_pins constant_0/const] [get_bd_pins util_adc_pack/chan_enable_5]
|
||||||
|
connect_bd_net -net gnd [get_bd_pins constant_0/const] [get_bd_pins util_adc_pack/chan_enable_6]
|
||||||
|
connect_bd_net -net gnd [get_bd_pins constant_0/const] [get_bd_pins util_adc_pack/chan_enable_7]
|
||||||
connect_bd_net -net axi_ad9361_adc_valid_0 [get_bd_pins axi_ad9361/adc_valid_i0] [get_bd_pins util_adc_pack/chan_valid_0]
|
connect_bd_net -net axi_ad9361_adc_valid_0 [get_bd_pins axi_ad9361/adc_valid_i0] [get_bd_pins util_adc_pack/chan_valid_0]
|
||||||
connect_bd_net -net axi_ad9361_adc_valid_1 [get_bd_pins axi_ad9361/adc_valid_q0] [get_bd_pins util_adc_pack/chan_valid_1]
|
connect_bd_net -net axi_ad9361_adc_valid_1 [get_bd_pins axi_ad9361/adc_valid_q0] [get_bd_pins util_adc_pack/chan_valid_1]
|
||||||
connect_bd_net -net axi_ad9361_adc_valid_2 [get_bd_pins axi_ad9361/adc_valid_i1] [get_bd_pins util_adc_pack/chan_valid_2]
|
connect_bd_net -net axi_ad9361_adc_valid_2 [get_bd_pins axi_ad9361/adc_valid_i1] [get_bd_pins util_adc_pack/chan_valid_2]
|
||||||
|
@ -184,20 +198,30 @@ if {$sys_zynq == 0} {
|
||||||
connect_bd_net -net util_adc_pack_ddata [get_bd_pins util_adc_pack/ddata] [get_bd_pins axi_ad9361_adc_dma/fifo_wr_din]
|
connect_bd_net -net util_adc_pack_ddata [get_bd_pins util_adc_pack/ddata] [get_bd_pins axi_ad9361_adc_dma/fifo_wr_din]
|
||||||
connect_bd_net -net axi_ad9361_adc_dovf [get_bd_pins axi_ad9361/adc_dovf] [get_bd_pins axi_ad9361_adc_dma/fifo_wr_overflow]
|
connect_bd_net -net axi_ad9361_adc_dovf [get_bd_pins axi_ad9361/adc_dovf] [get_bd_pins axi_ad9361_adc_dma/fifo_wr_overflow]
|
||||||
|
|
||||||
|
connect_bd_net -net axi_ad9361_clk [get_bd_pins util_dac_unpack/clk]
|
||||||
connect_bd_net -net axi_ad9361_dac_valid_0 [get_bd_pins util_dac_unpack/dac_valid_00] [get_bd_pins axi_ad9361/dac_valid_i0]
|
connect_bd_net -net axi_ad9361_dac_valid_0 [get_bd_pins util_dac_unpack/dac_valid_00] [get_bd_pins axi_ad9361/dac_valid_i0]
|
||||||
connect_bd_net -net axi_ad9361_dac_valid_1 [get_bd_pins util_dac_unpack/dac_valid_01] [get_bd_pins axi_ad9361/dac_valid_q0]
|
connect_bd_net -net axi_ad9361_dac_valid_1 [get_bd_pins util_dac_unpack/dac_valid_01] [get_bd_pins axi_ad9361/dac_valid_q0]
|
||||||
connect_bd_net -net axi_ad9361_dac_valid_2 [get_bd_pins util_dac_unpack/dac_valid_02] [get_bd_pins axi_ad9361/dac_valid_i1]
|
connect_bd_net -net axi_ad9361_dac_valid_2 [get_bd_pins util_dac_unpack/dac_valid_02] [get_bd_pins axi_ad9361/dac_valid_i1]
|
||||||
connect_bd_net -net axi_ad9361_dac_valid_3 [get_bd_pins util_dac_unpack/dac_valid_03] [get_bd_pins axi_ad9361/dac_valid_q1]
|
connect_bd_net -net axi_ad9361_dac_valid_3 [get_bd_pins util_dac_unpack/dac_valid_03] [get_bd_pins axi_ad9361/dac_valid_q1]
|
||||||
|
connect_bd_net -net gnd [get_bd_pins constant_0/const] [get_bd_pins util_dac_unpack/dac_valid_04]
|
||||||
|
connect_bd_net -net gnd [get_bd_pins constant_0/const] [get_bd_pins util_dac_unpack/dac_valid_05]
|
||||||
|
connect_bd_net -net gnd [get_bd_pins constant_0/const] [get_bd_pins util_dac_unpack/dac_valid_06]
|
||||||
|
connect_bd_net -net gnd [get_bd_pins constant_0/const] [get_bd_pins util_dac_unpack/dac_valid_07]
|
||||||
connect_bd_net -net axi_ad9361_dac_enable_0 [get_bd_pins util_dac_unpack/dac_enable_00] [get_bd_pins axi_ad9361/dac_enable_i0]
|
connect_bd_net -net axi_ad9361_dac_enable_0 [get_bd_pins util_dac_unpack/dac_enable_00] [get_bd_pins axi_ad9361/dac_enable_i0]
|
||||||
connect_bd_net -net axi_ad9361_dac_enable_1 [get_bd_pins util_dac_unpack/dac_enable_01] [get_bd_pins axi_ad9361/dac_enable_q0]
|
connect_bd_net -net axi_ad9361_dac_enable_1 [get_bd_pins util_dac_unpack/dac_enable_01] [get_bd_pins axi_ad9361/dac_enable_q0]
|
||||||
connect_bd_net -net axi_ad9361_dac_enable_2 [get_bd_pins util_dac_unpack/dac_enable_02] [get_bd_pins axi_ad9361/dac_enable_i1]
|
connect_bd_net -net axi_ad9361_dac_enable_2 [get_bd_pins util_dac_unpack/dac_enable_02] [get_bd_pins axi_ad9361/dac_enable_i1]
|
||||||
connect_bd_net -net axi_ad9361_dac_enable_3 [get_bd_pins util_dac_unpack/dac_enable_03] [get_bd_pins axi_ad9361/dac_enable_q1]
|
connect_bd_net -net axi_ad9361_dac_enable_3 [get_bd_pins util_dac_unpack/dac_enable_03] [get_bd_pins axi_ad9361/dac_enable_q1]
|
||||||
|
connect_bd_net -net gnd [get_bd_pins constant_0/const] [get_bd_pins util_dac_unpack/dac_enable_04]
|
||||||
|
connect_bd_net -net gnd [get_bd_pins constant_0/const] [get_bd_pins util_dac_unpack/dac_enable_05]
|
||||||
|
connect_bd_net -net gnd [get_bd_pins constant_0/const] [get_bd_pins util_dac_unpack/dac_enable_06]
|
||||||
|
connect_bd_net -net gnd [get_bd_pins constant_0/const] [get_bd_pins util_dac_unpack/dac_enable_07]
|
||||||
connect_bd_net -net axi_ad9361_dac_data_0 [get_bd_pins util_dac_unpack/dac_data_00] [get_bd_pins axi_ad9361/dac_data_i0]
|
connect_bd_net -net axi_ad9361_dac_data_0 [get_bd_pins util_dac_unpack/dac_data_00] [get_bd_pins axi_ad9361/dac_data_i0]
|
||||||
connect_bd_net -net axi_ad9361_dac_data_1 [get_bd_pins util_dac_unpack/dac_data_01] [get_bd_pins axi_ad9361/dac_data_q0]
|
connect_bd_net -net axi_ad9361_dac_data_1 [get_bd_pins util_dac_unpack/dac_data_01] [get_bd_pins axi_ad9361/dac_data_q0]
|
||||||
connect_bd_net -net axi_ad9361_dac_data_2 [get_bd_pins util_dac_unpack/dac_data_02] [get_bd_pins axi_ad9361/dac_data_i1]
|
connect_bd_net -net axi_ad9361_dac_data_2 [get_bd_pins util_dac_unpack/dac_data_02] [get_bd_pins axi_ad9361/dac_data_i1]
|
||||||
connect_bd_net -net axi_ad9361_dac_data_3 [get_bd_pins util_dac_unpack/dac_data_03] [get_bd_pins axi_ad9361/dac_data_q1]
|
connect_bd_net -net axi_ad9361_dac_data_3 [get_bd_pins util_dac_unpack/dac_data_03] [get_bd_pins axi_ad9361/dac_data_q1]
|
||||||
|
|
||||||
connect_bd_net -net fifo_data [get_bd_pins util_dac_unpack/dma_data] [get_bd_pins axi_ad9361_dac_dma/fifo_rd_dout]
|
connect_bd_net -net fifo_data [get_bd_pins util_dac_unpack/dma_data] [get_bd_pins axi_ad9361_dac_dma/fifo_rd_dout]
|
||||||
|
connect_bd_net -net fifo_valid [get_bd_pins axi_ad9361_dac_dma/fifo_rd_valid] [get_bd_pins util_dac_unpack/fifo_valid]
|
||||||
connect_bd_net -net axi_ad9361_dac_drd [get_bd_pins util_dac_unpack/dma_rd] [get_bd_pins axi_ad9361_dac_dma/fifo_rd_en]
|
connect_bd_net -net axi_ad9361_dac_drd [get_bd_pins util_dac_unpack/dma_rd] [get_bd_pins axi_ad9361_dac_dma/fifo_rd_en]
|
||||||
connect_bd_net -net axi_ad9361_dac_dunf [get_bd_pins axi_ad9361/dac_dunf] [get_bd_pins axi_ad9361_dac_dma/fifo_rd_underflow]
|
connect_bd_net -net axi_ad9361_dac_dunf [get_bd_pins axi_ad9361/dac_dunf] [get_bd_pins axi_ad9361_dac_dma/fifo_rd_underflow]
|
||||||
|
|
||||||
|
@ -299,6 +323,7 @@ if {$sys_zynq == 0} {
|
||||||
set_property -dict [list CONFIG.C_PROBE3_WIDTH {16}] $ila_adc
|
set_property -dict [list CONFIG.C_PROBE3_WIDTH {16}] $ila_adc
|
||||||
set_property -dict [list CONFIG.C_PROBE4_WIDTH {16}] $ila_adc
|
set_property -dict [list CONFIG.C_PROBE4_WIDTH {16}] $ila_adc
|
||||||
set_property -dict [list CONFIG.C_TRIGIN_EN {false}] $ila_adc
|
set_property -dict [list CONFIG.C_TRIGIN_EN {false}] $ila_adc
|
||||||
|
set_property -dict [list CONFIG.C_EN_STRG_QUAL {1}] $ila_adc
|
||||||
|
|
||||||
connect_bd_net -net axi_ad9361_clk [get_bd_pins ila_adc/clk]
|
connect_bd_net -net axi_ad9361_clk [get_bd_pins ila_adc/clk]
|
||||||
connect_bd_net -net axi_ad9361_adc_valid_0 [get_bd_pins ila_adc/probe0]
|
connect_bd_net -net axi_ad9361_adc_valid_0 [get_bd_pins ila_adc/probe0]
|
||||||
|
|
|
@ -31,16 +31,6 @@ set tx_frame_out_1_n [create_bd_port -dir O tx_frame_out_1_n]
|
||||||
set tx_data_out_1_p [create_bd_port -dir O -from 5 -to 0 tx_data_out_1_p]
|
set tx_data_out_1_p [create_bd_port -dir O -from 5 -to 0 tx_data_out_1_p]
|
||||||
set tx_data_out_1_n [create_bd_port -dir O -from 5 -to 0 tx_data_out_1_n]
|
set tx_data_out_1_n [create_bd_port -dir O -from 5 -to 0 tx_data_out_1_n]
|
||||||
|
|
||||||
# dma multiplexing
|
|
||||||
|
|
||||||
set ad9361_0_dac_ddata [create_bd_port -dir I -from 63 -to 0 ad9361_0_dac_ddata]
|
|
||||||
set ad9361_1_dac_ddata [create_bd_port -dir I -from 63 -to 0 ad9361_1_dac_ddata]
|
|
||||||
set ad9361_dac_ddata [create_bd_port -dir O -from 127 -to 0 ad9361_dac_ddata]
|
|
||||||
|
|
||||||
set ad9361_0_adc_ddata [create_bd_port -dir O -from 63 -to 0 ad9361_0_adc_ddata]
|
|
||||||
set ad9361_1_adc_ddata [create_bd_port -dir O -from 63 -to 0 ad9361_1_adc_ddata]
|
|
||||||
set ad9361_adc_ddata [create_bd_port -dir I -from 127 -to 0 ad9361_adc_ddata]
|
|
||||||
|
|
||||||
set sys_100m_resetn [create_bd_port -dir O sys_100m_resetn]
|
set sys_100m_resetn [create_bd_port -dir O sys_100m_resetn]
|
||||||
set sys_100m_clk [create_bd_port -dir O sys_100m_clk]
|
set sys_100m_clk [create_bd_port -dir O sys_100m_clk]
|
||||||
|
|
||||||
|
@ -130,8 +120,6 @@ if {$sys_zynq == 0} {
|
||||||
|
|
||||||
set util_adc_pack_0 [create_bd_cell -type ip -vlnv analog.com:user:util_adc_pack:1.0 util_adc_pack_0]
|
set util_adc_pack_0 [create_bd_cell -type ip -vlnv analog.com:user:util_adc_pack:1.0 util_adc_pack_0]
|
||||||
set util_dac_unpack_0 [create_bd_cell -type ip -vlnv analog.com:user:util_dac_unpack:1.0 util_dac_unpack_0]
|
set util_dac_unpack_0 [create_bd_cell -type ip -vlnv analog.com:user:util_dac_unpack:1.0 util_dac_unpack_0]
|
||||||
set util_adc_pack_1 [create_bd_cell -type ip -vlnv analog.com:user:util_adc_pack:1.0 util_adc_pack_1]
|
|
||||||
set util_dac_unpack_1 [create_bd_cell -type ip -vlnv analog.com:user:util_dac_unpack:1.0 util_dac_unpack_1]
|
|
||||||
|
|
||||||
# additions to default configuration
|
# additions to default configuration
|
||||||
|
|
||||||
|
@ -202,7 +190,7 @@ connect_bd_net -net axi_ad9361_1_clk [get_bd_pins axi_ad9361_1/l_clk]
|
||||||
connect_bd_net -net axi_ad9361_0_clk [get_bd_pins axi_ad9361_0/clk]
|
connect_bd_net -net axi_ad9361_0_clk [get_bd_pins axi_ad9361_0/clk]
|
||||||
connect_bd_net -net axi_ad9361_0_clk [get_bd_pins axi_ad9361_1/clk]
|
connect_bd_net -net axi_ad9361_0_clk [get_bd_pins axi_ad9361_1/clk]
|
||||||
connect_bd_net -net axi_ad9361_0_clk [get_bd_pins util_adc_pack_0/clk]
|
connect_bd_net -net axi_ad9361_0_clk [get_bd_pins util_adc_pack_0/clk]
|
||||||
connect_bd_net -net axi_ad9361_0_clk [get_bd_pins util_adc_pack_1/clk]
|
connect_bd_net -net axi_ad9361_0_clk [get_bd_pins util_dac_unpack_0/clk]
|
||||||
connect_bd_net -net axi_ad9361_0_clk [get_bd_pins axi_ad9361_adc_dma/fifo_wr_clk]
|
connect_bd_net -net axi_ad9361_0_clk [get_bd_pins axi_ad9361_adc_dma/fifo_wr_clk]
|
||||||
connect_bd_net -net axi_ad9361_0_clk [get_bd_pins axi_ad9361_dac_dma/fifo_rd_clk]
|
connect_bd_net -net axi_ad9361_0_clk [get_bd_pins axi_ad9361_dac_dma/fifo_rd_clk]
|
||||||
|
|
||||||
|
@ -246,23 +234,21 @@ connect_bd_net -net axi_ad9361_0_adc_data_i1 [get_bd_pins axi_ad9361_0/adc_
|
||||||
connect_bd_net -net axi_ad9361_0_adc_enable_q1 [get_bd_pins axi_ad9361_0/adc_enable_q1] [get_bd_pins util_adc_pack_0/chan_enable_3]
|
connect_bd_net -net axi_ad9361_0_adc_enable_q1 [get_bd_pins axi_ad9361_0/adc_enable_q1] [get_bd_pins util_adc_pack_0/chan_enable_3]
|
||||||
connect_bd_net -net axi_ad9361_0_adc_valid_q1 [get_bd_pins axi_ad9361_0/adc_valid_q1] [get_bd_pins util_adc_pack_0/chan_valid_3]
|
connect_bd_net -net axi_ad9361_0_adc_valid_q1 [get_bd_pins axi_ad9361_0/adc_valid_q1] [get_bd_pins util_adc_pack_0/chan_valid_3]
|
||||||
connect_bd_net -net axi_ad9361_0_adc_data_q1 [get_bd_pins axi_ad9361_0/adc_data_q1] [get_bd_pins util_adc_pack_0/chan_data_3]
|
connect_bd_net -net axi_ad9361_0_adc_data_q1 [get_bd_pins axi_ad9361_0/adc_data_q1] [get_bd_pins util_adc_pack_0/chan_data_3]
|
||||||
connect_bd_net -net axi_ad9361_1_adc_enable_i0 [get_bd_pins axi_ad9361_1/adc_enable_i0] [get_bd_pins util_adc_pack_1/chan_enable_0]
|
connect_bd_net -net axi_ad9361_1_adc_enable_i0 [get_bd_pins axi_ad9361_1/adc_enable_i0] [get_bd_pins util_adc_pack_0/chan_enable_4]
|
||||||
connect_bd_net -net axi_ad9361_1_adc_valid_i0 [get_bd_pins axi_ad9361_1/adc_valid_i0] [get_bd_pins util_adc_pack_1/chan_valid_0]
|
connect_bd_net -net axi_ad9361_1_adc_valid_i0 [get_bd_pins axi_ad9361_1/adc_valid_i0] [get_bd_pins util_adc_pack_0/chan_valid_4]
|
||||||
connect_bd_net -net axi_ad9361_1_adc_data_i0 [get_bd_pins axi_ad9361_1/adc_data_i0] [get_bd_pins util_adc_pack_1/chan_data_0]
|
connect_bd_net -net axi_ad9361_1_adc_data_i0 [get_bd_pins axi_ad9361_1/adc_data_i0] [get_bd_pins util_adc_pack_0/chan_data_4]
|
||||||
connect_bd_net -net axi_ad9361_1_adc_enable_q0 [get_bd_pins axi_ad9361_1/adc_enable_q0] [get_bd_pins util_adc_pack_1/chan_enable_1]
|
connect_bd_net -net axi_ad9361_1_adc_enable_q0 [get_bd_pins axi_ad9361_1/adc_enable_q0] [get_bd_pins util_adc_pack_0/chan_enable_5]
|
||||||
connect_bd_net -net axi_ad9361_1_adc_valid_q0 [get_bd_pins axi_ad9361_1/adc_valid_q0] [get_bd_pins util_adc_pack_1/chan_valid_1]
|
connect_bd_net -net axi_ad9361_1_adc_valid_q0 [get_bd_pins axi_ad9361_1/adc_valid_q0] [get_bd_pins util_adc_pack_0/chan_valid_5]
|
||||||
connect_bd_net -net axi_ad9361_1_adc_data_q0 [get_bd_pins axi_ad9361_1/adc_data_q0] [get_bd_pins util_adc_pack_1/chan_data_1]
|
connect_bd_net -net axi_ad9361_1_adc_data_q0 [get_bd_pins axi_ad9361_1/adc_data_q0] [get_bd_pins util_adc_pack_0/chan_data_5]
|
||||||
connect_bd_net -net axi_ad9361_1_adc_enable_i1 [get_bd_pins axi_ad9361_1/adc_enable_i1] [get_bd_pins util_adc_pack_1/chan_enable_2]
|
connect_bd_net -net axi_ad9361_1_adc_enable_i1 [get_bd_pins axi_ad9361_1/adc_enable_i1] [get_bd_pins util_adc_pack_0/chan_enable_6]
|
||||||
connect_bd_net -net axi_ad9361_1_adc_valid_i1 [get_bd_pins axi_ad9361_1/adc_valid_i1] [get_bd_pins util_adc_pack_1/chan_valid_2]
|
connect_bd_net -net axi_ad9361_1_adc_valid_i1 [get_bd_pins axi_ad9361_1/adc_valid_i1] [get_bd_pins util_adc_pack_0/chan_valid_6]
|
||||||
connect_bd_net -net axi_ad9361_1_adc_data_i1 [get_bd_pins axi_ad9361_1/adc_data_i1] [get_bd_pins util_adc_pack_1/chan_data_2]
|
connect_bd_net -net axi_ad9361_1_adc_data_i1 [get_bd_pins axi_ad9361_1/adc_data_i1] [get_bd_pins util_adc_pack_0/chan_data_6]
|
||||||
connect_bd_net -net axi_ad9361_1_adc_enable_q1 [get_bd_pins axi_ad9361_1/adc_enable_q1] [get_bd_pins util_adc_pack_1/chan_enable_3]
|
connect_bd_net -net axi_ad9361_1_adc_enable_q1 [get_bd_pins axi_ad9361_1/adc_enable_q1] [get_bd_pins util_adc_pack_0/chan_enable_7]
|
||||||
connect_bd_net -net axi_ad9361_1_adc_valid_q1 [get_bd_pins axi_ad9361_1/adc_valid_q1] [get_bd_pins util_adc_pack_1/chan_valid_3]
|
connect_bd_net -net axi_ad9361_1_adc_valid_q1 [get_bd_pins axi_ad9361_1/adc_valid_q1] [get_bd_pins util_adc_pack_0/chan_valid_7]
|
||||||
connect_bd_net -net axi_ad9361_1_adc_data_q1 [get_bd_pins axi_ad9361_1/adc_data_q1] [get_bd_pins util_adc_pack_1/chan_data_3]
|
connect_bd_net -net axi_ad9361_1_adc_data_q1 [get_bd_pins axi_ad9361_1/adc_data_q1] [get_bd_pins util_adc_pack_0/chan_data_7]
|
||||||
connect_bd_net -net axi_ad9361_0_dvalid [get_bd_pins util_adc_pack_0/dvalid] [get_bd_pins axi_ad9361_adc_dma/fifo_wr_en]
|
connect_bd_net -net axi_ad9361_0_dvalid [get_bd_pins util_adc_pack_0/dvalid] [get_bd_pins axi_ad9361_adc_dma/fifo_wr_en]
|
||||||
connect_bd_net -net axi_ad9361_0_dsync [get_bd_pins util_adc_pack_0/dsync] [get_bd_pins axi_ad9361_adc_dma/fifo_wr_sync]
|
connect_bd_net -net axi_ad9361_0_dsync [get_bd_pins util_adc_pack_0/dsync] [get_bd_pins axi_ad9361_adc_dma/fifo_wr_sync]
|
||||||
connect_bd_net -net axi_ad9361_0_adc_ddata [get_bd_pins util_adc_pack_0/ddata] [get_bd_ports ad9361_0_adc_ddata]
|
connect_bd_net -net axi_ad9361_adc_ddata [get_bd_pins util_adc_pack_0/ddata] [get_bd_pins axi_ad9361_adc_dma/fifo_wr_din]
|
||||||
connect_bd_net -net axi_ad9361_1_adc_ddata [get_bd_pins util_adc_pack_1/ddata] [get_bd_ports ad9361_1_adc_ddata]
|
|
||||||
connect_bd_net -net axi_ad9361_adc_ddata [get_bd_ports ad9361_adc_ddata] [get_bd_pins axi_ad9361_adc_dma/fifo_wr_din]
|
|
||||||
connect_bd_net -net axi_ad9361_0_dac_enable_0 [get_bd_pins axi_ad9361_0/dac_enable_i0] [get_bd_pins util_dac_unpack_0/dac_enable_00]
|
connect_bd_net -net axi_ad9361_0_dac_enable_0 [get_bd_pins axi_ad9361_0/dac_enable_i0] [get_bd_pins util_dac_unpack_0/dac_enable_00]
|
||||||
connect_bd_net -net axi_ad9361_0_dac_valid_0 [get_bd_pins axi_ad9361_0/dac_valid_i0] [get_bd_pins util_dac_unpack_0/dac_valid_00]
|
connect_bd_net -net axi_ad9361_0_dac_valid_0 [get_bd_pins axi_ad9361_0/dac_valid_i0] [get_bd_pins util_dac_unpack_0/dac_valid_00]
|
||||||
connect_bd_net -net axi_ad9361_0_dac_data_0 [get_bd_pins axi_ad9361_0/dac_data_i0] [get_bd_pins util_dac_unpack_0/dac_data_00]
|
connect_bd_net -net axi_ad9361_0_dac_data_0 [get_bd_pins axi_ad9361_0/dac_data_i0] [get_bd_pins util_dac_unpack_0/dac_data_00]
|
||||||
|
@ -275,22 +261,21 @@ connect_bd_net -net axi_ad9361_0_dac_data_2 [get_bd_pins axi_ad9361_0/dac_
|
||||||
connect_bd_net -net axi_ad9361_0_dac_enable_3 [get_bd_pins axi_ad9361_0/dac_enable_q1] [get_bd_pins util_dac_unpack_0/dac_enable_03]
|
connect_bd_net -net axi_ad9361_0_dac_enable_3 [get_bd_pins axi_ad9361_0/dac_enable_q1] [get_bd_pins util_dac_unpack_0/dac_enable_03]
|
||||||
connect_bd_net -net axi_ad9361_0_dac_valid_3 [get_bd_pins axi_ad9361_0/dac_valid_q1] [get_bd_pins util_dac_unpack_0/dac_valid_03]
|
connect_bd_net -net axi_ad9361_0_dac_valid_3 [get_bd_pins axi_ad9361_0/dac_valid_q1] [get_bd_pins util_dac_unpack_0/dac_valid_03]
|
||||||
connect_bd_net -net axi_ad9361_0_dac_data_3 [get_bd_pins axi_ad9361_0/dac_data_q1] [get_bd_pins util_dac_unpack_0/dac_data_03]
|
connect_bd_net -net axi_ad9361_0_dac_data_3 [get_bd_pins axi_ad9361_0/dac_data_q1] [get_bd_pins util_dac_unpack_0/dac_data_03]
|
||||||
connect_bd_net -net axi_ad9361_1_dac_enable_0 [get_bd_pins axi_ad9361_1/dac_enable_i0] [get_bd_pins util_dac_unpack_1/dac_enable_00]
|
connect_bd_net -net axi_ad9361_1_dac_enable_0 [get_bd_pins axi_ad9361_1/dac_enable_i0] [get_bd_pins util_dac_unpack_0/dac_enable_04]
|
||||||
connect_bd_net -net axi_ad9361_1_dac_valid_0 [get_bd_pins axi_ad9361_1/dac_valid_i0] [get_bd_pins util_dac_unpack_1/dac_valid_00]
|
connect_bd_net -net axi_ad9361_1_dac_valid_0 [get_bd_pins axi_ad9361_1/dac_valid_i0] [get_bd_pins util_dac_unpack_0/dac_valid_04]
|
||||||
connect_bd_net -net axi_ad9361_1_dac_data_0 [get_bd_pins axi_ad9361_1/dac_data_i0] [get_bd_pins util_dac_unpack_1/dac_data_00]
|
connect_bd_net -net axi_ad9361_1_dac_data_0 [get_bd_pins axi_ad9361_1/dac_data_i0] [get_bd_pins util_dac_unpack_0/dac_data_04]
|
||||||
connect_bd_net -net axi_ad9361_1_dac_enable_1 [get_bd_pins axi_ad9361_1/dac_enable_q0] [get_bd_pins util_dac_unpack_1/dac_enable_01]
|
connect_bd_net -net axi_ad9361_1_dac_enable_1 [get_bd_pins axi_ad9361_1/dac_enable_q0] [get_bd_pins util_dac_unpack_0/dac_enable_05]
|
||||||
connect_bd_net -net axi_ad9361_1_dac_valid_1 [get_bd_pins axi_ad9361_1/dac_valid_q0] [get_bd_pins util_dac_unpack_1/dac_valid_01]
|
connect_bd_net -net axi_ad9361_1_dac_valid_1 [get_bd_pins axi_ad9361_1/dac_valid_q0] [get_bd_pins util_dac_unpack_0/dac_valid_05]
|
||||||
connect_bd_net -net axi_ad9361_1_dac_data_1 [get_bd_pins axi_ad9361_1/dac_data_q0] [get_bd_pins util_dac_unpack_1/dac_data_01]
|
connect_bd_net -net axi_ad9361_1_dac_data_1 [get_bd_pins axi_ad9361_1/dac_data_q0] [get_bd_pins util_dac_unpack_0/dac_data_05]
|
||||||
connect_bd_net -net axi_ad9361_1_dac_enable_2 [get_bd_pins axi_ad9361_1/dac_enable_i1] [get_bd_pins util_dac_unpack_1/dac_enable_02]
|
connect_bd_net -net axi_ad9361_1_dac_enable_2 [get_bd_pins axi_ad9361_1/dac_enable_i1] [get_bd_pins util_dac_unpack_0/dac_enable_06]
|
||||||
connect_bd_net -net axi_ad9361_1_dac_valid_2 [get_bd_pins axi_ad9361_1/dac_valid_i1] [get_bd_pins util_dac_unpack_1/dac_valid_02]
|
connect_bd_net -net axi_ad9361_1_dac_valid_2 [get_bd_pins axi_ad9361_1/dac_valid_i1] [get_bd_pins util_dac_unpack_0/dac_valid_06]
|
||||||
connect_bd_net -net axi_ad9361_1_dac_data_2 [get_bd_pins axi_ad9361_1/dac_data_i1] [get_bd_pins util_dac_unpack_1/dac_data_02]
|
connect_bd_net -net axi_ad9361_1_dac_data_2 [get_bd_pins axi_ad9361_1/dac_data_i1] [get_bd_pins util_dac_unpack_0/dac_data_06]
|
||||||
connect_bd_net -net axi_ad9361_1_dac_enable_3 [get_bd_pins axi_ad9361_1/dac_enable_q1] [get_bd_pins util_dac_unpack_1/dac_enable_03]
|
connect_bd_net -net axi_ad9361_1_dac_enable_3 [get_bd_pins axi_ad9361_1/dac_enable_q1] [get_bd_pins util_dac_unpack_0/dac_enable_07]
|
||||||
connect_bd_net -net axi_ad9361_1_dac_valid_3 [get_bd_pins axi_ad9361_1/dac_valid_q1] [get_bd_pins util_dac_unpack_1/dac_valid_03]
|
connect_bd_net -net axi_ad9361_1_dac_valid_3 [get_bd_pins axi_ad9361_1/dac_valid_q1] [get_bd_pins util_dac_unpack_0/dac_valid_07]
|
||||||
connect_bd_net -net axi_ad9361_1_dac_data_3 [get_bd_pins axi_ad9361_1/dac_data_q1] [get_bd_pins util_dac_unpack_1/dac_data_03]
|
connect_bd_net -net axi_ad9361_1_dac_data_3 [get_bd_pins axi_ad9361_1/dac_data_q1] [get_bd_pins util_dac_unpack_0/dac_data_07]
|
||||||
connect_bd_net -net axi_ad9361_0_dac_drd [get_bd_pins util_dac_unpack_0/dma_rd] [get_bd_pins axi_ad9361_dac_dma/fifo_rd_en]
|
connect_bd_net -net axi_ad9361_0_dac_drd [get_bd_pins util_dac_unpack_0/dma_rd] [get_bd_pins axi_ad9361_dac_dma/fifo_rd_en]
|
||||||
connect_bd_net -net axi_ad9361_0_dac_ddata [get_bd_pins util_dac_unpack_0/dma_data] [get_bd_ports ad9361_0_dac_ddata]
|
connect_bd_net -net axi_ad9361_dac_ddata [get_bd_pins util_dac_unpack_0/dma_data] [get_bd_pins axi_ad9361_dac_dma/fifo_rd_dout]
|
||||||
connect_bd_net -net axi_ad9361_1_dac_ddata [get_bd_pins util_dac_unpack_1/dma_data] [get_bd_ports ad9361_1_dac_ddata]
|
connect_bd_net -net axi_ad9361_fifo_valid [get_bd_pins util_dac_unpack_0/fifo_valid] [get_bd_pins axi_ad9361_dac_dma/fifo_rd_valid]
|
||||||
connect_bd_net -net axi_ad9361_dac_ddata [get_bd_ports ad9361_dac_ddata] [get_bd_pins axi_ad9361_dac_dma/fifo_rd_dout]
|
|
||||||
connect_bd_net -net axi_ad9361_0_adc_dovf [get_bd_pins axi_ad9361_0/adc_dovf] [get_bd_pins axi_ad9361_adc_dma/fifo_wr_overflow]
|
connect_bd_net -net axi_ad9361_0_adc_dovf [get_bd_pins axi_ad9361_0/adc_dovf] [get_bd_pins axi_ad9361_adc_dma/fifo_wr_overflow]
|
||||||
connect_bd_net -net axi_ad9361_adc_dma_irq [get_bd_pins axi_ad9361_adc_dma/irq] [get_bd_pins sys_concat_intc/In2]
|
connect_bd_net -net axi_ad9361_adc_dma_irq [get_bd_pins axi_ad9361_adc_dma/irq] [get_bd_pins sys_concat_intc/In2]
|
||||||
connect_bd_net -net axi_ad9361_0_dac_dunf [get_bd_pins axi_ad9361_0/dac_dunf] [get_bd_pins axi_ad9361_dac_dma/fifo_rd_underflow]
|
connect_bd_net -net axi_ad9361_0_dac_dunf [get_bd_pins axi_ad9361_0/dac_dunf] [get_bd_pins axi_ad9361_dac_dma/fifo_rd_underflow]
|
||||||
|
@ -386,6 +371,7 @@ if {$xl_board eq "zc702"} {
|
||||||
set_property -dict [list CONFIG.C_NUM_OF_PROBES {2}] $ila_adc_0
|
set_property -dict [list CONFIG.C_NUM_OF_PROBES {2}] $ila_adc_0
|
||||||
set_property -dict [list CONFIG.C_PROBE0_WIDTH {1}] $ila_adc_0
|
set_property -dict [list CONFIG.C_PROBE0_WIDTH {1}] $ila_adc_0
|
||||||
set_property -dict [list CONFIG.C_PROBE1_WIDTH {128}] $ila_adc_0
|
set_property -dict [list CONFIG.C_PROBE1_WIDTH {128}] $ila_adc_0
|
||||||
|
set_property -dict [list CONFIG.C_EN_STRG_QUAL {1}] $ila_adc_0
|
||||||
|
|
||||||
connect_bd_net -net axi_ad9361_0_clk [get_bd_pins ila_adc_0/clk]
|
connect_bd_net -net axi_ad9361_0_clk [get_bd_pins ila_adc_0/clk]
|
||||||
connect_bd_net -net axi_ad9361_0_dvalid [get_bd_pins ila_adc_0/probe0]
|
connect_bd_net -net axi_ad9361_0_dvalid [get_bd_pins ila_adc_0/probe0]
|
||||||
|
@ -402,6 +388,8 @@ if {$xl_board eq "zc702"} {
|
||||||
set_property -dict [list CONFIG.C_PROBE2_WIDTH {112}] $ila_adc_0
|
set_property -dict [list CONFIG.C_PROBE2_WIDTH {112}] $ila_adc_0
|
||||||
set_property -dict [list CONFIG.C_PROBE3_WIDTH {1}] $ila_adc_0
|
set_property -dict [list CONFIG.C_PROBE3_WIDTH {1}] $ila_adc_0
|
||||||
set_property -dict [list CONFIG.C_PROBE4_WIDTH {128}] $ila_adc_0
|
set_property -dict [list CONFIG.C_PROBE4_WIDTH {128}] $ila_adc_0
|
||||||
|
set_property -dict [list CONFIG.C_EN_STRG_QUAL {1}] $ila_adc_0
|
||||||
|
|
||||||
|
|
||||||
connect_bd_net -net axi_ad9361_0_clk [get_bd_pins ila_adc_0/clk]
|
connect_bd_net -net axi_ad9361_0_clk [get_bd_pins ila_adc_0/clk]
|
||||||
connect_bd_net -net axi_ad9361_0_dev_l_dbg_data [get_bd_pins axi_ad9361_0/dev_l_dbg_data] [get_bd_pins ila_adc_0/probe0]
|
connect_bd_net -net axi_ad9361_0_dev_l_dbg_data [get_bd_pins axi_ad9361_0/dev_l_dbg_data] [get_bd_pins ila_adc_0/probe0]
|
||||||
|
@ -415,6 +403,7 @@ if {$xl_board eq "zc702"} {
|
||||||
set ila_adc_1 [create_bd_cell -type ip -vlnv xilinx.com:ip:ila:3.0 ila_adc_1]
|
set ila_adc_1 [create_bd_cell -type ip -vlnv xilinx.com:ip:ila:3.0 ila_adc_1]
|
||||||
set_property -dict [list CONFIG.C_NUM_OF_PROBES {1}] $ila_adc_1
|
set_property -dict [list CONFIG.C_NUM_OF_PROBES {1}] $ila_adc_1
|
||||||
set_property -dict [list CONFIG.C_PROBE0_WIDTH {62}] $ila_adc_1
|
set_property -dict [list CONFIG.C_PROBE0_WIDTH {62}] $ila_adc_1
|
||||||
|
set_property -dict [list CONFIG.C_EN_STRG_QUAL {1}] $ila_adc_1
|
||||||
|
|
||||||
connect_bd_net -net axi_ad9361_1_clk [get_bd_pins ila_adc_1/clk]
|
connect_bd_net -net axi_ad9361_1_clk [get_bd_pins ila_adc_1/clk]
|
||||||
connect_bd_net -net axi_ad9361_1_dev_l_dbg_data [get_bd_pins axi_ad9361_1/dev_l_dbg_data] [get_bd_pins ila_adc_1/probe0]
|
connect_bd_net -net axi_ad9361_1_dev_l_dbg_data [get_bd_pins axi_ad9361_1/dev_l_dbg_data] [get_bd_pins ila_adc_1/probe0]
|
||||||
|
|
|
@ -248,10 +248,6 @@ module system_top (
|
||||||
wire gpio_open_45_45;
|
wire gpio_open_45_45;
|
||||||
wire gpio_open_44_44;
|
wire gpio_open_44_44;
|
||||||
wire gpio_open_15_15;
|
wire gpio_open_15_15;
|
||||||
wire [ 63:0] ad9361_0_adc_ddata;
|
|
||||||
wire [ 63:0] ad9361_0_dac_ddata;
|
|
||||||
wire [ 63:0] ad9361_1_adc_ddata;
|
|
||||||
wire [ 63:0] ad9361_1_dac_ddata;
|
|
||||||
|
|
||||||
// multi-chip synchronization
|
// multi-chip synchronization
|
||||||
|
|
||||||
|
@ -334,12 +330,6 @@ module system_top (
|
||||||
.GPIO_I (gpio_i),
|
.GPIO_I (gpio_i),
|
||||||
.GPIO_O (gpio_o),
|
.GPIO_O (gpio_o),
|
||||||
.GPIO_T (gpio_t),
|
.GPIO_T (gpio_t),
|
||||||
.ad9361_0_adc_ddata (ad9361_0_adc_ddata),
|
|
||||||
.ad9361_0_dac_ddata (ad9361_0_dac_ddata),
|
|
||||||
.ad9361_1_adc_ddata (ad9361_1_adc_ddata),
|
|
||||||
.ad9361_1_dac_ddata (ad9361_1_dac_ddata),
|
|
||||||
.ad9361_adc_ddata ({ad9361_0_adc_ddata, ad9361_1_adc_ddata}),
|
|
||||||
.ad9361_dac_ddata ({ad9361_0_dac_ddata, ad9361_1_dac_ddata}),
|
|
||||||
.hdmi_data (hdmi_data),
|
.hdmi_data (hdmi_data),
|
||||||
.hdmi_data_e (hdmi_data_e),
|
.hdmi_data_e (hdmi_data_e),
|
||||||
.hdmi_hsync (hdmi_hsync),
|
.hdmi_hsync (hdmi_hsync),
|
||||||
|
|
Loading…
Reference in New Issue