Jump to content

    
Sign in to follow this  
Koluchiy

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

Recommended Posts

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

 

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

 

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

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 такую фишку не сделать никак.

 

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

Share this post


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

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

 

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

Share this post


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

 

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

Share this post


Link to post
Share on other sites
в данном примере упакованных массивов нет, а по сабжу никак Xilinx не поддерживает SV и в ближайшее время не будет.

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

Share this post


Link to post
Share on other sites
в данном примере упакованных массивов нет, а по сабжу никак 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

 

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

Edited by des333

Share this post


Link to post
Share on other sites

Жаль.

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

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

 

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

Edited by Koluchiy

Share this post


Link to post
Share on other sites
Может быть, я чего-то недопонимаю, но исходя из 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 свободно, где угодно.

Share this post


Link to post
Share on other sites

To des00:

 

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

 

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

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

 

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

 

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this