Soy muy nuevo en el desarrollo de FPGA, pero tengo una aplicación relativamente simple que estoy intentando implementar en un Microsemi ProASIC3. El hardware con el que tengo que trabajar no tiene una fuente de reloj externa (es decir, no tiene cristal ni resonador). Al principio, asumí que había alguna forma de generar un reloj interno independiente, como puede hacerlo con algunos microcontroladores, pero al leer a través de la hoja de datos esto no parece ser algo que pueda hacer esta familia (de hecho, al leer Internet, parece que no ser una característica de la mayoría de los FPGA).
Para esta aplicación, no es estrictamente necesario un reloj, nada está controlado por el tiempo. El FPGA está simplemente manteniendo un registro interno que se corresponde con un conjunto de salidas. El valor de este registro cambia según el estado actual de algunas entradas y cierta lógica interna.
Pero, observando los diversos recursos FPGA, veo que los relojes son bastante omnipresentes en los diseños de ejemplo. Si bien estoy bastante seguro de que no necesito uno, me temo que a mitad del desarrollo encontraré la necesidad de que surja en un lugar inesperado.
Mi pregunta es: ¿debo desechar este hardware y obtener algo con un reloj a bordo, porque los relojes son efectivamente necesarios para todos los diseños y estoy perdiendo el tiempo trabajando sin uno? ¿O es totalmente posible crear diseños FPGA sensibles que nunca necesiten temporización externa?