MYHDL

Páginas: 6 (1436 palabras) Publicado: 23 de octubre de 2015
MYHDL (PHYTON).
Myhdl es una librería para usar en Python como un lenguaje de descripción y verificación de hardware, Python es un lenguaje de alto nivel, y los diseñadores de hardware pueden usarlo para modelar y simular sus diseños, MyHDL puede convertir un diseño a verilog o VHDL.
Para usar MyHDL lo primero que se debe tener es instalado PHYTON el cual se puede descargar desdewww.python.org/downloads , una vez descargado Python, se debe descargar Myhdl desde http://www.myhdl.org/start/installation.html , y generar la instalación, para instalarlo se ingresa a símbolo del sistema en Windows y hacer lo siguiente:



Uso de librería Myhdl.
Tutorial en Generadores:
Los generadores fueron introducidos en Python 2.2 porque los generadores son el concepto básico en MyHDL.
Ejemplo:
Considerela siguiente Función sin sentido:
def function():
for i in range(5):
return i
Se puede ver porque esta función no tiene sentido, tan pronto como el primer bucle de la iteracion es ingresado ya que la función devuelve:
>>> function()
0
Usar return es fatal para la función llamada, ya que otras iteraciones del bucle no serán usadas, y nada queda de la función llamada cuando estaregresa.
Para cambiar la función a una función de Generador, remplazamos return con yield:
def generator():
for i in range(5):
yield i
Ahora obtenemos:
>>> generator()

Cuando una función Generador es llamada, esta retorna un objeto generador, un objeto generador soporta el protocolo de iteraciones, el cual es una gran manera de decirque se puede generar los valores subsecuentes por el uso del método next ():
>>> g = generator()
>>> g.next()
0
>>> g.next()
1
>>> g.next()
2
>>> g.next()
3
>>> g.next()
4
>>> g.next()

Traceback (most recent call last):
File "", line 1, in
g.next()
StopIteration

Ahora podemos generar los valores subsecuentes desde el bucle en uso, a menos que estos ya hayan sido usados.Lo que sucede es que él enunciado yield es como un return, excepto que este no es fatal para la función: El generador recuerda el estado y el punto en el código cuando este es producido. Un agente de orden superior puede decidir cuándo puede obtener el siguiente valor del generador por medio del método next (). Decimos que los generadores son funciones resumibles.

En simulaciones de hardware, estotambién es un agente de orden superior, la simulación, que interactúa con cada función resumible; estos sin llamados procesos in VHDL y bloques en Verilog. Similarmente, los generadores en Python proveen un elegante y eficiente método para modelar concurrencias, sin tener que recurrir a algún método de rosca.

El uso de generadores modelan concurrencias es el primer concepto de llave en MyHDL. Elsegundo concepto de llave es relacionado al primero: En MyHDL, los valores producidos son usados para especificar las condiciones en cual generador debe esperar antes de ser resumidas. En otras palabras, los enunciados yield trabajan como listas generales sensitivas.

SOBRE DECORADORES

Python 2.4 introdujo una característica llamada decoradores. MyHDL toma ventaja de esta característica paradefinir un número de decoradores que facilitan descripciones de hardware. Sin embargo, algunos usuarios podrían no estar familiarizados con decoradores. Sin embargo, una introducción es incluida aquí:

Un decorador consiste de una sintaxis especial antes de la declaración de una función, esto hace referencia a una función decorador. La función decorador automáticamente transforma la funcióndeclarada dentro de algún otro objeto que sea llamado.

Un decorador de función deco() es usado así:

@deco
def func(arg1, arg2, ...):


Este código es equivalente a esto:

def func(arg1, arg2, ...):

func = deco(func)

Note que el enunciado del decorador va directamente arriba de la declaración de la función, y que el nombre de la función func () es automáticamente usada para el...
Leer documento completo

Regístrate para leer el documento completo.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS