Hello,
The subject of my help request is an expansion board with a XC95144XL, that is connected to a host system with a MC68000 CPU. This host system is providing an 8MHz clock.
I found that on earlier host system board revisions, this clock signal is weak and transition times can be up to 20 to 25ns.
On the expansion this clock is routed to a GCK pin, and this is causing glitches because it does not meet maximum rise/fall times : see question "3226 - CPLD CoolRunner XC9500/XL/XV - What maximum rise/fall times are recommended for inputs?"
https://support.xilinx.com/s/article/3226?language=en_USI understand that a solution is to use this clock as a standard I/O signal.
To confirm this I installed a patch wire to route it to another standard I/O pin, and that makes it work as intended.
Now, I am looking for a solution to solve this without hardware modification.
This global clock is detected and set by ISE. I tried disabling the use of global clock, either globally in the fitter options of ISE or on the select pin (using /* synthesis syn_noclockbuf=1 */ according to
https://www.xilinx.com/support/answers/4084.htm), I see that it changes few things in the implementation but the pin is still reported as used as "GCK" in the Fitter Report and the glitches are still there. Many other things I found do not work at least for CPLDs.
I confirmed that adding complex combinational logic to this signal forces the ISE Fitter to use the pin as a standard input (with a warning message "Cpld:1239 - The global clock designation (BUFG) on signal is ignored"), but well I do not want this complex logic. I said complex because I have to mix it with other signals so that it is not simplified/ignored. So far I have not found how to telI ISE to keep the simple logic I try to add to this input just for my purpose, for example with the following :
(* keep = "true" *) (* s = "true" *) wire c7m = M68K_CLK & M68K_CLK;
Do you have an advice how to achieve either the right solution or a workaround with combinational logic ?