ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.






جهت تبلیغ در وب سایت ECA کلیک کنید.

کاربران برچسب زده شده

نمایش نتایج: از 1 به 7 از 7
  1. #1
    2008/12/07
    3
    0

    چگونه تعداد گیت های مصرفی را بهینه کنم؟

    سلام
    برای پیاده سازی سخت افزاری الگوریتم اینکدرم من تازه vhdl یاد گرفتم و پیاده سازی کردم اما مشکلم این است که تعداد ALUT ها و register های بکار رفته بسیار زیادتر از حد انتظار است. فکر می کنم مشکلم این است که دستورات ترتیبی زیاد به کار می برم.
    مثلا برای جمع کردن تعداد بیت های 1 موجود در یک بایت (برای مثال تعداد 1 ها در 00011010 سه عدد می باشد) یک function تعریف کردم بصورت زیر که احتمالا زیاد گیت مصرف می کند.
    از طرف دیگر مشکل اینجاست که سرعت ماکس کلاک هم خیلی کم است زیر 100 مگاهرتز و از اینکدرهای رقیب کندتر است.

    چگونه می توانم به این اهداف برسم؟ ( 1- تعداد گیت کمتر 2- سرعت عملکرد بیشتر )



    برای مثال قسمتی از کد که تعداد یک ها در یک بیت ( هشت بیت) را جمع می زند:
    function Ones(input:std_logic_vector) return int
    eger is
    variable sum:integer range 0 to 5;
    begin
    sum:=0;
    for i in 0 to 4 loop
    if input(i)='1' then
    sum:=sum+1;
    end if;
    end loop;
    return sum;
    end O
    nes;
  2. #2
    2007/07/19
    تهران
    1,332
    102

    پاسخ : چگونه تعداد گیت های مصرفی را بهینه کنم؟

    نقل قول نوشته اصلی توسط linecode8b9b
    سلام
    برای پیاده سازی سخت افزاری الگوریتم اینکدرم من تازه vhdl یاد گرفتم و پیاده سازی کردم اما مشکلم این است که تعداد ALUT ها و register های بکار رفته بسیار زیادتر از حد انتظار است. فکر می کنم مشکلم این است که دستورات ترتیبی زیاد به کار می برم.
    مثلا برای جمع کردن تعداد بیت های 1 موجود در یک بایت (برای مثال تعداد 1 ها در 00011010 سه عدد می باشد) یک function تعریف کردم بصورت زیر که احتمالا زیاد گیت مصرف می کند.
    از طرف دیگر مشکل اینجاست که سرعت ماکس کلاک هم خیلی کم است زیر 100 مگاهرتز و از اینکدرهای رقیب کندتر است.
    چگونه می توانم به این اهداف برسم؟ ( 1- تعداد گیت کمتر 2- سرعت عملکرد بیشتر )
    برای مثال قسمتی از کد که تعداد یک ها در یک بیت ( هشت بیت) را جمع می زند:
    function Ones(input:std_logic_vector) return int
    eger is
    variable sum:integer range 0 to 5;
    begin
    sum:=0;
    for i in 0 to 4 loop
    if input(i)='1' then
    sum:=sum+1;
    end if;
    end loop;
    return sum;
    end O
    nes;
    با سلام
    امکان داره بیشتر توضیح بفرمایید ؟
    شماتیک معادل این مدار موجوده ؟
    با کدام خانواده از cpld ها کار میکنید ؟ altera ? یا xilinx ?
  3. #3
    2008/12/07
    3
    0

    پاسخ : چگونه تعداد گیت های مصرفی را بهینه کنم؟

    سلام و تشکر از پاسخ سریعتون
    من برد spartan 2 یعنی 2s200 رو دارم
    مشکلم اینه که شماتیک ندارم بلکه یک الگوریتم است که باید پیاده سازی بشه ( البته این الگوریتم رو تو متلب هم پیاده کردم و همچنین کد VHDL رو هم واسش نوشتم) در واقع برنامه vhdl فعلی از تعدادی if حلقه for و شرط و ... تشکیل شده. در حالی که برنامه های حرفه ای رو که نگاه می کنم با and , or , not , ... برنامه vhdl شون رو نوشتن.
    و مشکلم دقیقا همین جاست. می خوام بجای مثلا یک حلقه for یا تعداد زیادی if , elsif ,else ,end if و ... از توابع و گیت های منتطقی استفاده کنم و الگوریتمم رو پیاده کنم! تا هم تعداد گیت های مصرفی بیاد پایین و هم سرعت کلاک بره بالا
    چکار کنم؟
    برای مثال یک از قسمت های الگوریتم اینه که تعداد 1 های داخل یک بایت رو بشمارم مثلا توی 00101111 تعداد 5 عدد 1 هست.
  4. #4
    2008/02/23
    760
    4

    پاسخ : چگونه تعداد گیت های مصرفی را بهینه کنم؟

    با سلام
    منظور شما از کلاک چیست؟ شما این کدی را که گفتید به صورت sequential و یا combinational پیادهآ* کردهآ*اید؟ اگر به صورت ترتیبی باشد که ۸ کلاک برای ۸ بیت نیاز دارید علاوه بر این پهنای کلاک نیز کاملا وابسته به سرعت جمع کننده ۴ بیتی داخل این انکودر است(البته اگر این ماژول انکودر مسیر بهرانی critical path طراحی شما باشد) . در حالت ترکیبی نیز فکر کنم در بهترین حالت بتوان یه تابع ۲ یا ۳ سطحی درست کرد البته در این حالت نیاز به گیتآ*های با ۸ ورودی هست به علت ممکن است سطوح در پیادهآ*سازی واقعی بیشتر شود. حالا شما از کدام روش دارید استفاده میآ*کنید چون من VHDL بلد نیستم از کد شما متوجه نمیآ*شوم که ابزار ستنز در نهایت چگونه مدار شما پیاده خواهد کرد.
    من دوست دارم آزاد فکر کنم، نرمآ*افزارآ* و سختآ*افزارهای آزاد را به کار ببرم و اگر توانستم نرمآ*افزار، سختآ*افزار و محتوای آزاد درست کنم!
  5. #5
    2008/11/13
    80
    1

    پاسخ : چگونه تعداد گیت های مصرفی را بهینه کنم؟

    سلام برادرم
    مشكل خاصي نداري!!!!
    فقط يه كم هل شدي!!!
    من چون سيستمم ويروسي متاسفانه دير جواب مي دم!!!
    اول بگو ببينم با vhdl طراحي كه مي كني.از كدوم دريچه هستي بخش مي فهمي كه تعداد گيتهاي مصرفيت زياد هستش يا كم؟؟؟
    دوما كد كامل بزار تا رك بگم!!
    براي اون آقا كه فرمودند كه كدتون همزمان هستش يا ... بايد بگم فرقي نمي كنه vhdl اصولا كدهاي مبتني بر رخداد هستن يعني همزمان كه مي توني ترتيبيشم طراحي كني!!!هرچند تو process ها هم ترتيبي و هم همزمان مي توني كار بكنن!!!و از حلقه هاي ايشون ميتونيم بفهميم كه حداقا قسمتي از كدها ترتيبي اند!!!!1
    به هر حال براردم كد را كامل بزار تا ببينم چطور طراحي كردي؟؟؟بعدش شماره تراشتم بگو..؟
    از كدوم سطح طراحي vhdl اسفاده كردي؟فيزيكي يا رفتاري يا.... يه كم توضيح بيشتر بدي مي تونم كد بهينهرو برات بنويسم!!!!!
    سرعت اون هم به نوع تراشت و عوامل مختلفي از قبيل نوع عملكدي كدت بستگي داره؟
  6. #6
    2008/11/17
    7
    0

    پاسخ : چگونه تعداد گیت های مصرفی را بهینه کنم؟

    سلام . شما بايد در کد نويسی ديد سخت افزاری داشته باشيد . جون تازه کار هستيد بهتر که از func استفاده نکنیيد . بطور مثال می تونيد برای شمارش تعدا د 1 ها بايت دريافتی رو اگر بصورت 8بيتی در اختيار داريد از يک SHIFTREG و يک شمارنده استفاده کنيد . که داده رو شيفت ميدهيد خروجي رو در يک شرط بررسی ميکنيد اگر يک بود يک واحد به کانتر اضافه ميکنيد . اگر هم داده رو سريال داريد دريافت ميکنيد مي تونيد داده رو به EN يک شمارنده متصل کنيد و شمارنده با کالکی که داده تحويل شما داده ميشود کلاک بخورد در پايان شماره کانتر همان تعداد يک هاي شما خواهد شد . منظورم از اين دو مثال اين بود که سعی کن به سيستم اينجوری نگاه کن به ديد برنامه نویسی C,.. نگاه نکن . در ضمن يکی از تنظیمات خود نرم افزار سنتز اينکه طرح را برای سرعت يا سطح مصرف بهينه کنه. باز اگر مشکلتون حل نشد مي تونيد خواسته مورد نظرتون با جزييات بگين تا کد نوشته شده با توضيحاتش را براتون انجام بدم.
  7. #7
    2008/11/11
    9
    0

    پاسخ : چگونه تعداد گیت های مصرفی را بهینه کنم؟

    امروزه نوشتن یک برنامه به صورتی که کمترین گیت را احتیاج داشته باشد یک هنر و توانایی بالا به شمار میاد که با تجربه و ممارست در کد زنی به دست میاد .
    اگه تو اینترنت هم یه جستجویی کنی حتما مطالبی در مورد هنر کد زنی vhdl پیدا میکنی .

    در ضمن شما میتونین از برنامه Mentor Graphics Leonardo Spectrum جهت بهینه کردن و ساخت لایوت و مشاهده شماتیک مداری رو که نوشتین استفاده کنین.
    تو این برنامه بعد از سنتز ، شماتیک سخت افزار شما در سه سطح قابل مشاهده هست که کاملا به وضوح میشه دید که چگونه یک کد کوچک ولی ضعیف به یک مدار تو در تو با
    تعداد زیادی لچ و گیت بدرد نخور تبدیل شده و لی یک کد قوی و طولانیه 200 خطی به یک مدار بسیار مرتب و زیبا سنتز میشود .


    موفق باشید.
نمایش نتایج: از 1 به 7 از 7

موضوعات مشابه

  1. پاسخ: 0
    آخرين نوشته: 2015/11/05, 18:49
  2. کاهش تعداد لایه ها(طبقات) مدار (چیدمان بهینه قطعات)
    توسط alirezajf68 در انجمن مدار چاپی (PCB)
    پاسخ: 3
    آخرين نوشته: 2015/08/04, 21:19
  3. بهینه سازی توان راکتیو
    توسط hamidjavanmardi در انجمن سيستم هاي قدرت
    پاسخ: 0
    آخرين نوشته: 2015/04/03, 13:30
  4. کنترل بهینه
    توسط ghorbani89 در انجمن سيستم هاي كنترلي
    پاسخ: 0
    آخرين نوشته: 2015/03/23, 00:57
  5. ربات بهینه شده
    توسط arm_avr در انجمن ربات های مسیر یاب
    پاسخ: 1
    آخرين نوشته: 2013/12/24, 22:04

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

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

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