spi_clk вполне может синтезироваться в ClockEnable для всех сигналов внутри if, если я правильно понял выдранный из контекста участок кода.
Теперь, если выдать этот самый spi_clk наружу, то непонятно, как его регистр может быть упакован.
Можно ли задержать на такт и клок и данные? Тогда дополнительные регистры помогут размещению.
В общем, если так уж не хочется делать констрейны, то можно применить какие-то базовые элементы для регистров внутри блоков ввода-вывода. Сходу не нашел ничего лучше ALTDDIO_BIDIR. У xilinx обычно для этого применял отдельно буфер ввода-вывода и отдельно регистр рядом с ножкой.
Прикручивание этих элементов к своей схеме и выявит все, что на самом деле хочет квартус.
Смотрю на "Figure 6–3"
http://www.altera.com/literature/hb/arria-...gx_handbook.pdf