Pregunta:
¿Cómo debo entender la arquitectura FPGA?
Carl
2019-10-08 23:26:17 UTC
view on stackexchange narkive permalink

Me han encomendado la tarea de hacer un sumador de 2 bits programando un FPGA.La FPGA se ve a continuación:

Sin embargo, ni siquiera sé cómo comenzar esta tarea, porque no entiendo lo que estoy viendo.

¿Qué se supone que deben hacer todas esas líneas verdes y qué pasa con esas formas verdes y rojas?

Espero que alguien pueda aclararme esto, ya que realmente quiero entenderlo.

enter image description here

PS: No sé si es esencial para comprender lo que está sucediendo, pero esta figura también se incluyó en la hoja de problemas:

enter image description here

¡Bienvenido a EE. UU.!Esta parece ser una pregunta de tarea.Como tal, debe mostrarnos su trabajo hasta ahora y explicar con qué parte de la pregunta tiene problemas.Para referencia futura: Preguntas de deberes en EE. UU. Disfrutar / sufrir un tratamiento especial.No proporcionamos respuestas completas, solo proporcionamos sugerencias o preguntas socráticas, y solo cuando haya demostrado un esfuerzo suficiente por su cuenta.De lo contrario, le estaríamos haciendo un flaco favor y, al mismo tiempo, nos abrumaríamos con preguntas sobre la tarea.Consulte también [aquí] (http://meta.electronics.stackexchange.com/a/5120/7036).
@DaveTweed Aunque esta es una pregunta de tarea, no es la típica pregunta de tarea.Creo que está perfectamente bien tal como está.
Sí, pero el OP solicita información que ya debería haberse dado como parte del curso.No deberíamos necesitar volver a explicarlo.
Por lo general, programa un FPGA usando un HDL (por ejemplo, Verilog) y la cadena de herramientas del fabricante, y nunca tiene que mirar nada parecido a lo que ha publicado,
@DaveTweed Está de acuerdo.Aquí solo hay dos posibilidades: o al OP no se le ha dicho esta información, en cuyo caso su tutor / curso tiene la culpa;o no ha absorbido esta información, en cuyo caso potencialmente él o su tutor / curso podrían tener la culpa.En ambos casos, el "esfuerzo suficiente" debe implicar volver a su tutor o volver a leer el material del curso.
@OrangeDog Seguro, pero es conveniente que lo vean al menos una vez en la vida.La arquitectura LUT básica en un FPGA no ha cambiado en más de una década, y haberla visto hace que sea más fácil ver por qué, por ejemplo, tener más etapas de canalización en una ruta computacional generalmente no requerirá más recursos.
Francamente, prefiero esto como tarea a otra inútil "instanciar primitivas para construir un medio sumador y conectarlas para crear un sumador completo", que no ha ayudado a nadie desde antes del final de la guerra fría (el anterior, es decir).
@OrangeDog Cierto, pero lo más probable es que este sea un ejercicio para tener una idea de lo que está sucediendo bajo el capó.Sí, nadie trabaja en este nivel a menos que esté desarrollando la cadena de herramientas en sí.Pero tener cierta comprensión de con qué tienen que trabajar las herramientas es beneficioso al escribir HDL, o al menos al leer informes de tiempo para tratar de descubrir cómo modificar el HDL para acortar las rutas críticas.
Voy a contarte un secreto: todo es magia negra.
es solo magia si te quedas dormido durante la conferencia donde se explica
Tres respuestas:
alex.forencich
2019-10-08 23:49:26 UTC
view on stackexchange narkive permalink

Las cajas verdes son pines IO, las líneas azules son cables, las cajas rojas son bits de configuración y las cajas grises son bloques lógicos. Las cajas rojas pueden proporcionar un 0 lógico constante o un 1 lógico a lo que sea a lo que estén conectados.

Cada bloque lógico implementa una tabla de búsqueda de 3 entradas y 1 salida (la combinación de los niveles lógicos de las tres entradas determina cuál de los ocho bits de configuración se selecciona) y tiene un flip-flop anulable. Su publicación también muestra la tabla de verdad que implementa la LUT, indicando qué bit de configuración se selecciona para cada combinación de s0, s1 y s2.

Por ejemplo, las cajas rojas en las intersecciones de los cables azules están conectadas para pasar puertas entre los cables. Establecer uno de esos en 1 conectará los cables horizontal y vertical juntos, establecerlo en 0 deja los cables desconectados.

Lo que debe hacer es escribir un 1 o un 0 en cada cuadro rojo para que las señales de entrada en los cuadros verdes en la parte superior se envíen a través de los bloques lógicos, que deberá configurar para implementar la lógica necesaria para realizar la operación. Parece que quieren que agregue {a1, a0}, {b1, b0} y ci juntos.

Aquí tienes un ejemplo de cómo puedes implementar una puerta OR de 3 entradas:

OR gate

Se supone que todos los cuadros en blanco son 0 lógicos. Esto toma las 3 entradas a0 b0 y ci, calcula el OR lógico y genera el resultado en un pin libre. Lo principal a tener en cuenta es cómo los bits de configuración controlan las puertas de paso para conectar las tres señales de entrada a las tres entradas en el bloque lógico y la salida a un pin de salida libre, y cómo el bloque lógico implementa la funcionalidad OR - 0 cuando todos las entradas son 0, de lo contrario 1, con el flip-flop omitido.

Por lo general, hay más lógica de conexión desde los buses internos de un FPGA a los pines de E / S, normalmente la E / S se puede enrutar a casi cualquier pin de E / S
@VoltageSpike True, pero este es un ejemplo muy simplificado.Y en este caso, es posible que ni siquiera los considere como IO para el mundo exterior, sino como conexiones con alguna otra parte de un diseño más grande.
DKNguyen
2019-10-08 23:52:48 UTC
view on stackexchange narkive permalink

Publicó su propia explicación.Eche un vistazo más de cerca a su propia imagen:

enter image description here

El cuadro rojo está diseñado como un cuadro de etiqueta para que escriba un valor o señal, y representa la señal que controla el interruptor que conecta un cable horizontal con un cable vertical (las líneas verdes).Los cables horizontales y verticales no están conectados en la unión cuando se cruzan a menos que el interruptor (el transistor controlado por el valor en el cuadro rojo) lo haga

Voltage Spike
2019-10-08 23:30:36 UTC
view on stackexchange narkive permalink

Las líneas verdes son cables, las cajas rojas son conexiones, puede conectar un cable verde a un bloque con un interruptor.El interruptor está en el bloque rojo y puede conectar dos cables juntos si está habilitado.

Así es como funcionan muchos FPGA modernos.Pero en lugar de tener que hacer esto a mano, un sintetizador de hardware lo resuelve por usted.Diablos, para cuando termines esta tarea, ¡podrías escribir tu propio sintetizador de hardware básico!

Hmm, está bien, pero todavía no lo entiendo del todo.La mayoría de estos cables verdes simplemente van de un extremo a otro sin entrar en ningún bloque.¿Pero tal vez no se supone que lo hagan? Además, ¿qué se supone que significan esas letras en las formas verdes en la parte superior?
Esas son las entradas, por lo que le da tres entradas, como lo haría en cualquier sumador de 2 bits, y luego necesita usar el hardware que tiene para generar las salidas apropiadas.Así, pero con hardware FPGA https://electronics.stackexchange.com/questions/129549/2-bit-adder-implementation


Esta pregunta y respuesta fue traducida automáticamente del idioma inglés.El contenido original está disponible en stackexchange, a quien agradecemos la licencia cc by-sa 4.0 bajo la que se distribuye.
Loading...