Estaba pasando por http://papilio.cc/index.php?n=Papilio.Hardware y se dio cuenta de que mencionan ZPUino Soft Processor
pero no estoy seguro de lo que es exactamente. Sé que es un soc según http://www.alvie.com/zpuino/downloads/zpuino-1.0.pdf ¿pero cuál es exactamente su función en la placa fpga? Por qué tenemos una idea separada para ella (ZPDuino). Pensé que teníamos que escribir todo para un fpga en verilog o vhdl. ¿Qué es esta sintaxis en c? Incluso en la guía de inicio rápido para papilio generan un archivo de bits utilizando la sintaxis c como( http://papilio.cc/index.php?n=Papilio.P1QuickstartSketch ). Entonces, ¿qué es exactamente y qué hace?
Respuesta
¿Demasiados anuncios?Un procesador como el AVR se implementa utilizando lógica digital, por lo que también es posible cargar un diseño similar en una FPGA que se comporte de la misma manera. A menudo se denominan procesadores blandos y, sin duda, el diseño original del procesador blando se habría realizado utilizando un HDL tradicional. Una vez que alguien ha "hecho el trabajo duro" se puede cargar el diseño en la FPGA y escribir el software utilizando C o cualquier otro lenguaje que normalmente se utilizaría para ese procesador que se ha creado dentro de la FPGA.
Probablemente no es una mala manera de empezar a trabajar con la placa, pero si te limitas a tratarla como una "FPGA AVR" no obtendrás ningún beneficio, un AVR real sería más barato y más eficiente en la mayoría de las circunstancias.
Los procesadores blandos son más útiles cuando se combinan con HDLs como Verilog o VHDL para realizar funciones adicionales para las que un AVR por sí solo no sería tan bueno. Un ejemplo podría ser la captura de un cuadro de vídeo que llega a 50 MHz y su almacenamiento en búfer, y luego utilizar el núcleo de la CPU para tomar la imagen y transferirla a través de un módulo GSM que se encarga de todas las complejidades del protocolo que se manejan más fácilmente con el código C tradicional.
Ten en cuenta que sólo estoy utilizando el AVR como ejemplo con el que probablemente estés familiarizado, el ZPUino puede tener un conjunto de instrucciones diferente, pero en cualquier caso cuando creas un procesador dentro de una FPGA es posible dirigir un compilador a él y utilizar lenguajes de programación tradicionales.