¿A qué se traduce "output logic" en este código?

Diseño HDL con este lenguaje. Módulos y testbenchs. Estilos y trucos de codificación, etc. NOTA: dado que hay entornos como ISE que soportan Verilog pero no SystemVerilog, señalad dentro de un post que de lo que se va a tratar es SystemVerilog si es el caso.
Responder
Avatar de Usuario
mcleod_ideafix
Site Admin
Mensajes: 76
Registrado: 14 Ago 2018, 01:15

¿A qué se traduce "output logic" en este código?

Mensaje por mcleod_ideafix » 20 Ago 2018, 14:43

Pregunta de Neuro_999 en el Telegram:
Como puedo poner eso en verilog? Q me casca y estaba con el de nes para ponerlo en rgb vga :grin:
El output logic ese no lo traga
outputlogic.jpg
outputlogic.jpg (160.7 KiB) Visto 647 veces
Respuesta rápida: es un output reg
Respuesta menos rápida: fíjate que q, que es la salida que te interesa, es asignada mediante una asignación no bloqueante ( <= ) dentro de un always con un reloj (o sea, un always secuencial). Dentro de un always secuencial, todos los destinos de asignaciones deben ser "reg" en Verilog, así que q debe ser un reg, en este caso, un output reg.

En SystemVerilog, para acabar con la confusión (la hay? yo no me confundo, la verdad) entre wire y reg, o entre reg combinacional y reg secuencial, crearon el "logic" (que realmente no sé si contribuye más a la confusión o no...)

Avatar de Usuario
neuro_999
PLA
Mensajes: 26
Registrado: 17 Ago 2018, 10:49

Re: ¿A qué se traduce "output logic" en este código?

Mensaje por neuro_999 » 20 Ago 2018, 14:45

Muchas gracias.
La verdad es q el .sv es un poco cristo cuando lo que mas gas usado es vhdl y un poco de verilog
:)

Avatar de Usuario
mcleod_ideafix
Site Admin
Mensajes: 76
Registrado: 14 Ago 2018, 01:15

Re: ¿A qué se traduce "output logic" en este código?

Mensaje por mcleod_ideafix » 20 Ago 2018, 14:46

Neuro, lo que estás definiendo ahí es una memoria de doble puerto, con un puerto de escritura y otro de lectura. Cuando pases el sintetizador, sería conveniente que "ram" es realmente detectada como una memoria de tipo Block RAM con dos puertos. Como no lo haga y te lo sintetice con LUTs, puedes perder mucho espacio de la FPGA (y tiempo de síntesis) si NUMWORDS es un valor alto.

wilco2009
Veroboard
Mensajes: 16
Registrado: 17 Ago 2018, 10:53

Re: ¿A qué se traduce "output logic" en este código?

Mensaje por wilco2009 » 20 Ago 2018, 15:43

mcleod_ideafix escribió:
20 Ago 2018, 14:43

En SystemVerilog, para acabar con la confusión (la hay? yo no me confundo, la verdad) entre wire y reg, o entre reg combinacional y reg secuencial, crearon el "logic" (que realmente no sé si contribuye más a la confusión o no...)
Pero entonces no me acaba de quedar claro qué es el "output logic" en System Verilog. ¿permite al sintetizador que elija si es un reg o un wire dependiendo del contexto?

Avatar de Usuario
mcleod_ideafix
Site Admin
Mensajes: 76
Registrado: 14 Ago 2018, 01:15

Re: ¿A qué se traduce "output logic" en este código?

Mensaje por mcleod_ideafix » 20 Ago 2018, 16:38

wilco2009 escribió:
20 Ago 2018, 15:43
mcleod_ideafix escribió:
20 Ago 2018, 14:43

En SystemVerilog, para acabar con la confusión (la hay? yo no me confundo, la verdad) entre wire y reg, o entre reg combinacional y reg secuencial, crearon el "logic" (que realmente no sé si contribuye más a la confusión o no...)
Pero entonces no me acaba de quedar claro qué es el "output logic" en System Verilog. ¿permite al sintetizador que elija si es un reg o un wire dependiendo del contexto?
Pues no estoy muy seguro, pero por lo visto la cosa es que en Verilog "reg" se puede usar tanto para denotar una señal como para un flipflop. Todo depende de en qué tipo de "always" se encuentre. "logic" por otra parte, siempre denota un flipflop y nunca una señal (un cable, vamos).

Voy a ver si lo miro y te confirmo si es eso o no.

EDITO:
Pues va a ser que no es exactamente como lo dije, sino que parece que "logic" se usa exactamente igual que "reg", que son sinónimos.
https://electronics.stackexchange.com/q ... explainati

Responder

Volver a “Verilog / SystemVerilog”