реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Глупый/чайниковский вопрос по SV
justontime
сообщение Dec 18 2017, 22:20
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 246
Регистрация: 6-12-14
Из: СПб
Пользователь №: 84 003



Пытаюсь тут использовать в своих (сугубо личных) целях код, написанный на SV. Мало того, что я Verilog/SV не знаю (только VHDL), так еще и проект был сделан под Xilinx (я же только с Altera имел дело).

Есть такой кусок:

Код
131    genvar i, j;
132    generate
133    for (i = 0; i < NUM_BANKS; i ++)
134        for (j = 0; j < NUM_OPERATORS_PER_BANK; j++) begin
135            edge_detector #(


На него (и несколько подобных мест) выдает ошибки:

Код
Error (10170): Verilog HDL syntax error at phase_generator.sv(134) near text: "for";  expecting "begin". Check for and fix any syntax errors that appear immediately before or at the specified keyword.
Error (10644): Verilog HDL error at phase_generator.sv(133): this block requires a name


Естественно, я попытался почитать описание ошибок, но в лоб исправить не удалось. Мне кажется, что здесь, возможно, присутствует какая-то специфика от Xilinx ?
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение Dec 18 2017, 22:39
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 176
Регистрация: 23-12-04
Пользователь №: 1 643



Приветствую!

Цитата(justontime @ Dec 19 2017, 01:20) *
Пытаюсь тут использовать в своих (сугубо личных) целях код, написанный на SV. Мало того, что я Verilog/SV не знаю (только VHDL), так еще и проект был сделан под Xilinx (я же только с Altera имел дело).
Как же Вам тяжело ... - говорить на языке которого не знаешь ...

Цитата(justontime @ Dec 19 2017, 01:20) *
Код
131    genvar i, j;
132    generate
133    for (i = 0; i < NUM_BANKS; i ++)
134        for (j = 0; j < NUM_OPERATORS_PER_BANK; j++) begin
135            edge_detector #(

...

Это заморочки конкретного синтезатора - он всего то хочет '... имя сестра - назови его имя ... ' попробуйте так :
Код
...
133    for (i = 0; i < NUM_BANKS; i ++) begin : g_name_dla_etoro_for_bloka
134        for (j = 0; j < NUM_OPERATORS_PER_BANK; j++) begin : g_name_dla_vtorogo_for_bloka
...

Ему ленивому это нужно для того чтобы при синтезе правильно генерировать имена инстансов внутри блока.
На сколько помню именно Quartus на такое и ругается.

Удачи! Rob.
Go to the top of the page
 
+Quote Post
justontime
сообщение Dec 18 2017, 22:55
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 246
Регистрация: 6-12-14
Из: СПб
Пользователь №: 84 003



Цитата(RobFPGA @ Dec 19 2017, 01:39) *
Как же Вам тяжело ... - говорить на языке которого не знаешь ...

Тут, скорее, как раз проблемы не в самом языке (все-таки я его немного понимаю), а в конкретной среде...

Цитата(RobFPGA @ Dec 19 2017, 01:39) *
Это заморочки конкретного синтезатора - он всего то хочет '... имя сестра - назови его имя ... '

Именно так - я уже успел найти этот код, портированный в Quartus, и там как раз просто добавлены имена...

Цитата(RobFPGA @ Dec 19 2017, 01:39) *
Удачи! Rob.

Большое спасибо !
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 14th August 2018 - 10:00
Рейтинг@Mail.ru


Страница сгенерированна за 0.00991 секунд с 7
ELECTRONIX ©2004-2016