پرش به


تصویر

ارتباط USB بین FPGA و کامپیوتر با سرعت 8 MB/s با استفاده از FT2232H در حالت Async FIFO


  • لطفا وارد حساب کاربری خود شوید تا بتوانید پاسخ دهید
24 پاسخ برای این موضوع

#1 mahmoud

mahmoud

    Administrator

  • مدیریت انجمن
  • 100 ارسال

ارسالی 14 December 2015 - 10:42 PM

در این پروژه یک ارتباط USB با نرخ 8MB/s بین FPGA و PC ایجاد شده و توسط تست loopback، میزان performance آن مورد ارزیابی قرار داده میشود.

 

توضیحات کامل این پروژه را در این پست مطالعه فرمایید.

 

فایل های پیوست:

دانلود (شامل نرم‌افزار ftdi_change_mode + پروژه‌ی ISE (به همراه فایل .bit آماده) + پروژه‌ی Visual Studio 2012 نرم‌افزار سمت PC)

 

به روزرسانی (96.03.16):

دانلود سورس پروژه HLS


  • M.Sadeghi و moslem kh این پست را پسندیده است

#2 amin5659

amin5659

    newbie

  • کاربر عادی
  • ستاره
  • 0 ارسال

ارسالی 01 February 2016 - 01:30 PM

سلام.

ادامه ی بحث !

خب پس چرا من وقتی دیتا در مد fifo از fpga میدم به pc ،توی ترمینال دیتا رو درست نشون میده؟؟؟

و اینکه خب الان مثلا من دارم دیتا میفرستم.آیا اگر کاربر دیتا از pc بفرسته این دیتا میره توی fifo  وما هر موقع میخایم میتونیم بخونیم؟

منظورتون از برنامه نویسی همین هستش ایا؟/



#3 mahmoud

mahmoud

    Administrator

  • مدیریت انجمن
  • 100 ارسال

ارسالی 02 February 2016 - 06:47 PM

سلام

 

خب پس چرا من وقتی دیتا در مد fifo از fpga میدم به pc ،توی ترمینال دیتا رو درست نشون میده؟؟؟

با همین بورد پازج؟! با همبن برنامه پروژه نمونه؟ عجیبه! نباید اینجوری باشه! 

 

و اینکه خب الان مثلا من دارم دیتا میفرستم.آیا اگر کاربر دیتا از pc بفرسته این دیتا میره توی fifo  وما هر موقع میخایم میتونیم بخونیم؟

منظورتون از برنامه نویسی همین هستش ایا؟

بله دقیقا.

و منظورم از برنامه نویسی نوشتن برنامه ای هست که با توابع FT در مود D2XX (و نه در مود سریال) اقدام به ارسال و دریافت دیتا بکنه. برنامه ای مشابه همان چیزی که در پروژه نمونه هست.



#4 kzk

kzk

    newbie

  • کاربر عادی
  • ستاره
  • 0 ارسال

ارسالی 31 March 2016 - 04:31 PM

سلام

خدا قوت

 

همراه فایل پروژه نوت هایی قرار دادین که استفاده در مد سنکرون را معرفی میکنن

امکان داره فایل مربوط به راه اندازی مد اسنکرون را قرار دهید؟



#5 mahmoud

mahmoud

    Administrator

  • مدیریت انجمن
  • 100 ارسال

ارسالی 31 March 2016 - 04:51 PM

امکان داره فایل مربوط به راه اندازی مد اسنکرون را قرار دهید؟

امکان استفاده از مد سنکرون روی بورد پازج یک وجود نداره. چون این مد فقط روی کانال A ی مبدل ft2232h میتونه فعال بشه که این کانال در پازج برای usb_jtag اشغال شده.


  • kzk این پست را پسندیده است

#6 kzk

kzk

    newbie

  • کاربر عادی
  • ستاره
  • 0 ارسال

ارسالی 01 April 2016 - 04:55 AM

امکان استفاده از مد سنکرون روی بورد پازج یک وجود نداره. چون این مد فقط روی کانال A ی مبدل ft2232h میتونه فعال بشه که این کانال در پازج برای usb_jtag اشغال شد

 

منظوره منو متوجه نشدین فکر کنم



#7 mahmoud

mahmoud

    Administrator

  • مدیریت انجمن
  • 100 ارسال

ارسالی 01 April 2016 - 05:38 AM

منظوره منو متوجه نشدین فکر کنم

ببخشید اشتباها فکر کردم مود سنکرون رو گفتین.

مود آسنکرون که همه ی فایل هاش موجوده دوست عزیز... هم سمت FPGA و هم سمت PC. چه فایلی لازم دارید که توی آرشیو پروژه نیست؟



#8 kzk

kzk

    newbie

  • کاربر عادی
  • ستاره
  • 0 ارسال

ارسالی 01 April 2016 - 07:23 AM

ببخشید اشتباها فکر کردم مود سنکرون رو گفتین.

مود آسنکرون که همه ی فایل هاش موجوده دوست عزیز... هم سمت FPGA و هم سمت PC. چه فایلی لازم دارید که توی آرشیو پروژه نیست؟

دیتا شیت را مطالعه کردم متوجه شدم

 

قسمتی از پروژه در ویوادو صورت گرفته  میخواستم بدونم ویوادو اسپارتان 6 را پشتیبانی می کنه؟



#9 mahmoud

mahmoud

    Administrator

  • مدیریت انجمن
  • 100 ارسال

ارسالی 01 April 2016 - 04:59 PM

دیتا شیت را مطالعه کردم متوجه شدم

 

قسمتی از پروژه در ویوادو صورت گرفته  میخواستم بدونم ویوادو اسپارتان 6 را پشتیبانی می کنه؟

نه متاسفانه! ظلمیه که به اسپارتان 6 شده دیگه!



#10 fazel459

fazel459

    کاربر عادی

  • کاربر عادی
  • ستارهستاره
  • 22 ارسال

ارسالی 25 September 2016 - 06:01 PM

سلام

قسمتي كه با ويوادو كار كرديد ، با C  نوشتيد ؟ يا ماشين حالت؟

امكانش هست كد ويوادو را هم بگذاريد؟

تشكر



#11 fazel459

fazel459

    کاربر عادی

  • کاربر عادی
  • ستارهستاره
  • 22 ارسال

ارسالی 27 September 2016 - 05:57 AM

سلام

کسی نیست جواب بده؟



#12 mahmoud

mahmoud

    Administrator

  • مدیریت انجمن
  • 100 ارسال

ارسالی 27 September 2016 - 08:06 PM

سلام

قسمتي كه با ويوادو كار كرديد ، با C  نوشتيد ؟ يا ماشين حالت؟

امكانش هست كد ويوادو را هم بگذاريد؟

تشكر

سلام.

این قسمت توسط HLS (کد C) نوشته شده است.

چنانچه مایل به دریافت سورس آن هستید، ایمیل خود را برای بنده پیام خصوصی بفرستید.

با تشکر.



#13 fazel459

fazel459

    کاربر عادی

  • کاربر عادی
  • ستارهستاره
  • 22 ارسال

ارسالی 29 September 2016 - 07:49 AM

فرستادم

تشکر



#14 fazel459

fazel459

    کاربر عادی

  • کاربر عادی
  • ستارهستاره
  • 22 ارسال

ارسالی 29 September 2016 - 08:21 PM

سلام.

این قسمت توسط HLS (کد C) نوشته شده است.

چنانچه مایل به دریافت سورس آن هستید، ایمیل خود را برای بنده پیام خصوصی بفرستید.

با تشکر.

سلام

ایمیل را فرستادم. لطفا سورس را ارسال کنید

تشکر



#15 fazel459

fazel459

    کاربر عادی

  • کاربر عادی
  • ستارهستاره
  • 22 ارسال

ارسالی 06 October 2016 - 06:22 PM

سلام 

آقای چنگانی در مورد کد HLS کنترل FIFO سیگنال های کنترلی در کد C  کجا ساختید؟

من کد اون قسمت را از همکاراتون گرفتم

 

من کد را با ماشین حالت  و وریلاگ نوشتم امابعد از یکبار ارسال و دریافت داده ها دیگه عملیات تکرار نمیشه

اگر ممکنه راهنمایی بفرمایید و اگر مقدوره کد کامل را بدید.

تشکر



#16 mahdichi

mahdichi

    newbie

  • مدیریت انجمن
  • 3 ارسال

ارسالی 06 October 2016 - 07:50 PM

با سلام. 
 
ببینید در HLS قرار نیست دقیقا همان کاری را که در verilog یا vhdl انجام میدادیم را تکرار کنیم در HLS خیلی کارها را برای ما ساده میکنه. مثلا همین سیگنال های کنترلی.
در HLS اصلا ما کاری به سیگنال های کنترلی نداریم و خود HLS این سیگنال ها را برای ما مدیریت می کنه و خوندن و نوشتن این سیگنال ها انجام میده. کاربر فقط لازمه توابع سطح بالا را استفاده کنه. برای همین مثال FIFO، برای داشتن ورودی FIFO متغیر تابعمون را بصورت زیر تعریف می کنیم

 stream<dataWord>& inData

تو این مثال inData یک FIFO  هست و data اون از جنس dataWord هست که تعریف این نوع به صورت زیر هست

struct dataWord {
ap_uint<8> data;
};

dataWord در این مثال یک سیگنال 8 بیتی هست
در بدنه اصلی برنامه برای خواندن از این FIFO می تونیم از توابع زیر استفاده کنیم

inData.full()
inData.empty()
indata.read()

برای کسب اطلاعان بیشتر به داکیومنت زیر مراجعه کنید
http://www.xilinx.co...l-synthesis.pdf
بخش HLS Stream Library مربوط به همین موضوع FIFO هست


  • fazel459 این پست را پسندیده است

#17 fazel459

fazel459

    کاربر عادی

  • کاربر عادی
  • ستارهستاره
  • 22 ارسال

ارسالی 06 October 2016 - 08:42 PM

تشکر که جواب دادید 

کاملا متوجه شدم

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

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



#18 fazel459

fazel459

    کاربر عادی

  • کاربر عادی
  • ستارهستاره
  • 22 ارسال

ارسالی 06 October 2016 - 08:48 PM

دو سوال در مورد HLS

حتما باید ورودی خوروجی های ماژول از نوع اشاره گر باشه؟

ویوادو از اسپارتان پشتیبانی نمی کنه .چطور می تونم از ماژول سنتز شده بصورت مستقل خروجی بگیرم که بشه در ise استفاده کنم. مثل کاری که شما کردید.

منظورم از مستقل اینه که بتونه خارج از ویوادو به خوبی اجرا بشه

تشکر



#19 mahdichi

mahdichi

    newbie

  • مدیریت انجمن
  • 3 ارسال

ارسالی 07 October 2016 - 08:57 AM

تشکر که جواب دادید 

کاملا متوجه شدم

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

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

برای حل مشکل باید دیباگ کنید تا مشکل را پیدا کنید. نمی دونم مشکل دقیقا کجاست.



#20 mahdichi

mahdichi

    newbie

  • مدیریت انجمن
  • 3 ارسال

ارسالی 07 October 2016 - 08:58 AM

دو سوال در مورد HLS

حتما باید ورودی خوروجی های ماژول از نوع اشاره گر باشه؟

ویوادو از اسپارتان پشتیبانی نمی کنه .چطور می تونم از ماژول سنتز شده بصورت مستقل خروجی بگیرم که بشه در ise استفاده کنم. مثل کاری که شما کردید.

منظورم از مستقل اینه که بتونه خارج از ویوادو به خوبی اجرا بشه

تشکر

خروجی ها معمولا از نوع اشاره گر هستند.

 

شما باید خروجی سنتز شده برنامه vivado HLS را که به صورت کد verilog یا vhdl هست را به برنامه ise انتقال بدید و بقیه طراحی را در محیط ISE انجام بدید.






0 کاربر در حال خواندن این موضوع است

0 کاربر، 0 مهمان و 0 عضو مخفی