Código fuente de luz
Debido a que las declaraciones desde el principio hasta el final de la función se ejecutan en paralelo, es decir, estas declaraciones se ejecutan al mismo tiempo, la simulación debe ser incorrecta. Por ejemplo, en su segunda forma de onda de simulación, cuando A = 0, B = 0, CI = 0, entonces X = 1, Y = X y CI. Tenga en cuenta que X en este momento no es 1 sino 0, por lo que y=0, s=x xor ci, x=0, por lo que S = 0, Co.
Puede ser que el autor esté acostumbrado a escribir C, pero en VHDL, hay que tener en cuenta que las declaraciones generalmente se ejecutan en paralelo a menos que estén en un proceso.
Por lo tanto, se pueden realizar las siguientes correcciones
s & lt= ci xor a xor b
co & lt= (a y b) o ( ci y a) o (ci y b);
Es decir, eliminar las variables intermedias para que el resultado solo esté relacionado con la entrada.