Я закончил работать над этим с помощью следующего макроса, он создает 2 дополнительных параметра для округления, но это лучшее решение, которое я нашел до сих пор.Это не ограничивается целочисленными аргументами и работает с действительными числами.Я проверил это с Quartus и Modelsim
`define Ceil(ParamName, Expression) \
parameter ParamName``_F = Expression;\
parameter integer ParamName``_R = ParamName``_F;\
parameter integer ParamName = (ParamName``_R == ParamName``_F || ParamName``_R > ParamName``_F) ? ParamName``_R : (ParamName``_R + 1);
И затем вместо
parameter integer AUTOREFRESH_CLOCKS = $ceil(UTOREFRESH_NS/CLOCK_PERIOD_NS);
Вы бы вызвали макрос
`Ceil(AUTOREFRESH_CLOCKS, UTOREFRESH_NS/CLOCK_PERIOD_NS)
И это не обасинтезируется в Quartus и работает в Modelsim