ModelSim simulation won't advance
Assuming maze_solver is bound, you are not getting some combination of rd, row and column values that cause execution of a wait statement in the second process. 

Simulation time doesn't advance while any process is executing removing any possibility of getting any further combination of values leading to a wait statement. A deadlock. The process reaches it's last sequential statement and starts over at it's first without suspending.

It'd be possible to re-write this process driven by a clock event and depending on internal state.

Add a wait statement that will always be reached:

process
begin
cell_data &lt;= (others=&gt;'0');
if rd = '1' then
    if row = 0 and column = 0 then
        cell_data &lt;= "01000000";
        data_rdy &lt;= '1';
        wait for 20 ns;
        data_rdy &lt;= '0';
    elsif row = 0 and column = 1 then
        cell_data &lt;= "00010000";
        data_rdy &lt;= '1';
        wait for 20 ns;
        data_rdy &lt;= '0';
    elsif row = 1 and column = 0 then
        cell_data &lt;= "00000000";
        data_rdy &lt;= '1';
        wait for 20 ns;
        data_rdy &lt;= '0';
    elsif row = 1 and column = 1 then
        cell_data &lt;= "00000000";
        data_rdy &lt;= '1';
        wait for 20 ns;
        data_rdy &lt;= '0';
    end if;
else
    cell_data &lt;= (others =&gt; '0');
    data_rdy &lt;= '0';
end if;
wait for 20 ns;  -- ADDED WAIT 
end process;


You may have to tinker a bit once you get simulation time advancing.