اطلاعیه

Collapse
No announcement yet.

مشکل برنامه ISE با کتابخانه TEXTIO

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    مشکل برنامه ISE با کتابخانه TEXTIO

    سلام

    بچه ها حدود یک هفته هست که دارم یه پروژه با 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
    این مقادیر ورودی ما هستن که باید داخل فایل input.txt نوشته بشن و این فایل نیز در پوشه برنامه قرار بگیره.
    سپس برنامه یه فایل به نام output.txt می سازه که دقیقا همین مقادیر داخلش هست.
    وقتی این برنامه رو با ISE سنتز میکنم بهم ERROR میده که حالا در ادامه عرض میکنم چه خطاهایی میده.

    از دوستان خواهش میکنم اگه برنامه ISE رو روی سیستمشون نصب کردن لطف کنن و این برنامه رو سنتز کنن ببینن برنامه بهشون ERROR میده یا خیر
    :rolleyes: :nice:
    به من که خطا میده ولی با وجود خطا با 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.
    منظورش اینه که نمی تونیم ورودی INTEGER دریافت کنیم. چون ورودی خونده شده از فایل TEXT در متغیر PIXEL قرار میگیره که از نوع INTEGER هست.
    حالا برای اینکه این مشکل رو برطرف کنم ، ورودی رو از نوع REAL کردم که با این خطا روبرو شدم:
    کد:
    ERROR:Xst:2360 - "E:/Users/Badr-PC/Desktop/textio/textio.vhd" line 30: write of real is not supported.
    میگه که نمیتونه متغیری از نوع REAL رو در خروجی بنویسه. در واقع تونسته ورودی REAL رو بخونه ولی نمیتونه REAL بنویسه.
    البته این نکته رو هم بگم که کتابخونه 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".
    این خطا رو که میده منظورش اینه که بجز 0 و 1 عدد دیگه ای نمیتونه بخونه و فقط همین دو عدد رو پشتیبانی میکنه و همین که به عدد 9 رسید خطا اعلام کرد.
    خلاصه سرتون رو درد نیارم . برای رفع این مشکل گرفتم عددم رو به صورت CHARACTER خوندم و اون رو به INTEGER تبدیل کردم و با یه مشکل جدید روبرو شدم و در ادامه هی خطا ها رو برطرف میکردم و یه خطای جدید بوجود می اومد. تا اینکه به یه نقطه رسیدم که دیدم ISE نتیجه های غیر معقولی میده . حالا بماند تا کجاها رفتم و چه خطاهایی که ندیم.(این مراحل 4 روز به طول انجامید) :angry:

    خلاصه از روی ناچاری گفتم من که این همه کار کردم بزار یه بار شبیه سازی کنم . وقتی با ISIM شبیه سازی کردم دیدم در کمال ناباوری همه چیز داره به خوبی کار میکنه. :biggrin:با کمی بررسی به این نتیجه رسیدم که برنامه ISE من مشکل داره. :cry:

    میدونم خیلی نوشتم ولی اینا نصفش بود تازه :nice:


    دوستان لطفا راهنماییم بفرمایید تا بتونم این برنامه رو توی ISE خروجی بگیرم

    #2
    پاسخ : مشکل برنامه ISE با کتابخانه TEXTIO

    فکر نمیکنم ورودی خروجی فایل سنتز بشه.مثل تقسیم یا باقیمانده که سنتز نمیشن ولی شبیه سازی میشن(البته تو XCS3400 که اینطوره حداقل)
    ینی حتی اگه سنتز بشه فایل تصویر کجا ذخیره شده؟ چطوری و چه جوری باید لود بشه؟
    نه فکر نمی کنم سنتز بشه.شما باید تصویر رو با متلب تبدیل کنی بعد با یه پورتی ترجیحا سریال(راحته) بدیش به FPGA تا برات پردازش رو انجام بده.
    یا مستقیم دوربین رو وصل کنی به FPGA که کار بیشتری میبره.سریال بهتره.

    دیدگاه


      #3
      پاسخ : مشکل برنامه ISE با کتابخانه TEXTIO

      بله پاسخ شما دقیقا صحیح هست

      برنامه من قابل سنتز شدن نیست

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

      مهندس دستت درد نکنه

      تشکر :wow:

      دیدگاه

      لطفا صبر کنید...
      X