Change output depending on State in VHDL
My best guess given so little information, like what "not working" means...

F and H are of some type that does not have boolean operators defined on it; therefore (F or H) is meaningless.

Now ... Y = F is a boolean expression, so is Y = H so you can say

z &lt;= '1' WHEN (y = F) OR (y = H) ELSE '0' ;


and (assuming this is outside a process) it might do what you expect (assuming Y, F,H are the same or compatible type)

The second form will also work, but only as part of a process...