Koluchiy 0 26 августа, 2009 Опубликовано 26 августа, 2009 · Жалоба Здравствуйте. Проблема следующая. Хочу сделать конструкции вида 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 такую фишку не сделать никак. Заранее спасибо за ответы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Des333 0 26 августа, 2009 Опубликовано 26 августа, 2009 · Жалоба Quartus 8.0 такие фокусы вполне себе позволяет при включенной поддержке System Verilog. Ой, не стоит полагаться на поддержку многомерных/упакованных массивов в 8.0. Она там, мягко говоря, "хромает". Вот в 9.0 - совсем другое дело. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 27 августа, 2009 Опубликовано 27 августа, 2009 · Жалоба Ой, не стоит полагаться на поддержку многомерных/упакованных массивов в 8.0. Она там, мягко говоря, "хромает". в данном примере упакованных массивов нет, а по сабжу никак Xilinx не поддерживает SV и в ближайшее время не будет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Builder 0 27 августа, 2009 Опубликовано 27 августа, 2009 · Жалоба в данном примере упакованных массивов нет, а по сабжу никак Xilinx не поддерживает SV и в ближайшее время не будет. Только сторонними синтезаторами? Бум знать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Des333 0 27 августа, 2009 Опубликовано 27 августа, 2009 (изменено) · Жалоба в данном примере упакованных массивов нет, а по сабжу никак 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 это, все таки, упакованный массив. :) Изменено 27 августа, 2009 пользователем des333 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Koluchiy 0 27 августа, 2009 Опубликовано 27 августа, 2009 (изменено) · Жалоба Жаль. Придется вспоминать арифметику и городить вектора длиной 256... Хорошо хоть, узнал, что такое упакованные массивы :-). Всем спасибо. Изменено 27 августа, 2009 пользователем Koluchiy Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 28 августа, 2009 Опубликовано 28 августа, 2009 · Жалоба Может быть, я чего-то недопонимаю, но исходя из 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 свободно, где угодно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Des333 0 28 августа, 2009 Опубликовано 28 августа, 2009 · Жалоба To des00: Да, что-то я мягко говоря "стормозил"... Просто недавно, как раз, натолкнулся на проблему в 8.0 с logic [3:0][7:0] а; Темы нормально не прочитал, а отвечать уже принялся. А у автора то совсем другой, просто случай. Приношу свои извинения. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться