Attention, ta méthode te fait perdre le bit de signe. Et tu peux te retrouver avec des valeurs qui n'ont rien à voir.
Je ne sais plus si l'attribut length est papplicable à un signal. si c'est la cas, cette version est plus sure:
Code :
sum(0) <= resize(temp(0), temp(0)'length+1) + resize(temp(1), temp(1)'length+1);
|
DE même pour être générique, tu peux déclarer tes signaux en fonction de la taille de tes entrées, Par exemple:
Code :
type ram16 is array (0 to 3) of signed(code'high downto code'low);
|
Aussi, au lieu de faire des cast (signed) sur data et CD, pourquoi ne pas les déclarrer signed?
---------------
sheep++