Tpeck 0 3 декабря, 2019 Опубликовано 3 декабря, 2019 · Жалоба Доброго времени суток. Помогите пожалуйста. Столкнулся со следующей проблемой в Verilog. В качестве базового элемента, допустим, используется массив reg signed [7:0] Data_x [8:0]. Первый вопрос. Правильно ли я понимаю, что каждый раз при при присвоение (i=0; i<9; i=i+1) Data_1<=Data_0(i), необходимо делать цикл по 9 элементам и иначе нельзя? Второй вопрос. Если я захочу передать этот сигнал из компонента на верхний уровень, который написан на VHDL, то мне его надо преобразовать в [71:0] Data_x и передать как std_logic_vectoк(71 downto 0) и в VHDL опять собрать в удобный для работы array? Или можно это сделать как-то проще? Всем спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flip-fl0p 4 3 декабря, 2019 Опубликовано 3 декабря, 2019 · Жалоба 6 hours ago, Tpeck said: Доброго времени суток. Помогите пожалуйста. Столкнулся со следующей проблемой в Verilog. В качестве базового элемента, допустим, используется массив reg signed [7:0] Data_x [8:0]. Первый вопрос. Правильно ли я понимаю, что каждый раз при при присвоение (i=0; i<9; i=i+1) Data_1<=Data_0(i), необходимо делать цикл по 9 элементам и иначе нельзя? Второй вопрос. Если я захочу передать этот сигнал из компонента на верхний уровень, который написан на VHDL, то мне его надо преобразовать в [71:0] Data_x и передать как std_logic_vectoк(71 downto 0) и в VHDL опять собрать в удобный для работы array? Или можно это сделать как-то проще? Всем спасибо. Ничего не понял. Что присваивается ? Куда присваивается ? Зачем присваивается ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nick_K 0 3 декабря, 2019 Опубликовано 3 декабря, 2019 · Жалоба 3 hours ago, Tpeck said: Доброго времени суток. Помогите пожалуйста. Столкнулся со следующей проблемой в Verilog. В качестве базового элемента, допустим, используется массив reg signed [7:0] Data_x [8:0]. Первый вопрос. Правильно ли я понимаю, что каждый раз при при присвоение (i=0; i<9; i=i+1) Data_1<=Data_0(i), необходимо делать цикл по 9 элементам и иначе нельзя? Второй вопрос. Если я захочу передать этот сигнал из компонента на верхний уровень, который написан на VHDL, то мне его надо преобразовать в [71:0] Data_x и передать как std_logic_vectoк(71 downto 0) и в VHDL опять собрать в удобный для работы array? Или можно это сделать как-то проще? Всем спасибо. Если в вашей лабораторной работе или в другом ТЗ не написано чёрным по белому "используйте неупакованный массив", то кроме как для памяти нигде и никогда не применяйте их. Создайте двухмерный упакованный массив и будет счастье. Для присвоения элемента массива, другому достаточно написать Data_1[0] <= Data_2[1], дальше векторы присвоят я сами (те которые [7:0]). Если будет упакованный массив, то для VHDL достаточно использовать такой же массив с теми же разрядностями (отсюда же и минус неупакованного массива) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 4 декабря, 2019 Опубликовано 4 декабря, 2019 · Жалоба 7 hours ago, Nick_K said: Если в вашей лабораторной работе или в другом ТЗ не написано чёрным по белому "используйте неупакованный массив", то кроме как для памяти нигде и никогда не применяйте их. Создайте двухмерный упакованный массив и будет счастье. Совет как выстрелить себе в ногу, оригинально, но многое спорно. 10 hours ago, Tpeck said: Первый вопрос. Правильно ли я понимаю, что каждый раз при при присвоение (i=0; i<9; i=i+1) Data_1<=Data_0(i), необходимо делать цикл по 9 элементам и иначе нельзя? Можно, каким образом и при каких условиях, написано в стандарте, в разделе описания работы с массивами и их присваиваниями. В старом ПО, были проблемы в некоторых, особых случаях, но сейчас вроде всё хорошо. Quote Второй вопрос. Если я захочу передать этот сигнал из компонента на верхний уровень, который написан на VHDL, то мне его надо преобразовать в [71:0] Data_x и передать как std_logic_vectoк(71 downto 0) и в VHDL опять собрать в удобный для работы array? Обратитесь к документации на ваш софт, раздел совместимости языков. Там должна быть табличка переносимости сигналов между языками. Насколько помню, в симуляторах проблемы нет, в софте от вендоров ПО, надо уточнить, но ЕМНИП проблем тоже нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться