que tal bueno le puse un nombre algo raro a mi alu que estaba diseñando pues tengo problemas con la concatenacion me manda error al compilar en maxplus el siguiente codigo espero que se den cuenta de como funciona a penas vean el codigo el problema que tengo es al hacer las sumas concatenadas pues debo tener un carry por eso lo del diseño que espero lo comprendan
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY SUM_DIC IS
PORT(A,B : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
C0,C1,C2,CIN:IN STD_LOGIC;
SALIDA:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
CF : BUFFER STD_LOGIC ;
ZF: OUT STD_LOGIC);
END SUM_DIC;
ARCHITECTURE SOLUCION OF SUM_DIC IS
SIGNAL C:STD_LOGIC_VECTOR(8 DOWNTO 0);
SIGNAL X:STD_LOGIC_VECTOR(2 DOWNTO 0);
BEGIN
X(0)<=C0;
X(1)<=C1;
X(2)<=C2;
PROCESS(A,B,X,CIN)
VARIABLE Y:STD_LOGIC_VECTOR(7 DOWNTO 0);
BEGIN
CASE X IS
WHEN "000" =>
C<="0"&A + "0"&B + "00000000"&CIN ;
WHEN "001" =>
C<="0"&A - "0"&B - "00000000"&CIN ;
WHEN "010" =>
Y:=A(6 DOWNTO 0) & CF;
CF<=A(7);
C<="0" & Y ;
WHEN "011" =>
Y:=CF & A(7 DOWNTO 1);
CF<= A(0);
C<="0" & Y;
WHEN "100" =>
Y(0):= A(0) AND B(0);
Y(1):= A(1) AND B(1);
Y(2):= A(2) AND B(2);
Y(3):= A(3) AND B(3);
Y(4):= A(4) AND B(4);
Y(5):= A(5) AND B(5);
Y(6):= A(6) AND B(6);
Y(7):= A(7) AND B(7);
C<= "0" & Y;
WHEN "101" =>
Y(0):= A(0) OR B(0);
Y(1):= A(1) OR B(1);
Y(2):= A(2) OR B(2);
Y(3):= A(3) OR B(3);
Y(4):= A(4) OR B(4);
Y(5):= A(5) OR B(5);
Y(6):= A(6) OR B(6);
Y(7):= A(7) OR B(7);
C<= "0" & Y;
WHEN OTHERS =>
Y(0):= NOT A(0) ;
Y(1):= NOT A(1) ;
Y(2):= NOT A(2) ;
Y(3):= NOT A(3) ;
Y(4):= NOT A(4) ;
Y(5):= NOT A(5) ;
Y(6):= NOT A(6) ;
Y(7):= NOT A(7) ;
C<= "0" & Y;
END CASE;
END PROCESS;
SALIDA<= C(7 DOWNTO 0);
CF<= C(

;
ZF<= NOT(C(7) OR C(6) OR C(5) OR C(4) OR C(3) OR C(2) OR C(1) OR C(0));
END SOLUCION;
donde cin es el carry de entrada
cf es el carry de salida
a y b son los datos a sumar cada uno de 8 bits
y es una variable q uso solo dentro de un proceso
c es una señal que uso dentro de mi arquitectura de 9 bits el bit ms lo uso comocarry de salida en caso haya
la verdad lo compilo y nada cre el problema esta en las concatenaciones con sumas pero no me deberia de funciobnar ?
