Lmx2315 5 3 декабря, 2019 Опубликовано 3 декабря, 2019 · Жалоба 10 часов назад, RobFPGA сказал: Приветствую! что значит цикл в программистском смысле ? Цикл это многократно исполняемая последовательность одного и того же набора инструкций. Когда в обычном veriloge применяю generate for - это не цикл, а простое размножение какого-либо кода . И был удивлён, когда узнал что SV способен поступать по первому определению цикла - многократно использовать какие-либо ресурсы, не размножая их. Даже не могу себе этого представить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexadmin 0 3 декабря, 2019 Опубликовано 3 декабря, 2019 · Жалоба 46 minutes ago, Lmx2315 said: И был удивлён, когда узнал что SV способен поступать по первому определению цикла - многократно использовать какие-либо ресурсы, не размножая их. Даже не могу себе этого представить. Это как? Я тоже не могу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 16 3 декабря, 2019 Опубликовано 3 декабря, 2019 · Жалоба 53 минуты назад, Lmx2315 сказал: SV способен Не всё, на что спобобен язык (SV ли, VHDL ли), реализуемо в железе. 54 минуты назад, Lmx2315 сказал: И был удивлён, когда узнал что SV способен поступать по первому определению цикла - многократно использовать какие-либо ресурсы, не размножая их. Видимо, вы что-то не так поняли. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 33 3 декабря, 2019 Опубликовано 3 декабря, 2019 · Жалоба Приветствую! 1 hour ago, alexadmin said: Это как? Я тоже не могу. Простенький пример цикла в программистском стиле. И это не SV а обычный Verilog-2001. function reg [31:0] swap_bits (input reg [31:0] din); integer ii; for (ii=0; ii<32; ii=ii+1) begin swap_bits[ii] = din[31-ii]; end endfunction always @(posedge clk) begin data_swap <= swap_bits(data_in); end Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nick_K 0 3 декабря, 2019 Опубликовано 3 декабря, 2019 · Жалоба 8 minutes ago, RobFPGA said: Простенький пример цикла в программистском стиле. И это не SV а обычный Verilog-2001. Но это ведь не синтезируемая конструкция в классическом понимании (оно то синтезирует, но ни регистров ни комбинаторики не даст) Это обычная инверсия шины. То же самое, что: wire [31:0] swap_bits = [0:31] din; Большинство компиляторов этой конструкции не съедят, но фактически это честная конструкция. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 33 3 декабря, 2019 Опубликовано 3 декабря, 2019 · Жалоба Приветствую! 1 minute ago, Nick_K said: Но это ведь не синтезируемая конструкция в классическом понимании (оно то синтезирует, но ни регистров ни комбинаторики не даст) Опять 'x.. логика ( ...синтезируется не синтезируемая конструкция ...) Добавьте капельку фантазии ... function reg [5:0] count_one (input reg [31:0] din); integer ii; count_one = 0; for (ii=0; ii<32; ii=ii+1) begin if (din[ii]==1) begin count_one = count_one + 1; end end endfunction always @(posedge clk) begin din_ones <= count_one(data_in); end Как вы думаете, будет ли здесь комбинаторика ? Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexadmin 0 3 декабря, 2019 Опубликовано 3 декабря, 2019 · Жалоба 2 hours ago, RobFPGA said: Приветствую! Простенький пример цикла в программистском стиле. И это не SV а обычный Verilog-2001. И кто здесь "многократно использовать какие-либо ресурсы, не размножая их"? Тут ведь нет никакого многократно используемого сумматора, правда? ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться