8 votos

Cómo pensar mientras se trabaja con VHDL o Verilog

Todos los de mi experiencia pertenecen a lenguajes de programación de propósito general.e.g; c/c++, etc, donde cada una de las instrucciones se ejecutan una después de la otra, pero parece que en VHDL/Verilog, todas las instrucciones se ejecutan a la vez (procesos paralelos)

Sólo me preguntaba si hay algún recurso que hay para programador de general idiomas para entender cómo VHDL trabajo?

Referencia: http://en.wikibooks.org/wiki/Programmable_Logic/Parallel_Execution

11voto

SandeepJ Puntos 1339

Con HDL idiomas, usted tiene que entender que usted está describiendo de hardware, no de software. Yo creo que eso es fundamental para conseguir la caída de ella". El orden del código en el módulo no importa, todo sucede a la vez.
No es tan malo una vez que te vas - después de haber diseñado un par de módulos sencillos (por ejemplo, el contador, la serpiente, mux, etc) tu mente debe adaptarse naturalmente al proceso.

El mejor libro que he leído para salir con el HDL es el Pong Chu "FPGA protoyping por Verilog ejemplos" (yo uso de Verilog, pero también hay un VHDL versión de este libro) Que se centra principalmente en la synthesisable cosas, que es lo que quieres saber de FPGAs, de lado, por ejemplo, el testbench de código que tiene un capítulo dedicado a ella también. (Estoy asumiendo que usted está interesado en el uso de HDL para FPGAs/CPLDs)

Aparte de eso, un par de buenos neto de los recursos que me han marcado a lo largo del tiempo son:

FPGA4Fun.com

Edaboard PLD foro

ASIC Mundo

Con los enlaces anteriores (especialmente la primera) y el libro, debe ser "a la velocidad" en un corto período de tiempo.

3voto

Martin Thompson Puntos 6509

"Todas las instrucciones se ejecutan a la vez", no se muy bien cómo es...

Me parece una muy buena descripción de cómo la programación de "instrucciones" (visto como "las actualizaciones de los valores") se puede encontrar aquí:

http://www.sigasi.com/content/vhdls-crown-jewel

Una vez que han entendido cómo la señal variable y actualiza el trabajo, usted puede concentrarse en la descripción de lo que desea que suceda en fragmentos más pequeños, con señales de comunicación entre ellos

Asegúrese de que la síntesis de frecuencia, así como simular en esta etapa, como usted va a descubrir que los bits de la lengua no se puede poner en un chip. Además, usted también podrá descubrir qué tipo de codificación de los estilos de producir largas cadenas de la lógica de que "en el camino" de conseguir un trabajo chip. Tipos de Hardware le gusta decir cosas como "usted debe aprender a pensar en términos de hardware". Se olvidan de lo difícil que esto es a menos que usted ya puede hacerlo, pero para tomar el código, sintetizar y mirar los resultados en el esquema del visor es probablemente la forma en que todos hemos aprendido realmente hace muchos años, y va a trabajar para usted también.

(Otra cosa que no electronics tipos de pasar por alto hasta que las picaduras de ellos es que en los pines del dispositivo que usted necesita estar consciente de la sincronización de las señales en el interior del chip. Hay otras preguntas acerca de los que por aquí en alguna parte!)

2voto

travega Puntos 140

En C o C++, Java, etc. que son esencialmente de la creación de una secuencia de eventos que ocurren en orden. Entiendo que en un nivel de HDL solo estamos haciendo un programa secuencial en el testbench, con el fin de obtener una secuencia programada de los valores de señal.

La parte buena de la codificación en el HDL es el diseño de un circuito de netlist, no un programa. Pensar en un caso o el interruptor de bloque como de un multiplexor. Entradas de cables, con salidas de cables, en el medio es de lógica combinacional. en el silicio o en una tarjeta, un cable no esperar el turno que se le diga qué hacer. Un 74xx puerta nand no espera que se le diga qué hacer. Es siempre una puerta nand, y siempre nanding, siempre y cuando esté encendido. Un multiplexor siempre a los multicines. Un inversor siempre invierte. Luego flops flop siempre en cualquier borde de reloj, y un pestillo siempre se prende es habilitar. Mismo como si se dibujara un esquema. Módulos y Entidades de la misma como un jerárquica esquemático. Tiene mucho más sentido para mí cuando dejé de pensar en él como un programa y comenzó a ver el circuito en su lugar.

Mi favorito de referencia es Chu RTL Diseño de Hardware Utilizando VHDL. Incluso Verilog que la gente se beneficie el concepto de cosas, pero todo sintaxis de VHDL. http://www.amazon.com/gp/aw/d/0471720925/ref=mp_s_a_1?qid=1360628255&sr=8-1&pi=SL75

1voto

bythenumbers Puntos 11

He encontrado una forma beneficiosa de llegar procedimientos expresados en VHDL fue considerar la máquina de estados finitos. Mediante la visualización de su algoritmo como estados en una FSM, usted puede comenzar a re-modelar tu código en algo que puede ser ejecutado todos-a-la-vez, y sólo se ejecuta paso a paso por la virtud de la FSM.

No estoy diciendo que usted necesita para construir un estado para cada línea de manera similar funcional código C++ (a pesar de que teóricamente el trabajo), pero usted puede comenzar a agrupar las cosas como las asignaciones y los cálculos, y de la mano a un estado para ser ejecutados simultáneamente cuando el FSM entra en ese estado.

Ahora, su "programa" se convierte en una FSM, que, en VHDL es un gran caso-cambiar el tipo de instrucción (basado en el estado de la FSM), y algunos lógica de cómo el estado debe ser actualizada para ir a la siguiente estado para su algoritmo.

Espero que esto ayude!!

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X