El lenguaje de descripción de hardware describe nuestro circuito, pero ¿qué hace el lenguaje de verificación de hardware? ¿Cómo se verifica el diseño?
Respuestas
¿Demasiados anuncios?Comprobación de Hardware, lenguajes como vera, e y más tarde SystemVerilog y SystemC fueron creados para hacer el proceso de verificación más eficiente. Cuenta la historia que, según la ley de Moore, el diseño, el tamaño y, por tanto, su complejidad es casi duplica cada 18 meses. En los primeros días de diseño, cuando incluso los microprocesadores se dibuja como esquemas, la falta de verificación como la que existe ahora fue realizado antes de que en realidad la producción de silicio. Bueno, por supuesto, ahora vamos a utilizar los ordenadores para comprobar nuestro diseño, pero, ¿cómo se verifique el primer equipo? lol
En aquellos días, cuando un diseño completo se divide en bloques, diferentes personas usan su propio cerebro para diseñar, verificar y también simplificar el diseño. Si a usted le han dicho a alguien que algún día habría una herramienta en la que sólo tienes que escribir en el texto y se va a sintetizar y simplificar el circuito automáticamente, se reiría de ti. Leí esto en un libro real. Sin embargo, las cosas cambiaron cuando los diseños se volvieron más complejos y el diseño de aumento de la velocidad. Automatizar cualquier tarea que significa la eliminación de la intervención humana y por lo tanto, eliminando el potencial de los humanos inducida por error. Más complejo significa que los inducidos por el ser humano de error es más probable. Por esta vez, haciendo todo el diseño a mano era ineficiente, la gente se movía de dibujo a mano (sí físicos de dibujo) para esquemas en un equipo para hacer el diseño. Más tarde llegó el HDL, que proporciona una manera mucho más eficiente para el diseño de circuitos digitales y el intercambio de diseños, horas extras, las herramientas de síntesis se convirtió en bastante robusto, por lo que la necesidad de hacer el diseño esquemático fue, así, no hay más. Ahora podemos comprobar en pequeños bloques, como la serpiente llena y el multiplexor de nuestro propio ser. Sin embargo, ¿qué pasa con un diseño complejo? En este punto, la gente usa las Hdl para la verificación. En este caso, podemos crear un "testbench" que se aplica un determinado estímulo a un modelo de nuestro diseño y la salida generada es en comparación con la espera de la salida proporcionada por el diseñador. Esto es posible debido a que los circuitos digitales seguir la lógica Booleana, su salida puede ser predicho. Es posible escribir un programa de computadora que hace esto, y esto es exactamente lo que ocurre en la simulación.
Ahora a la pregunta, ¿por qué necesitamos HVLs? Esto está relacionado con el software de dominio. Como el software se convirtió en más y más compleja, la gente se movía de la asamblea procedimiento lenguajes como BASIC y C, entre otros. Sin embargo, la escritura y el mantenimiento de la enorme programas era aún difícil. Esto es cuando las personas se desarrolló la programación orientada a objetos paradigma. Programación orientada a objetos es sin duda un desarrollo revolucionario que ha hecho posible que los programas de ordenador para abstraerse del mundo real problema a niveles sin precedentes. Se hace la escritura de un programa más eficaz y también el mantenimiento y la expansión de la misma.
La simulación es esencialmente basado puramente en software de la actividad. Cuando hacemos uso de HDL para escribir un testbench tenemos que escribir de forma precisa cada señal de maniobra que debe tener lugar y en el momento en que debe tener lugar. Sin embargo, si queremos elevar el nivel de abstracción de decir que escribir una palabra completa (e.g un byte para el bus de datos) al mismo tiempo, la escritura testbench será mucho más rápido y menos tedioso. Podemos elevar el nivel de abstracción aún más, e.g con ethernet de diseño se puede escribir todo un paquete a la vez y comprobar un paquete entero en vez de un bit.
Con HVLs que aplicar la técnica de programación orientada a objetos en el dominio de comprobación de hardware. Lo hacen por lo que es posible verificar un diseño a un nivel superior de abstracción. Al mismo tiempo, contienen características que son especialmente adaptador para la verificación, en lugar de escribir sintetizar capaz de código.
e.g SystemVerilog ofrece 2 características importantes. Estos son concurrentes afirmaciones y limitado de pruebas aleatorias. Como afirmación se comprueba que una expresión es verdadera en un tiempo dado, en forma simultánea afirmación se comprueba para asegurarse de que una secuencia en la que la señal alterna es correcta. En lugar de tener que escribir cada una de las piezas de estímulo que se debe aplicar a un diseño de bajo verificación, limitado al azar prueba que se aplica a todos los posibles estímulos que se adapte a la restricción dada por la verificación del ingeniero, las horas extraordinarias. Esto ahorra un montón de tiempo en la escritura de estímulo.
HVLs tienden a ser algo así como un híbrido entre el HDL y lenguajes de secuencias de comandos. Mientras que las Hdl están destinados a ser synthesizeable en un circuito, HVL es la intención de ejecutar el software, proporcionando estímulo a hardware real o simulada de hardware (de HDL), con el fin de verificar la correcta funcionalidad del Hardware.
Algunas de las Hdl tienen una especie de HVL incorporado. Por ejemplo, VHDL tiene un número de construcciones de lenguaje que no están destinados a ser utilizados en sythesis de hardware, pero puede ser utilizado en un testbench para estimular o analizar el código de la simulación.