Forum Discussion

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

Quartus compilation problem

Hi all,

I met a strange problem: when i use quartusii,a project first compiled need the Logic Elements is 13%,but then, i compiled again is 1%. :confused:

4 Replies

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

    --- Quote Start ---

    Hi all,

    I met a strange problem: when i use quartusii,a project first compiled need the Logic Elements is 13%,but then, i compiled again is 1%. :confused:

    --- Quote End ---

    Hi cherry,

    without any change ???? No design change, no settings changed ....

    Kind regards

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

    this is the main program

    library ieee;

    use ieee.std_logic_1164.all;

    use ieee.std_logic_arith.all;

    entity up3_board1 is

    port( datain_adc: IN STD_LOGIC_VECTOR(7 downto 0);--input from ADC

    clock: IN STD_LOGIC; -- Clock Input from Altera Board

    dataout_serial: BUFFER STD_LOGIC_VECTOR(7 downto 0));--8 bit data for trasmitting

    end up3_board1;

    architecture BEHAVIOR of up3_board1 is

    ------------------ COMPONENT UARTTransmitter------------------------------------------------

    component UARTTransmitter

    port ( txd_data: IN STD_LOGIC_VECTOR( 7 DOWNTO 0));

    end component;

    ------------component UARTTrasmitter------------------------------------------------------

    BEGIN

    PROCESS(clock,datain_adc)

    BEGIN

    if datain_adc="00000000"--data from ADC,not correct yet..

    then

    dataout_serial<="00000000"; -- pH 0.0,fake data

    txd_data<=dataout_serial;

    elsif datain_adc="00000001"

    then

    dataout_serial<="00000101";-- pH 0.5

    txd_data<=dataout_serial;

    elsif datain_adc="00000010"

    then

    dataout_serial<="00010000"; -- pH 1.0

    txd_data<=dataout_serial;

    elsif datain_adc="00000011"

    then

    dataout_serial<="00010101"; -- pH 1.5

    txd_data<=dataout_serial;

    elsif datain_adc="00000100"

    then

    dataout_serial<="00100000";-- pH 2.0

    txd_data<=dataout_serial;

    elsif datain_adc="00000101"

    then

    dataout_serial<="00100101"; -- pH 2.5

    txd_data<=dataout_serial;

    elsif datain_adc="00000110"

    then

    dataout_serial<="00110000"; -- pH 3.0

    txd_data<=dataout_serial;

    elsif datain_adc="00000111"

    then

    dataout_serial<="00110101"; -- pH 3.5

    txd_data<=dataout_serial;

    elsif datain_adc="00001000"

    then

    dataout_serial<="01000000"; -- pH 4.0

    txd_data<=dataout_serial;

    elsif datain_adc="00001001"

    then

    dataout_serial<="01000101"; -- pH 4.5

    txd_data<=dataout_serial;

    elsif datain_adc="00001010"

    then

    dataout_serial<="01010000"; -- pH 5.0

    txd_data<=dataout_serial;

    elsif datain_adc="00001011"

    then

    dataout_serial<="01010101"; -- pH 5.5

    txd_data<=dataout_serial;

    elsif datain_adc="00001100"

    then

    dataout_serial<="01100000"; -- pH 6.0

    txd_data<=dataout_serial;

    elsif datain_adc="00001101"

    then

    dataout_serial<="01100101"; -- pH 6.5

    txd_data<=dataout_serial;

    elsif datain_adc="00001110"

    then

    dataout_serial<="01110000"; -- pH 7.0

    txd_data<=dataout_serial;

    elsif datain_adc="00001111"

    then

    dataout_serial<="01110101"; -- pH 7.5

    txd_data<=dataout_serial;

    elsif datain_adc="00010000"

    then

    dataout_serial<="10000000"; -- pH 8.0

    txd_data<=dataout_serial;

    elsif datain_adc="00010001"

    then

    dataout_serial<="10000101"; -- pH 8.5

    txd_data<=dataout_serial;

    elsif datain_adc="00010010"

    then

    dataout_serial<="10010000"; -- pH 9.0

    txd_data<=dataout_serial;

    elsif datain_adc="00010011"

    then

    dataout_serial<="10010101"; -- pH 9.5

    txd_data<=dataout_serial;

    elsif datain_adc="00010100"

    then

    dataout_serial<="10100000"; -- pH 10.0

    txd_data<=dataout_serial;

    elsif datain_adc="00010101"

    then

    dataout_serial<="10100101"; -- pH 10.5

    txd_data<=dataout_serial;

    elsif datain_adc="00010110"

    then

    dataout_serial<="10110000"; -- pH 11.0

    txd_data<=dataout_serial;

    elsif datain_adc="00010111"

    then

    dataout_serial<="10110101"; -- pH 11.5

    txd_data<=dataout_serial;

    elsif datain_adc="00011000"

    then

    dataout_serial<="11000000"; -- pH 12.0

    txd_data<=dataout_serial;

    elsif datain_adc="00011001"

    then

    dataout_serial<="11000101"; -- pH 12.5

    txd_data<=dataout_serial;

    elsif datain_adc="00011010"

    then

    dataout_serial<="11010000"; -- pH 13.0

    txd_data<=dataout_serial;

    elsif datain_adc="00011011"

    then

    dataout_serial<="11010101"; -- pH 13.5

    txd_data<=dataout_serial;

    elsif datain_adc="00011100"

    then

    dataout_serial_1<="11100000"; -- pH 14.0

    txd_data<=dataout_serial;

    end if;

    end process;

    end BEHAVIOR;

    ------------------------------------------------------------------

    the program is when compilation of main program this error comes out

    "Error (10482): VHDL error at up3_board1.vhd(34): object "txd_data" is used but not declared"..i already add the component program file UARTTransmitter.vhdl to this main program

    any idea???
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- Quote Start ---

    this is the main program

    library ieee;

    use ieee.std_logic_1164.all;

    use ieee.std_logic_arith.all;

    entity up3_board1 is

    port( datain_adc: IN STD_LOGIC_VECTOR(7 downto 0);--input from ADC

    clock: IN STD_LOGIC; -- Clock Input from Altera Board

    dataout_serial: BUFFER STD_LOGIC_VECTOR(7 downto 0));--8 bit data for trasmitting

    end up3_board1;

    architecture BEHAVIOR of up3_board1 is

    ------------------ COMPONENT UARTTransmitter------------------------------------------------

    component UARTTransmitter

    port ( txd_data: IN STD_LOGIC_VECTOR( 7 DOWNTO 0));

    end component;

    ------------component UARTTrasmitter------------------------------------------------------

    BEGIN

    PROCESS(clock,datain_adc)

    BEGIN

    if datain_adc="00000000"--data from ADC,not correct yet..

    then

    dataout_serial<="00000000"; -- pH 0.0,fake data

    txd_data<=dataout_serial;

    elsif datain_adc="00000001"

    then

    dataout_serial<="00000101";-- pH 0.5

    txd_data<=dataout_serial;

    elsif datain_adc="00000010"

    then

    dataout_serial<="00010000"; -- pH 1.0

    txd_data<=dataout_serial;

    elsif datain_adc="00000011"

    then

    dataout_serial<="00010101"; -- pH 1.5

    txd_data<=dataout_serial;

    elsif datain_adc="00000100"

    then

    dataout_serial<="00100000";-- pH 2.0

    txd_data<=dataout_serial;

    elsif datain_adc="00000101"

    then

    dataout_serial<="00100101"; -- pH 2.5

    txd_data<=dataout_serial;

    elsif datain_adc="00000110"

    then

    dataout_serial<="00110000"; -- pH 3.0

    txd_data<=dataout_serial;

    elsif datain_adc="00000111"

    then

    dataout_serial<="00110101"; -- pH 3.5

    txd_data<=dataout_serial;

    elsif datain_adc="00001000"

    then

    dataout_serial<="01000000"; -- pH 4.0

    txd_data<=dataout_serial;

    elsif datain_adc="00001001"

    then

    dataout_serial<="01000101"; -- pH 4.5

    txd_data<=dataout_serial;

    elsif datain_adc="00001010"

    then

    dataout_serial<="01010000"; -- pH 5.0

    txd_data<=dataout_serial;

    elsif datain_adc="00001011"

    then

    dataout_serial<="01010101"; -- pH 5.5

    txd_data<=dataout_serial;

    elsif datain_adc="00001100"

    then

    dataout_serial<="01100000"; -- pH 6.0

    txd_data<=dataout_serial;

    elsif datain_adc="00001101"

    then

    dataout_serial<="01100101"; -- pH 6.5

    txd_data<=dataout_serial;

    elsif datain_adc="00001110"

    then

    dataout_serial<="01110000"; -- pH 7.0

    txd_data<=dataout_serial;

    elsif datain_adc="00001111"

    then

    dataout_serial<="01110101"; -- pH 7.5

    txd_data<=dataout_serial;

    elsif datain_adc="00010000"

    then

    dataout_serial<="10000000"; -- pH 8.0

    txd_data<=dataout_serial;

    elsif datain_adc="00010001"

    then

    dataout_serial<="10000101"; -- pH 8.5

    txd_data<=dataout_serial;

    elsif datain_adc="00010010"

    then

    dataout_serial<="10010000"; -- pH 9.0

    txd_data<=dataout_serial;

    elsif datain_adc="00010011"

    then

    dataout_serial<="10010101"; -- pH 9.5

    txd_data<=dataout_serial;

    elsif datain_adc="00010100"

    then

    dataout_serial<="10100000"; -- pH 10.0

    txd_data<=dataout_serial;

    elsif datain_adc="00010101"

    then

    dataout_serial<="10100101"; -- pH 10.5

    txd_data<=dataout_serial;

    elsif datain_adc="00010110"

    then

    dataout_serial<="10110000"; -- pH 11.0

    txd_data<=dataout_serial;

    elsif datain_adc="00010111"

    then

    dataout_serial<="10110101"; -- pH 11.5

    txd_data<=dataout_serial;

    elsif datain_adc="00011000"

    then

    dataout_serial<="11000000"; -- pH 12.0

    txd_data<=dataout_serial;

    elsif datain_adc="00011001"

    then

    dataout_serial<="11000101"; -- pH 12.5

    txd_data<=dataout_serial;

    elsif datain_adc="00011010"

    then

    dataout_serial<="11010000"; -- pH 13.0

    txd_data<=dataout_serial;

    elsif datain_adc="00011011"

    then

    dataout_serial<="11010101"; -- pH 13.5

    txd_data<=dataout_serial;

    elsif datain_adc="00011100"

    then

    dataout_serial_1<="11100000"; -- pH 14.0

    txd_data<=dataout_serial;

    end if;

    end process;

    end BEHAVIOR;

    ------------------------------------------------------------------

    the program is when compilation of main program this error comes out

    "Error (10482): VHDL error at up3_board1.vhd(34): object "txd_data" is used but not declared"..i already add the component program file UARTTransmitter.vhdl to this main program

    any idea???

    --- Quote End ---

    Hi,

    I'm not a VHDL expert, but I think you have to define a signal called txd_data in your architecture.

    Kind regards

    GPK

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

    Are you aware you have created a completly asynchronous design? there are no registers in this code.

    Also, you have not instantiated a UART Transmitter.