Jump to content

MyHDL

MyHDL [1] — это Python (HDL) на основе язык описания оборудования .

Особенности MyHDL включают в себя:

  • Возможность генерировать код VHDL и Verilog на основе проекта MyHDL. [2]
  • Возможность генерации тестового стенда (Конвертация тестовых стендов [3] ) с тестовыми векторами в VHDL или Verilog на основе сложных вычислений на Python.
  • Возможность конвертировать список сигналов. [4]
  • Возможность конвертировать выходную проверку. [5]
  • Возможность совместного моделирования с Verilog. [6]
  • Продвинутая система типов данных, независимая от традиционных типов данных. Инструмент-переводчик MyHDL автоматически записывает функции преобразования, когда их требует целевой язык.

MyHDL разработан Яном Декалуве. [7]

Примеры конвертации [ править ]

Здесь вы можете увидеть несколько примеров преобразования проектов MyHDL в VHDL и/или Verilog. [8]

Небольшой комбинаторный проект

Пример представляет собой небольшой комбинаторный проект, а точнее преобразователь двоичного кода в код Грея:

def bin2gray(B, G, width: int):
    """Gray encoder.

    B -- input intbv signal, binary encoded
    G -- output intbv signal, gray encoded
    width -- bit width
    """

    @always_comb
    def logic():
        Bext = intbv(0)[width + 1 :]
        Bext[:] = B
        for i in range(width):
            G.next[i] = Bext[i + 1] ^ Bext[i]

    return logic

Вы можете создать экземпляр и преобразовать его в Verilog и VHDL следующим образом:

width = 8

B = Signal(intbv(0)[width:])
G = Signal(intbv(0)[width:])

bin2gray_inst = toVerilog(bin2gray, B, G, width)
bin2gray_inst = toVHDL(bin2gray, B, G, width)

Сгенерированный код Verilog выглядит следующим образом:

module bin2gray (
    B,
    G
);

input [7:0] B;
output [7:0] G;
reg [7:0] G;

always @(B) begin: BIN2GRAY_LOGIC
    integer i;
    reg [9-1:0] Bext;
    Bext = 9'h0;
    Bext = B;
    for (i=0; i<8; i=i+1) begin
        G[i] <= (Bext[(i + 1)] ^ Bext[i]);
    end
end

endmodule

Сгенерированный код VHDL выглядит следующим образом:

library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.numeric_std.all;
use std.textio.all;

use work.pck_myhdl_06.all;

entity bin2gray is
    port (
        B: in unsigned(7 downto 0);
        G: out unsigned(7 downto 0)
    );
end entity bin2gray;

architecture MyHDL of bin2gray is

begin

BIN2GRAY_LOGIC: process (B) is
    variable Bext: unsigned(8 downto 0);
begin
    Bext := to_unsigned(0, 9);
    Bext := resize(B, 9);
    for i in 0 to 8-1 loop
        G(i) <= (Bext((i + 1)) xor Bext(i));
    end loop;
end process BIN2GRAY_LOGIC;

end architecture MyHDL;

См. также [ править ]

Ссылки [ править ]

  1. ^ "Дом" . myhdl.org .
  2. ^ «Преобразование в Verilog и VHDL — документация MyHDL 0.11» .
  3. ^ «Что нового в MyHDL 0.6 — документация MyHDL 0.11» .
  4. ^ «Что нового в MyHDL 0.6 — документация MyHDL 0.11» .
  5. ^ «Что нового в MyHDL 0.6 — документация MyHDL 0.11» .
  6. ^ «Совместное моделирование с Verilog — документация MyHDL 0.11» .
  7. ^ «MyHDL: язык описания оборудования на основе Python | Журнал Linux» .
  8. ^ «Примеры конвертации — документация MyHDL 0.11» .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: a63263b7467949af12949234bb961c86__1659916380
URL1:https://arc.ask3.ru/arc/aa/a6/86/a63263b7467949af12949234bb961c86.html
Заголовок, (Title) документа по адресу, URL1:
MyHDL - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)