
I agree, mostly, that the student needs to work through the exercises to grow and understand. However, there are some gotchas in HDL that can be very easy to miss or not understand after reading the appendix once, or twice, or thrice. I wish there were one or two annotated examples that don't solve any of the design problems in the projects but that do include examples of the tricky bits of HDL.
Even something silly like the following could go a long way in getting people over the hump with their first HDL specification.
CHIP Reverse {
IN in[16];
OUT out[16];
PARTS:
And16(a=in, b=in,
out[0]=out[15],
out[1]=out[14],
out[2]=out[13],
out[3]=out[12],
out[4]=out[11],
out[5]=out[10],
out[6]=out[9],
out[7]=out[8],
out[8]=out[7],
out[9]=out[6],
out[10]=out[5],
out[11]=out[4],
out[12]=out[3],
out[13]=out[2],
out[14]=out[1],
out[15]=out[0]
);
}
