Todo lo anterior, y más.
Lo primero y más importante es la reutilización de los "bloques" existentes que saben que funcionan (a menos que se aparten radicalmente de los diseños existentes). Estos pueden ser bloques que hayan usado antes, o bloques importados de terceros, como ARM.
Luego está la emulación y evaluación de software, simulaciones y demás.
Sí, pueden usar FPGA, tal vez no para todo el chip, pero para probar que ciertos bloques del diseño son correctos, antes de ponerlos todos juntos en un paquete terminado.
Finalmente están los pre-lanzamientos de ingeniería. Esta es una pequeña serie de chips de prueba enviados a terceros dispuestos a probarlos, encontrar errores y enviar comentarios al fabricante, quien los solucionará y hará otro corto plazo. Por ejemplo, tengo algunos prelanzamientos de ingeniería PIC32MZ aquí. Son el cuarto lanzamiento, sin embargo, todavía tienen grandes errores. Ha habido (creo) 2 lanzamientos desde entonces otra vez.
Ninguna cantidad de simulaciones y pruebas de cada parte de un chip puede explicar completamente cómo funcionará el chip en su totalidad cuando se grabe en silicona.