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

1. Решил свою же проблему. Причина - неправильно настроенная лицензия и отсутствие некоторых файлов в директории /BIN.

Кроме того, исчезли все тормоза, которые возникали во время работы с вейвформами.

 

Можно подробнее что именно отсутствовало в bin и какие косяки с лицензией. Может в моём случае тоже самое. Спасибо!

 

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


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

Можно подробнее что именно отсутствовало в bin и какие косяки с лицензией. Может в моём случае тоже самое. Спасибо!

 

Лицензия стояла от 9.1, которая не проходила.

 

Заменил/добавил следующие DLL:

 

project.dll

rmcl.dll

rmcldiag.dll

scripter.dll

VSIMSA.dll

 

В частности, для waveform viewer заменил:

 

tbpviewer.exe

tcviewer.exe

 

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


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

У меня возникла проблема с тормозами Active-HDL на стадии Intitialize simulation. Вот если что логи консоли:

asim -advdataflow  -O5 +access +w_nets +p+/tb_delay axi_stream_fft_core behav_arch
# Warning: Verilog Optimization cannot be used when -advdataflow is in effect. Verilog Optimization disabled.
# ELBREAD: Elaboration process.
# ELBREAD: Elaboration time 0.1 [s].
# asim: Stack memory: 32MB
# asim: Retval memory: 32MB
# KERNEL: Main thread initiated.
# KERNEL: Kernel process initialization phase.
# KERNEL: Time resolution set to 1ps.
# ELAB2: Elaboration final pass...
# ELAB2: Create instances ...
# ELAB2: Create instances complete.
# ELAB2: Elaboration final pass complete - time: 0.3 [s].
# KERNEL: Kernel process initialization done.
# Allocation: Simulator allocated 13855 kB (elbread=5213 elab2=8197 kernel=444 sdf=0)
#  10:29, 6 íîÿáðÿ 2014 ã.
#  Simulation has been initialized
#  Selected Top-Level: axi_stream_fft_core (behav_arch)

Очень долго висит на стадии # ELAB2: Create instances .., порядка 10 минут. Проект в целом не сложный, вычислитель ЦОС в виде бабочки БПФ, но на входах и выходах вычислителя ЦОС имеются 4 коргеновские фифошки по размерам примерно 2..4 рамблока (т.е. глубина примерно 1000 - в зависимости от ширины шины).

Симулировал сам вычислитель отдельно - тормозов не было, а когда добавил фифошки - появились.

Кто знает, что-то можно подкрутить, чтобы уменьшить время инициализации? Я уж не говорю про время симуляции, на первых порах мне достаточно первых микросекунд. Но как что-то изменишь - ждать приходится по 10 минут инициализацию... работа пробуксовывает...

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


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

# asim: Stack memory: 32MB

# asim: Retval memory: 32MB

....

Симулировал сам вычислитель отдельно - тормозов не было, а когда добавил фифошки - появились.

1. увеличить доступную память раз в 16-32.

2. не использовать вхдл либы корегеновских компонентов, заменить на верилог модели.

 

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


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

Спасибо. Первое действие в отдельности не помогло. А как сделать второе действие? Я пишу на VHDL.

В обёртке фифошной корки есть такое упоминание:

LIBRARY XilinxCoreLib;

На компе есть такая папка c:\Program Files (x86)\Active-HDL 9.3\vlib\xilinx_ise\vhdl\xilinxcorelib\

Папки Verilog там нет. Если найти (скачать, сгенерить) под Verilog, положить в это место, а папку vhdl\xilinxcorelib\ убить, так скушает? Или там какие-то есть особые действия?

Допустим, у меня есть верилоговские либы. Как Альдеку указать, что, хоть я и использую язык VHDL, но либы он должен брать верилоговские?

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


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

Папки Verilog там нет. Если найти (скачать, сгенерить) под Verilog, положить в это место, а папку vhdl\xilinxcorelib\ убить, так скушает? Или там какие-то есть особые действия?

Допустим, у меня есть верилоговские либы. Как Альдеку указать, что, хоть я и использую язык VHDL, но либы он должен брать верилоговские?

 

Можно попробовать так:

 

1) COREGenerator -> Project -> Options -> Generation ->

Design Entity: Verilog

Preferred Simulation Model: Structural

 

2) Поставить Verilog libraries для Aldec любым удобным для вас способом (сгенерить, скачать, установить...)

 

3) Если верилог не подцепит во время моделирования, то в Aldec сделать следующие шаги:

Design -> Settings -> Simulation -> Verilog ->

 

Добавить в "Verilog lib... (-PL):" то, что касается verilog (с суффиксом _ver).

 

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


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

Спасибо за подсказки. Верилоговские коры с behavioral моделью не ускорили инициализацию симуляции (как и саму симуляцию). А симуляция корок с structural моделью у меня не запускается, вот отдельную тему создал:

проблема с модулем glbl.v и коргеновским фифо от Xilinx в Active-HDL, ошибка, что не находит модуль glbl, на который ссылается примитив

 

Итак, попробовал верилоговские корки с structural моделью, ничего не ускорилось.

 

Так что проблема остаётся иметь место...

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


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

Итак, попробовал верилоговские корки с structural моделью, ничего не ускорилось.

 

Так что проблема остаётся иметь место...

Пробовали отключать -advdataflow ? вдруг поможет:).

Кстати, его надо обязательно отключить, если не пользуетесь, так как иначе блокируется SLP, ускоряющий симуляцию Верилога примерно в 5 раз.

 

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


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

Итак, попробовал верилоговские корки с structural моделью, ничего не ускорилось.

вы пробовали verilog корки или verilog либы ? корка это просто обертка вокруг компонента типа FIFO_GENERATOR_V9_3. А либа, это verilog версия либы XilinxCoreLib. простая обертка не даст никакого результата.

 

Как вариант можно выдернуть верилог сорцы именно FIFO_GENERATOR_Vxxxx и без всяких либ в лоб их скомпилировать в рабочий проект.

 

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


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

вы пробовали verilog корки или verilog либы ? корка это просто обертка вокруг компонента типа FIFO_GENERATOR_V9_3. А либа, это verilog версия либы XilinxCoreLib. простая обертка не даст никакого результата.
Я перегенерил корки с настройками проекта, как указал ув. sallador. Т.е. получается, что у меня верилоговские только корки. Но, как я могу предположить, вполне логично компилятору догадаться при компиляции верилоговских корок подхватить верилоговские либы. Хотя...

 

Как вариант можно выдернуть верилог сорцы именно FIFO_GENERATOR_Vxxxx и без всяких либ в лоб их скомпилировать в рабочий проект.
Дело в том, что фифо_генератор инстантируется в корках при указании behavioral модели. А когда модель structural, там остаются чистые плисочные примитивы типа LUT2, FD и т.п.

Но я попробую опять взять корки с behavioral моделью и скомпилить верилоговский фифо-генератор.

 

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


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

пробуйте. весь смысл в том, что как бы оно не было, а моделирование памяти это массив сигналов. сигнал в VHDL занимает больше памяти в принципе (9 состояний вместо 2-х или 4-х) + тянет за собой кучу атрибутов (типа last, stable и т.д.). Это все описано в стандарте. Сейчас многие VHDL щики вспомнят variable, но ЕМНИП либы хилых не менялись со времен царя гороха и там все по колхозному.

 

В целях оптимизации памяти я доходил до правки референсных моделей. Например первое что делаю когда качаю модель xxxDRAM для работы, нахожу их массив памяти, выкидываю reg ram [0...size-1] и меняю его на bit ram[int];

 

ЗЫ. Будете делать свою память на VHDL, используйте variable вместо signal.

ЗЗЫ. В моделсиме подобная оптимизация увеличивает скорость моделирования в несколько раз.

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


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

Пробовали отключать -advdataflow ? вдруг поможет:).

Кстати, его надо обязательно отключить, если не пользуетесь, так как иначе блокируется SLP, ускоряющий симуляцию Верилога примерно в 5 раз.

Отключил на всякий случай. Но SLP мне не светит, т.к. я забыл в начале сказать, что использую Standart Waveform Viewer, а для него нельзя использовать ключ Verilog Optimization.

Ну а при таких настройках у меня всё равно ничего не ускорилось...

 

 

Спасибо за разъяснения и подсказки. Поскольку я в VHDL новичок, мне это всё пригодится. А где-то здесь уже обсуждалось, когда лучше применять Variable вместо signal? Заодно: пробовал добавлять "...верилог сорцы именно FIFO_GENERATOR_Vxxxx и без всяких либ...", время не изменилось...

 

-----------

И хочу поделиться результатами своих мучений.

1. Язык корки и библиотеки, а также тип корки (Structural, Behavioral) не влияет на время выполнения Initialize Simulation, это всё порядка 10 минут.

2. Это же не влияет и на скорость симуляции, специально всё замерял по секундам.

3. Проблема с большим временем выполнения Initialize Simulation имеет место лишь для Standart Waveform Viewer, в Accelerated Waveform Viewer всё быстро.

4. Случайно обнаружено, что на время выполнения Initialize Simulation влияет порядок действий. Изначально время выполнения Initialize Simulation порядка 10 минут было для случая, когда файл вэвформ уже открыт. Если файл не открыт, то это время буквально секунда. Но затем вы должны открыть этот файл, и тут открытие начинает занимать большое время, тогда как без Initialize Simulation файл открывается быстро. Но это большое время в разы меньше, чем когда Initialize Simulation делается при уже открытом файле вэйвформ. Так, для примера, для моего проекта это время 3,5 минуты для файла с большой длительностью симуляции.

5. Опытным путём установлено, что на время выполнения Initialize Simulation без открытия файла вэйвформ влияет его размер. Так что если большие длительности симуляции не нужны, можно на этом сыграть. Я урезал свой файл с 10мс до 1мс (правда там не все вэйвформы были заполнены до конца), объём уменьшился раза в 3, время выполнения Initialize Simulation сократилось до 1,5 минут.

 

Так что я наверное уже заканчиваю искать выход, т.к. решение по пп. 4 и 5 для меня дают удовлетворительное время ожидания.

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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