NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 3476 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 5 از 5

موضوع: مشکل برنامه ise با کتابخانه textio

  1. #1
    عضو جدید
    تاریخ عضویت
    Jun 2011
    نوشته ها
    7
    تشکر
    2
    تشکر شده 4 بار در 2 پست

    پیش فرض مشکل برنامه 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 میده یا خیر

    به من که خطا میده ولی با وجود خطا با 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 شبیه سازی کردم دیدم در کمال ناباوری همه چیز داره به خوبی کار میکنه. با کمی بررسی به این نتیجه رسیدم که برنامه ISE من مشکل داره.

    میدونم خیلی نوشتم ولی اینا نصفش بود تازه
    برنامه رو با یه فایل ورودی نمونه پیوست کردم.


    دوستان لطفا راهنماییم بفرمایید تا بتونم این برنامه رو توی ISE خروجی بگیرم
    :kiss:
    فايل هاي پيوست شده فايل هاي پيوست شده
    • نوع فایل: zip textio.zip (13.3 کیلو بایت, 29 نمايش)

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  3. #2
    عضو جدید
    تاریخ عضویت
    Sep 2014
    نوشته ها
    7
    تشکر
    0
    تشکر شده 10 بار در 4 پست

    پیش فرض

    موقع استفاده از write کاملا نشخص کنید:
    کد:
    WRITE (L, string’(“text”));
    کد:
    WRITE_STRING (L, “text”);
    برای تعرف فایل هم معمولا اینجوری استفاده میشه:
    کد:
    FILE myinput : TEXT IS IN “pathname.dat”;
    و نکته دیگه اینکه این دستورات کلا به صورت شبیه سازی اجرا میشوند، شما اگر میخواهید کد اصلی تون رو داشته باشین باید یک بار فایل رو تبدیل به یک آرایه یا متغیر بکنید و به عنوان یک پکیج به کدتون اضافه کنید به نظر شما وقتی کدتون داره داخل سخت افزار اجرا میشه فایل متنی هم داخل fpga؟؟؟ نه نیست پس شما یک فایل رو تبدیل به کد میکنید و به همراه برنامه اصلی در fpga و یا e2prom پروگرام میکنید.


  4. کاربران : 2 تشکر کرده اند از شما allahyarzadeh برای ارسال این پست سودمند:


  5. #3
    عضو جدید
    تاریخ عضویت
    Jun 2011
    نوشته ها
    7
    تشکر
    2
    تشکر شده 4 بار در 2 پست

    پیش فرض

    مهندس بابت راهنماییت تشکر
    دستت درد نکنه
    متوجه اصل قضیه شدم

    برنامه من قابل سنتز شدن نیست
    واسه همین ISE بهم خطا میداد
    فقط قابل شبیه سازی هست واسه همین ISIM و ACTIVE HDL میتونستن برنامه من رو به درستی کامپایل کنن و خروجی رو ببینم.

    همین طور که فرمودید در عمل FPGA نمیتونه از یه فایل TEXT ورودی بگیره و داده ها حتما باید تو یک حافظه خاصی ذخیره بشن.
    به همین دلیل هم ISE توانایی سنتز کردن رو نداشت.
    در واقع کد های من قابل سنتز شدن نیستن
    و ISE من مشکل نداشت

    الان تکلیف این تمرین مشخص شد برام
    من و باش که چقدر براش زمان گذاشتم
    الان یه تمرین جدید دارم که باید برای این عمل کد سنتز پذیر بنویسم
    در واقع برای اینکه سنتز پذیر باشه باید داده هام رو در RAM ذخیره کنم و FPGA از روی RAM داده ها رو بخونه و پردازش کنه

    اگه به مشکلی برخوردم همین جا می نویسم

    دمت گرم

  6. #4
    تازه وارد
    تاریخ عضویت
    Sep 2014
    نوشته ها
    1
    تشکر
    0
    تشکر شده 0 بار در 0 پست

    پیش فرض

    با سلام من نرم افزار ISE رو لپ تاپ خودم و چهار PC نصب کردم و برنامه هایی که می نویسیم به طور کامل سینتسایز میشن فقط مشکلم اینه که هنگام سیموله کردن با ISIM خطا زیر را می گیرد
    FATAL_ERROR:Simulator:Fuse.cpp:209:1.129 - Failed to compile one of the generated C files. Please recompile with -mt off -v 1 switch to identify which design unit failed. Process will terminate. For technical support on this issue, please open a WebCase with this project attached at http://www.xilinx.com/support.
    البته این مشکل فقط رو یکی از PC ها نیست و به طور کامل اجرا میشه، لطفا اگر کسی از این error چیزی سر در میاره کمکم کنه
    با تشکر

  7. #5
    مدير بخش STM32 sadmonew آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    صادق محمدي
    نوشته ها
    2,002
    تشکر
    6,283
    تشکر شده 3,115 بار در 1,408 پست

    پیش فرض

    نقل قول نوشته اصلی توسط b.mahdavi1370 نمایش پست ها
    با سلام من نرم افزار ISE رو لپ تاپ خودم و چهار PC نصب کردم و برنامه هایی که می نویسیم به طور کامل سینتسایز میشن فقط مشکلم اینه که هنگام سیموله کردن با ISIM خطا زیر را می گیرد
    FATAL_ERROR:Simulator:Fuse.cpp:209:1.129 - Failed to compile one of the generated C files. Please recompile with -mt off -v 1 switch to identify which design unit failed. Process will terminate. For technical support on this issue, please open a WebCase with this project attached at http://www.xilinx.com/support.
    البته این مشکل فقط رو یکی از PC ها نیست و به طور کامل اجرا میشه، لطفا اگر کسی از این error چیزی سر در میاره کمکم کنه
    با تشکر
    سلام مهندس
    تو متن خطا گفته كه "يه بار ديگه با سوئيچ mt off -v 1- كامپايلش كني".
    اين كارو انجام دادي؟
    _____________________________________
    _____________________________________

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

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