ХЫ... если это
if (load) ...;
else ...;
заменить на это
if (load) ...;
if (clock) ...;
то сразу лишних 32 ячейки сжирается.. и да - хз как будет работать при одновременности тактов.
А вот это можно как-то пооптимальнее записать, без сумматоров? А то LastAdr+1 кушает почти 40 ячеек (число 18 битное). Нужно увидеть что новое число на 1 больше прежнего... хотя, не, бред.. нельзя конечно же.
if (fA == LastAdr + 1)