MyHDL è unlinguaggio di descrizione hardware (HDL) basato suPython.
MyHDL supporta le seguenti caratteristiche principali:
MyHDL è sviluppato da Jan Decaluwe[5].
Di seguito sono riportati alcuni esempi di conversioni da progetti MyHDL a VHDL e/o Verilog[6].
Un semplice modulo combinatorio
L'esempio è un semplice modulo combinatorio, più specificatamente un convertitore da codice binario a codice Gray:
defbin2gray(B,G,width:int):"""Gray encoder. B -- input intbv signal, binary encoded G -- output intbv signal, gray encoded width -- bit width """@always_combdeflogic():Bext=intbv(0)[width+1:]Bext[:]=Bforiinrange(width):G.next[i]=Bext[i+1]^Bext[i]returnlogic
È possibile definire un'istanza e convertirla in Verilog e VHDL come segue:
width=8B=Signal(intbv(0)[width:])G=Signal(intbv(0)[width:])bin2gray_inst=toVerilog(bin2gray,B,G,width)bin2gray_inst=toVHDL(bin2gray,B,G,width)
Il codice Verilog generato appare come segue:
modulebin2gray(B,G);input[7:0]B;output[7:0]G;reg[7:0]G;always@(B)begin:BIN2GRAY_LOGICintegeri;reg[9-1:0]Bext;Bext=9'h0;Bext=B;for(i=0;i<8;i=i+1)beginG[i]<=(Bext[(i+1)]^Bext[i]);endendendmodule
Il codice VHDL generato si presenta come segue:
libraryIEEE;useIEEE.std_logic_1164.all;useIEEE.numeric_std.all;usestd.textio.all;usework.pck_myhdl_06.all;entitybin2grayisport(B:inunsigned(7downto0);G:outunsigned(7downto0));endentitybin2gray;architectureMyHDLofbin2grayisbeginBIN2GRAY_LOGIC:process(B)isvariableBext:unsigned(8downto0);beginBext:=to_unsigned(0,9);Bext:=resize(B,9);foriin0to8-1loopG(i)<=(Bext((i+1))xorBext(i));endloop;endprocessBIN2GRAY_LOGIC;endarchitectureMyHDL;
Logica programmabile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Concetti | ASIC ·SoC ·FPGA (CLB) ·CPLD ·EPLD ·PLA ·PAL ·GAL ·PSoC ·Reconfigurable Computing (Xputer) ·Soft microprocessor ·Circuit underutilization ·High-level synthesis ·Acceleratore | ||||||||||
Tecniche di programmazione | Gate array ·Antifusibile ·EPROM ·E²PROM ·Flash ·SRAM | ||||||||||
Linguaggi | Verilog (A,AMS) ·VHDL (AMS,VITAL) ·SystemVerilog (DPI) ·SystemC ·AHDL ·Handel-C ·PSL ·UPF ·PALASM ·ABEL ·CUPL ·OpenVera ·C to HDL ·Flow to HDL ·MyHDL ·ELLA ·Chisel | ||||||||||
Costruttori | Accellera ·Achronix ·AMD (Xilinx) ·Aldec ·Arm ·Cadence ·Infineon ·Intel ·Lattice ·Microchip Technology ·NXP ·Siemens (Mentor Graphics) ·Synopsys ·Texas Instruments | ||||||||||
Prodotti |
|