<... как правильно задавать констрейны?>
Хочу высказаться

Для начала, надо описывать устройство так, чтоб потом его можно было вписать в констрейн, это я к тому, что различные выражения HDL балансирующие на грани синтезируемости пользы не добавляют.
У Xilinx "нужных" констрейнов всего два - PERIOD и OFFSET.
PERIOD - ограничивает pipeline, OFFSET, его входы/выходы.
Геморой начинается с проектами в которых несколько тактовых, тут наворячиваются мультицикловые констрейны FROM ... THRU ... TO, игнорирующие TIG.
Но мне болше всего неудобств приносит специфика OFFSET - он не может пользоваться тактовыми полученными внутри кристалла

Тогда на помощь приходит FROM ... TO.
Например:
INST Inst_ADDRES_GENERATOR/* TNM = ADDRffs ;
NET Inst_ADDRES_GENERATOR/* MAXSKEW = 1.5 ns ;
TIMESPEC "TSADDR01" = FROM ADDRffs TO ADDRffs 50 ns;
TIMESPEC "TSADDR02" = FROM ADDRffs TO FFS 100 ns;
TIMESPEC "TSADDR02" = FROM ADDRffs TO PADS 80 ns;
TIMESPEC "TSADDR03" = FROM FFS TO ADDRffs 100 ns;
TSADDR01 - это за место PERIOD (мне так больше понравилось).
По поводу RPM можно посмотреть
здесь