 <p>Hmmm... What happens if you move the line where you assign to <code>scrn(CONV_INTEGER(X),CONV_INTEGER(Y)) &lt;= "00111000" when X = 1 else ...</code> to somewhere inside your process?</p> <p>Also there is no need to use binary literals in your code (e.g., <code>if (X = "1100100000")</code>). Just use integer literals, or decimal bit-string literals. Better yet, define all your numeric values as integers or naturals. As a bonus, your code will be cleaner because you won't need all those conversion functions.</p>