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

В чем отладить SV модуль

Всем привет,

 

у меня часто возникает необходимость переписать вычислительный модуль из массивно-параллельного C на Systemverilog для дальнейшего использования этого алгоритма в железе. Примерно 6-7 таких алгоритмов я уже спортировал. Обычно в алгоритме на входе имеется много, сотни-тысячи бит на регистрах, которые необходимо массивно-параллельно и с длинным конвейером перемалывать и получать на выходе что-то примерно того же размера. Писать такое на софтпроцессоре - нет возможности - скорости не хватает. Основной смысл использования плисок для такого рода алгоритмов - игра с точностью, то есть с мантиссой, и из-за этого возможность втиснуть в средний стратикс что-то, что требует пару-тройку топовых графических карт.

 

В общем мои алгоритмы по структуре очень напоминают ФФТ для фиксированного вектора - на каждый posedge основного клока валится во входных регистрах новый комплект вектора для Фурье преобразования, все внутренние конвейеры забиты предыдущими векторами, а на выходе выплевывается результат преобразования вектора, который был подан на вход примерно так 10-100 тактов (в зависимости от алгоритма) назад.

 

Основная моя проблема - как это отлаживать.

 

У меня на обычном процессоре есть куча примеров что можно подать на вход, и что нужно получить на выходе, но на плиску входной поток так подать у меня нет возможности (то есть нет железа и необходимых переходников).

 

Скажите, пожалуйста, есть ли какие-то тулсы, которые можно было бы для отладки таких модулей (интересует пока только Альтера) использовать и как они называются?

 

Спасибо

 

ИИВ

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


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

эти тулзы называются верилог симуляторы или hdl симуляторы

 

наиболее популярный тут тул - questasim (mentor) , также есть ncsim (cadence) vcs (synopsis)

есть еще у aldec-а и всячиские "внутренние" симуляторы, но с SV могут быть проблемы, нужно использовать чистый V, но я этими симуляторами не пользуюсь - мало знаю

 

если хотите показывать буржуям и не отгрести проблем с лицензией есть Icarus и Verilator, я давно с Icarus-ом слегка потрахался, но как-то не смог заставить работать, хотя студенческие работы часто ссылаются на них

 

ну а вообще - вот

http://en.wikipedia.org/wiki/List_of_Verilog_simulators

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


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

но с SV могут быть проблемы, нужно использовать чистый V

о каких проблемах, заставляющих использовать V, идёт речь?

кстати, официальная позиция комитета состоит в том, что V уже не существует.

 

возможность втиснуть в средний стратикс что-то, что требует пару-тройку топовых графических карт.

альтера вроде заявляла о поддержке openCL, не пробовали этим воспользоваться?

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


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

о каких проблемах, заставляющих использовать V, идёт речь?

кстати, официальная позиция комитета состоит в том, что V уже не существует.

проблема поддержки SV в "левых" симуляторах

альтеровский симулятор вроде как поддерживает, но то ли с ограничениями, то ли с глюками

у ксайлинса даже синтез не поддерживает SV, вряд ли isim его поддерживает

но еще раз напишу - сам я такие симуляторы не использую и автору темы не могу советовать, но если он свой SV модуль захочет продать импортным клиентам (в какой-то другой теме вроде было об этом), то могут спросить где лицензия, поэтому я упоминаю про свободные симуляторы, а там даже V-95 поддерживается не полностью

 

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


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

у ксайлинса даже синтез не поддерживает SV, вряд ли isim его поддерживает

))) не, они наконец-то сподобились, правда за денежку(синтез Вивадо). не прошло и 10 лет )))

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


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

))) не, они наконец-то сподобились, правда за денежку(синтез Вивадо). не прошло и 10 лет )))

там ограничение по семействам, "народный" spartan 6 не поддерживается в vivado

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


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

Спасибо большое за советы!

 

Начал с верилатором разбираться, если с ним не получится, пойду дальше по списку.

 

Про OpenCL - как раз-то его и CUDA в чистом виде сам могу на графических картах пользовать, но есть алгоритмы, где он не на столько гибок, что можно легко играться с мантиссой. У меня в алгоритмах часто большая часть данных представлена в виде 10-15 битных целых, и основными операциями являются сдвиги и сложения. Из-за этого такой алгоритм на плиске становится быстрее, при том, что на CUDA/OpenCL мне реально проще и сподручнее программировать.

 

Альтерровский OpenCL еще не пробовал, руки пока не доходят.

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


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

Альтерровский OpenCL еще не пробовал, руки пока не доходят.

попробуйте и нам расскажите, т.к. OpenCL должен скорее всего транслироваться в промежуточное представление на одном из HDL, где вопросы битового представления можно править пользователю. если они заявляли о поддержке, значит должны и средства отладки представлять, иначе это не смешно.

ЗЫ: думаю, что всё-таки не стоит пользоваться самоляпными средами моделирования. подозреваю, что уровень поддержки языка достаточно низкий.

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


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

ЗЫ: думаю, что всё-таки не стоит пользоваться самоляпными средами моделирования. подозреваю, что уровень поддержки языка достаточно низкий.

 

я бы тоже не хотел бы быть ответственным за экстремистские советы - на фтп лежат симуляторы и лекарства - questasim самый простой, чтобы "стартовать".

неудобства свободных симуляторов все-таки требуют серьезной мотивации для их использования...

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


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

в Верилоге есть open() sscanf() sprintf(). ИМХО более чем достаточно для прогона ТОННЫ данных через алгоритм при использовании Modelsim или подобной среды.

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


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

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

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

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

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

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

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

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

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

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