<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">Hi, Josh.</div><div class="gmail_quote"><br></div><div class="gmail_quote">Please, see my comments below.</div><div class="gmail_quote"><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

<div id=":1y2" class="" style="overflow:hidden">1) vita chain/dsp core<br>Inside the u2plus_core.v, there is a 13MHz clock (lms_clk) that is used<br>to clock the time core and the dsps. The vita chain is clocked at 104MHz<br>

(dsp_clk). So for example, when the dsp strobes out 1 sample, does the<br>vita_rx_chain see 8 of the same sample?</div></blockquote></div><div class="gmail_extra">No. If you look at dsp_core_rx.v. You'll see that strobe signal is forming at 104MHz (dsp_clk), not at adc_clk (13MHz).š</div>

<div class="gmail_extra">I added some additional code in purpose of moving strobe signal from 13MHz clock domain into 104MHz clock domain.</div><div class="gmail_extra">If needed, I can point you to the appropriate commit in our git repository.</div>

</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

<span style="font-family:arial,sans-serif;font-size:12.666666984558105px">2) usrp3 style vita framing/deframing</span>š</blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

<span style="font-family:arial,sans-serif;font-size:12.800000190734863px">Some time after umtrx was released, B200 came out. The FPGA architecture<br></span><span style="font-family:arial,sans-serif;font-size:12.800000190734863px">in B200 was changed from the earlier models to address dealing with<br>

</span><span style="font-family:arial,sans-serif;font-size:12.800000190734863px">these integrated frontend chips. Specifically, the ADC, DAC, DSP, and<br></span><span style="font-family:arial,sans-serif;font-size:12.800000190734863px">framing can all run on the same clock domain at full sample rate. This<br>

</span><span style="font-family:arial,sans-serif;font-size:12.800000190734863px">is accomplished because the vita framing happens on 64-bit wide bus to<br></span><span style="font-family:arial,sans-serif;font-size:12.800000190734863px">deal with the overhead of VITA headers. I suspect this architecture<br>

</span><span style="font-family:arial,sans-serif;font-size:12.800000190734863px">would be better fitting for the UmTRX.</span></blockquote><div class="gmail_extra">I mostly agree with you, but I need some time to look at B200 fpga code more deeply.š</div>

<div class="gmail_extra"><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span style="font-family:arial,sans-serif;font-size:12.800000190734863px">3) u2plus_umtrx_v2.v<br>

</span><span style="font-family:arial,sans-serif;font-size:12.800000190734863px">It looks like the ADC and DAC IQ signals are clocked in/out on the<br></span><span style="font-family:arial,sans-serif;font-size:12.800000190734863px">positive and negative edges of the 13MHz clock. This is accomplished<br>

</span><span style="font-family:arial,sans-serif;font-size:12.800000190734863px">using a 26 MHz clock. So technically, this is another clock domain<br></span><span style="font-family:arial,sans-serif;font-size:12.800000190734863px">crossing between the 13/26MHz for the ADC/DAC signals. So, you should be<br>

</span><span style="font-family:arial,sans-serif;font-size:12.800000190734863px">able to accomplish the same effect in with just the 13MHz clock using<br></span><span style="font-family:arial,sans-serif;font-size:12.800000190734863px">the ODDR2 and IDDR2 xilinx modules.</span></blockquote>

<div class="gmail_extra">Yes, but global clock for LMS chip must be twice higher then samples rate. Therefore UmTRX have common 26MHz global clock source for FPGA and LMS chips instead of 13MHz.</div><div class="gmail_extra">

<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span style="font-family:arial,sans-serif;font-size:12.800000190734863px">4) digital loopback options?<br>

</span><span style="font-family:arial,sans-serif;font-size:12.800000190734863px">I was looking for a way to do a digital loopback inside the LMS. I wasnt<br></span><span style="font-family:arial,sans-serif;font-size:12.800000190734863px">sure if it was possible. Basically, if I set some value on the DAC pins,<br>

</span><span style="font-family:arial,sans-serif;font-size:12.800000190734863px">can I get the same value of the ADC pins? I saw registers for baseband<br></span><span style="font-family:arial,sans-serif;font-size:12.800000190734863px">loopback, but I think thats all analog. The idea is to self-test the bus<br>

</span><span style="font-family:arial,sans-serif;font-size:12.800000190734863px">timing by putting a test word into the IOs.</span></blockquote><div class="gmail_extra">In this question I agree with Alexander. š<span style="font-family:arial,sans-serif;font-size:12.800000190734863px">There is no digital loopback in the LMS, only analogš</span><span style="font-family:arial,sans-serif;font-size:12.800000190734863px">loopback.</span></div>

</div><div class="gmail_extra"><font face="arial, sans-serif"><br></font><div>Regards,<br>Andrew Karpenkov</div></div></div><div class="gmail_extra"><br clear="all"><div>ó Õ×ÁÖÅÎÉÅÍ,<br>áÎÄÒÅÊ ëÁÒÐÅÎËÏ×</div>
<br><br><div class="gmail_quote">2014-04-08 22:45 GMT+03:00 Alexander Chemeris <span dir="ltr"><<a href="mailto:Alexander.Chemeris@fairwaves.co" target="_blank">Alexander.Chemeris@fairwaves.co</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Hi Josh,<br>
<div class=""><br>
On Tue, Apr 8, 2014 at 11:00 PM, Josh Blum <<a href="mailto:josh@joshknows.com">josh@joshknows.com</a>> wrote:<br>
</div><div class="">> Hey guys,<br>
><br>
> Please CC whoever appropriate.<br>
><br>
> I have been looking over the u2plus_core.v and u2plus_umtrx_v2.v files<br>
> with the intention of updating the vita rx/tx chains and dsp chains. I<br>
> noticed a few interesting things about the clocking and I just wanted to<br>
> confirm some of my assumptions, a few possible changes, and possibly<br>
> share some knowledge.<br>
><br>
> 1) vita chain/dsp core<br>
> Inside the u2plus_core.v, there is a 13MHz clock (lms_clk) that is used<br>
> to clock the time core and the dsps. The vita chain is clocked at 104MHz<br>
> (dsp_clk). So for example, when the dsp strobes out 1 sample, does the<br>
> vita_rx_chain see 8 of the same sample?<br>
><br>
> My immediate concern is updating the vita and dsp chains. So, I really<br>
> just need to understand the interaction between the dsp and the vita<br>
> chain since they are crossing this 104/13Mhz clock domain.<br>
><br>
> 2) usrp3 style vita framing/deframing<br>
> Some time after umtrx was released, B200 came out. The FPGA architecture<br>
> in B200 was changed from the earlier models to address dealing with<br>
> these integrated frontend chips. Specifically, the ADC, DAC, DSP, and<br>
> framing can all run on the same clock domain at full sample rate. This<br>
> is accomplished because the vita framing happens on 64-bit wide bus to<br>
> deal with the overhead of VITA headers. I suspect this architecture<br>
> would be better fitting for the UmTRX.<br>
<br>
</div><div class="">I think the B200 architecture is better for UmTRX, but I'll let Andrew<br>
and Sergey to decide, as they know the FPGA code much better.<br>
<br>
</div><div class="">> 3) u2plus_umtrx_v2.v<br>
> It looks like the ADC and DAC IQ signals are clocked in/out on the<br>
> positive and negative edges of the 13MHz clock. This is accomplished<br>
> using a 26 MHz clock. So technically, this is another clock domain<br>
> crossing between the 13/26MHz for the ADC/DAC signals. So, you should be<br>
> able to accomplish the same effect in with just the 13MHz clock using<br>
> the ODDR2 and IDDR2 xilinx modules.<br>
><br>
> 4) digital loopback options?<br>
> I was looking for a way to do a digital loopback inside the LMS. I wasnt<br>
> sure if it was possible. Basically, if I set some value on the DAC pins,<br>
> can I get the same value of the ADC pins? I saw registers for baseband<br>
> loopback, but I think thats all analog. The idea is to self-test the bus<br>
> timing by putting a test word into the IOs.<br>
<br>
</div><div class="">Unfortunately, there is no digital loopback in the LMS.<br>
As you correctly note, the baseband loopback is actually analog.<br>
<br>
</div><div class="">> ---<br>
> In any case, the most important issue is #1. I want to have a host build<br>
> and image that is fully functional with latest UHD, lets say next week.<br>
> And I would like to be able to first verify with your team that we<br>
> havent lost any functionality, before further changes like the timed<br>
> command core. Sounds OK to you?<br>
<br>
</div>Ok with me.<br>
<br>
> Thanks,<br>
> -josh<br>
<div class="HOEnZb"><div class="h5">><br>
><br>
><br>
><br>
<br>
<br>
<br>
--<br>
Regards,<br>
Alexander Chemeris.<br>
CEO, Fairwaves, Inc. / ïïï õÍòÁÄÉÏ<br>
<a href="https://fairwaves.co" target="_blank">https://fairwaves.co</a><br>
</div></div></blockquote></div><br></div>