Перейти к содержанию

    

MIX Verilog & VHDL

:1111493779:

Мужики, я в ступоре...

Слышал страсти о возможности одновременного использования двух основных языков.

Оказалось не так просто найти правила использования для такого варианта. Одни жалобы...

 

Буду рад (думаю не только я) ссылкам вразумительного описания важных правил увязки разноязыкового текста проекта.

 

Спасибо!

 

Если найду достойное - сам выложу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А что за правила... Если пишите код на верилоге, то vhdl-ные конструкции там не проскочут. Другой вопрос, что подключаемые модули могут быть и на vhdl и на verilog... Или я чего то не знаю...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Эт понятно... Не охота переписывать разные кубики...

....wrapping-культура

.... Другой вопрос, что подключаемые модули могут быть и на vhdl и на verilog...

Так это уже решение..

 

##############

 

http://www.edautils.com/RTLUtils.html[/url]

Translators and converters

 

Ломовое решение без правил, но с новыми подводными камнями

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Мужики, я в ступоре...

Слышал страсти о возможности одновременного использования двух основных языков.

Оказалось не так просто найти правила использования для такого варианта.

Как делаю у себя (пишу VHDL)

открываю в квартусе верилоговский файл, затем конвертирую его в компонент vhdl (FILE->create/update->create vhdl component)и вставляю его в проект.

Когда потребовалась обратное включение вставил в верилоговский свой верхний модуль, обозвал его по имени (пример myname)

myname D1(

.clk(clock),

.rst(reset)

 

и далее по тексту

)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как уже написали, совметсное использование нескольких языков сводистя к возможости подключения модулей, написанных на любом языке. В 95% случаев все достаточно прямолинейно: вставляется модуль с идентичными именами портов. При этом если модуль написан на VHDL и вставляется в Verilog, то в портах лучше ограничиться использованием стандартных типов. Оствшиеся 5% сильно зависят от конкретного используемого софта. Некоторые правила могут быть описаны в мануале. Вот несколько примеров таких особенностей без конкретики:

1) Чувствительность к регистру в портах;

2) Возможность вставки в VHDL без объявления компонента;

3) Связка generic VHDL и parameter Verilog.

По последнему пункту несколько подробнее, т.к. это самое странное, с чем сталкивался. NC Verilog, по всей видимости, при вставке в VHDL модуля, написанного на Verilog, связывает generic и parameter только позиционно. То есть важен порядок объявления парвметров в Verilog и порядок строк в generic map VHDL. Значение из первой строки generic map всегда присвоится первому параметру, из второй - второму и т.д. На имена в generic map софт не обращает внимания.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

https://www.alteraforum.com/forum/showthread.php?t=5860 взято.....

You can instance from VHDL a Verilog module and viceversa, each one in different files. This example shows how do it:

This is a VHDL entity called "White"

 

ENTITY white IS

PORT(

----------------------Inputs-------------------------------

clk : IN STD_LOGIC;

i_fval : IN STD_LOGIC;

i_media : IN STD_LOGIC_VECTOR(9 DOWNTO 0);

-------------------------------------------------------------

----------------------Outputs--------------------------------

o_enable : OUT STD_LOGIC;

o_exposure : OUT STD_LOGIC_VECTOR(9 DOWNTO 0)

-------------------------------------------------------------

);

END white;

 

 

This is a Verilog code that instances a white module called white0

 

white white0(

.clk(CCD_PIXCLK),

.i_fval(MEDIA_sfval[9:0]),

.i_media(MEDIA_sa[9:0]),

.o_enable(senable),

.o_exposure(sbalance)

);

 

Quartus II Web Edition does support mixed languages.

ModelSim-Altera Edition does NOT support mixed languages.

Есть шанс, только надо поколдовать.....

https://www.fpgarelated.com/showthread/comp...pga/12748-1.php

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в VHDL порты должны быть std_logic, std_ulogic и *_vector

если вставлять верилог в VHDL, то нужно описать компонент

 

вроде бы никаких проблем, все тулзы со времен царя Гороха поддерживают mixed design

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В квартусятине не пробовал, но в Xilinx ISE давно юзаю Verilog+VHDL. Проблем не помню.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В квартусятине не пробовал, но в Xilinx ISE давно юзаю Verilog+VHDL. Проблем не помню.

 

А в симуляции ModelSim?...

Quartus II Web Edition does support mixed languages. ModelSim-Altera Edition does NOT support mixed languages.

Есть шанс, только надо поколдовать.....

https://www.fpgarelated.com/showthread/comp...pga/12748-1.php

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ограничения касаются только Starter Edition. Но последние версии Modelsim Altera Starter Edition поддерживают режим Mxed-Language

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Как делаю у себя (пишу VHDL)

открываю в квартусе верилоговский файл, затем конвертирую его в компонент vhdl (FILE->create/update->create vhdl component)и вставляю его в проект.

 

Впечатления хорошие... И МоделСим видит! Спасибо!

mix_hdl000.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация