Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
17 years ago

Problema De Compilacion En Quartus 2

Hola!. Por favor ayudenme con este código. A mi parecer está correcto pero me aparecen errores:confused: al compilar en QUARTUS 2. Les agradezco su ayuda anticipademente.:)

library ieee;

use ieee.std_logic_1164.all;

entity ejemplo_vhdl is

port(B1,A1,B2,A2,G1n,G2n: in std_logic;

Y1,Y2: out std_logic_vector(0 to 3));

end ejemplo_vhdl;

Architecture sol of ejemplo_vhdl is

signal Z1,Z2: std_logic_vector(0 to 3);

begin

With B1&B1 select

Z1(0)<='1'when "00";

Z1(1)<='1'when "01";

Z1(2)<='1'when "10";

Z1(3)<='1'when "0thers";

With B2&A2 select

Z2(0)<='1'when "00";

Z2(1)<='1'when "01";

Z2(2)<='1'when "10";

Z2(3)<='1'when "0thers";

Y1<=Z1 when G1n='1' else "0000";

Y2<=Z2 when G2n='1' else "0000";

end sol;

3 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Estás haciendo un mal uso de la sentencia "with-select" ésta sólo puede asignar a una única señal. La opción others no va entre comillas. Debes utilizar señales auxiliares para concatenar las dos señales de un bit. Este código, realiza lo mismo que tu estabas esperando.

    
    library ieee;
    use ieee.std_logic_1164.all;
    entity ejemplo_vhdl is
    port(B1,A1,B2,A2,G1n,G2n: in std_logic;
    Y1,Y2: out std_logic_vector(0 to 3));
    end ejemplo_vhdl;
    Architecture sol of ejemplo_vhdl is
    signal Z1,Z2: std_logic_vector(0 to 3);
    signal b1_b1,b2_a2: std_logic_vector(1 downto 0);
    begin
    b1_b1<=B1&B1;
    b2_a2<=B2&A2;
    With b1_b1 select
    Z1<= "1000" when "00",
    	 "0100" when "01",
    	 "0010" when "10",
         "0001" when others;
    With b2_a2 select
    Z2<= "1000" when "00",
    	 "0100" when "01",
    	 "0010" when "10",
         "0001" when others;
    Y1<=Z1 when G1n='1' else "0000";
    Y2<=Z2 when G2n='1' else "0000";
    end sol;
    
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Ups!, lo que dice es cierto puse de más las comillas. Lo que si desconocía es que a la sentencia "with-select" se le puede asignar una única señal. Muchísimas gracias!.

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    buenos dias

    alguien sabe porque quartus se me demora tanto en compilar un programa?

    tengo varios programas que los junto por medio de un esquematico los cuales son una rom, un banco de registros, una alu, multiplexoras y demas pero lo que no entiendo es porque cada programa individualmente se me demora entre 30 seg y 1:30 en compilar, pero cuando los uno todos en uno solo se me demora media hora

    por favor si alguien sabe como solucionar este problema se lo agradeceria mucho

    gracias