ConstHw 0 11 мая, 2016 Опубликовано 11 мая, 2016 · Жалоба Есть 2 сигнала счетчика на X,Y координату wire [3-1:0] bar_x; wire [4-1:0] bar_y; wire valid; И есть матрица единичных стробов wire bar_mat [15:0][31:0]; Задача - Передать валид в нужный элемент матрицы, остальные соответственно в нуле. Фактически нужен двумерный дешифратор. Решение в лоб integer x,y; always_comb begin for (x=0;x<16;x++) for (y=0;y<32;y++) bar_mat[x][y] = 1'b0; bar_mat [bar_x][bar_y] = valid; end Но может быть в системе можно сделать как то покороче? Покороче забить массив нулями без вызова цикла? Присвоить валид через нечто подобное VHDL'ной конструкции (5 =>valid,others=>'0'); ? Спасибо за помощь Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
masics 0 11 мая, 2016 Опубликовано 11 мая, 2016 · Жалоба module main; logic [3-1:0] bar_x; logic [4-1:0] bar_y; logic valid; logic bar_mat [15:0][31:0]; initial begin bar_x = 3; bar_y=5; valid=1; bar_mat = '{default:0}; bar_mat [bar_x][bar_y] = valid; for (int x=0;x<16;x++) for (int y=0;y<32;y++) $display("bar_mat [%0d][%0d] = %b", x, y, bar_mat[x][y]); $finish; end endmodule Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ConstHw 0 11 мая, 2016 Опубликовано 11 мая, 2016 · Жалоба Спасибо! С default конструкцией лучше, но все равно хочется еще короче Нашел еще красивое решение для одномерного дешифратора http://www.asic-world.com/examples/systemv...og/decoder.html assign decoder_out = (enable) ? (1 << binary_in) : 16'b0; Провернуть бы такое для двумерного :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 11 мая, 2016 Опубликовано 11 мая, 2016 · Жалоба Провернуть бы такое для двумерного :) В терминах верилога - это не массив, а вектор. В терминах систем верилога это не неупакованный массив (как в вашем примере), а упакованный. Сделайте себе упакованный массив и работайте как с вектором. будет bar_mat = valid << {bar_x, bar_y}; PS. синтезироваться будет нормально только для размерности массивов 2^N, потом окна появятся Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ConstHw 0 12 мая, 2016 Опубликовано 12 мая, 2016 · Жалоба des00 Все понял, спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться