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





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









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









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





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

نمایش نتایج: از 1 به 7 از 7
  1. #1
    2014/11/25
    23
    0

    FIFO Implementation (پیاده سازی FIFO)

    سلام، پیشاپیش ممنون از دوستانی که دانسته*هاشون رو share کنن

    نیاز به طراحی FIFO دارم در ۲ قسمت receiver و sender :read:

    تا در نهایت مقایسه کنم و تعداد بیتهای خطا رو بدونم.

    برای طراحی FIFO تصمیم گرفتم ازIP CORE استفاده کنم داخل کدی که random bit تولید می*کنه .

    طوری که خروجیش save بشه در FIFO.

    قبل از شروع چند تا سوال پیش اومد برام، الان 3 تاشو میگم

    اینکه

    ۱.FIFO ای* که قراره بیتهای دریافتی* رو SAVE کنه چطور پیاده سازی کنم؟

    ۲.چطور مطمئن باشم که بیتها یه متناظر در ۲ FIFO دقیق باهم مقایسه میشند؟
    3.delay رو چطور محاسبه کنم؟ ( به کابل انتقال ربط داره فقط؟!)

    (باید FIFO Depth رو محاسبه کنم؟ برای این باید write clk و read clk رو داشته باشم ..

    که می*خوام جفتش رو مساوی با کلاک اصلی* تولید بیت (۱۰۰ محض ) قرار بدم.

    ولی* برای فرمول باید read delay رو بدونم)
  2. #2
    2014/04/01
    همدان
    48
    1

    پاسخ : FIFO Implementation (پیاده سازی FIFO)

    راستش من از FIFO که تو IP CORE هستش راضی نبودم خودم یکی طراحی کردم.اول اینکه وقتی میسازیش عمقش رو وارد می کنی.و پهنای بیت ها رو.مثلا یه فیفو به عمق 32 که 8 بیتیه هستش (هر خونش 8 بیت یا یه بایته)4 تا سیگنال داره حداقل.دوتاش نشون میدن که فیفو خالیه یا پر.دوتای دیگه هم برای خوندن یا نوشتن هستش.
    شما باید کنترلری بنویسی که وقتی داده ای رو دریافت کرد ببینه فیفو پره یا خالی.اگه خالی بود داخلش بنویسه.از طرفی یه کنترلر دیگه هم باید بنویسی که فیفو رو چک کنه اگه خالی نبود داده رو ازش بخونه و مقایسه رو انجام بده.البته خیلی خلاصه و مبهم توضیح دادی.
  3. #3
    2014/11/25
    23
    0

    پاسخ : FIFO Implementation (پیاده سازی FIFO)





    سلام،

    مرسیآ* از جوابتون، چرا راضیآ* نبودید ازIP CORE؟

    ببخشید ، من فارسی صحبت کردنم عالیه، نوشتن سخت ..

    البته شاید این مبهمی از این هم باشه که آیده ایآ*آ* که میگم اونقدر اشتباست که درکش و سخت کرده..

    ببینین، هدف اصلیآ* من Bit Error Counting هست.

    اول اومدم کد یه Random Bit Generator رو نوشتم.

    بعد به این فکر کردم که قبل از فرستادن data به کابل بایدsave جائیآ* داشته بأشمش که بتونم با اون چیزی که دریافت میآ*شه اونطرف کابل مقایسه کنم..

    FIFO...

    خوب الان سوالیآ* که میاد تو ذهنم اینه که من چطور دادهآ*های ورودی و خروجی کا بل رو بیت به بیت با هم مقایسه کنم..

    چطور مطمئن شم که بیتآ*ها متناظر با هم مقایسه میشند..(چطور delay رو جبران کنم؟)
    ..
    ...

    میآ*شه یه کم بیشتر راجع به فیفو که پیاده سازی کردید توضیح بدید؟
  4. #4
    2014/04/01
    همدان
    48
    1

    پاسخ : FIFO Implementation (پیاده سازی FIFO)

    درسته با فیفو میشه اما نکته ای که هست اینه که مگه نمی خوای مطمئن شی که داده ها درست ارسال شدن یا نه؟
    خوب وقتی داده ها ارسال شدن چطوری می خوای با داده های این طرف کابل مقایسشون کنی؟
    بهتره روش دیگه ای انتخاب کنی.چندتا راه هست.می تونی از روش بیت توازن استفاده کنی.انتهای هر 8 بیت یه بیت اضافی که حاصل xor کردن بیت ها هستش هم ارسال میشه و گیرنده 8 بیت دریافتی رو xor میکنه و با این بیت اضافی مقایسه می کنه.اگه یکی نباشن ینی خطایی رخ داده اما کجا؟معلوم نیست.از طرفی ممکنه خود این بیت هم دچار خطا شده باشه.یه روش خیلی خوب هست به اسم CRC که تو شبکه و ارتباطات ازش استفاده میشه.روش دیگه ای هست به اسم همینگ که حجم داده های ارسالی رو زیاد می کنه اما میشه باهاش فهمید کدوم بیت ها مشکل دارند.
  5. #5
    2011/02/03
    172
    9

    پاسخ : FIFO Implementation (پیاده سازی FIFO)

    سلام

    پیاده سازی FIFO اصلا کار سختی نیست. اول از همه با توجه به پکت های دیتایی که میخوای ذخیره کنی عمق رو تعیین میکنی. مثلا اگر دیتای ۱۶ بیتی داری ارسال میکنی باید عمق FIFO مضربی از 16 باشه. حالا با توجه به اختلاف سرعت ورودی و خروجی یک عمق حداقلی در نظر گرفته میشه.
    همونظور که دوستمون گفتن ۴ تا سیگنال کنترل میخوای به علاوه کلاک و ریست. همچنین باس ورودی و خروجی. یک متغییر counter هم باید در نظر بگیرید که تعداد بلوک های استفاده شده رو نگه داره. در حالت خیلی ساده, با اومدن لبه بالا رونده کلاک, ریست چک میشه اگر سیگنال ها رو به مقدار های اولیه برمیگرونید. اگر صفر بود چک میکنید که write یا read فعال هستند یا نه. در هر حالت write چک میکنید که آیا جای خالی برای نوشتن وجود داره یا نه (توسط متغییر counter) اگر وجود داشت دیتا رو مینویسید و counter رو افزایش میدید(چک میکنید که counter از عمق FIFO بیشتر نشنه وگرنه سیگنال FULL رو باید یک کنید) و سیگنال های FULL و EMPTY رو هم به روز میکنید. حالت read هم همینقدر ساده هست.
    به غیر از سنکرون کردن دیتا, موارد دیگه ایی هم هست که FIFO به دردبخور هست. مثلا جاهایی که یک دیتا از طریق نرمافزاری باید توسط یک سخت افزار خونده بشه. مثلا من خودم برای یک Encoder Jpeg توی SystemC یک FIFO نوشته بودم که متشکل از ۵ بلوک بود. ۴ تاشون نرم افزاری و thread based طراحی شده بودن و یک بلوک سخت افزاری طراحی شده بود. واسط بین اینها یک FIFO بود. طراحی این FIFO یکم مشکل تر از اینی که گفتم هست و باید semaphore استفاده کنی. ولی اصولش همونی بود که گفتم.

    در نهایت من اصلا متوجه نمیشم چرا میخوای FIFO استفاده کنی!!!!!!!! میشه بیشتر توضیح بدی؟؟؟
  6. #6
    2014/11/25
    23
    0

    پاسخ : FIFO Implementation (پیاده سازی FIFO)

    نقل قول نوشته اصلی توسط vishy71
    درسته با فیفو میشه اما نکته ای که هست اینه که مگه نمی خوای مطمئن شی که داده ها درست ارسال شدن یا نه؟
    خوب وقتی داده ها ارسال شدن چطوری می خوای با داده های این طرف کابل مقایسشون کنی؟
    بهتره روش دیگه ای انتخاب کنی.چندتا راه هست.می تونی از روش بیت توازن استفاده کنی.انتهای هر 8 بیت یه بیت اضافی که حاصل xor کردن بیت ها هستش هم ارسال میشه و گیرنده 8 بیت دریافتی رو xor میکنه و با این بیت اضافی مقایسه می کنه.اگه یکی نباشن ینی خطایی رخ داده اما کجا؟معلوم نیست.از طرفی ممکنه خود این بیت هم دچار خطا شده باشه.یه روش خیلی خوب هست به اسم CRC که تو شبکه و ارتباطات ازش استفاده میشه.روش دیگه ای هست به اسم همینگ که حجم داده های ارسالی رو زیاد می کنه اما میشه باهاش فهمید کدوم بیت ها مشکل دارند.
    یعنیآ* باFIFO نمیآ*شه مطمئن شد؟

    روشهأی که نام بردید، غیر از استفاده از fifo هست؟

    از بین اینا کدوم رو برای کار من توصیه میآ*کنین که به نظرتون بهترینه ؟

    برم یادش بگیرم :read:
  7. #7
    2014/11/25
    23
    0

    پاسخ : FIFO Implementation (پیاده سازی FIFO)

    نقل قول نوشته اصلی توسط mohammadh1387
    سلام

    پیاده سازی FIFO اصلا کار سختی نیست. اول از همه با توجه به پکت های دیتایی که میخوای ذخیره کنی عمق رو تعیین میکنی. مثلا اگر دیتای ۱۶ بیتی داری ارسال میکنی باید عمق FIFO مضربی از 16 باشه. حالا با توجه به اختلاف سرعت ورودی و خروجی یک عمق حداقلی در نظر گرفته میشه.
    همونظور که دوستمون گفتن ۴ تا سیگنال کنترل میخوای به علاوه کلاک و ریست. همچنین باس ورودی و خروجی. یک متغییر counter هم باید در نظر بگیرید که تعداد بلوک های استفاده شده رو نگه داره. در حالت خیلی ساده, با اومدن لبه بالا رونده کلاک, ریست چک میشه اگر سیگنال ها رو به مقدار های اولیه برمیگرونید. اگر صفر بود چک میکنید که write یا read فعال هستند یا نه. در هر حالت write چک میکنید که آیا جای خالی برای نوشتن وجود داره یا نه (توسط متغییر counter) اگر وجود داشت دیتا رو مینویسید و counter رو افزایش میدید(چک میکنید که counter از عمق FIFO بیشتر نشنه وگرنه سیگنال FULL رو باید یک کنید) و سیگنال های FULL و EMPTY رو هم به روز میکنید. حالت read هم همینقدر ساده هست.
    به غیر از سنکرون کردن دیتا, موارد دیگه ایی هم هست که FIFO به دردبخور هست. مثلا جاهایی که یک دیتا از طریق نرمافزاری باید توسط یک سخت افزار خونده بشه. مثلا من خودم برای یک Encoder Jpeg توی SystemC یک FIFO نوشته بودم که متشکل از ۵ بلوک بود. ۴ تاشون نرم افزاری و thread based طراحی شده بودن و یک بلوک سخت افزاری طراحی شده بود. واسط بین اینها یک FIFO بود. طراحی این FIFO یکم مشکل تر از اینی که گفتم هست و باید semaphore استفاده کنی. ولی اصولش همونی بود که گفتم.

    در نهایت من اصلا متوجه نمیشم چرا میخوای FIFO استفاده کنی!!!!!!!! میشه بیشتر توضیح بدی؟؟؟
    ممنون از توضیحات..

    باید یه بار دیگه دقیق بخونم بفهممش..

    راستش خوب من تازه کارم،، چیزی که به ذهنم رسید FIFO بود ..

    می*شه اگر پیشنهاد بهتری دارید بگید ؟

    در حقیقت من می*خوام یه ذخیره از سیگنال ورودی و خروجی داشته باشم و بعد بیت به بیت اینا رو با هم مقایسه کنم.

    مثلا اگر ۳۲ بیت میفرستم و دریافت می*کنم ،، بیت ۲۸ با ۲۸ مقایسه شه نه با چیز دیگه..

    فکر کردم شایدFIFO بتونه کمک کنه ..

نمایش نتایج: از 1 به 7 از 7

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

  1. FIFO
    توسط sejil در انجمن STM
    پاسخ: 7
    آخرين نوشته: 2015/07/11, 16:18
  2. fifo
    توسط m_mokhaberat در انجمن PLD , SPLD , GAL , CPLD , FPGA
    پاسخ: 7
    آخرين نوشته: 2014/10/25, 23:06
  3. Quad UART with 64 byte fifo
    توسط meraj61 در انجمن مدار هاي ديجيتال
    پاسخ: 1
    آخرين نوشته: 2012/05/11, 21:23
  4. کمک براي پيدا کردن fifo
    توسط king_of_hearts90 در انجمن میکروکنترلرهای AVR
    پاسخ: 6
    آخرين نوشته: 2011/08/23, 21:51
  5. FIFO
    توسط fazel459 در انجمن PLD , SPLD , GAL , CPLD , FPGA
    پاسخ: 3
    آخرين نوشته: 2010/12/02, 17:52

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

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

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

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

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