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

ISE и System Verilog - какая версия поддерживает?

Здравствуйте.

 

Проблема следующая.

 

Хочу сделать конструкции вида

input [7:0] InRegArray[31:0];

output reg [7:0] OutRegArray[31:0];

 

То есть, 2-хмерные массивы сигналов, являющиеся входами или выходами.

 

Quartus 8.0 такие фокусы вполне себе позволяет при включенной поддержке System Verilog.

Как сделать то же самое в ISE 9.2 , я так и не нашел (Verilog 2001 включен, а толку).

 

10 и 11 версии поддерживают System Verilog?

Или в Xilinx такую фишку не сделать никак.

 

Заранее спасибо за ответы.

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


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

Quartus 8.0 такие фокусы вполне себе позволяет при включенной поддержке System Verilog.

Ой, не стоит полагаться на поддержку многомерных/упакованных массивов в 8.0. Она там, мягко говоря, "хромает".

 

Вот в 9.0 - совсем другое дело.

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


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

Ой, не стоит полагаться на поддержку многомерных/упакованных массивов в 8.0. Она там, мягко говоря, "хромает".

 

в данном примере упакованных массивов нет, а по сабжу никак Xilinx не поддерживает SV и в ближайшее время не будет.

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


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

в данном примере упакованных массивов нет, а по сабжу никак Xilinx не поддерживает SV и в ближайшее время не будет.

Только сторонними синтезаторами? Бум знать.

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


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

в данном примере упакованных массивов нет, а по сабжу никак Xilinx не поддерживает SV и в ближайшее время не будет.

 

Может быть, я чего-то недопонимаю, но исходя из IEEE Std 1800-2005 5.1:

 

In Verilog, all data types can be declared as arrays. The reg type, the wire type, and all other net types can also have a
vector width declared. A dimension declared before the object name is referred to as the vector width dimension. The
dimensions declared after the object name are referred to as the array dimensions.
      reg [7:0] r1 [1:256];                // [7:0] is the vector width, [1:256] is the array
      size
SystemVerilog uses the term packed array to refer to the dimensions declared before the object name (what Verilog
refers to as the vector width). The term unpacked array is used to refer to the dimensions declared after the object name.
      bit [7:0] c1;                    // packed array
      real u [7:0];                    // unpacked array

 

это, все таки, упакованный массив. :)

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

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


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

Жаль.

Придется вспоминать арифметику и городить вектора длиной 256...

Хорошо хоть, узнал, что такое упакованные массивы :-).

 

Всем спасибо.

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

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


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

Может быть, я чего-то недопонимаю, но исходя из IEEE Std 1800-2005 5.1:

 

это, все таки, упакованный массив. :)

 

это одномерный упакованный массив, который квартус всегда поддерживал. Если бы он этого не делал, тогда никакой бы V код, не собирался в нем в режиме SV. В SV отказались от понятия вектор, которое было введено в V, для общности изложения. А квартус имел проблемы с поддержкой многомерных упакованных массивов.

 

Т.е. говоря языком кода

 

logic [7:0] a;

в V это 8 ми разрядный вектор, в SV формально одномерный упакованный массив :: вектор

 

logic  [3:0][7:0] а;

в V такой конструкции нет, в SV это многомерный упакованный массив, который в 8 ой версии поддерживался не корректно

 

logic [7:0] a [3:0];

в V это память :: одномерный массив векторов, в SV это одномерный неупакованный массив одномерных упакованных массивов :: одномерный массив векторов.

 

1 можно использовать в V свободно

3 можно использовать в V свободно, но не в портах (!!!) о чем весь сыр бор.

 

1-3 можно использовать в SV свободно, где угодно.

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


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

To des00:

 

Да, что-то я мягко говоря "стормозил"...

 

Просто недавно, как раз, натолкнулся на проблему в 8.0 с

logic  [3:0][7:0] а;

 

Темы нормально не прочитал, а отвечать уже принялся. А у автора то совсем другой, просто случай.

 

Приношу свои извинения.

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


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

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

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

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

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

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

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

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

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

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