سلام
بچه ها حدود یک هفته هست که دارم یه پروژه با FPGA انجام میدم ولی به یه مشکلی برخوردم که نتونستم براش چاره ای پیدا کنم.
پروژم پردازش تصویر با FPGA هست . اگه بخوام به طور دقیق تر بگم قراره یه تصویر رو به FPGA ورودی بدم و با استفاده از FPGA ، از تصویر ورودی MEDIAN FILTER بگیرم و این تصویر فیلتر شده رو ذخیره کنم.
روش کارم این طوری بود که با استفاده از متلب یه تصویر معمولی رو به TEXT تبدیل کردم . بعد این فایل TEXT رو به برنامه نوشته شده در ISE دادم تا پردازشش کنم و در آخر هم باید یه فایل TEXT خروجی بگیرم و این فایل TEXT رو در متلب به تصویر تبدیل کنم.
البته الان که دارم این متلب رو می نویسم این پروژه رو تموم کردم و نتیجه هم گرفتم اما یه مساله ای وجود داره.
برنامه ای رو که با ISE نوشتم ، خطاهای غیر منطقی داره و نمیشه باهاشون کنار اومد.
وقتی برنامه ای رو که بهم ERROR داده رو با ISIM شبیه سازی کردم ، برنامم درست کار کرد . یعنی ISIM وقتی برنامه من رو سنتز کرد هیچ ERROR یا WARNING ی بهم نداد و داده های ورودی رو پردازش کرد و سپس بهم خروجی داد.
همین برنامه رو مجددا برای اطمینان با برنامه ACTIVE HDL بررسی کردم و این برنامه هم بدون هیچ ERROR و WARNING بهم خروجی صحیح رو داد.
ولی این برنامه رو نمیتونم با ISE سنتز کنم و سخت افزارش رو بررسی کنم . در کل نمیشه برنامم رو روی FPGA بررسی کنم چون برنامه بهم خطا میده و وقتی خطا داره هیچ چیز رو نمیشه بررسی کرد.
حالا برنامم رو در ادامه می نویسم . لطفا راهنماییم کنید تا مشکلم برطرف بشه
این یه برنامه ساده هست که قراره یه فایل TEXT رو بخونیم و همون رو توی یه فایل TEXT جدید بنویسیم.
اگه این برنامه رو اجرا کنم باید توی پوشه ای که این برنامه نوشته شده یه فایل TEXT ایجاد کنه به نام output.txt که داخلش یه سری عدد هست.
همچنین باید داخل همین چوشه نیز یه فایل TEXT خودمون قرار بدیم که اسمش باید input.txt باشه. و مقادیر داخلش هم باید یه سری عدد باشه مثلا میتونه این مقادیر باشه
این مقادیر ورودی ما هستن که باید داخل فایل input.txt نوشته بشن و این فایل نیز در پوشه برنامه قرار بگیره.
سپس برنامه یه فایل به نام output.txt می سازه که دقیقا همین مقادیر داخلش هست.
وقتی این برنامه رو با ISE سنتز میکنم بهم ERROR میده که حالا در ادامه عرض میکنم چه خطاهایی میده.
از دوستان خواهش میکنم اگه برنامه ISE رو روی سیستمشون نصب کردن لطف کنن و این برنامه رو سنتز کنن ببینن برنامه بهشون ERROR میده یا خیر
:rolleyes: :nice:
به من که خطا میده ولی با وجود خطا با ISIM شبیه سازی کردم و خروجی هم گرفتم به درستی.
من ورژن 14.7 برنامه ISE رو نصب کردم. 7.5 گیگ حجمش بود. ممکنه مشکل از برنامه من باشه. و اگه یه ورژن دیگه رو بریزم مشکل حل بشه .
البته این رو باید بگم که من با ISE برنامه های دیگه ای هم نوشتم و مشکل نداره ولی فقظ تو این برنامه که از کتابخونه TEXTIO استفاده کردم با این خطاهای منحصرا مربوط به همین کتابخونه روبرو شدم.
لطفا اگه فرصت دارین زحمت بکشین و این برنامه رو سنتز کنید.
وقتی این برنامه رو با ISE سنتز میکنم این خطا رو بهم میده.
منظورش اینه که نمی تونیم ورودی INTEGER دریافت کنیم. چون ورودی خونده شده از فایل TEXT در متغیر PIXEL قرار میگیره که از نوع INTEGER هست.
حالا برای اینکه این مشکل رو برطرف کنم ، ورودی رو از نوع REAL کردم که با این خطا روبرو شدم:
میگه که نمیتونه متغیری از نوع REAL رو در خروجی بنویسه. در واقع تونسته ورودی REAL رو بخونه ولی نمیتونه REAL بنویسه.
البته این نکته رو هم بگم که کتابخونه TEXTIO به صورت کامل از متغیرهای REAL و INTEGER پشتیبانی میکنه ولی ISE من خطا میده بهم.
خلاصه برای اینکه خطای آخر رو برطرف کنم فایل REAL خونده شده رو اول به INTEGER تبدیل کردم بعد این INTEGER رو نوشتم.
که بعد این کار باز یه خطای دیگه بهم داد:
این خطا رو که میده منظورش اینه که بجز 0 و 1 عدد دیگه ای نمیتونه بخونه و فقط همین دو عدد رو پشتیبانی میکنه و همین که به عدد 9 رسید خطا اعلام کرد.
خلاصه سرتون رو درد نیارم . برای رفع این مشکل گرفتم عددم رو به صورت CHARACTER خوندم و اون رو به INTEGER تبدیل کردم و با یه مشکل جدید روبرو شدم و در ادامه هی خطا ها رو برطرف میکردم و یه خطای جدید بوجود می اومد. تا اینکه به یه نقطه رسیدم که دیدم ISE نتیجه های غیر معقولی میده . حالا بماند تا کجاها رفتم و چه خطاهایی که ندیم.(این مراحل 4 روز به طول انجامید) :angry:
خلاصه از روی ناچاری گفتم من که این همه کار کردم بزار یه بار شبیه سازی کنم .
وقتی با ISIM شبیه سازی کردم دیدم در کمال ناباوری همه چیز داره به خوبی کار میکنه. :biggrin:با کمی بررسی به این نتیجه رسیدم که برنامه ISE من مشکل داره. :cry:
میدونم خیلی نوشتم ولی اینا نصفش بود تازه :nice:
دوستان لطفا راهنماییم بفرمایید تا بتونم این برنامه رو توی ISE خروجی بگیرم
بچه ها حدود یک هفته هست که دارم یه پروژه با FPGA انجام میدم ولی به یه مشکلی برخوردم که نتونستم براش چاره ای پیدا کنم.

پروژم پردازش تصویر با FPGA هست . اگه بخوام به طور دقیق تر بگم قراره یه تصویر رو به FPGA ورودی بدم و با استفاده از FPGA ، از تصویر ورودی MEDIAN FILTER بگیرم و این تصویر فیلتر شده رو ذخیره کنم.
روش کارم این طوری بود که با استفاده از متلب یه تصویر معمولی رو به TEXT تبدیل کردم . بعد این فایل TEXT رو به برنامه نوشته شده در ISE دادم تا پردازشش کنم و در آخر هم باید یه فایل TEXT خروجی بگیرم و این فایل TEXT رو در متلب به تصویر تبدیل کنم.
البته الان که دارم این متلب رو می نویسم این پروژه رو تموم کردم و نتیجه هم گرفتم اما یه مساله ای وجود داره.

برنامه ای رو که با ISE نوشتم ، خطاهای غیر منطقی داره و نمیشه باهاشون کنار اومد.
وقتی برنامه ای رو که بهم ERROR داده رو با ISIM شبیه سازی کردم ، برنامم درست کار کرد . یعنی ISIM وقتی برنامه من رو سنتز کرد هیچ ERROR یا WARNING ی بهم نداد و داده های ورودی رو پردازش کرد و سپس بهم خروجی داد.
همین برنامه رو مجددا برای اطمینان با برنامه ACTIVE HDL بررسی کردم و این برنامه هم بدون هیچ ERROR و WARNING بهم خروجی صحیح رو داد.

ولی این برنامه رو نمیتونم با ISE سنتز کنم و سخت افزارش رو بررسی کنم . در کل نمیشه برنامم رو روی FPGA بررسی کنم چون برنامه بهم خطا میده و وقتی خطا داره هیچ چیز رو نمیشه بررسی کرد.
حالا برنامم رو در ادامه می نویسم . لطفا راهنماییم کنید تا مشکلم برطرف بشه
این یه برنامه ساده هست که قراره یه فایل TEXT رو بخونیم و همون رو توی یه فایل TEXT جدید بنویسیم.
کد:
library ieee; LIBRARY STD; USE STD.TEXTIO.ALL; use ieee.std_logic_1164.ALL; ENTITY filEx IS port(clk : in std_logic); END filEx; ARCHITECTURE TEST OF filEx IS FILE inFile : TEXT open read_mode IS "input.txt"; FILE outFile : TEXT open write_mode IS "output.txt"; BEGIN PROCESS (clk) VARIABLE outLine : LINE; VARIABLE inLine : LINE; VARIABLE PIXEL : INTEGER; BEGIN while not endfile(inFile) loop READLINE(inFile, inLine); READ(inLine , PIXEL); WRITE(outLine, PIXEL); WRITELINE(outFile, outLine); end loop; END PROCESS; file_close(outFile); END TEST;
اگه این برنامه رو اجرا کنم باید توی پوشه ای که این برنامه نوشته شده یه فایل TEXT ایجاد کنه به نام output.txt که داخلش یه سری عدد هست.
همچنین باید داخل همین چوشه نیز یه فایل TEXT خودمون قرار بدیم که اسمش باید input.txt باشه. و مقادیر داخلش هم باید یه سری عدد باشه مثلا میتونه این مقادیر باشه
کد:
123 150
سپس برنامه یه فایل به نام output.txt می سازه که دقیقا همین مقادیر داخلش هست.
وقتی این برنامه رو با ISE سنتز میکنم بهم ERROR میده که حالا در ادامه عرض میکنم چه خطاهایی میده.
از دوستان خواهش میکنم اگه برنامه ISE رو روی سیستمشون نصب کردن لطف کنن و این برنامه رو سنتز کنن ببینن برنامه بهشون ERROR میده یا خیر

به من که خطا میده ولی با وجود خطا با ISIM شبیه سازی کردم و خروجی هم گرفتم به درستی.
من ورژن 14.7 برنامه ISE رو نصب کردم. 7.5 گیگ حجمش بود. ممکنه مشکل از برنامه من باشه. و اگه یه ورژن دیگه رو بریزم مشکل حل بشه .
البته این رو باید بگم که من با ISE برنامه های دیگه ای هم نوشتم و مشکل نداره ولی فقظ تو این برنامه که از کتابخونه TEXTIO استفاده کردم با این خطاهای منحصرا مربوط به همین کتابخونه روبرو شدم.
لطفا اگه فرصت دارین زحمت بکشین و این برنامه رو سنتز کنید.
وقتی این برنامه رو با ISE سنتز میکنم این خطا رو بهم میده.
کد:
ERROR:Xst:2098 - "E:/Users/Badr-PC/Desktop/textio/textio.vhd" line 27: read of integer is not supported.
حالا برای اینکه این مشکل رو برطرف کنم ، ورودی رو از نوع REAL کردم که با این خطا روبرو شدم:
کد:
ERROR:Xst:2360 - "E:/Users/Badr-PC/Desktop/textio/textio.vhd" line 30: write of real is not supported.
البته این نکته رو هم بگم که کتابخونه TEXTIO به صورت کامل از متغیرهای REAL و INTEGER پشتیبانی میکنه ولی ISE من خطا میده بهم.
خلاصه برای اینکه خطای آخر رو برطرف کنم فایل REAL خونده شده رو اول به INTEGER تبدیل کردم بعد این INTEGER رو نوشتم.
که بعد این کار باز یه خطای دیگه بهم داد:
کد:
ERROR:Xst:1924 - "E:/Users/Badr-PC/Desktop/textio/textio.vhd" line 28: Line <inLine> has illegal bit value "9".
خلاصه سرتون رو درد نیارم . برای رفع این مشکل گرفتم عددم رو به صورت CHARACTER خوندم و اون رو به INTEGER تبدیل کردم و با یه مشکل جدید روبرو شدم و در ادامه هی خطا ها رو برطرف میکردم و یه خطای جدید بوجود می اومد. تا اینکه به یه نقطه رسیدم که دیدم ISE نتیجه های غیر معقولی میده . حالا بماند تا کجاها رفتم و چه خطاهایی که ندیم.(این مراحل 4 روز به طول انجامید) :angry:
خلاصه از روی ناچاری گفتم من که این همه کار کردم بزار یه بار شبیه سازی کنم .

میدونم خیلی نوشتم ولی اینا نصفش بود تازه :nice:
دوستان لطفا راهنماییم بفرمایید تا بتونم این برنامه رو توی ISE خروجی بگیرم

دیدگاه