Movatterモバイル変換


[0]ホーム

URL:


Vai al contenuto
WikipediaL'enciclopedia libera
Ricerca

MyHDL

Da Wikipedia, l'enciclopedia libera.

MyHDL è unlinguaggio di descrizione hardware (HDL) basato suPython.

MyHDL supporta le seguenti caratteristiche principali:

  • Un sistema di tipi di dati orientati all'hardware che semplificano la definizione di modelli hardware.
  • Il supporto per tecniche di modellazione di alto livello (bus functional modeling, modellazione di memorie con tipi di dato nativi, modellazione conapproccio orientato agli oggetti).
  • La capacità di raggruppare più segnali in un'interfaccia e di convertire un elenco di segnali[1].
  • La possibilità di usare tecniche di verifica software moderne, come ad esempio itest unitari, su progetti hardware.
  • La capacità di convertire testbench MyHDL in testbench basati su linguaggi HDL tradizionali, comeVerilog oVHDL[2].
  • Co-simulazione di modelli MyHDL e modelli basati su altri linguaggi HDL, come Verilog o VHDL[3].
  • Conversione dei modelli MyHDL in modelliHDL tradizionali, tramite generazione automatica di codice Verilog o VHDL[4].

MyHDL è sviluppato da Jan Decaluwe[5].

Esempi di conversione

[modifica |modifica wikitesto]

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;


Riferimenti

[modifica |modifica wikitesto]
  1. ^(EN)Conversion of lists of signals, suThe MyHDL Manual.URL consultato il 30 Novembre 2024.
  2. ^(EN)Conversion of test benches, suThe MyHDL Manual.URL consultato il 30 Novembre 2024.
  3. ^(EN)Co-simulation with Verilog, suThe MyHDL Manual.URL consultato il 30 Novembre 2024.
  4. ^(EN)Conversion to Verilog and VHDL, suThe MyHDL Manual.URL consultato il 30 Novembre 2024.
  5. ^(EN) Jan Decaluwe,MyHDL: a Python-Based Hardware Description Language, sulinuxjournal.com.URL consultato il 30 Novembre 2024.
  6. ^(EN)Conversion Examples, suThe MyHDL Manual.URL consultato il 30 Novembre 2024.

Collegamenti esterni

[modifica |modifica wikitesto]
V · D · M
Logica programmabile
ConcettiASIC ·SoC ·FPGA (CLB) ·CPLD ·EPLD ·PLA ·PAL ·GAL ·PSoC ·Reconfigurable Computing (Xputer) ·Soft microprocessor ·Circuit underutilization ·High-level synthesis ·Acceleratore
Tecniche di programmazioneGate array ·Antifusibile ·EPROM ·E²PROM ·Flash ·SRAM
LinguaggiVerilog (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
CostruttoriAccellera ·Achronix ·AMD (Xilinx) ·Aldec ·Arm ·Cadence ·Infineon ·Intel ·Lattice ·Microchip Technology ·NXP ·Siemens (Mentor Graphics) ·Synopsys ·Texas Instruments
Prodotti
HardwareiCE ·Stratix ·Virtex
SoftwareIntel Quartus Prime ·Xilinx ISE ·Xilinx Vivado ·ModelSim ·VTR
IP
ProprietarioARC ·ARM Cortex-M ·LEON ·LatticeMico8 ·MicroBlaze ·PicoBlaze ·Nios ·Nios II
Open-SourceJOP ·LatticeMico32 ·OpenCores ·OpenRISC ·Power ISA (Libre-SOC,Microwatt) ·RISC-V ·Zet
Estratto da "https://it.wikipedia.org/w/index.php?title=MyHDL&oldid=142426171"
Categorie:

[8]ページ先頭

©2009-2025 Movatter.jp