اطلاعیه

Collapse
No announcement yet.

اشکال در کامپایل برنامه

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    اشکال در کامپایل برنامه

    سلام
    من تازه دارم vhdl یاد میگیرم
    همش برنامه هامerorr میدن :cry:
    برنامه ها وerorrهاشو میذارم اگه کسی میدونه بگه علتش چیه که erorrمیده و باید چکارکنم

    #2
    پاسخ : اشکال در کامپایل برنامه

    برنامه1

    library IEEE;
    use IEEE.STD_LOGIC_1164.all;

    entity buf is
    port(
    a : in STD_LOGIC;
    b : in STD_LOGIC;
    oe : in STD_LOGIC;
    y : out STD_LOGIC
    );
    end buf;

    --}} End of automatically maintained section

    architecture bu of buf is
    begin

    -- enter your statements here --
    process(oe,a ,b)
    begin
    if oe='0' then y<=a and b;
    else if oe='1' then y<='z';
    end if;
    end process
    end bu;

    اینم خطاش

    # Error: COMP96_0019: r2.vhd : (48, 8): Keyword "if" expected.
    # Error: COMP96_0015: r2.vhd : (48, 8): ';' expected.
    # Error: COMP96_0019: r2.vhd : (49, 5): Keyword "process" expected.
    # Error: COMP96_0019: r2.vhd : (50, 0): Keyword "end" expected.
    # Compile failure 4 Errors 0 Warnings Analysis time : 0.0 [s]

    دیدگاه


      #3
      پاسخ : اشکال در کامپایل برنامه

      برنامه2

      library IEEE;
      use IEEE.STD_LOGIC_1164.all;

      entity equabo is
      port(
      a : in STD_LOGIC_VECTOR(3 downto 0);
      b : in STD_LOGIC_VECTOR(3 downto 0);
      equals : in STD_LOGIC
      );
      end equabo;

      --}} End of automatically maintained section

      architecture equabo_arch of equabo is
      begin

      -- enter your statements here --
      equals<=(a(3)xnor b(3))
      and(a(2) xnor (b(2))
      and(a(1) xnor (b(1))
      and (a(0) xnor (b(0));
      end equabo_arch;

      خطا

      # Error: COMP96_0015: r2.vhd : (45, 24): &#039' expected.
      # Error: COMP96_0049: r2.vhd : (45, 3): Syntax error in expression.
      # Error: COMP96_0031: r2.vhd : (44, 7): Simple expression expected.
      # Error: COMP96_0015: r2.vhd : (46, 1): &#039' expected.
      # Error: COMP96_0049: r2.vhd : (44, 3): Syntax error in expression.
      # Error: COMP96_0031: r2.vhd : (43, 7): Simple expression expected.
      # Error: COMP96_0233: Fatal error : INTERNAL COMPILER ERROR
      # (compiled file "c:\My_Designs\r2\src\r2.vhd" - parsing process)
      # Error: COMP96_0016: r2.vhd : (46, 5): Design unit declaration expected.
      # Compile failure 8 Errors 0 Warnings Analysis time : 0.0 [s]

      دیدگاه


        #4
        پاسخ : اشکال در کامپایل برنامه

        عزیزم برنامه ها رو نمیشه خوند
        لطفا موقع گذاشتن برنامه اونو چپ چین کن یعنی برنامه رو انتخاب و دکمه چپ چین بالا رو بزن
        مثل این


        library IEEE;
        use IEEE.STD_LOGIC_1164.all;

        entity equabo is
        port(
        a : in STD_LOGIC_VECTOR(3 downto 0);
        b : in STD_LOGIC_VECTOR(3 downto 0);
        equals : in STD_LOGIC
        );
        end equabo;

        چون از روی نوشته های خودت کپی کردم بازم جالب نشد ولی خودت اگه این کار رو بکنی خیلی خوب میشه و بچه ها هم میخونن اما اینجوری همه ردش میکنن :read:
        الکترونیک همه کاره دنیا

        دیدگاه


          #5
          پاسخ : اشکال در کامپایل برنامه

          ممنون که گفتی اصلا دقت نکردم
          اینم برنامه اول

          ;library IEEE
          ;use IEEE.STD_LOGIC_1164.all

          entity equabo is
          ) port
          ;(a : in STD_LOGIC_VECTOR(3 downto 0
          ; ( b : in STD_LOGIC_VECTOR(3 downto 0
          equals : in STD_LOGIC
          ; (
          ;end equabo

          architecture equabo_arch of equabo is
          begin

          -- enter your statements here --
          (( equals<=(a(3)xnor b(3
          ((and(a(2) xnor (b(2
          (( and(a(1) xnor (b(1
          ((and (a(0) xnor (b(0
          ;end equabo_arch

          این خطا رو میده
          Error: COMP96_0019: r2.vhd : (48, 8): Keyword "if" expected#
          Error: COMP96_0015: r2.vhd : (48, 8): ';' expected#
          Error: COMP96_0019: r2.vhd : (49, 5): Keyword "process" expected#
          Error: COMP96_0019: r2.vhd : (50, 0): Keyword "end" expected#
          Compile failure 4 Errors 0 Warnings Analysis time : 0.0

          دیدگاه


            #6
            پاسخ : اشکال در کامپایل برنامه

            نوشته اصلی توسط r2d
            ممنون که گفتی اصلا دقت نکردم
            اینم برنامه اول

            ;library IEEE
            ;use IEEE.STD_LOGIC_1164.all

            entity equabo is
            ) port
            ;(a : in STD_LOGIC_VECTOR(3 downto 0
            ; ( b : in STD_LOGIC_VECTOR(3 downto 0
            equals : in STD_LOGIC
            ; (
            ;end equabo

            architecture equabo_arch of equabo is
            begin

            -- enter your statements here --
            (( equals<=(a(3)xnor b(3
            ((and(a(2) xnor (b(2
            (( and(a(1) xnor (b(1
            ((and (a(0) xnor (b(0
            ;end equabo_arch

            این خطا رو میده
            Error: COMP96_0019: r2.vhd : (48, 8): Keyword "if" expected#
            Error: COMP96_0015: r2.vhd : (48, 8): ';' expected#
            Error: COMP96_0019: r2.vhd : (49, 5): Keyword "process" expected#
            Error: COMP96_0019: r2.vhd : (50, 0): Keyword "end" expected#
            Compile failure 4 Errors 0 Warnings Analysis time : 0.0
            سیگنال equals باید خروجی باشه که الان ورودی
            پشت b ها پرانتز اضافه داری
            انتهای دستور انتسابی که نوشتی، ; نداره
            واین برنامه داره کد های دیگه ایی رو هم میبینه که شما نمیبینی
            ببین زیر برنامه یا جایی چیزی ننوشتی؟
            داره به کلمه if گیر میده-اینجا if داره؟
            خدا گفت : به جهنم ببریدش، او برگشت و با تعجب به خدا نگاه کرد. خدا گفت : به بهشت ببریدش. فرشتگان پرسیدند: چرا؟! خدا گفت : او هنوز به من امیدوار است...

            دیدگاه


              #7
              پاسخ : اشکال در کامپایل برنامه

              سلام
              یه اشکال دیگه که دارم اینه که تو اکثر برنامه هام این خطا رومیبینمخصوصا خطای اول رو
              میشه بگید اشکال کارم کجاست

              Error: COMP96_0015: re.vhd : (43, 23): ';' expected#
              Error: COMP96_0019: re.vhd : (43, 23): Keyword "end" expected#
              Error: COMP96_0016: re.vhd : (43, 24): Design unit declaration expected#
              [ Compile failure 3 Errors 0 Warnings Analysis time : 0.0 [s#
              برنامه اش هم اینه

              ;library IEEE
              ;use IEEE.STD_LOGIC_1164.all

              entity decoder is
              ) port
              ; a : in STD_LOGIC
              ;b : in STD_LOGIC
              ; enable : in STD_LOGIC
              ( s : out STD_LOGIC_VECTOR(3 downto 0
              ;(
              ;end decoder


              architecture decoder_arch of decoder is
              begin
              's<="0001" when a='0',b='0"
              a='0',b=1' "0010"when

              دیدگاه


                #8
                پاسخ : اشکال در کامپایل برنامه

                [pre]
                ببخشید من بازم برنامه رو مرتب نشده فرستادم

                ;library IEEE
                ;use IEEE.STD_LOGIC_1164.all

                entity decoder is
                ) port
                ;a : in STD_LOGIC
                ; b : in STD_LOGIC
                ; enable : in STD_LOGIC
                ( s : out STD_LOGIC_VECTOR(3 downto 0
                ;(

                ;end decoder



                architecture decoder_arch of decoder is
                begin

                -- enter your statements here --
                ' s<="0001" when a='0',b='0

                "0010" when a='0',b='1'
                "0100" when a='1',b='0'
                ;"1000" when a='1',b='1'
                end decoder_arch
                [/pre]

                دیدگاه


                  #9
                  پاسخ : اشکال در کامپایل برنامه

                  سلام بچه ها
                  داشتم برنامه ی این دوستمون رو کمی تغییر میدادم که به یک مشکل جالب برخوردم

                  وقتی یک سیگنال را std_logic تعریف کردم و به آن z را نسبت دادم کامپایلر خطای : Type of y is incompatible with type of 'z

                  signal y : std_logic;

                  y <= 'z';

                  مگر z جزء مقادیری که قابل سنتز نیست ؟؟
                  .
                  .
                  .

                  دیدگاه


                    #10
                    پاسخ : اشکال در کامپایل برنامه

                    :angry:

                    دیدگاه


                      #11
                      پاسخ : اشکال در کامپایل برنامه

                      نوشته اصلی توسط r2d
                      همون برنامه دیکودر رو اینجوری نوشتم بازم خطا میده



                      architecture decoder_arch of decoder is
                      begin

                      process
                      begin
                      ; if( a='0',b='0&#039 then s<="0001"
                      ; else if(a='0',b='1&#039 then s<="0010"
                      ; else if( a='1',b='0&#039 then s<="0100"
                      ;" else s<="1000
                      ; end if
                      ; end process
                      ;end decoder_arch
                      این خطا رو میده

                      Error: COMP96_0019: rrr.vhd : (50, 8): Keyword "if" expected#
                      Error: COMP96_0015: rrr.vhd : (50, 8): ';' expected #
                      Error: COMP96_0019: rrr.vhd : (51, 5): Keyword "if" expected#
                      Error: COMP96_0358: rrr.vhd : (51, 5): Statement is not labeled#
                      Error: COMP96_0019: rrr.vhd : (52, 0): Keyword "end" expected#
                      [Compile failure 5 Errors 0 Warnings Analysis time : 0.0 [s#
                      کلا هر موقع با if برنامه مینویسم بازم همین خطاها رو میده :angry:


                      اول از همه باید بهتون تذکر بدم که چرا همون جوری که دوستمون یاد داد چپ نویس نکردید
                      و حالا برنامه ی صحیح رو در زیر میارم که بدون هیچ مشکلی سنتز شد


                      LIBRARY IEEE;
                      USE IEEE.STD_LOGIC_1164.ALL;

                      ENTITY decoder IS
                      PORT(
                      a : IN STD_LOGIC ;
                      b : IN STD_LOGIC ;
                      s : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)
                      );
                      END decoder;


                      ARCHITECTURE behavior OF decoder IS
                      BEGIN

                      PROCESS(a,b)
                      BEGIN

                      IF (a='0' AND b='0&#039 THEN s <= "0001";
                      ELSIF (a='0' AND b='1&#039 THEN s <= "0010";
                      ELSIF (a='1' AND b='0&#039 THEN s <= "0100";
                      ELSE s <= "1000";

                      END IF;
                      END PROCESS;

                      END behavior;


                      مشکلات برنامه ی شما :
                      • [li]اولا بجای ELSE IF باید از ELSIF استفاده کنید[/li]
                        [li]باید جلوی PROCESS سیگنال هایی که تغییر میکنند رو بنویسی[/li]
                        [li]در شرط IF بجای استفاده از کاما باید از AND استفاده کنی[/li]



                      چندتا نکته درباره ی شیوه ی نگارش:
                      • [li]بهتر بود کلمات اصلی متن رو بزرگنویس مینوشتی[/li]
                        [li]بهتر بود برای خوانایی بیشتر متن چپ نویس مینوشتی[/li]
                        [li] و بهتر بود جملاتی رو که با هم در ارتباط هستند با ایجاد TAB در یک فاصله جلوتر مینوشتی تا بهتر بشه خوندشون[/li]


                      و در آخر
                      این ها رو گفتم که شما هم زودتر به جوابتون برسید

                      راستی کسی جوابی در مورد سوال قبلیم نداره ؟؟

                      یاعلی...

                      دیدگاه


                        #12
                        پاسخ : اشکال در کامپایل برنامه

                        مشکلات برنامه ی شما :

                        اولا بجای ELSE IF باید از ELSIF استفاده کنید
                        باید جلوی PROCESS سیگنال هایی که تغییر میکنند رو بنویسی
                        در شرط IF بجای استفاده از کاما باید از AND استفاده کنی



                        چندتا نکته درباره ی شیوه ی نگارش:

                        بهتر بود کلمات اصلی متن رو بزرگنویس مینوشتی
                        بهتر بود برای خوانایی بیشتر متن چپ نویس مینوشتی
                        و بهتر بود جملاتی رو که با هم در ارتباط هستند با ایجاد TAB در یک فاصله جلوتر مینوشتی تا بهتر بشه خوندشون


                        و در آخر
                        این ها رو گفتم که شما هم زودتر به جوابتون برسید

                        راستی کسی جوابی در مورد سوال قبلیم نداره ؟؟

                        یاعلی...
                        خیلی ممنون از راهنماییت خصوصا در مورد elsif اخه اصلا متوجه نمیشدم مشکلش چیه

                        دیدگاه


                          #13
                          پاسخ : اشکال در کامپایل برنامه

                          نوشته اصلی توسط ShahiMV
                          سلام بچه ها
                          داشتم برنامه ی این دوستمون رو کمی تغییر میدادم که به یک مشکل جالب برخوردم

                          وقتی یک سیگنال را std_logic تعریف کردم و به آن z را نسبت دادم کامپایلر خطای : Type of y is incompatible with type of 'z

                          signal y : std_logic;

                          y <= 'z';

                          مگر z جزء مقادیری که قابل سنتز نیست ؟؟
                          .
                          .
                          .

                          کسی در این مورد نظری نداره .....؟

                          دیدگاه


                            #14
                            پاسخ : اشکال در کامپایل برنامه

                            سلام
                            این برنامه رو اجرا کردم خطا میده

                            library IEEE;
                            use ieee.std_logic_1164.all;
                            use IEEE.STD_LOGIC_UNSIGNED.ALL;

                            entity fulladder is
                            Port ( a : in STD_LOGIC_VECTOR (3 downto 0);
                            b : in STD_LOGIC_VECTOR (3 downto 0);
                            cin : in STD_LOGIC;
                            cout : out STD_LOGIC;
                            sum : out STD_LOGIC;
                            end fulladder;

                            architecture Behavioral of reihaneh is
                            component adder
                            port(i1,i2,i3:in std_logic;
                            o1,o2ut std_logic);
                            end component;
                            signal s1,s2,s3:std_logic;
                            begin
                            en<='1';
                            add1:adder port map (a(0),b(0),cin,sum(0),s1);
                            add2:adder port map (a(1),b(1),s1,sum(1),s2);
                            add3:adder port map (a(2),b(2),s2,sum(2),s2);
                            add4:adder port map (a(3),b(3),s3,sum(3),cout);

                            end Behavioral;

                            ا
                            ین خطا رو میده

                            # Error: COMP96_0019: reihaneh.vhd : (29, 1): Keyword "end" expected.
                            # Error: COMP96_0016: reihaneh.vhd : (29, 11): Design unit declaration expected.

                            [/left]

                            دیدگاه


                              #15
                              پاسخ : اشکال در کامپایل برنامه

                              آخه بگم خدا چیکارت نکنه ... وقتی داری برنامه مینویسی یکم توجه داشته باش

                              در entity بعد خط یک دونه مانده به آخر پرانتز رو جا انداختی که باید به صورت زیر در بیاد
                              sum : out STD_LOGIC );

                              وقتی این رو درست کردی تازه گند کار در میاد و Erorr های بسیاری میده
                              آخه برادر جان اسم entity شما فول ادر است ...بعد در ساختار رفتار reihaneh رو میخوای تعریف کنی (خط اولش) مگر اینکه موجودیت دیگه ای هم داشته باشی
                              نه اصلا شما به من بگو این ریحانه کی هست که حتی وسط برنامه نویسی هم به یادشی ها ؟ ها؟

                              بعدش اصلا en رو تعریف نکردی ....
                              و...

                              فکر کنم دوباره برنامت رو با دقت بنویسی مشکلت حله
                              بعدش خبرش رو به ما بده

                              از دست ما که ناراحت نشدی ؟؟ :biggrin:


                              ----------------------------------------------------------
                              بعد از 2 دقیقه :

                              دوست ندارم از دستم ناراحت بشی ...
                              این هم برنامه ی تصحیح شده ی شما

                              library IEEE;
                              use ieee.std_logic_1164.all;
                              use IEEE.STD_LOGIC_UNSIGNED.ALL;

                              entity fulladder is
                              Port ( a : in STD_LOGIC_VECTOR (3 downto 0);
                              b : in STD_LOGIC_VECTOR (3 downto 0);
                              cin : in STD_LOGIC;
                              cout : out STD_LOGIC;
                              sum : out STD_LOGIC_vector(3 downto 0)
                              );

                              end fulladder;


                              architecture Behavioral of fulladder is

                              component adder
                              port(i1,i2,i3:in std_logic;
                              o1,o2:out std_logic);
                              end component;

                              signal en,s1,s2,s3:std_logic;

                              begin
                              en<='1';

                              add1:adder port map (a(0),b(0),cin,sum(0),s1);
                              add2:adder port map (a(1),b(1),s1,sum(1),s2);
                              add3:adder port map (a(2),b(2),s2,sum(2),s2);
                              add4:adder port map (a(3),b(3),s3,sum(3),cout);

                              end Behavioral;


                              کارایی که کردم
                              • [li]پرانتز آخر موجودیت[/li]
                                [li]تغییر اسم صدا شونده در ساختار[/li]
                                [li]تعریف سیگنال en[/li]
                                [li]سیگنال sum هم باید به صورت برداری تعریف میشد[/li]


                              دیدگاه

                              لطفا صبر کنید...
                              X