Using ModuleSim, which provides black boxes for registers, arithmetic units, logic gates, clocks etc., I had a lot of fun recreating a simple 8-bit computer. It runs programs written in David May's X language and shows the data flowing between modules nicely