اطلاعیه

Collapse
No announcement yet.

بهینه کردن کدهای VHDL

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

    بهینه کردن کدهای VHDL

    چطور میشه کدهای VHDL رو از نظر مقدار سخت افزار مورد استفاده و سرعت کلاک بهینه کرد؟
    یک استاد به من گفت بجای برنامه نویسی behavioral ( همون رفتاری خودمون ) باید بصورت RTL بنویسم. اما چطور RTL ؟
    یکی دیگه گفت باید پایپ لاین کنم! یعنی چه ؟ :eek:

    الگوریتم من خیلی ساده و کوتاه است. فقط تعدادی عملیات جمع، ضرب و شرطی داره . :nice:

    #2
    پاسخ : بهینه کردن کدهای VHDL

    با سلام
    سرعت و گیت مصرف شده در اکثر مواقع با هم در تضاد هستند. حالا اینکه چه مصالحهآ‌ای بین این دو برقرار کنید کاملا به صورت مسئله و نیازآ‌های آن بر میآ‌گردد.
    به صورت خیلی ساده پایپآ‌لاین کردن به این معنی است که شما بین قسمتآ‌های مختلف مدارتان رجیستر قرار دهید. این رجیسترآ‌ها کمک خواهند کرد که طول مسیر بحرانی (critical path) شما کاهش پیدا کند در نتیجه سرعت کلاک بالا رود.
    در مورد پایپآ‌لاین کردن هم این موضوع فقط میآ‌تواند به افزایش سرعت کلاک کمک کند ولی به این شرط این روش میآ‌تواند سرعت کل سیستم شما را بالا ببرد که ورودی شما یک جریانی از دادهآ‌ها (stream) باشد نه اینکه یک دیتایی بیاید برود و بعد از مدتی دیتای دیگری وارد شود.
    نکته دیگر اینکه پایپآ‌لاین کردن کار پیچیدهآ‌ای است و کاملا بستگی به طرح مورد نظر شما دارد. علاوه بر اینکه ممکن است کلا طراحی شما قابلیت پایپآ‌لاین شدن را نداشته باشد. بهتر است کمی درباره طراحیآ‌تان توضیح دهید تا مشخصآ‌تر شود.
    من دوست دارم آزاد فکر کنم، نرمآ‌افزارآ‌ و سختآ‌افزارهای آزاد را به کار ببرم و اگر توانستم نرمآ‌افزار، سختآ‌افزار و محتوای آزاد درست کنم!

    دیدگاه


      #3
      پاسخ : بهینه کردن کدهای VHDL

      علاوه بر مسائل مربوط به برنامه نویسی خود ابزار شبیه سازی/سنتز هم میتونه گرایشات مختلفی رو در هر یک از مراحل مختلف در نظر بگیره....این در صورتی هست که از ابزارهای پیشرفته خود شرکتها برای اینکار استفاده کنی.. مثلا Quartus برای FPGA های altera
      به خاطر طبیعت موازی برنامه نویسی HDL مسائل برنامه نویسی اش یه کم پیچیده تر میشه و خیلی از مسائل مثلا مربوط به RTL ش رو هم باید در نظر بگیرید که مانیان گفتند.
      سطح RTL هم تقری به شکل ساده و غیر رسمی میشه گفت همون سطحی است که توی مدار منطقی داریم یعنی باید ریجیسترها و گیتها رو به هم وصل کنی عوض اینکه بگی c=a+b

      دیدگاه

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