Tice 0 14 июля, 2021 Опубликовано 14 июля, 2021 · Жалоба При синтезе в ISE, кристалл Virtex7, обычной суммы assign sum[31:0] =a[31:0] +b[31:0]; создается сумматор с частой ~500 Мгц, я хочу описать такой же, но на базе элементов. Получился каскад из таких модулей: module adder_lut( input [3:0]i0,i1, input ci, output [3:0]o, output co ); wire [3:0]o_lut; lut2 #( .INIT(4'b0110) )lut2_2_inst0( .O(o_lut[0]), .I0(i0[0]), .I1(i1[0]) ); lut2 #( .INIT(4'b0110) )lut2_2_inst1( .O(o_lut[1]), .I0(i0[1]), .I1(i1[1]) ); lut2 #( .INIT(4'b0110) )lut2_2_inst2( .O(o_lut[2]), .I0(i0[2]), .I1(i1[2]) ); lut2 #( .INIT(4'b0110) )lut2_2_inst3( .O(o_lut[3]), .I0(i0[3]), .I1(i1[3]) ); wire[2:0]co_w; CARRY4 CARRY4_inst( .CO({co,co_w}), .O(o), .CI(ci), .CYINIT(1'b0), .DY(i0), .S(o_lut) ); endmodule Элементы такие же, на схематике различий не нашел , но частота падает до ~220 Мгц, почему такая разница? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 14 15 июля, 2021 Опубликовано 15 июля, 2021 · Жалоба А синтезатор a[31:0] +b[31:0] не в DSP-блоке делает? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 15 июля, 2021 Опубликовано 15 июля, 2021 · Жалоба 11 часов назад, Tice сказал: . Получился каскад из таких модулей: Элементы такие же, на схематике различий не нашел , но частота падает до ~220 Мгц, почему такая разница? Есть последовательный перенос, А есть параллельный... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tice 0 15 июля, 2021 Опубликовано 15 июля, 2021 · Жалоба 12 hours ago, andrew_b said: А синтезатор a[31:0] +b[31:0] не в DSP-блоке делает? Зависит от настроек, по умолчанию нет. 12 hours ago, iosifk said: Есть последовательный перенос, А есть параллельный... Схемы одинаковые. Да и не к чему городить параллельный перенос когда есть специальный элемент. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться