hw3a-ise

Dr. Bouldin,

Attached is the modified code. The problem was
that the IF statement for initialize = '0' does not contain any WAIT statements
where the ELSE statement does. This error can be resolved by copying one
of the WAIT statements and pasting it somewhere in the IF statement, but
this causes another problem. Adding this WAIT statement causes ISE to give
the following error:

ERROR:Xst:844 - "C:/551HW3b/HW3c/hw3c.vhd" line 80:
Recurse wait not supported or bad place of Exit or Next statement.

I could not find an exact cause of this error, but I think that it had
something to do with the number and location of WAIT statements in code.
It took a little work to resolve this issue, but the solution that I have
been able to come up with is to move the WAIT statement at the end of the
ELSE branch to the beginning of the ELSE branch and move the
pb_flag_reset <= '0' statement until after the first WAIT in the
IF initialize = '0' and ELSE branches. This does not seem to modify
the behavior of the code, but the timing may have been changed slightly.

All in all, I eventually decided to just rework the code so there is no
longer a need for the WAIT statements. Nonetheless, I have tested the
attached code, and it compiles in ISE 10.1 and seems to run fine on my
BASYS board.
Thanks,

Benjamin
bmarti15@utk.edu