In my Verilog design I have a 25Mhz board clock from which I derive a 100Mhz clock. Coming from an external Pin I have an asynchronous 4.77 Mhz clock which should drive the logic and be synchronized before (using the main clock):
always @(posedge clk_100Mhz_i)
begin
// Synchronizer chain... hopefully
clk4_del0 <= clk4_77_i; // SysClk from ext pin
clk4_del1 <= clk4_del0;
clk4_del2 <= clk4_del1;
end
// Used to clock internal regs
assign clock_4_77Mhz = clk4_del2;
// Sample
always @(posedge clock_4_77Mhz)
begin
timerIdx <= timerIdx +1;
end
Unfortunately I get the following warning:
Warning (332060): Node: X8255_top:x8255|clk4_del2 was determined to be a clock but was found without an associated clock assignment....
I also get a warning about an unconstrained clock. I tried to use what the Timing Analyzer suggested and added the fourth line to my .SDC:
# Constrain clock port clk_25MHz_i
create_clock -period "25.0 MHz" -name clk_25MHz [get_ports clk_25MHz_i]
create_clock -period "4.77 MHz" -name clk_4_77MHz [get_ports clk_4_77_i]
create_clock -name {X8255_top:x8255|clk4_del2} -period 210
without success.
What am I doing wrong?