اطلاعیه

Collapse
No announcement yet.

مشکل با یک برنامه(vhdl)

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

    مشکل با یک برنامه(vhdl)

    سلام
    دوستان چرا برنامه زیر کامپایل نمی شه و error می ده اشکال از چیه...؟؟؟
    LIBRARY IEEE;
    use ieee.std_logic_1164.all;
    entity rrr is
    port( push:in std_logic;
    pushh:in std_logic;
    qut bit_vector(13 downto 0));
    end;
    architecture ffff of rrr is
    begin
    process(push,pushh)
    variable cnt: integer range 0 to 9:=0;
    begin
    if (push'event and push='1'and cnt<10 )then
    cnt:=cnt+1;
    elsif(pushh'event and pushh='1'and cnt>1 )then
    cnt:=cnt-1;
    end if;
    case cnt is
    when 1=> q<="00000000000110";
    when 2=> q<="00000001011011";
    when 3=> q<="00000001001111";
    when 4=> q<="00000001100110";
    when 5=> q<="00000001101101";
    when 6=> q<="00000001111100";
    when 7=> q<="00000000000111";
    when 8=> q<="00000001111111";
    when 9=> q<="00000001100111";
    when others=>null;
    end case;
    end process ;
    end;
    هرگاه زندگی را جهنم دیدی, سعی کن پخته بیرون آیی, سوختن رو همه بلدند

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

    سلام

    error نداره - مشکل از کامپایلرته -من با Active-HDL انجام دادم ، کامپایل شد
    hardware-ui

    دیدگاه


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

      دوستمون راست می گه، منم با مدلسیم کامپایل کردم ارور نداد. ولی به نظرم این کدی که نوشتی قابل پیلده سازی عملی نباشه.

      دیدگاه


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

        نوشته اصلی توسط moh3n_dl
        دوستمون راست می گه، منم با مدلسیم کامپایل کردم ارور نداد. ولی به نظرم این کدی که نوشتی قابل پیلده سازی عملی نباشه.
        دوست عزیز ممنون می شم بیشتر توضیح بدید که چرا نمی شه این کار رو عملی اجرا کرد
        هرگاه زندگی را جهنم دیدی, سعی کن پخته بیرون آیی, سوختن رو همه بلدند

        دیدگاه


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

          دوستان من این برنامه رو با Quartus ورژن 9و10 تست کردم وerror می ده تا حالا کسی این مشکلات باQuartusداشته
          دوستان اگه ممکنه باQuartus ورژن پایین تست کنید ....
          اینم error
          Error (10820): Netlist error at rrr.vhd(13): can't infer register for cnt[0] because its behavior depends on the edges of multiple distinct clocks
          Error (10820): Netlist error at rrr.vhd(13): can't infer register for cnt[1] because its behavior depends on the edges of multiple distinct clocks
          Error (10820): Netlist error at rrr.vhd(13): can't infer register for cnt[2] because its behavior depends on the edges of multiple distinct clocks
          Error (10820): Netlist error at rrr.vhd(13): can't infer register for cnt[3] because its behavior depends on the edges of multiple distinct clocks
          Error (10822): HDL error at rrr.vhd(13): couldn't implement registers for assignments on this clock edge
          Error (10822): HDL error at rrr.vhd(15): couldn't implement registers for assignments on this clock edge
          Error: Can't elaborate top-level user hierarchy
          Error: Quartus II Analysis & Synthesis was unsuccessful. 7 errors, 1 warning
          Error: Peak virtual memory: 214 megabytes
          Error: Processing ended: Wed Jan 05 09:04:21 2011
          Error: Elapsed time: 00:00:03
          Error: Total CPU time (on all processors): 00:00:02
          Error: Quartus II Full Compilation was unsuccessful. 9 errors, 1 warning

          هرگاه زندگی را جهنم دیدی, سعی کن پخته بیرون آیی, سوختن رو همه بلدند

          دیدگاه


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

            برای مثال اون قسمت شرطی کدت رو نگاه کن ، push و cnt دو نوع مختلف از داده هستن.
            بطور کلی کدی بیشتر شبیه کدهای behavioral هست.

            دیدگاه


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

              نمیشه یه متغییر یا سیگنالی رو با لبه ی دو سیگنال مختلف مقدار دهی کرد. توی اولین if مقدار cnt رو با کلاک push زیاد می کنید. تو دومی مقدار cnt رو با کلاک pushh کاهش میدین!. برنامه بیشتر به C شبیه تا VHDL

              دیدگاه


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

                سلام.
                در کل این برنامه آماتوری نوشته شده و معلومه درک صحیحی از HDL نداری.
                به هر حال اون قسمت case رو بیار بیرون پروسس.

                with cnt select
                q <= "00000000000110" when 1,
                "00000001011011" when 2
                ....

                دیدگاه

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