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

Почему пишет предупреждение в Synplify (System Verilog)?

Использую Synplify, язык System Verilog.

 

Конструкция такая:

 

always @(posedge rxclk)

begin

for (int i = 0; i <= `CHL_NUMBER - 1; i++)

begin

if ( rxsync_out ) dout_I <= dout_I_r;

if ( rxsync_out ) dout_Q <= dout_Q_r;

end

end

 

Синтезатор выдаёт предупреждение:

@W:CL169 : AFE8406_SOI_tmp.v(51) | Pruning Register i[31:0]

 

Что-то не нравиться в i.

Как правильно написать?

 

 

Да, в итоге всё синтезируется как задумано.

 

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


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

Вероятно, компилятор сообщает, что сам итератор i не попадет в схему.

Может быть какая-то другая конструкция языка для этого лучше подходит, generate какой-нибудь есть в верилоге?

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


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

а так?

always @(posedge rxclk)  begin
  for (int i=0; i<=`CHL_NUMBER - 1; i++)  begin
    if (rxsync_out[i])  begin
      dout_I[i] <= dout_I_r[i];
      dout_Q[i] <= dout_Q_r[i];
    end
  end
end

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


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

for (int i = 0; i <= `CHL_NUMBER - 1; i++)

Заменить на:

for (integer i = 0; i <= `CHL_NUMBER - 1; i++)

Предупреждение должно пропасть.

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


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

for (int i = 0; i <= `CHL_NUMBER - 1; i++)

 

@W:CL169 : AFE8406_SOI_tmp.v(51) | Pruning Register i[31:0]

 

скорее всего он предупреждает, что разрядность переменной CHL_NUMBER не [31:0].

И он урезал результат

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


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

for (int i = 0; i <= `CHL_NUMBER - 1; i++)

Заменить на:

for (integer i = 0; i <= `CHL_NUMBER - 1; i++)

Предупреждение должно пропасть.

 

Спасибо замена на integer помогла, предупреждения пропали.

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


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

Спасибо замена на integer помогла, предупреждения пропали.

Теперь, кто-нибудь, объясните, почему?

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


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

Теперь, кто-нибудь, объясните, почему?

 

А если ли смысл заморачиваться. Кому нужна эта сборная солянка из стилей 2001 и 2005

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


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

int - 32-битовое целое, где каждый бит может быть в 2-х состояниях

integer - 32-битовое целое, где каждый бит может быть в 4-х состояниях

Как это повлияло?

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


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

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

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

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

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

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

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

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

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

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