Why i'm facing this error (no declaration matches use as "xnor")?
Change the xor line to not (a xor b): 


  z(0) &lt;= not (a xor b);


and then compile with the 


  --libieee


option. This is important. Otherwise you'll receive linker errors. 


  gvhdl --libieee myFile.vhdl