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

Quartus и System verilog не дружат?

Добрый день. Пытаюсь скомпилировать в Q91 код ув. Des (БЧХ декодер). Как оказалось, SV и verilog отличаются сильно, с SV раньше не работал, разбираюсь.

 

Во первых, Q91 похоже не поддерживает typedef ? Ругался на него,

 

было:

typedef bit [m-1 : 0] mult_t [0 : m-1];

mult_t MULT_BY_A;

 

указал явно тип:

bit [m-1 : 0] MULT_BY_A [0 : m-1];

 

с этим ок, сейчас затык с always_comb. Посмотрел доку на квартус - написано поддерживает, в реальности на код

  rom_t   ALPHA_TO;
  rom_t   INDEX_OF;
  bit [m-1 : 0]  MULT_BY_A [0 : m-1];

  always_comb begin
  
    ALPHA_TO  = generate_gf(m, n, p, 0);
    INDEX_OF  = generate_gf(m, n, p, 1);
    MULT_BY_A = generate_mult_by_a(pALPHA_IDX);
  end

  function mult_t generate_mult_by_a (input int index_of_a = 1);
    bit [m-1 : 0] mult [0 : n];
    bit [m-1 : 0] coe;
  begin
    // initialize poly & multiplicate it by alpha^index_of_a
    for (int i = 0; i < index_of_a; i++) begin

…
…

 

Q91 реагирует так:

 

Info: *******************************************************************
Info: Running Quartus II Analysis & Synthesis
    Info: Version 9.1 Build 350 03/24/2010 Service Pack 2 SJ Full Version
    Info: Processing started: Tue May 10 18:32:58 2011
Info: Command: quartus_map --read_settings_files=on --write_settings_files=off qtest_bch -c qtest_bch
Info: Parallel compilation is enabled and will use 2 of the 2 processors detected
Info: Found 1 design units, including 1 entities, in source file qtest_bch_sv.sv
    Info: Found entity 1: qtest_bch_sv
Info: Elaborating entity "qtest_bch_sv" for the top level hierarchy
Error (10170): Verilog HDL syntax error at bch_mult_by.vh(14) near text "begin";  expecting ".", or "("
Error (10149): Verilog HDL Declaration error at bch_mult_by.vh(16): identifier "n" is already declared in the present scope
Error (10170): Verilog HDL syntax error at bch_mult_by.vh(16) near text "0";  expecting an identifier
Error (10149): Verilog HDL Declaration error at bch_mult_by.vh(17): identifier "n" is already declared in the present scope
Error (10149): Verilog HDL Declaration error at bch_mult_by.vh(17): identifier "p" is already declared in the present scope
Error (10170): Verilog HDL syntax error at bch_mult_by.vh(17) near text "1";  expecting an identifier
Error (10170): Verilog HDL syntax error at bch_mult_by.vh(26) near text "i";  expecting "="
Error (10170): Verilog HDL syntax error at bch_mult_by.vh(26) near text "<";  expecting "<=", or "="
Error (10170): Verilog HDL syntax error at bch_mult_by.vh(26) near text "+";  expecting "<=", or "="

Где беда - не понимаю, подскажите.

 

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


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

Во первых, Q91 похоже не поддерживает typedef ? Ругался на него,

не может такого быть, потому что этот код используется в 3-х проектах собираемых в 9.1 ;)

 

включите поддержку SV, 99.99% что вы забыли это сделать

 

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


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

Ради спортивного интереса собрал декодер на Q9.0. Все завелось, только потребовалась небольшая доработка напильником: объявление logic fifo[$] в bch_dec.v я закомментировал. Еще пофиксил ругань на неименованность блока generate в bch_chieny_search.v

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


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

Ради спортивного интереса собрал декодер на Q9.0. Все завелось, только потребовалась небольшая доработка напильником: объявление logic fifo[$] в bch_dec.v я закомментировал. Еще пофиксил ругань на неименованность блока generate в bch_chieny_search.v

угу, это осталось от дебага, не заметил.

 

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

 

Зы. копирайты только забыл поставить ;)

bch_release_10052011.zip

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


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

не может такого быть, потому что этот код используется в 3-х проектах собираемых в 9.1 ;)

 

включите поддержку SV, 99.99% что вы забыли это сделать

 

Спасибо, нашел опцию, вроде получается (пока пробую на другом квартусе, 81)... :)

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


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

Вот такое, похоже, в Квартусе не работает ?

 

`define tabfile `"ddstab_13_9_7_6_4.vh`"

...

...

`include `tabfile

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


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

Все дружит - проверено.

Несколько вариантов решения проблемы (по вероятности) -

1. отключена поддержка SystemVerilog (у меня такое было - ругань выводилась похожая)

2. глюки Кварта под линуксом - лечится перезапуском.

3. удаление каких-то файлов отвечающих за SystemVerilog.

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


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

Не стал создавать новую тему, вопрос в сущности в том же самом. Пытаюсь ввести в свою профессиональную жизнь такой интересный язык как SystemVerilog, со всеми его плюшками. Установлен Quartus II 9.1 без SP-ов. В настройках проекта во вкладке Verilog HDL Input стоит выбор на SystemVerilog-2005. Расширение файла проекта *.sv (пробывал и *.v). В проекте пробывал использовать различные конструкции SystemVerilog-а, структуры типа:

struct  {
   int a;
   byte b;
   bit [7:0] c;
} my_data_struct; 
my_data_struct.a = 123;

интерфейсы... и т.д.

Короче на все это Quartus ругается таким же образом, типа

Error (10170): Verilog HDL syntax error at my_sv.sv(14) near text "=";  expecting ".", or "("
Error (10170): Verilog HDL syntax error at my_sv.sv(23) near text "interface";  expecting "endmodule"

Складывается впечатление, что не удается подключить SystemVerilog-овский компилятор. Не подскажет кто нибудь, может еще какие-то настройки нужно изменить или проверить наличие каких-нибудь библиотечных файлов, может быть SP нужно установить...

Заранее спасибо...

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


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

[Тихо сам с собой виду беседу]

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

По ходу ознакомления с кодом des00 возникло очередное недопонимание. В файле bch_enc_dec_tb.v описывается класс

 class data_trans;

А Quartus 9.1 говорит что он класы не поддерживает

d34ac9a125209c8edb360ba377ff369c.jpg

Значит они обманывают, и классы все таки поддерживаются?

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


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

По ходу ознакомления с кодом des00 возникло очередное недопонимание. В файле bch_enc_dec_tb.v описывается класс

[...]

Значит они обманывают, и классы все таки поддерживаются?

Вы тестбенч с синтезом не путайте.

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


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

Вы тестбенч с синтезом не путайте.

хм... да действительно. А не посоветует кто-нибудь какого нибудь ресурса, где можно по-подробнее почитать от начала до конца от процесса создания RTL-модели до его верификации, на каком-нибудь примере желательно. В идеале на русском, но сойдет и на английском.

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

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


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

хм... да действительно. А не посоветует кто-нибудь какого нибудь ресурса, где можно по-подробнее почитать от начала до конца от процесса создания RTL-модели до его верификации, на каком-нибудь примере желательно. В идеале на русском, но сойдет и на английском.

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

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


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

Уважаемый des00, а не могли бы вы у себя в блоге, как будет время немножко свободного, набросать небольшую статейку о полном цикле разработки модели. Т.е. от разработки RTL-модели, написания тестбенча, проведения моделирования и верификации на примере всем известного БЧХ-декодера. Не обязательно подробно, хватило бы даже коротко остановиться на основных вехах. С помощью каких утилит и инструментов выполнялось то или иное действие, основные подводные камни, поджидающие разработчика на том или ином этапе. Для новичков такое описание очень бы помогло.

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


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

Уважаемый des00, а не могли бы вы у себя в блоге, как будет время немножко свободного, набросать небольшую статейку о полном цикле разработки модели. Т.е. от разработки RTL-модели, написания тестбенча, проведения моделирования и верификации на примере всем известного БЧХ-декодера. Не обязательно подробно, хватило бы даже коротко остановиться на основных вехах. С помощью каких утилит и инструментов выполнялось то или иное действие, основные подводные камни, поджидающие разработчика на том или ином этапе. Для новичков такое описание очень бы помогло.

Спасибо за такое вниманием к проекту %) Изначально он зарождался именно как просто проект для статьи в блоге, посвященной возможностями SV для быстрой и качественной разработки проектов. Но потом вырос в отдельный проект, был интегрирован в коммерческие проекты, а изначальная цель забыта из-за недостатка времени %(. Не уверен что в ближайшей перспективе, у меня будет время собраться с мыслями и оформить статью, поэтому ничего не буду обещать.

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


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

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

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

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

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

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

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

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

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

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