Los errores críticos se arreglan. Normalmente se arreglan antes de que el producto entre en producción. A menos que utilices las primeras muestras, es posible que nunca veas los peores errores.
Corregir los errores es difícil y caro. No se trata sólo de cambiar una línea de código RTL. Si se hiciera eso, habría que volver a sintetizar, rehacer el diseño físico, ajustar el diseño para solucionar cualquier problema de sincronización, comprar un conjunto de máscaras completamente nuevo, producir nuevas obleas, probar las obleas (normalmente), validar las nuevas correcciones y posiblemente caracterizar o calificar el producto de nuevo. Esto lleva meses y cuesta una cantidad de dinero angustiosa. Por eso, intentamos corregir los fallos directamente en la maqueta (preferiblemente en una sola capa de metal). Esto es más rápido y barato que volver a empezar desde la síntesis RTL, pero sigue sin ser bueno.
Si vamos a arreglar un fallo crítico de todos modos, ¿por qué no arreglar también todos los demás fallos? Una vez más, esto lleva tiempo: tiempo para idear e implementar una solución, tiempo para volver a realizar las pruebas de verificación del diseño. Ese tiempo significa que se tardará más en sacar el siguiente producto al mercado. Y mientras tanto, es casi seguro que encontrarás más errores en tu producto actual si buscas lo suficiente. Es una batalla perdida. Arreglar los errores es aún más difícil en un producto que lleva mucho tiempo en el mercado, ya que la gente tiene que bucear en el diseño antiguo para averiguar qué está pasando. Como dice Null, es posible que los clientes tengan que recalificar tu producto en su sistema. Si el producto está todavía en desarrollo, retrasar la salida a producción puede hacer que los clientes se retrasen, lo que hace que los clientes muy Desafortunado.
Normalmente, los bugs que se dejan sólo ocurren en configuraciones extrañas, causan problemas muy pequeños, tienen soluciones fáciles, o todo lo anterior. No son lo suficientemente malos como para que merezca la pena. Y si se reutiliza un módulo de hardware en el siguiente producto, los clientes actuales ya tendrán la solución en su software.
Las cadenas de herramientas de software son otro factor. Si un módulo permanece el tiempo suficiente, su cadena de herramientas puede cambiar lo suficiente como para que rehacer las antiguas pruebas de validación se convierta en un proyecto importante en sí mismo. Y probablemente no puedas cargar las herramientas antiguas, porque ya no estás pagando por la licencia del sitio. Pero mientras no cambies el módulo, puedes seguir copiando y pegando en nuevos MCUs.
El software también es un problema para el cliente. Si su corrección de errores rompe la compatibilidad con versiones anteriores de alguna manera, todos sus clientes tendrán que actualizar su código, para lo cual es posible que ya no tengan las herramientas necesarias.
Como alguien que trabaja en el desarrollo de microcontroladores, puedo decir que a todos nos encantaría arreglar todos los errores. Pero intentar hacerlo retrasaría el desarrollo de forma imprevisible, molestaría a los clientes, costaría una tonelada de dinero y, al final de todo, seguiríamos fracasando probablemente.
4 votos
Porque arreglar los errores puede ser difícil.
1 votos
A veces lo hacen.
8 votos
También les obligaría a fabricar un nuevo conjunto de máscaras para la producción de silicio. Las máscaras pueden ser una de las partes más caras del proceso.
2 votos
@IgnacioVazquez-Abrams No arreglar bugs es fácil, encontrarlos es lo difícil, pero en el caso anterior, ya han pasado por lo difícil....
0 votos
La mayoría de los errores son fáciles. Algunos son difíciles. Unos pocos son imposibles.
5 votos
Compatibilidad con versiones anteriores. Los desarrolladores pueden explotar un error de silicio de forma consciente o no. El otro día hubo una pregunta sobre este tema, alguien tiene un controlador de la versión antigua y su programa se negó a trabajar . Sólo después de una cuidadosa comprobación resultó que al número de pieza de su dispositivo le faltaba un
A
. Resultó estar documentado, pero confunde a la gente.0 votos
Estoy de acuerdo con la respuesta de @Null más abajo, todo es cuestión de coste, pero también añadiría que la lista de erratas casi nunca es la lista completa conocida de fallos de los chips.
0 votos
Fíjate en el poco tiempo que tienen hasta que salga el siguiente producto. Sólo por el próximo producto entonces, es probable que no tenga ese error. Sólo tienes que gastar algo de dinero extra ^^