Hi Ross,
I developed a large part of the 5GSps ADC yellow block(s) in the
sma-wideband repository using previous code kindly provided by Homin
Jiang and Kim Guzzino. Unfortunately, as Jonathan mentioned in a
previous email, we basically left the ROACH1, 1:2 DMUX yellow block
behind when we realized we weren't going to use it. In its present state
it's basically broken.
I would suggest getting it up to date by bringing in the clock-domain
crossing FIFO that was added into the other blocks. If I remember
correctly this was the last feature left when I stopped developing that
particular block. You should be able to copy the FIFO-related VHDL code
and the FIFO netlist over from the 1:1, just make sure to adjust the
MPD, PAO, etc as needed. Using the ROACH2, 1:2 block as a comparison is
also a good idea. Basically the biggest difference between the two is
that the R2 version uses a MMCM while the R1 version uses DCM/PLL.
About the "adc1_dcm_locked" error you're receiving: this is a bug and I
guess I forgot to fix it for ROACH1. If you look at line 203 in
"system.mhs",
https://github.com/sma-wideband/mlib_devel/blob/master/xps_base/XPS_ROACH_base/system.mhs#L203,
you'll notice that the conditional statement checks for the presence of
"adc0":
#IF# (strcmp(get(b,'type'),'xps_adc5g')) && get(b,'use_adc0')# PORT
adc1_dcm_locked = adc1_dcm_locked
This should actually read:
#IF# (strcmp(get(b,'type'),'xps_adc5g')) && get(b,'use_adc1')# PORT
adc1_dcm_locked = adc1_dcm_locked
If you make this change it should get rid of your error and allow you to
use just adc0 or adc1 without needing both present. If you do make this
change please feel free to issue a pull-request to sma-wideband and
we'll merge it into the repo.
Best,
Rurik
On 3/14/2013 12:33 PM, Ross Williamson wrote:
Hi All,
I'm starting to look into getting the ADC 1x5000-8 DMUX 1:2 to work on
a roach 1. I'm just posting a couple of comments here that I've
uncovered so far - I think most of these stem from the fact that a lot
of work has gone into developing the 1:1 demux with 2 cards for the
sma-wideband project and ROACH-2.
Notes:
1) I'm using the git repo from the sma-wideband project - If I should
be looking elsewhere then let me know.
2) The 1:1 version uses the Xilinx FIFO IP core where as the 1:2 does
not - This causes the 1:2 to not compile
3) If you hack to remove the FIFO ports from the system.mhs (bad idea)
then you quickly notice that the opb_adc5g_controller has ports for
the FIFO and also for 2 adc's - i.e. I don't think it will compile if
you only have adc0 and not adc1 - error is "adc1_dcm_locked - port is
driven by a sourceless connector "
4) I'm going to look at the ROACH-2 implementation as that might help
a lot but I haven't got to it yet.
Anyone know of a quick fix before I delve into the vhdl - different
repo/earlier version?
I know most people are pushing ahead with the 1:1 on the ROACH-2 with
this board and so I'm happy looking into these issues but if anyone
has some quick good ideas it would be great to hear them.
Cheers
Ross