This is the code for the adder (between dds_timed and axi_wrapper):

assign s_axis_data_tvalid2[0] = s_axis_data_tvalid[1] & s_axis_data_tvalid[0
];
assign s_axis_data_tvalid2[1] = s_axis_data_tvalid[1] & s_axis_data_tvalid[0
];

assign s_axis_data_tuser2 = s_axis_data_tuser;

assign s_axis_data_tlast2[0] = s_axis_data_tlast[0];
assign s_axis_data_tlast2[1] = s_axis_data_tlast[1];

assign s_axis_data_tdata2[15: 0] = s_axis_data_tdata[47:32] +
s_axis_data_tdata[15: 0];
assign s_axis_data_tdata2[31:16] = s_axis_data_tdata[63:48] +
s_axis_data_tdata[31:16];

assign s_axis_data_tready_aux = ~|(~{s_axis_data_tready_out[0
],s_axis_data_tready_out[1]} & 2'b11);
assign s_axis_data_tready[0] = s_axis_data_tvalid[0] & s_axis_data_tvalid[1]
& s_axis_data_tready_aux;
assign s_axis_data_tready[1] = s_axis_data_tvalid[0] & s_axis_data_tvalid[1]
& s_axis_data_tready_aux;

El vie., 10 jul. 2020 a las 11:59, Carlos Alberto Ruiz Naranjo (<
carlosruiznara...@gmail.com>) escribió:

> Hi,
>
> I'm customizing the DUC block to do it 2input:1output
>
> input 0  ---> DUC --->
>                                       add ---> output
> input 1  ---> DUC --->
>
> I have added an addsub module between dds_timed and axi_wrapper.
> Apparently it works fine. I can see two tones in the output if the inputs
> are 2 tones.
>
> But I have a synchronization problem. If input_0 is a sine and input_1 is
> a sine with pi phase the output should be 0. And the output is 0, but after
> a while (3 minutes) no. I think that the channels are out of sync before
> the adder.
>
> Any idea about what is happening?
>
> Thank you :)
>
_______________________________________________
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com

Reply via email to