NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 2933 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 2 از 2

موضوع: تبدیل کد c به HDL

  1. #1
    تازه وارد
    تاریخ عضویت
    Mar 2016
    نوشته ها
    1
    تشکر
    0
    تشکر شده 0 بار در 0 پست

    پیش فرض تبدیل کد c به HDL

    با سلام

    من یک کد به زبان C دارم که می خوام اونو به HDL تبدیل کنم
    به خاطر پیچیده بودن کد نمی تونم نسخه HDL بنویسم براش

    چند تا نرم افزار پیدا کردم

    impulse
    legup
    vivado

    کسی می دونه کدوم کد بهتری رو از نظر زمان اجرا و توان مصرفی و سطح تراشه ارائه می کنه؟

    درضمن impulse رو نصب کردم ولی وقتی new project می زنم و کد رو بهش می دم اجرا نمی کنه

    چرا؟؟

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  3. #2
    کاربر فعال
    تاریخ عضویت
    Jul 2011
    نوشته ها
    130
    تشکر
    65
    تشکر شده 204 بار در 77 پست

    پیش فرض

    سلام

    چیزی که شما دنبالش هستید بهش میگن HLS یا High Level Synthesis و چند وقتی هست که یکی از داغ ترین موضوع های طراحی سخت افزار هست. Legup که کلا تز دکتری یکی از دانشجو های دانشگاه تورنتو کانادا هست و به همین دلیل اصلا قابل مقایسه با HLS های تجاری مثل Vivado نیست. حتی اگر داکیومنت Legup رو بخونین, اکثر test bench ها با HLS های تحقیقاتی مقایسه شده. و اداعای سازندش هم این هست که بهترین HLS تحقیقاتی opensource هست که به نظر من واقعا هم همینطوره. در مورد Vivado HLS هم باید بگم که Vivado خودش یک خانواده از نرم افزار های جدید شرکت Xilinx هست که مخصوصا برای FPGA های سری ۷ تولید شده. فکر کنم برای کار های کوچیک به لایسنس احتیاج نداره.
    شما نگفتید چقدر با طراحی سخت افزار آشنا هستید برای همین من فرض رو بر این میگیرم که آشنایی مقدماتی دارین. تبدیل کد C به کد قابل سنتز خیلی دید سخت افزاری میخواد تا نرم افزاری. من با legup و Vivado HLS کار کردم و اگر داکیومنت هاشون رو بخونین (که شدیدا توصیه میکنم قبل از هرگونه برداشتی حتما حتما این کار رو بکنید) هر دو محدودیت هایی دارن. هر کد C قابل سنتز شدن نیست دلیلش هم فضای متفاوت سخت افزار و نرم افزار هست. مثلا با این HLS هایی که ذکر کردم شما نمیتونید توی کد C تون از dynamic memory استفاده کنید (free و alloc) یا مثلا نمیتونید از recursive functions استفاده کنید دلیل هر دو هم بخاطر محدودیت های resource در fpga هست. یکی از چیزهایی که HLS رو اینقدر جذاب میکنه اجازه دادن به طراح برای پیاده سازی بخشی از نرم افزار (که پردازش زیادی میگره) به صورت سخت افزاری روی FPGA هست. برای مثال Legup یک مود داره به اسم Hybrid Design که به شما اجازه میده هرتابعی رو که داخل کدتون خواستین به صورت سخت افزاری پیاده کنید و بقیه کد رو به صورت نرم افزاری داشته باشین. کد های نرم افزاری برای target های soft core MIPS یا ARM قابل کامپایل هست. در نهایت خود نرم افزار به صورت اتوماتیک اون قسمت از کد که روی سخت افزار پیاده شده رو با باس Avalon به Soft core یا هسته ARM وصل میکنه. تشخیص اینکه جداسازی کدوم قسمت از نرم افزار و پیاده کردن اون روی سخت افزار باعث افزایش perfomance میشه به تجربه احتیاج داره البته خیلی هم کار سختی نیست (معمولا از الگو های خاصی پیروی میکنن. مثلا اکثر توابع پردازش تصویر عملگر روی پیکسل دارن که باعث میشه روی همه پیکسل ها for-loop زده بشه. این نوع عملگر ها بهترین گزینه برای پیاده سازی سخت افزاری هستن) ولی قطعا باید اطلاعات کافی داشته باشید. بهتون توصیه میکنم اگر طراحی سخت افزارتون خوبه از داکیومنت های این نرم افزار ها شروع کنید.

  4. تشکرها از این نوشته :


مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •