Forum Discussion
Warning: No Clocks Defined in Design
Everytime I compile my design in the Quartus II software (the web edition), I get a warning that states "No clocks defined in design" even though in my .bdf file I have an altpll block with the input assigned to the pin associated with with the System Clock. What am I doing wrong?
Thanks!21 Replies
- Altera_Forum
Honored Contributor
I think, the problem is that an external clock input is missing. I'm not sure, whether you can use an internal pll as clock without any external clock.
- Altera_Forum
Honored Contributor
I connected the input of the pll to the pin associated with the system clock, does that not count as an external clock?
Thanks again! - Altera_Forum
Honored Contributor
How do you connect the PLL generated clocks in your design? If they aren't used by any existing part of the design (= some logic, that has output signals), they are removed during synthesis.
- Altera_Forum
Honored Contributor
The output of the pll is connected to the clocks in the shift registers. I just need one clock in my design to run at 200kHz, and looking at my .bdf it looks like I have that, but the same "no clock" error is popping up.
Thanks! - Altera_Forum
Honored Contributor
There should be more errors in compiler log, cause no Altera PLL is able to generate an output frequency of 200 kHz.
- Altera_Forum
Honored Contributor
There are more errors in the compiler log: "Design contains 1 input pin(s) that do not drive logic ("No output dependent on the input pin 'CLK'")" & "Synthesized away the following node(s): clk[0] (the output of the PLL)." So I now understand why I get the "no clock defined" error, but I don't understand why the program thinks the clock doesn't drive logic when it is used as an input into the shift registers.
I was able to output a 200k frequency by dividing a 20MHz frequency by 100. Although, if I want to use the system clock (the one on the FPGA) will I have to change the inclk0 frequency to the frequency of the system clock (50MHz) and divide by 250? Can I do that? I looked in the documentation and found the particular pin connected to the system clock, so I thought it was possible. It should be noted, I am extremely new to Quartus, and I have been trying to teach myself the program, so my questions may seem basic. - Altera_Forum
Honored Contributor
O.K., I have to correct myself, starting with Cyclone III and Stratix II, Altera PLLs have a postcounter cascading feature and can generate rather low frequencies. 200 kHz is possible with 20 MHz input. Sorry for causing confusion in this point.
So there must be another reason why the clock input is removed in synthesis. Did you connect also the shift register in and outputs to pins? Another possible reason is, when the logic is kept in reset due to an existing but unconnected reset function. - Altera_Forum
Honored Contributor
I am building a 8 tap correlator, so the outputs of the shift registers are being used as inputs into an lpm_mult megafunction and also as inputs into the next shift register. So I just wired the output of each shift register to the input of its respective multiplier megafunction and the next shift regsiter.
I am not familiar with the reset function. What is its purpose? I have 7 shift register megafunctions in my design (lpm_shiftreg) and they all require a clock input. I am only using clk0 in the PLL, so the output of the PLL (c0) is connected as the clock input into each shift register. I used the pin planner to assign the input pin of the PLL to the same pin on the chip that is connected to the System Clock. I have also tried assigning the input pin to CLK0 on the chip, and I still get the same compiler errors. - Altera_Forum
Honored Contributor
If you don't have unconnected reset inputs of any Megafunction, forgot about it now. Regarding the correlator design, what's the final output of the design? I assume, it has one. But it may be the case, that it's constant due to any design error. Then the complete logic may be removed during synthesis.
- Altera_Forum
Honored Contributor
I attached some screen shots of the .bdf file. but here is a brief description. My 8-tap correlator consists of 8 right-shift registers, 8 multipliers, a parallel adder, and a PLL. I start with an 8-bit input pin which is fed into the first multiplier and the first shift register. In the first multiplier, the input is multiplied by a constant and the output of the first multiplier is fed into the parallel adder. The output of the first shift register is fed into the second multiplier and the second shift register. The right shifted input is fed into the 2nd multiplier and multiplied by a different constant and the output of the 2nd multiplier is fed into the same parallel adder. This pattern continues for 8 multipliers. The output of the parallel adder is 8 bits and assigned to pins on the chip. The input of the PLL is connected to the pin assigned to the system clock and the output of the PLL is connect to each clock input of the 8 shift registers.
I really don't see where my logic is wrong. I have the following warnings: the output of the PLL was synthesized away, two input pins do not drive logic (the least sig bit of the input into the first multiplier and the input into the PLL), one output pin is stuck to gnd (just the most sig bit of the output of the parallel adder), no clock defined in the design, and at least one filter could not be matched with a register. I think the warnings may be connected somehow. Any help would be greatly appreciated! I've looked in the tutorials and manuels and they have not helped. Thanks! https://www.alteraforum.com/forum/attachment.php?attachmentid=995 https://www.alteraforum.com/forum/attachment.php?attachmentid=996 https://www.alteraforum.com/forum/attachment.php?attachmentid=997