differential clock in EDK

Hi all,

I'm doing a project on a Virtex-2P-40. The FPGA is fed with a differential clock pair and I am not quite sure how to tell EDK that this is the case. I have tried to use a small custom made core to connect the two clock inputs (pins H18 and J18) to an IBUFGDS primitive, but that is not understood by the synthesis which connects the inputs to two different BUFGP primitives prior to my small IBUF-core. In my oppinion the clock should be connected to a IBUFGDS and the output from the buffer should be connected to the DCM.

I'm feeling clueless, and would sure appreciate any input on this matter leading me in the right direction.

Regards

--
-----------------------------------------------
Johan Bernspång, xjohbex@xfoix.se
Research engineer

Swedish Defence Research Agency - FOI
Division of Command & Control Systems
Department of Electronic Warfare Systems

www.foi.se

Please remove the x's in the email address if
replying to me personally.
-----------------------------------------------
Reply to
Johan Bernspång
Loading thread data ...

"Johan Bernspång" schrieb im Newsbeitrag news:dka7nj$l7t$ snipped-for-privacy@mercur.foi.se...

if the clock goes to DCM you need to make sure the DCM wrapper does not include a bufg in the clock input, then you just create a user logic with lvds clock buf. thats it. must work.

antti

Reply to
Antti Lukats

I think you should change the synthesis option /Xilinx specific options/add I/O buffers to false

Reply to
Zara

I have had the same problem! Seems that there should be a way in the User Constraints file to specify this!

-Eli

Reply to
Eli Hughes

Well, I thought so too. (No additional bufg is included in the DCM wrapper). But EDK is adding buffers during the synthesis on all global I/Os regardless on what is defined in the UCF file. (Zara: I can't find where in EDK I set the I/O-buffer option you mentioned, and I still want all other global I/Os to have buffers).

Examing the system.vhd file gives the following information. If I define the ports refclk_p and refclk_n as clock signals in the MHS file (SIGIS = CLK) the synthesis is connecting the ports to BUFGPs before connecting the signals to my IBUFGDS-core. When the SIGIS = CLK is omitted the ports are connected to ordinary IBUFs.

In ISE this issue isn't even an issue, there should be a way to work this out in EDK as well. The Xilinx dev boards ML40x have connectors for external differential clock inputs...it must work somehow.

Regards

--
-----------------------------------------------
Johan Bernspång, xjohbex@xfoix.se
Research engineer

Swedish Defence Research Agency - FOI
Division of Command & Control Systems
Department of Electronic Warfare Systems

www.foi.se

Please remove the x's in the email address if
replying to me personally.
-----------------------------------------------
Reply to
Johan Bernspång

Here is I handle differential clock input with BSB/EDK. Xilinx Answer Record 19539 discusses the general strategy which uses a pcore that converts from differential inputs to single net inside the FPGA. Have a single ended clock in the XBD and generate the design. Change the following in the generated MHS: PORT sys_clk_pin = dcm_clk_s, DIR = INPUT, SIGIS = DCMCLK ... to: PORT diff_sys_clk_n_pin = diff_sys_clk_n, DIR = INPUT PORT diff_sys_clk_p_pin = diff_sys_clk_p, DIR = INPUT ... And add the following pcore instantiation: BEGIN DIFF_INPUT_BUF PARAMETER INSTANCE = DIFF_INPUT_BUF_0 PARAMETER HW_VER = 1.00.a PARAMETER INPUT_BUS_WIDTH = 1 PORT DIFF_INPUT_P = diff_sys_clk_p PORT DIFF_INPUT_N = diff_sys_clk_n PORT SINGLE_ENDED_INPUT = dcm_clk_s END Then modify the UCF to duplicate the single ended LOC and constraints to the second differential pin. I've been doing this with the XUPV2P board for several months and haven't had any issues. I've already made an enchancement request to the Xilinx EDK team to natively support this. Would anyone else find such support useful?

Paul

Johan Bernspång wrote:

Reply to
Paul Hartke

Thanks Paul, your comment put me on the right track. The answer record

19539 was exactly what I was looking for. Yes, I have been searching the Xilinx website.

The only thing I had to add to my design was IOB_STATE=BUF after the two differential ports in the MPD-file. The design is working fine now.

regards

--
-----------------------------------------------
Johan Bernspång, xjohbex@xfoix.se
Research engineer

Swedish Defence Research Agency - FOI
Division of Command & Control Systems
Department of Electronic Warfare Systems

www.foi.se

Please remove the x's in the email address if
replying to me personally.
-----------------------------------------------
Reply to
Johan Bernspång

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.