اطلاعیه

Collapse
No announcement yet.

Verilog یا VHDL , مساله این است؟!!

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

    Verilog یا VHDL , مساله این است؟!!

    خوب مثال دیگر قسمت های الکترونیک و برق که برای انجام یه کار هزار و یک روش هست ولی خوب اصولا یه سری روش هست که حرفه ها استفاده میکنم و یه سری دیگه رو متوسطا که من دوس دارم با لفظ coder صداشون کنم ( خودم هم اگه خدا قبول کنه از همین قشرم :biggrin: ) و افراد تازه کار,, ولی ولی تو این دنیای دیجیتال و FPGA زبان های هست که خود من تو اینکه کدومو حرفه ای پیش بگیرم برم جلو توش موندم , Verilog راحته اصن آدم شروع که میکنه باهاش حال میکنه , VHDL قوی و منسجم تر , SystemC که دیگه براساس C هست اینا که دیگه همه استادید ولی سوال اینکه که کدومو رو به عنوان زبان اصلی خودمون انتخاب کنیم و سعی کنم تو اونی قوی تر بشیم ؟ یا بهتر بگم حرفه ها چیکار میکنن؟


    ممنون

    #2
    پاسخ : Verilog یا VHDL , مساله این است؟!!

    سلام
    به نظر من هیچ کدوم فرقی باهم ندارن چون هر کاری بخوای انجام بدی میتونی با همشون به جواب برسی ببین بیشتر با کدوم راحتی مثلا بچه های الکترونیک با VHDL راحتا و کامپیوتری ها با system c ولی بیشتر حرفه ای ها با Verilog کار میکنن. موفق باشی
    گلن نه دي،گئدن نه دي؟ بلک نه دي،کفن نه دي!؟
    بو دونيا اوُز کئفينده دي، ياغيش يويور،گون قورودور.

    دیدگاه


      #3
      پاسخ : Verilog یا VHDL , مساله این است؟!!

      ممنون از نظرتون
      من هم تقریبا از هر دو سر در میارم ولی خوب میخاستم یکی رو به عنوان زیان اصلی انتخاب کنم و روی اون مانور بدم :rolleyes:

      دیدگاه


        #4
        پاسخ : Verilog یا VHDL , مساله این است؟!!

        سلام

        شاید این مقایسه بتونه کمی بهتون کمک بکنه:

        VHDL
        مزایا:
        -پشتیبانی بسیار قوی از مدارات آسنکرون تعریف شده بیرون از پروسس.(مثلا مدارات ترکیبی که برای موازی سازی بدون وقفه به کار میرن).
        -پشتیبانی بسیار قوی از اعداد علامت دار.
        -قابلیت تعریف تایپهای مختلف به صورت دلخواه.
        -پیکر بندی کدها به صورت بسیار عالی.
        -پشتیبانی عالی از پکیجها.
        -قابلیت بسیار عالی در معکوس کردن وکتور ها ( to و downto).
        -پشتیبانی از ریست آسنکرون به صورت سطح ولتاژ ( نه تنها لبه).

        معایب:
        -کامنت گذاری تنها به صورت خط به خط امکانپذیره و به صورت بلوکی وجود نداره.
        -برای کدهای ماژولار بسیار خسته کننده هست چون باید برای هر بلاک دوباره تعریف بلاک رو به صورت کمپوننت بنویسید.
        -استفاده از to و downto در وکتورها میتونه گیج کننده بشه که کدوم بیت اول و کدوم آخر بود.
        -خروجی هر بلاک به صورت پیش فرض باید به صورت بافر شده باشه ولی از این خبرا نیست.
        -برای مدارات آسنکرون هیچ اولویت بندی وجود نداره (مثلا لیستی وجود نداره که توی اون بشه تعریف کرد این مدار1 اول سنتز و فیت بشه بعد مدار2، یا تاخییرشون رو بشه تعیین کرد، برای مدارت پر سرعت این خیلی لازمه).
        -باید زیاد کد بزنی،بیشترم باید کپی پیست کنی.


        Verilog
        مزایا:
        -قابلیت کامنتگذاری خطی و بلاکی.
        -دسترسی راحت به بیتهای وکتور و اعمال تغییر روی اونها.
        -پشتیبانی بسیار قوی از پارامترها.
        -قابلیت تعریف ساده وکتور و الحاق کردنش به سیگنالهای دیگه.
        -کد زنیش سخت نیست. (شبیه C و Pascal میمونه).
        -پشتیبانی قوی از حلقه ها.
        -پشتیبانی اولویت دهی برای مدارات آسنکرون به صورت پیش فرض با استفاده از ستاره (*)
        -کمتر کد میزنی، کمترم کپی پیست داره.

        معایب:
        -در ابتدا کمی گیج کننده هستش ولی خیلی زود متوجه میشید که reg با wire تفاوت چندانی نداره. فقط wire یکم فراموش کاره. :biggrin:
        -پشتیبانی ضعیف از مدارات آسنکرون.
        -عدم پشتیبانی از پکیجها که مجبور به دوباره کاری میشی.
        -تعریف Select بسیار پیچیده هست.
        -پشتیبانی از ریست آسنکرون تنها به صورت لبه. :angry:
        -wire ها تعریف نشده معمولا توسط سنتزگر علامت گذاری نمیشن و باعث میشن وکتورهاتون تبدیل بشن به wire های تکی و مدارتون میشه ماکارونی. :NO: oo:
        -به سختی میشه وکتور رو معکوس کرد. ( با loop امکانپذیره).


        معایب مشترک VHDL و Verilog
        - استفاده از begin و end های متعدد در هر قسمت که خسته کننده و گیج کننده هست. خوب مگه پرانتز چشه؟



        موفق باشید.
        اسمایل، تومورو ویل بی وُرس

        دیدگاه


          #5
          پاسخ : Verilog یا VHDL , مساله این است؟!!

          نوشته اصلی توسط ژوپیتر
          -برای مدارات آسنکرون هیچ اولویت بندی وجود نداره (مثلا لیستی وجود نداره که توی اون بشه تعریف کرد این مدار1 اول سنتز و فیت بشه بعد مدار2، یا تاخییرشون رو بشه تعیین کرد، برای مدارت پر سرعت این خیلی لازمه).
          سلام
          لطفا این مورد رو توضیح بدین
          https://www.linkedin.com/in/mohammadhosseini69

          http://zakhar.blog.ir

          دیدگاه


            #6
            پاسخ : Verilog یا VHDL , مساله این است؟!!

            از دوست عزیزم آقای ژوپیتر تشکر میکنم خیلی لطف کردن خیلی به بنده کمک کرد
            اینجور که شما میگین پس تقریبا توی یه سطح هستند ولی خوب بستگی داره چطور با مدارتو تا کنی هست

            باز هم ممنون, فقط این پس این SystemC چطور میشه؟

            دیدگاه


              #7
              پاسخ : Verilog یا VHDL , مساله این است؟!!

              نوشته اصلی توسط محمد حسینی
              سلام
              لطفا این مورد رو توضیح بدین
              سلام،

              همونطور که میدونید مدارات آسنکرون کلاک ندارند. پس چیزی به عنوان تاخییر براشون وجود نداره ( تنها تاخییر انتشار گیت یا همون Propagation Delay). حالا اگر بخوایم خروجی بلاکمون هر زمان که یکی از ورودی ها تغییر کرد، تغییر کنه باید از Sensitivity list استفاده کرد که سیگنالهای ورودی رو توی اون لیست میتونید پیدا کنید وقتی که از * استفاده کنید. برای Always بلاک ها هم میشه تاخییر ایجاد کرد، مثلا اگر یکی از متغییر ها با تاخییر وارد بلاک میشه و بقیه همزمان وارد میشن، برای اینکه خروجی بلاک دچار مشکل نشه، اون تاخییر رو به بقیه سیگنالها اضافه میکنید که همه همزمان وارد شن (این به معنی این نیست که ورودی ها همزمان داده نمیشه بلکه برعکس، ورودی ها همزمان داده میشه ولی یکی از متغییر ها بعد از طی یک مسیر دیگه وارد بلاک میشه که باعث میشه دیرتر برسه). البته بازم کمی routing روش تاثیر میذاره که نمیشه کاریش کرد.
              اسمایل، تومورو ویل بی وُرس

              دیدگاه


                #8
                پاسخ : Verilog یا VHDL , مساله این است؟!!

                نوشته اصلی توسط Zorwan
                از دوست عزیزم آقای ژوپیتر تشکر میکنم خیلی لطف کردن خیلی به بنده کمک کرد
                اینجور که شما میگین پس تقریبا توی یه سطح هستند ولی خوب بستگی داره چطور با مدارتو تا کنی هست

                باز هم ممنون, فقط این پس این SystemC چطور میشه؟
                خواهش میکنم،

                من با SystemC آشنایی ندارم ولی کمی که گوگل کردم دیدم که این زبان در حد System level هست و اصلا نمیشه با VHDL و Verilog مقایسش کرد و زبان سطح بالاست. به نظر زبان جالبیه، اگه سراغش رفتید ما رو هم تو یافته هاتون شریک کنید.

                ممنون.
                اسمایل، تومورو ویل بی وُرس

                دیدگاه


                  #9
                  پاسخ : Verilog یا VHDL , مساله این است؟!!

                  ممنون از دوستان خوب
                  ولی لوازم و ابزار های کار چی میشن؟خوب برای verilog و VHDL اوضاع برنامه های چطوریه؟اصلا بنظر من از این مرحله به بعد برنامه ها رو که برای HDL هستند و البته open source هستند رو معرفی کنیم خیلی خوب میشه , البته اول در مورد ادیتورها و سیمیلوترها وبعد از اون سنتز
                  در مورد پولیا که شرکت Cadence محصول IUS که اینجور پیداست آخر برنامه تو زمینه FPGA و HDL هست ولی خوب...
                  البته در مورد سنتز برنامه synplify هست که والا من هرچی گشتم یا پیدا نمیشد یا دانلود یه چندتا سایت چینی هم بود ولی (یه حس منفی دارم به چین و هرچی که به چین ختم میشه ) و تازه به ماند که رایگان نیست ولی اینطور که معلومه بهترین برنامه است برای سنتز

                  باز هم ممنون

                  دیدگاه


                    #10
                    پاسخ : Verilog یا VHDL , مساله این است؟!!

                    نوشته اصلی توسط ژوپیتر
                    همونطور که میدونید مدارات آسنکرون کلاک ندارند. پس چیزی به عنوان تاخییر براشون وجود نداره ( تنها تاخییر انتشار گیت یا همون Propagation Delay). حالا اگر بخوایم خروجی بلاکمون هر زمان که یکی از ورودی ها تغییر کرد، تغییر کنه باید از Sensitivity list استفاده کرد که سیگنالهای ورودی رو توی اون لیست میتونید پیدا کنید وقتی که از * استفاده کنید. برای Always بلاک ها هم میشه تاخییر ایجاد کرد، مثلا اگر یکی از متغییر ها با تاخییر وارد بلاک میشه و بقیه همزمان وارد میشن، برای اینکه خروجی بلاک دچار مشکل نشه، اون تاخییر رو به بقیه سیگنالها اضافه میکنید که همه همزمان وارد شن (این به معنی این نیست که ورودی ها همزمان داده نمیشه بلکه برعکس، ورودی ها همزمان داده میشه ولی یکی از متغییر ها بعد از طی یک مسیر دیگه وارد بلاک میشه که باعث میشه دیرتر برسه). البته بازم کمی routing روش تاثیر میذاره که نمیشه کاریش کرد.
                    همچین چیزی در عمل قابل سنتز هست؟ یا لااقل واسه FPGA که فکر میکنم عملی نیست.
                    ضمنا من هنوز اینو نفهمیدم :
                    مثلا لیستی وجود نداره که توی اون بشه تعریف کرد این مدار1 اول سنتز و فیت بشه بعد مدار2

                    در مورد systemC :
                    systemC یه سری کتاب خونه که میگرید کامپایل می کنید و به زیون C اضافه میشه تا مثلا بشه توصیف سخت افزاری و به قول خودشون در سطح سیستمی طراحی انجام داد.
                    فوق العاده زبون مزخرف. کافیه یه خط اشتباه بنویسی 50 خط ارور میده معلوم نیست از کجا... چون در واقع اومدن از زبون C استفاده کردن و یه سری ساختار جدید تعریف کردن بعد میدی به کامپایلر C کامپایل کنه معلومه چی میشه دیگه... :angry:
                    دید سخت افزاریش خیلی ضعیف و عجیبه. هیچیش قابل سنتز نیست.
                    به نظر من اومدن این زبون رو طراحی کردن واسه نرم افزاری ها که دیدی از سخت افزار ندارن و زبان های توصیف سخت افزاری واسشون قابل درک نیست.
                    ابزارهای مناسبی هم واسش وجود نداره. کلا واسه شبیه سازی در سطح بالاست.
                    اگه می خوای طراحی در سطح سیستمی هم انجام بدی، آخرین استاندارد verilog یعنی SystemVerilog از طراحی سطح بالا پشتیبانی می کنه.
                    PLI رو هم باید به مزیت های verilog اضافه کرد. با PLI میشه از امکانات و library های زبون های دیگه مثل C استفاده کرد.
                    https://www.linkedin.com/in/mohammadhosseini69

                    http://zakhar.blog.ir

                    دیدگاه


                      #11
                      پاسخ : Verilog یا VHDL , مساله این است؟!!

                      همچین چیزی در عمل قابل سنتز هست؟ یا لااقل واسه FPGA که فکر میکنم عملی نیست.
                      میشه با خود نرم افزار اون کمپانی که برای FPGA هست معمولا یه کارایی کرد (البته اگه همچین قابلیتی رو گذاشته باشن) ولی در خود زبان معمولا همچین چیزی اصلا نباید قابل تعریف باشه چون زبان هیچ ایده ای از سخت افزاری که قرار روش Routing انجام بشه رو نداره و نمیدونه که مثلا تو هر Look Up Table بطور مثال چند DFF وجود داره و تاخییر هر کدوم چقدره. اما ما که میدونیم از چه سخت افزاری استفاده میکنیم، انطوری میشه با خود زبان هم با بعضی روشهای خاص تاخییر دلخواه رو ایجاد کرد و کاملا بستگی به معماری داره که میخواین پیادش کنین.

                      ضمنا من هنوز اینو نفهمیدم :
                      شاید من بد توضیح دادم. فرض کنید شما سه تا بلاک کد مینویسید که همه آسنکرون هستن. در بلاک اصلی(چهارمی یا Design entry) میخواین از اون سه بلاک استفاده کنید. وقتی در بلاک اصلی پایه ها رو وصل میکنید به اون سه بلاک، هیچ جوری از طریق زبان نمیشه تعریف کرد که مثلا بلاک یک اولویت داره به بلاک دو از نظر زمانی و اول اون رو fit کن وبعد بلاک دوم رو، اگه کمی بلاک دوم تاخییر داشت مشکلی نیست. این موضوع تو نرم افزار قابل حله اما یکی از ضعفهای زبانه که نمیشه بلاک ها رو اولویت بندی کرد.

                      PLI رو هم باید به مزیت های verilog اضافه کرد. با PLI میشه از امکانات و library های زبون های دیگه مثل C استفاده کرد.
                      اگه اینجوریه که VHPI رو هم باید به مزیتهای VHDL اضافه کنیم.
                      VPI و VHPI هر دو اینترفیس هستن و (از نظر من) نمیشه جزو مزیتهای خود زبان اونها رو بشمار آورد چون اونها فقط نقش مترجم رو دارن و هیچ بهبودی در نحوه عملکرد زبان ندارن. مثل مترجمهای سیاسیون که هیچ تاثیری در بهبود عملکرد اونها ندارن.
                      اسمایل، تومورو ویل بی وُرس

                      دیدگاه


                        #12
                        پاسخ : Verilog یا VHDL , مساله این است؟!!

                        شاید من بد توضیح دادم. فرض کنید شما سه تا بلاک کد مینویسید که همه آسنکرون هستن. در بلاک اصلی(چهارمی یا Design entry) میخواین از اون سه بلاک استفاده کنید. وقتی در بلاک اصلی پایه ها رو وصل میکنید به اون سه بلاک، هیچ جوری از طریق زبان نمیشه تعریف کرد که مثلا بلاک یک اولویت داره به بلاک دو از نظر زمانی و اول اون رو fit کن وبعد بلاک دوم رو، اگه کمی بلاک دوم تاخییر داشت مشکلی نیست. این موضوع تو نرم افزار قابل حله اما یکی از ضعفهای زبانه که نمیشه بلاک ها رو اولویت بندی کرد.
                        چه خوب! تو وریلاگ میشه؟ اینکه گفتین اولویت دهی با ستاره همینه؟ مثال میزنید لطفا
                        اگه اینجوریه که VHPI رو هم باید به مزیتهای VHDL اضافه کنیم.
                        VPI و VHPI هر دو اینترفیس هستن و (از نظر من) نمیشه جزو مزیتهای خود زبان اونها رو بشمار آورد چون اونها فقط نقش مترجم رو دارن و هیچ بهبودی در نحوه عملکرد زبان ندارن. مثل مترجمهای سیاسیون که هیچ تاثیری در بهبود عملکرد اونها ندارن.
                        همیشه PLI رو مزیت وریلاگ به VHDL شنیده بودم. نمی دونستم VHDL هم از این سوسول یازیا داره. البته من که تاحالا از PLI استفاده نکردم، اما بنظرم با وجود امکان استفاده از توابع C، شبیه سازی های خیلی هیجان انگیزی بشه انجام داد
                        https://www.linkedin.com/in/mohammadhosseini69

                        http://zakhar.blog.ir

                        دیدگاه

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