How to use the newest version of VHDL in Vivado?
It never worked as far as I know. Not just in Vivado.
Q is an output. You cannot read an output as you attempted with NOR. You can only write to it.
You could use inout, but this is dangerous. But best practice is to manipulate an internal signal and write that to Q.
But I believe you can set VHDL-2008 somewhere in the menu settings. Don't know about a syntactical way to do it though.
EDIT: It seems to be hiding in plain sight. It is set per source file in the &quot;Source File Properties&quot; window which is probably already open and just sitting in your regular layout in Vivado.

Also from the Vivado manual starting page 203:
https://www.xilinx.com/support/documentation/sw_manuals/xilinx2016_4/ug901-vivado-synthesis.pdf