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

ActiveHDL+ISE (IP core)

Имеется Active-HDL(9.x) с готовым проектом (идет с модулем) и ISE(14.7), мне необходимо создать IP core в ISE (если конкретнее - то стандарт aurora). И добавить его в A-HDL готовый проект, чтобы дальше уже можно было симулировать сигналы совместно с ним.

Ip core создать оказалось не сложно. В ISE - новый проект IP core generator, там выбрал уже готовый, галочками установил все настройки и вуаля. А дальше? Находил здесь тему что создают пустой .vhd файл в A-HDL, потом в опциях синтеза read core - галочка и путь к .ngc файлам IP CORE от ISE.

Вопросы следующие:

0) Так ли я все понял?

1) После таких манипуляций я могу использовать сигналы из IP CORE в проекте?

2) Почему они не добавились никуда в A-HDL? Или где их посмотреть?

Спасибо

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


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

Попутный вопрос: Как можно в такой связке (AHDL+ISE) посмотреть(отловить) значение в определенном регистре.? И вообще это возможно? (что-то типа режима отладки существует? Я слышал что в квартусе можно это сделать через signal Trap вроде... а здесь!?

Спасибо

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


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

Находил здесь тему
Покажите плиз.

Вообще обычно у корки предлагается сгенерировать vhdl-модель для симуляции. В ней и регистры будут видны. Полазьте в настройках коргенератора, посмотрите в папке с коркой на предмет наличия исходников.

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


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

Покажите плиз.

Да, конечно: вот та тема...

http://electronix.ru/forum/lofiversion/index.php/t91259.html

 

Вообще обычно у корки предлагается сгенерировать vhdl-модель для симуляции. В ней и регистры будут видны. Полазьте в настройках коргенератора, посмотрите в папке с коркой на предмет наличия исходников.

Корка делается в ISE, там я выбираю нужный мне блэк-бокс для генерации (это реализация протокола/стандарта aurora 64/67 для работы с оптикой), вылезает окно с условным обозначением с указанием входов и выходов. На этом изображении четко видно например входной сигнал такой-то разрядности, выходной - такой-то. а потом после генерации - создаются файлы vhdl в папке проекта ISE и несколько ngc файлов.

Но вот как мне это сгенерированное перетащить в AHDL я непонимаю! Это и есть исходники?

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


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

Вот смотрите: в ISE заходите в меню tools - core generator. В нём заходите в меню file - open project, указываете путь к файлу *.cgp (обычно coregen.cgp) в общей папке ваших корок. Когда откроете - увидите внизу в окошке весь список сгенерённых Вами корок. Далее заходите в меню Project - Project Options и там видите следующее:

post-13271-1432260498_thumb.png

Делаете нужные настройки симуляционных файлов. Затем заходите в Project - Regenerate all project IP (можно и по одной перегенерить). Но вполне возможно эти настройки уже и так правильно стояли, поэтому симуляционные файлы и так были сгенерены. И искать их нужно в папке с коркой. Открывайте в этой папке все подряд файлы с расширениями *.vhd и смотрите - то, не то.

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


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

Вот смотрите: в ISE заходите в меню tools - core generator. В нём заходите в меню file - open project, указываете путь к файлу *.cgp (обычно coregen.cgp) в общей папке ваших корок. Когда откроете - увидите внизу в окошке весь список сгенерённых Вами корок. Далее заходите в меню Project - Project Options и там видите следующее:

---PICTURE---

Делаете нужные настройки симуляционных файлов. Затем заходите в Project - Regenerate all project IP (можно и по одной перегенерить). Но вполне возможно эти настройки уже и так правильно стояли, поэтому симуляционные файлы и так были сгенерены. И искать их нужно в папке с коркой. Открывайте в этой папке все подряд файлы с расширениями *.vhd и смотрите - то, не то.

Спасибо огромное. За выходные попробую подкинуть их в AHDL и проверить симуляцию... еще раз спасибо.

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


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

В общем вот что получилось: создал корку в ISE ethernet (решил проверить на простом примере просто) - сделал как все описано (можно и не делать, все действительно уже правильно настроено и фалы лежать в папке с проектом). в корне проекта есть .vhd и .vho и еще куча других. vhd - собственно сам наш необходимый файл для проекта, а в vho - можно посмотреть как его подключить(как я понял), из него надо скопировать в проект объявление компонента и его портов/сигналов. Соответсвие портов-сигналов изменяем (сигналы ставим из своего проекта и вуаля - должно работать).

 

Затем я проделал то же самое и создал корку AURORA. Так в проекте там куча .vhd файлов, как я понял - в каждом описан свой блок, являющийся частью реализации протокола. И если я правильно понимаю надо все эти файлы прицеплять в свой проект, и получается здесь не один компонент а много!?? но почему, если при создании корки рисуется один блок с несколькими сигналами (схематично). И здесь я запутался... мне надо выискивать все сигналы в сгенерированных vhd файлах корки, смотреть в каких компонентах они и уже после в своем проекте объявлять все эти компоненты и сопоставлять порты с сигналами!?!?!?!? Или же все намного проще?

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


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

Найдите файл верхнего (top) уровня, тогда вся иерархия соберется автоматически.

Также обратите внимание на exdes - пример установки этого самого top.

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


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

Найдите файл верхнего (top) уровня, тогда вся иерархия соберется автоматически.

 

А как определить этот самый ТОП левел? Например тем есть файл тест-бенча, а так же есть папка example_design - там в файле ***_block.vhd в коментариях написано что этот файл является топом. Так ли это? Какие еще варианты определить топ? Есть папка тест-бенч, разве не тестбенч должен быть топом?

 

Также обратите внимание на exdes - пример установки этого самого top

Непонял что такое exdes (это example_design?) и как там посмотреть пример установки топа? Если не трудно поясните мне пожалуйста...

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

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


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

на примере 8b10b:

aurora_8b10b_v8_3.v - модуль верхнего уровня, который нужно использовать в своем проекте

aurora_8b10b_v8_3_exdes.v - example design, пример использования, включает генерацию и проверку передаваемых данных

aurora_8b10b_v8_3_tb.v - тестбенч для проведения симуляции example design

 

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


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

на примере 8b10b:

aurora_8b10b_v8_3.v - модуль верхнего уровня, который нужно использовать в своем проекте

aurora_8b10b_v8_3_exdes.v - example design, пример использования, включает генерацию и проверку передаваемых данных

aurora_8b10b_v8_3_tb.v - тестбенч для проведения симуляции example design

Спасибо большое. Разобрался.

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


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

И новый вопрос: Как в VHDL вставить/объявить/описать entity другого фала vhdl? я пробую так:

 

***
entity top is
***
end top;
architecture name of name is
***описание сигналов***
component a_example_design
port   (
            RX_HARD_ERR     : out std_logic;
            RX_SOFT_ERR     : out std_logic;
            DATA_ERR_COUNT   : out std_logic_vector(0 to 7);
            RX_LANE_UP        : out std_logic_vector(0 to 2);
            RX_CHANNEL_UP     : out std_logic;
            INIT_CLK          : in  std_logic;
            PMA_INIT          : in  std_logic;
            GTXQ0_P   : in  std_logic;
            GTXQ0_N   : in  std_logic;
            GTXQ2_P  : in  std_logic;
            GTXQ2_N  : in  std_logic;
            RXP               : in std_logic_vector(0 to 2);
            RXN               : in std_logic_vector(0 to 2);
            RESET             : in std_logic);
    end component;    

begin

aurora: a_example_design
  port map (
    RX_HARD_ERR                 =>     RX_HARD_ERR,
    RX_SOFT_ERR                 =>     RX_SOFT_ERR,
    DATA_ERR_COUNT              =>     DATA_ERR_COUNT,
    RX_LANE_UP                  =>     RX_LANE_UP,
    RX_CHANNEL_UP               =>     RX_CHANNEL_UP,
    INIT_CLK                    =>     INIT_CLK,
    PMA_INIT                    =>     PMA_INIT,
    GTXQ0_P               =>        GTXQ0_P,
    GTXQ0_N               =>        GTXQ0_N,
    GTXQ2_P                     =>    GTXQ2_P,
    GTXQ2_N                     =>     GTXQ2_N,
    RXP                         =>    RXP,                          --здесь будет порт входа с трансивера     
    RXN                         =>    RXN,                          --not -||-
    RESET                       =>    RESET);

 

При этом в каталоге проекта лежит файл с entity a_example_design - сгенерированный ISE-ом

 

 

Что я делаю не так. Простите что в одну и ту же тему...все это исходит из того первоначального вопроса, и плодить тем не хочется. А подобную реализацию я смотрю в книжке -Бибило(основы языка VHDL)стр.131-132-133

 

Ах да... а ругается на все подряд при компиляции:

Unknown identifier "RX_HARD_ERR"

и так со всеми портами

Cannot find object declaration

и так ко всем строкам портов

Undefined type of expression

и так тоже ко всему

, хотя в файле a_example_design - есть такой же набор портов, почему он не видит их?

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

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


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

Понял свою ошибку. в бегине, когда пишем порт меп: либо перечисляем порты через запятую, либо сопоставляем сразу с сигналами объявленными в архитектуре. а я совсем не то сделал. Буду копать дальше.

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


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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...