I've yet to see anywhere show an example of this, and I've yet to need it until now.
I have 2 control signals, and I need to make a nested with-select-when statement for them. I can easily nest things with case statements, but I have recently realized that I need this bit of code outside of a process because it screws with the timing. Here is the code I currently have:
case OpcodeIn is =>
when "000000" =>
case FunctIn is =>
when "00000" =>
...
when "00001" ==>
...
end case;
when "000001" =>
...
end case;
Also, I cannot just concatenate like:
controlSig <= OpcodeIn & FunctIn;
and then use:
with controlSig select output <=
...
because the FunctIn is only valid depending on certain values of OpcodeIn. Thus it would only work if there was a wildcard character like:
"0010" when "000001***********";