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

    

Иерархическое имя сигнала на VHDL

Всем добрый день.

К логическому анализатору (находится в топе) подключил сигнал находящийся в вложенном компоненте (точнее там два уровня вложения). Проект откомпилировался, но сигнала в анализаторе нет. Кто-нибудь точно знает поддерживается ли в vivado 2016.4 иерархические имена сигналов? Разумеется файлу поставил поддержку vhdl2008. Заранее спасибо за ответы.

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


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

К логическому анализатору (находится в топе) подключил сигнал находящийся в вложенном компоненте (точнее там два уровня вложения). Проект откомпилировался, но сигнала в анализаторе нет. Кто-нибудь точно знает поддерживается ли в vivado 2016.4 иерархические имена сигналов? Разумеется файлу поставил поддержку vhdl2008. Заранее спасибо за ответы.

А Вашего сигнала в принципе может и не быть. Синтезатор может спокойно взять и "оптимизировать" их. Ну или поменяет полярность сигнала :rolleyes:

Самый надежный способ - выводить их на top уровень.

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


Ссылка на сообщение
Поделиться на другие сайты
А Вашего сигнала в принципе может и не быть. Синтезатор может спокойно взять и "оптимизировать" их. Ну или поменяет полярность сигнала :rolleyes:

Самый надежный способ - выводить их на top уровень.

Ну, во-первых, сигнал есть - это точно. Выводить их все на топ уровень, конечно, можно но это довольно гемморойно: обявить его в компоненте, объявить в топ-модуле, ну и в port map. И вообще мне одному кажется что vhdl какой-то нахлобученный и избыточный или не только мне?. Вот, например, зачем объявлять компонент в топ модуле?

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


Ссылка на сообщение
Поделиться на другие сайты
Ну, во-первых, сигнал есть - это точно. Выводить их все на топ уровень, конечно, можно но это довольно гемморойно: обявить его в компоненте, объявить в топ-модуле, ну и в port map. И вообще мне одному кажется что vhdl какой-то нахлобученный и избыточный или не только мне?. Вот, например, зачем объявлять компонент в топ модуле?

Нет, тут много таких. Некоторые сразу и довольно настойчиво начинают агитировать за Verilog.

VHDL-2008 позволяет не объявлять. Можно делать так:

     ....
     U_1 : entity library_name.entity_name(structure_name)
     ....

Ну и еще некоторые упрощения, свойственные Verilog'у. Полный список можно легко найти в гугле.

А так, VHDL несколько более избыточен, но это плата в том числе за то, что основные ошибки обнаруживаются еще на этапе компиляции. В общем полезнее знать оба, а чем уже пользоваться на постоянной основе - решать вам или подстраиваться под требования компании.

Изменено пользователем Tausinov

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


Ссылка на сообщение
Поделиться на другие сайты
Ну, во-первых, сигнал есть - это точно. Выводить их все на топ уровень, конечно, можно но это довольно гемморойно: обявить его в компоненте, объявить в топ-модуле, ну и в port map. И вообще мне одному кажется что vhdl какой-то нахлобученный и избыточный или не только мне?. Вот, например, зачем объявлять компонент в топ модуле?

А в VHDL компонент давно уже объявлять не надо. Можно написать так:

 

    module_name_comp : entity work.module_name
    port map
    (
        clk        => 
        ena        => 
        sclr       => 
        data_out   => 
    );

Более подробно посмотрите тут: http://www.fpga-dev.com/leaner-vhdl-with-e...-instantiation/

 

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


Ссылка на сообщение
Поделиться на другие сайты
VHDL-2008 позволяет не объявлять.
Это позволяет ещё VHDL'93.

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


Ссылка на сообщение
Поделиться на другие сайты
Нет, тут много таких. Некоторые сразу и довольно настойчиво начинают агитировать за Verilog.

VHDL-2008 позволяет не объявлять. Можно делать так:

     ....
     U_1 : entity library_name.entity_name(structure_name)
     ....

Ну и еще некоторые упрощения, свойственные Verilog'у. Полный список можно легко найти в гугле.

А так, VHDL несколько более избыточен, но это плата в том числе за то, что основные ошибки обнаруживаются еще на этапе компиляции. В общем полезнее знать оба, а чем уже пользоваться на постоянной основе - решать вам или подстраиваться под требования компании.

 

Вот за это реальное спасибо. А то как-то утомляет лишняя писанина.

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


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

Оффтоп: А чем Вас не устроил способ настройки ILA через визард setup debug? Обычно я в отдельной секции кода дублирую исследуемые цепи(для уникальности к имени добавляю какой-нибудь выделяющийся префикс) и помечаю новые цепи директивой mark debug. Таким образом убиваю сразу двух зайцев:

1) Имеем доступ к выходам исследуемых регистров(как известно, если пометить регистр директивой mark debug это нам ничего не даст)

2) После отладки удаляем debug-секцию и получаем чистый код

 

В качестве недостатка способа могу отметить необходимость написания двух строк кода на одну исследуемую цепь(если речь идет о verilog).

Изменено пользователем Lixlex

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


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

Я обычно помечаю сигнал mark_debug непосредственно в коде через:

attribute mark_debug : string;

attribute mark_debug of *имя_сигнала*: signal is "true";

При запуске Set Up Debug в Vivado все помеченные таким образом сигналы автоматически добавляются в список.

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


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

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

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

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

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

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

Войти

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

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