Цитата(yes @ Sep 28 2012, 21:11)

с проазиками дело имели? это не ксайлинсы

Не имел. Решил потренироваться. Вот код (всё сделано "втупую", без хитростей с переносами) :
Код
module adder
(
input logic [31:0] data,
input logic reset,
input logic clk,
output logic [39:0] sum,
output logic cout
);
always_ff@(posedge clk)
if(reset) begin
sum <= '0;
cout <= '0;
end
else
{cout,sum} <= sum + data;
endmodule
Собрал всё это в синплифае. Вот кусок репорта синплифая касательно быстродействия :
Performance Summary
*******************
Worst slack in design: -2.195
Requested Estimated Requested Estimated Clock Clock
Starting Clock Frequency Frequency Period Period Slack Type Group
------------------------------------------------------------------------------------------------------------------------
adder|clk 80.4 MHz 68.3 MHz 12.437 14.631 -2.195 inferred Autoconstr_clkgroup_0
================================================================================
========================================
Ну то есть по оценкам Синплифая этот сумматор будет работать на 68 МГц. Может конечно Синплифай малость и привирает в сторону оптимизма, но не думаю что очень сильно.
Вывод : на 40МГц даже Проасик сможет суммировать 40 битные числа. И никаких танцев с бубном.
Автору топика : уберите из вашего дизайна работу по двум фронтам.О безусловном вреде этого писали на этом форуме неоднократно.
Мой сорец написан на SV, но сути это не меняет, он делает то же что и ваш код, только сброс у меня синхронный(почему синхронный? - почитайте Кена Чапмена, у него есть хорошая статья на эту тему).