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

А тут нет! В вопросе я разобрался - ква-ква плохой! :maniac: См. выше...

что то мне подсказывает что всем знакомый драйвер у вас глючит %)

 

module pipa (input a, b, output c);
  assign c = a & b;
endmodule

module test_array (input [7 : 0] a,b, output logic [7 : 0] c);
  pipa pipa [7 : 0] (a, b, c);
endmodule

 

Info: Quartus II Analysis & Synthesis was successful. 0 errors, 18 warnings

Info: Peak virtual memory: 161 megabytes

Info: Processing ended: Fri Nov 19 16:50:22 2010

Info: Elapsed time: 00:00:01

Info: Total CPU time (on all processors): 00:00:01

ЗЫ. так что чините руки.sys %)

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


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

что то мне подсказывает что всем знакомый драйвер у вас глючит %)

 

module pipa (input a, b, output c);
  assign c = a & b;
endmodule

module test_array (input [7 : 0] a,b, output logic [7 : 0] c);
  pipa pipa [7 : 0] (a, b, c);
endmodule

Мой квартус вам говорит:

Error (10161): Verilog HDL error at test_array.v(6): object "logic" is not declared

 

Q9.1 sp2

в настройках выбран Verilog 2001

 

Без logic работает, но это просто тест на 6 строк, а у меня реальный проект. И вопрос в том почему квартус не жрет то что ему дают

 

И причем тут руки?!

Назовите хоть одну причину, почему не работает код с dff?

 

работает

module test_array (input in, output out);
    
    DFF dff_group (
        .d(in), 
        .clk(clk1_wire), 
        .q(out)
        );
    
endmodule

 

НЕ работает

module test_array (input [7:0] in, output [7:0] out);
    
    DFF dff_group [7:0] (
        .d(in), 
        .clk(clk1_wire), 
        .q(out)
        );
    
endmodule

Error (10253): Verilog HDL Module Instantiation error at test_array.v(8): cannot elaborate array of instances because the declaration for the instantiated module has not been analyzed

 

P.S. торопился - clk брошен, ну да хрен с ним, для сути проблемы это неважно

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


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

Error (10161): Verilog HDL error at test_array.v(6): object "logic" is not declared

ну wire вместо logic используйте или SV режим включите.

 

Назовите хоть одну причину, почему не работает код с dff?

потому что внутрях ква dff идет как AHDL модуль и не работает стык AHDL/Verilog. Вот тому пример

 

module dff_wrp (input clk, d, output logic q);

  dff
  dff
  (
    .d    ( d    ) ,
    .clk  ( clk  ) ,
    .q    ( q    )
  );

endmodule

module test_array (input clk, input [7 : 0] a, output wire [7 : 0] c);

  dff_wrp
  dff [7 : 0]
  (
    .d    ( a    ) ,
    .clk  ( clk  ) ,
    .q    ( c    )
  );

endmodule

 

Про руки, проехали, старая шутка времен досок. Если обидел приношу свои извинения %)

 

Усли быть более точным, то подозреваю что реализация массива модулей делается разработчиками через парсер декларации модуля (о чем косвенно говорит предупреждение квартуса). AHDL модуль не содержит такой декларации, а воспользоваться встроенным конвертером разработчики забыли. При тестировании такого не выявили, т.к. фича редко используемая и в плане тестирования этого нет/забыли.

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


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

Усли быть более точным, то подозреваю что реализация массива модулей делается разработчиками через парсер декларации модуля (о чем косвенно говорит предупреждение квартуса). AHDL модуль не содержит такой декларации, а воспользоваться встроенным конвертером разработчики забыли. При тестировании такого не выявили, т.к. фича редко используемая и в плане тестирования этого нет/забыли.

Вот вот! Проблема точно подмечена! ВОТ ЭТО и озлобляет!

Финт ушами (который вы привели выше) это конечно решение, но разработчики не правы, о чем я и говорил в самом начале.

Спасибо за разъяснение!

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


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

Назовите хоть одну причину, почему не работает код с dff?

Так ить dff - это не модуль, а примитив. Может быть, это восстановит поруганную честь Quartus`а?

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


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

Так ить dff - это не модуль, а примитив. Может быть, это восстановит поруганную честь Quartus`а?

Не выйдет! :biggrin:

1. Примитив примитивом, но описан он корректно.

2. Это был просто пример, для простоты. Когда используется любой модуль (хоть самописный, хоть мегафункция) описанный на AHDL возникает данная ошибка.

 

Только не надо советовать не использовать AHDL, ошибка от этого не пропадет! Да, и на AHDL у нас было понаписано немало в свое время, кое что бывает удобно использовать.

 

OFF

кстати о чести КВА:

если в КВА 10 без СП запустить мегавизард и попробовать создать LVDS передатчик то результат может обескуражить и удивить :07:

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


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

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

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

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

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

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

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

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

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

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