Jump to content

    
Sign in to follow this  
NikSave

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

Recommended Posts

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

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

Share this post


Link to post
Share on other sites
Всем добрый день.

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

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

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

Share this post


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

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

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

Share this post


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

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

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

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

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

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

Edited by Tausinov

Share this post


Link to post
Share on other sites
Ну, во-первых, сигнал есть - это точно. Выводить их все на топ уровень, конечно, можно но это довольно гемморойно: обявить его в компоненте, объявить в топ-модуле, ну и в 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/

 

Share this post


Link to post
Share on other sites
Нет, тут много таких. Некоторые сразу и довольно настойчиво начинают агитировать за Verilog.

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

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

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

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

 

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

Share this post


Link to post
Share on other sites

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

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

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

 

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

Edited by Lixlex

Share this post


Link to post
Share on other sites

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

attribute mark_debug : string;

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this