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

 
 
> Как правильно написать task automatic на System Verilog, ругается
Koluchiy
сообщение Sep 28 2018, 07:34
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 972
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543



Здравствуйте, уважаемые гуры.

Есть что-то типа такого:

Код
always @ (posedge Clk or posedge Reset)
begin
    if (Reset)
        begin
          VarA <= 0;
          VarB <= 0;
        end
    else
    begin
       simple_task(VarC, VarA);
       simple_task(VarD, VarB);
    end
end

task automatic simple_task;
input Var1;
output Var2;
begin
  Var2 <= ~Var1;
end
endtask


2 переменные изменяются при помощи 2х экземпляров task'а.
Проблема в том, что если использовать присваивание "<=" , то синтезатор (Quartus 18) ругается - говорит, что нельзя automatic с таким присваиванием.
Использовать присваивание "=" можно и все ок, но с таким присваиванием проблемы дальше, т.е. оптимально, чтобы на выходе из этого блока было присваивание "<=".

Понятно, что можно сделать task'и и присваивание "=", а потом переприсвоить в другую переменную по "=>".
Но так громоздко, хочется написать проще.

Кто что посоветует?
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 31st July 2025 - 14:08
Рейтинг@Mail.ru


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