
During one of [Michael]’s many forum lurking sessions, he came across a discussion about frequency counting on a CPLD. He wondered if he could do the same on an FPGA, and how hard it would be to count high clock rates. As it turns out, it’s pretty hard with a naive solution. Being a bit more clever turns the task into a cakewalk, with a low-end FPGA being able to count clocks over 500 MHz.
The simplest solution for counting a clock would be to count a clock for a second with a huge, 30-bit counter. This is a terrible idea: long counters have a lot of propagation delays. Also, any sampling would have to run at least twice as fast as the input signal – not a great idea if you’re counting really fast clocks.
The solution is to have the input signal drive a very small counter – only five bits – and sample the counter using a slower clock on board the FPGA. [Michael] used a 5-bit Gray code, getting rid of the problem of the ‘11111’ to ‘00000’ rollover of a normal binary counter.
Because [Michael] is using a 5 bit clock with 31 edges sampled at 32 MHz, he can theoretically sample a 992 MHz clock. There isn’t a chance in hell of the Spartan 6 on his Papilio Pro board ever being able to measure that, but he is able to measure a 500 MHz clock, something that would be impossible without his clever bit of code.

2600: The Hacker Quarterly is the premier (print) infosec publication out there, and depending on who you talk to, the best publication out there that has anything to do with modifying electronics, infiltrating networks, and all the other goodies we post on a daily basis. They’ve also been around for longer than most of our readership, and to lose them would be a terrible loss for anyone who calls themselves a hacker.
ircuit isn’t new, he states right in the video that various audio limiting, compressing, and automatic gain control circuits have been passed around the internet for years. What he’s brought to the table is his usual flair for explaining the circuits’ operation, with plenty of examples using the oscilloscope. (For those that don’t know, when [Alan] isn’t building circuits for fun, he’s an RF applications engineer at Tektronix).

