Where to simulate and test Microprocessor designs?
This is pretty much what VHDL &amp; Verilog are for! These languages allow behavioral description of digital systems (and yes, also structural). Both languages share many similarities however I am only familiar with VHDL so my answer is based on that. 

A hardware description language allows you to define a certain behavior or structure of your digital system accurately according to various real time limitations you will encounter at the chip level. The language is hierarchical in its approach to design which is similar to the way a system designer would approach such a task (using abstraction levels). You can describe the most simplest digital building block of your system, with the real time constraint you will have, and use it together with other components to create a higher level design and on turn, use that one for a higher level design and so on. Coding in this style will allow you to simulate your final chip in a level which is low, however above above the electric level (this is no SPICE).

I saw someone mentioned an FPGA and here is a tricky part about HDL where a newcomer might mistake writing code that is for simulation purpose vs. writing code which is for compiling and execution on an FPGA. These are two different things and code that is meant for simulation and have "artificial" constraints is code that is usually not fitted for running on an FPGA and it won't compile. VHDL is a complex language and it can do many things being so powerful, writing code that you can download can be viewed as a subset of the language and this is not exactly what you are after. You can do that, and see that everything works but this will be of little help when in comes to the actual chip design.