SinEater wrote
[Memory.hdl]
PARTS:
RAM16K(in = in, load = ramload1, address = address[0..13], out = ramout1);
RAM16K(in = in, load = ramload2, address = address[0..13], out = ramout2);
...
Although this passes the tests, it is very inefficient since it uses 32K of RAM (two 16K chips) to store data for 16K of address space.
You should only use one RAM16K, and create a 'ramload' signal from 'ramload1' and 'ramload2'.
--Mark
[Please edit your original post to remove the working HDL. We want students to discover their own solutions.]