1. A method of validating a pipelined processor, comprising: defining a functional coverage for a pipeline architecture based on at least one fault model, wherein the fault model models functional pipeline faults; generating a test program to detect a fault in the fault model.