The paper introduces CAHDL, the Computer Architecture and Hardware Description Language. CAHDL is aimed to specify processor instructions and computer hardware formally. Although CAHDL supports RTL modeling to some extent, it is does not describe digital circuits. CAHDL is designed first to specify CPU and hardware behavior, rather than their structure. CAHDL can be applied in simulators, compilers, disassemblers, testers and other programs requiring specification of computer architecture. In the end of the paper we observe how CAHDL is applied in computer simulation. The paper brings some CAHDL syntactic constructions as examples and explains their semantics. Parsing methods are also briefly reviewed.