اطلاعیه

Collapse
No announcement yet.

generic جیه؟؟؟

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

    generic جیه؟؟؟

    سلام :bye
    تو کتاب که میخوندم نوشته بود : :nerd:
    از generic برای انتقال مقادیر استاتیک استفاده میشه و به عنوان نمونه برای تعیین خطای انتشار یا پهنای باس اطلاعات میشه ازش استفاده کرد.

    این طوری که معلومه 3 تا کاربرد داره oo:......دوستان کسی توضیح میشه؟؟؟؟....اصلا متوجه نشدم :angry:


    سوال 2 : فرق دو خط زیر چیه؟؟؟؟؟....دومی میگه اگه صفر بود و بعد 1 شد.....اولی میگه اگه 1 شد(یعنی حتما قبلا 1 نبوده که میگیم اگه 1 شد....و صفر بوده دیگه)>>>حالا این دو تا فرقشون چیه؟؟؟؟؟؟

    [code=vhdl]
    if clk=1
    و
    if rising_edge(clk)
    [/code]


    دوستان امیدوارد از این که سوال ها سطح پایین هستش شاکی نشن از دستمون.... :sad:
    اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

    اگه دوس دارید سریع به جواب برسید :
    1) قبل از پرسیدن سوال، بسرچید.
    2) سوالاتون رو با جزئیات کامل مطرح کنید.

    #2
    پاسخ : generic جیه؟؟؟

    توی کد C یک چیزی داریم به اسم #define که میایم و برای لیبل استفاده می کنیم. generic هم همین حکم رو توی VHDL داره. یعنی یک مقدار اون اول میدی بهش و بعد توی کدت از این لیبل استفاده می کنی.
    فرقشون توی حالت قبلیشه. توی C یا صفر داریم و یا یک. اما توی VHDL صفر داریم، یک داریم، نامشخص داریم ه با X نشون میدن، امپدانس بالا داریم که با Z نشون میدند و ... . اون خط دوم میاد و میگه اگر کلاک لبه بالارونده از صفر به یک داشت.
    ---------
    .
    .
    ...........

    دیدگاه


      #3
      پاسخ : generic جیه؟؟؟

      constant تو vhdl فک کنم حکم مون #define رو در c داشته باشه......

      محسن میگم برا generic درست گفتی؟؟؟؟
      اگه اینی که گفتی باشه پس چطور میشه ازش در تعیین خطای انتشار یا پهنای باس اطلاعات استفاده کرد؟
      اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

      اگه دوس دارید سریع به جواب برسید :
      1) قبل از پرسیدن سوال، بسرچید.
      2) سوالاتون رو با جزئیات کامل مطرح کنید.

      دیدگاه


        #4
        پاسخ : generic جیه؟؟؟

        توی C یکجا میای و از define استفاده می کنی و یکجا میای داخل تابع یک مقداری رو تعریف می کنی. فرق generic با constant هم توی اینه. generic اون اولای برنامه تو entity تعریف میشه.(خیلی مطمئن نیستم).
        ببین مثلا تو یک گیت AND می نویسی توی برنامه ات. بعد میای و جای دیگه پورت مپ استفاده می کنی. اینجاست که با توجه به برنامه جدیدت می تونی تاخیرهای انتشار مختلفی رو برای گیت AND توی نمونه برنامه های مختلف لحاظ کنی. (تو همه از همون AND که اول تعریف کردی استفاده می کنی) . اما اگر Constant تعریف کنی هر جا که از AND استفاده کنی یک تاخیر خواهی داشت.
        ---------
        .
        .
        ...........

        دیدگاه


          #5
          پاسخ : generic جیه؟؟؟

          Generic در Entity ماژولها به جز Top Module تعریف میشه، برای کاربردش مثال میزنم:
          فرض کنید که یک کد برای انتقال دیتای سریال با پروتکل UART میخواین بنویسین، در اینجا ممکنه بعضی پارامترها مثل سرعت انتقال اطلاعات، داشتن یا نداشتن بیت Checksum، تعداد بیت های Stop و تعداد بیت های دیتا رو بخواین به صورت پارامتری داشته باشین تا اگه لازم شد بتونید به راحتی با تغییر این پارامترها و بدون دست بردن در کد که هم سخت تره و هم امکان اشتباه رو داره و زمان بر تره، به هدفتون برسین. در این صورت این پارامترها رو به صورت Generic تعریف می کنید و در ماژول بالاتر در قسمت Instantiation اون کامپوننت، از Generic Map استفاده می کنید (اگه Generic Map استفاده نشه مقادیر پیش فرض در قسمت Entity استفاده میشن).
          [code=vhdl]entity UART is
          Generic(
          BaudRateDiv : integer := 434;
          CheckSumBit : boolean := false
          );
          Port(
          .
          .
          .
          );
          end entity;

          -- UART Instantiation in Top Module:
          Inst_UART: UART
          Generic Map(
          BaudRateDiv <= 5208,
          CheckSumBit <= False
          )
          Port Map(
          .
          .
          .
          );[/code]
          لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
          لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
          با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
          اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
          يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"

          دیدگاه


            #6
            پاسخ : generic جیه؟؟؟

            generic رو تقریبا گرفتم چیه....اینم یه مثال....مقدار بود ریت و فرکانس رو با generic تعریف میکنیم تا هر موقع خواستیم تغییرش بدیم....
            [code=vhdl]
            generic (
            CLK_FREQ : integer := 50; -- Main frequency (MHz)
            SER_FREQ : integer := 9600 -- Baud rate (bps)
            );
            [/code]

            ولی من هنوز فرق بین constant و generic رو نفهمیدم..... :cry: :angry:
            اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

            اگه دوس دارید سریع به جواب برسید :
            1) قبل از پرسیدن سوال، بسرچید.
            2) سوالاتون رو با جزئیات کامل مطرح کنید.

            دیدگاه


              #7
              پاسخ : generic جیه؟؟؟

              اگر قرار باشه از تکه کد نوشته شده در یک برنامه دیگه استفاده بشه، میشه پارامترهایی رو که با generic مشخص شده اند رو عوض کرد مثل همون باودریت که اشاره کردی.
              اما معمولا constant رو خود برنامه نویش می نویسه و تویی که از تکه کد اون توی برنامه ات استفاده می کنی نمی تونی تغییرش بدی.
              البته این نظر خود منه.
              ---------
              .
              .
              ...........

              دیدگاه


                #8
                پاسخ : generic جیه؟؟؟

                I AM BLACKBOARD




                اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

                اگه دوس دارید سریع به جواب برسید :
                1) قبل از پرسیدن سوال، بسرچید.
                2) سوالاتون رو با جزئیات کامل مطرح کنید.

                دیدگاه


                  #9
                  پاسخ : generic جیه؟؟؟

                  با Constant نمیشه تعداد بیت های باس رو مشخص کرد چون در architecture تعریف میشه.
                  میشه Instant های مختلف از یک Component ایجاد کرد که توی هر کدوم مقدار Generic متفاوت باشه مثلاً چند پورت سریال با Baud rate های مختلف بدون نیاز به نوشتن فایل های جداگانه برای هر کدوم ولی با Constant نمیشه این کار رو انجام داد.
                  لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
                  لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
                  با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
                  اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
                  يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"

                  دیدگاه

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