stringtranslate.com

MiHDL

MyHDL [1] es un lenguaje de descripción de hardware (HDL) basado en Python .

Las características de MyHDL incluyen:

MyHDL es desarrollado por Jan Decaluwe. [7]

Ejemplos de conversión

Aquí puede ver algunos ejemplos de conversiones de diseños MyHDL a VHDL y/o Verilog. [8]

Un pequeño diseño combinatorio.

El ejemplo es un pequeño diseño combinatorio, más específicamente el conversor de código binario a Gray:

def  bin2gray ( B ,  G ,  ancho :  int ): """Codificador gris.  B - señal intbv de entrada, codificada en binario  G - señal intbv de salida,  ancho codificado en gris - ancho de bits  """ @always_comb  def  logic ():  Bext  =  intbv ( 0 )[ ancho  +  1  :]  Bext [:]  =  B  para  i  en  el rango ( ancho ):  G . siguiente [ i ]  =  Bext [ i  +  1 ]  ^  Bext [ i ]  lógica de retorno

Puede crear una instancia y convertirla a Verilog y VHDL de la siguiente manera:

ancho  =  8B  =  Señal ( intbv ( 0 )[ ancho :]) G  =  Señal ( intbv ( 0 )[ ancho :])bin2gray_inst  =  toVerilog ( bin2gray ,  B ,  G ,  ancho ) bin2gray_inst  =  toVHDL ( bin2gray ,  B ,  G ,  ancho )

El código Verilog generado tiene el siguiente aspecto:

módulo bin2gray ( B , G );    entrada [ 7 : 0 ] B ; salida [ 7 : 0 ] G ; registro [ 7 : 0 ] GRAMO ;      siempre @( B ) comenzar : BIN2GRAY_LOGIC entero i ; reg [ 9-1 : 0 ] Bext ; _ _ Bext = 9'h0 ; Bexto = B ; para ( i = 0 ; i < 8 ; i = i + 1 ) comience G [ i ] <= ( Bext [( i + 1 )] ^ Bext [ i ]); fin fin                           módulo final

El código VHDL generado tiene el siguiente aspecto:

biblioteca IEEE ; utilice IEEE.std_logic_1164. todo ; utilice IEEE.numeric_std. todo ; Utilice std.textio. todo ;    utilice work.pck_myhdl_06. todo ; la entidad bin2gray es el puerto ( B : entrada sin firmar ( 7 hasta 0 ); G : salida sin firmar ( 7 hasta 0 ) ); entidad final bin2gray ;                 La arquitectura MyHDL de bin2gray es    comenzarBIN2GRAY_LOGIC : proceso ( B ) es variable Bext : sin firmar ( 8 hasta 0 ); comenzar Bext : = to_unsigned ( 0 , 9 ); Bext := cambiar tamaño ( B , 9 ); para i en 0 a 8 - 1 bucle G ( i ) <= ( Bext (( i + 1 )) xor Bext ( i )); bucle final ; finalizar el proceso BIN2GRAY_LOGIC ;                                  arquitectura final MyHDL ;  

Ver también

Referencias

  1. ^ "Inicio". myhdl.org .
  2. ^ "Conversión a Verilog y VHDL: documentación MyHDL 0.11".
  3. ^ "Novedades de MyHDL 0.6 - Documentación de MyHDL 0.11".
  4. ^ "Novedades de MyHDL 0.6 - Documentación de MyHDL 0.11".
  5. ^ "Novedades de MyHDL 0.6 - Documentación de MyHDL 0.11".
  6. ^ "Co-simulación con Verilog - documentación MyHDL 0.11".
  7. ^ "MyHDL: un lenguaje de descripción de hardware basado en Python | Linux Journal".
  8. ^ "Ejemplos de conversión: documentación de MyHDL 0.11".