02-15-2013 09:17 AM
Hello all
Could some one please help me with the issue I am having. ? Does routing the signal externally, i.e. on EDK , via system assembly have a direct impact on timing ? I am not sure what is going wrong. Here is my problem,.
Venkat
02-28-2013 01:56 AM - edited 02-28-2013 01:58 AM
Hello Amandaw,
Thank you for the reply! . Finally , I made it work .! :) Well turns out the problem was not on my part at all.
So, untill up now I had been using EDK to synthesize, PAR my design and used SDK to program the FPGA and test it in SW.
Inorder to test my timing i wanted to used SmartXplorer . But inorder to do this, I had to use my EDK project in an ISE design flow. When I started to migrate my project to ISE and implemented the design,, something STRANGE happend . !
02-15-2013 02:57 PM
I'm not quite clear on how you're testing the design when it fails. Are you exernally
looping the Rx and Tx pins at the board level? If that's the case, then your PERIOD
time constraint does not cover the external path (clock to pad out --> pad in setup to clock).
You would need to also have OFFSET OUT AFTER constraints and OFFSET IN BEFORE
constraints on your transmit and receive signals respectively. It would also help to
push the registers into the IOB's, which would force the best possible I/O timing.
Note that if you don't place I/O registers in the IOB, and only have a PERIOD constraint,
the tools may place these registers in the fabric with a large routing delay to the pad,
because that path is not covered by constraints, but placing the register near other
internal logic helps to meet the PERIOD constraint.
-- Gabor
02-18-2013 01:05 AM - edited 02-18-2013 01:16 AM
Hello Gszakacs,,
Thanks a lot for your reply . I am not doing anything at the board level now. I guess by board level you meat loop-back using an external wire ? If my understanding was correct. Although this would be my end goal.. In the end, I would want to use the protocol with an FMC module, where , i would be connecting two FMCs with Wires and testing the protocol.
However, as of now, I am only doing a loopback at the EDK module level using the MHs file. I try loopback using two methods, but both the methods doesn't seem to work. See the attached screenshots for both the types of loopback I am trying.
However, the design works perfectly fine when i loopback using Signals declared in vhdl . checking the PAR frequency in EDK which is arnd 110 Mhz and i have a 100 Mhz clock .
lpback_fig1 and lpback_fig2 shows a loopback where I declare an external signal as type IO and connect the Tx and Rx channels via the IO signal type on the system assembly view which is reflected in the MHs file.
in the lpback_fig3 shows a loopback where i directly connect the Tx channel to the Rx channel via the system assembly view.
Corresponding mhs of lpback_fig1 and lpback_fig2
PORT ip1553_0_TxA_BC = ip1553_0_TxA_BC, DIR = IO PORT ip1553_0_TxAn_BC = ip1553_0_TxAn_BC, DIR = IO PORT ip1553_0_TxB_BC = ip1553_0_TxB_BC, DIR = IO PORT ip1553_0_TxBn_BC = ip1553_0_TxBn_BC, DIR = IO PORT ip1553_0_TxA_RT = ip1553_0_TxA_RT, DIR = IO PORT ip1553_0_TxAn_RT = ip1553_0_TxAn_RT, DIR = IO PORT ip1553_0_TxB_RT = ip1553_0_TxB_RT, DIR = IO PORT ip1553_0_TxBn_RT = ip1553_0_TxBn_RT, DIR = IO BEGIN ip1553 PARAMETER INSTANCE = ip1553_0 PARAMETER HW_VER = 1.00.a PARAMETER C_BASEADDR = 0xcde00000 PARAMETER C_HIGHADDR = 0xcde0ffff BUS_INTERFACE SPLB = mb_plb PORT TxA_BC = ip1553_0_TxA_BC PORT TxAn_BC = ip1553_0_TxAn_BC PORT TxB_BC = ip1553_0_TxB_BC PORT TxBn_BC = ip1553_0_TxBn_BC PORT TxA_RT = ip1553_0_TxA_RT PORT TxAn_RT = ip1553_0_TxAn_RT PORT TxB_RT = ip1553_0_TxB_RT PORT TxBn_RT = ip1553_0_TxBn_RT PORT RxA_RT = ip1553_0_TxA_BC PORT RxAn_RT = ip1553_0_TxAn_BC PORT RxB_RT = ip1553_0_TxB_BC PORT RxBn_RT = ip1553_0_TxBn_BC PORT RxA_BC = ip1553_0_TxA_RT PORT RxAn_BC = ip1553_0_TxAn_RT PORT RxB_BC = ip1553_0_TxB_RT PORT RxBn_BC = ip1553_0_TxBn_RT END
Corresponding mhs of lpback_fig3
BEGIN ip1553 PARAMETER INSTANCE = ip1553_0 PARAMETER HW_VER = 1.00.a PARAMETER C_BASEADDR = 0xcde00000 PARAMETER C_HIGHADDR = 0xcde0ffff BUS_INTERFACE SPLB = mb_plb PORT TxA_BC = ip1553_0_TxA_BC PORT RxA_RT = ip1553_0_TxA_BC PORT TxAn_BC = ip1553_0_TxAn_BC PORT RxAn_RT = ip1553_0_TxAn_BC PORT TxB_BC = ip1553_0_TxB_BC PORT RxB_RT = ip1553_0_TxB_BC PORT TxBn_BC = ip1553_0_TxBn_BC PORT RxBn_RT = ip1553_0_TxBn_BC PORT TxA_RT = ip1553_0_TxA_RT PORT RxA_BC = ip1553_0_TxA_RT PORT RxAEnb_BC = ip1553_0_RxAEnb_BC PORT RxAn_BC = ip1553_0_TxAn_RT PORT TxAn_RT = ip1553_0_TxAn_RT PORT TxB_RT = ip1553_0_TxB_RT PORT RxB_BC = ip1553_0_TxB_RT PORT TxBn_RT = ip1553_0_TxBn_RT PORT RxBn_BC = ip1553_0_TxBn_RT END
Thanks
02-18-2013 01:08 AM - edited 02-18-2013 01:12 AM
02-18-2013 01:13 AM
02-22-2013 09:38 AM
Hello Gabor,
Could you please give me some more pointers on this.
02-22-2013 02:22 PM
It seems like you're having trouble because you're declaring an external signal where there isn't one. If you're not pulsing on some kind of external access, I'm not sure how you could test TX or RX functionality. If your eventual goal is to implement external hardware looping via FMC, the XM105 Debug Daughter Card provides external headers for FMC that would be easy to play with.
02-28-2013 01:56 AM - edited 02-28-2013 01:58 AM
Hello Amandaw,
Thank you for the reply! . Finally , I made it work .! :) Well turns out the problem was not on my part at all.
So, untill up now I had been using EDK to synthesize, PAR my design and used SDK to program the FPGA and test it in SW.
Inorder to test my timing i wanted to used SmartXplorer . But inorder to do this, I had to use my EDK project in an ISE design flow. When I started to migrate my project to ISE and implemented the design,, something STRANGE happend . !
02-28-2013 05:46 AM
If you would like this solved for future versions of EDK, I would suggest opening a webcase.
Posting a problem on the forums does not guarantee notice by those involved in updating
the software tool chain.
-- Gabor
02-28-2013 05:58 AM
Done!