Empezando con los bloques de icestudio

147 views
Skip to first unread message

rafael lozano

unread,
Jul 24, 2016, 11:51:23 AM7/24/16
to FPGA-WARS: explorando el lado libre
buenas tardes:

estoy intentando de hacer el prescalers multiple que tiene obijuan en el tutorial   para meterlo en un bloque de icstudio, el prescalers normal ya lo tengo funcionando pero el multi no. adjunto un  archivo para que le echeis un vistazo y comentamos.

un saludo
MULTIPLEPRESCALER.ice

Obijuan

unread,
Jul 25, 2016, 2:33:31 AM7/25/16
to FPGA-WARS: explorando el lado libre

Hola Rafael,

Hay varios problemas con este bloque.

1)  En el código estás instanaciando un prescaler que no está definido en el código (En el tutorial funciona porque el prescaler está en otro fichero, pero  el icestudio sólo ve el código de cada bloque. Las uniones entre diferentes bloques las tienes que hacer tú mediante cables)

2) Cada bloque de verilog en icestudio tiene que ser un bloque simple, es decir, un bloque que no instancie otros bloques. Las instanciaciones en icestudio las haces importando bloques (y no mediante código)

3) En la versión 0.2.0 de icestudio no se pueden especificar todavía parámetros, por lo que no se puede tener un prescaler genérico e instanciarlo con diferente número de bits  (vendrá en futuras versiones). Hay que hacer cada uno de los prescaler por separado (aunque el código es igual, solo se diferencia en el valor del parámetro del número de bits)

Así que la manera de hacerlo sería siguiendo el circuito del tutorial, pero en icestudio (adjunto la imagen original):

Te creas un bloque que sea el prescaler base de 21 bits.
Te creas un prescaler de 1 bit, mediante un bloque verilog
Te creas un prescales de 2 bits, medainte un bloque verilog
Los importas en tu proyecto (esto es "instanciar" los módulos)
Los unes mediante cables

Finalmente, si quieres, conviertes el diseño final en un nuevo bloque llamado multipleprescaler (que contiene todos los prescalers que quieras en el interior)

Saludos, Obijuan
mpres-1.png

Jesús Arroyo

unread,
Jul 25, 2016, 4:58:32 AM7/25/16
to FPGA-WARS: explorando el lado libre
Efectivamente,

En Icestudio no se pueden (ni deben) hacer instancias de entidades por código. Al final eso se hace automáticamente al añadir bloques al proyecto.

También en la versión 0.2.0 no se pueden configurar parámetros en los bloques (en el futuro se podrá :D).

Dejo aquí el bloque div que he utilizado en las demos.

PD: si queréis cambiarle la frecuencia hay que modificar el parámetro N (la división en bits) y M que es 2^N.

Un saludo.
div.ice
Reply all
Reply to author
Forward
0 new messages