اطلاعیه

Collapse
No announcement yet.

نمایش تصویر بر روی VGA(متن پروژه ضمیمه شد)

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

    نمایش تصویر بر روی VGA(متن پروژه ضمیمه شد)

    سلام دوستان
    من به تازگی کار با پورت VGA رو یاد گرفتم و یک برنامه ساده نوشتم که میتونه رنگ های مختلف را روی صفحه نمایش بده.
    الان میخوام یک عکس رو روی صفحه نمایش بدم .کسی ایده ای داره که چجوری میتونم این کار رو بکنم.
    باید یک sram با سرعت بالا داشته باشم...
    کسی راهنمایی میکنه
    ---------------------------------------------------------------------------------------------------------------------------------------------------------
    پروژه کامل اضافه شد در تاریخ 93/2/2

    ---------------------------------------------------------------------------------------------------------------------------------------------------------
    متن پروژه اضافه شد در تاریخ 94/1/7
    سلام به همگی دوستان ...
    نوشتن پروژه من که تمام شد و خدا روشکر هم نمره خوبی گرفتم
    اکنون طبق قولی که داده بودم کل متن رو بدون کم و کاستی در لینک زیر قرار دادم
    این کار در اولین قدم به خودم کمک میکنه چون میتونه باعث بشه که افراد دیگه هم پروژه هاشون رو اینجا بگذارند و من نیز استفاده کنم
    http://shahimv.persiangig.com/Univer...%20University/


    یاعلی...




    #2
    پاسخ : نمایش تصویر بر روی VGA

    از راهنماییتون واقعا ممنونم
    مواظب باشید اطلاعاتتون رو به کسی لوووو ندید (والا به خدا)
    انشاالله وقتی پروژه کامل شد اطلاعات دقیقشو برا همه میزارم

    دیدگاه


      #3
      پاسخ : نمایش تصویر بر روی VGA

      سلام
      این کتاب رو بگیر حتما

      نمونه سازی FPGA با مثال هایی از VHDL
      نوسته : پونگ پی چو
      ترجمه : قدرت سپید نام
      انتشارت : علوم رایانه

      هرچی میخئای تو این هست. حتی ساخت بازی با VGA
      خدا گفت : به جهنم ببریدش، او برگشت و با تعجب به خدا نگاه کرد. خدا گفت : به بهشت ببریدش. فرشتگان پرسیدند: چرا؟! خدا گفت : او هنوز به من امیدوار است...

      دیدگاه


        #4
        پاسخ : نمایش تصویر بر روی VGA

        نوشته اصلی توسط حمید نجفی
        سلام
        این کتاب رو بگیر حتما

        نمونه سازی FPGA با مثال هایی از VHDL
        نوسته : پونگ پی چو
        ترجمه : قدرت سپید نام
        انتشارت : علوم رایانه

        هرچی میخئای تو این هست. حتی ساخت بازی با VGA
        خیلی ممنون یک دانشگاهی به نام gmu.edu برا شاگرداش از این مرجع استفادخ کرده بود و پاورپوینتش کرده بود
        واقعا عالی بود ... فصل 12 و 13 کتاب

        دیدگاه


          #5
          پاسخ : نمایش تصویر بر روی VGA

          یک مثال AVI Player توی مثالهای Altium designer هست، همچنین مثال نمایش عکسهای Jpeg هم موجوده، کار کردن باهاشون و فهمیدنشون مثل آب خوردنه، در واقع توی محیط Altium با FPGA کار کردن خیلی عالیه! امتحان کنی دیگه سراغ چیز دیگه ای نمیرین. در ضمن اگر SRAM سرعت بالا هم بخواهید من موجود دارم، شماره اش هم اینه IS61WV25616BLL-10TL سرعتش و ظرفیتش 4M (256K x 16) 10ns

          دیدگاه


            #6
            پاسخ : پاسخ : نمایش تصویر بر روی VGA

            نوشته اصلی توسط Ali_Asadzadeh
            یک مثال AVI Player توی مثالهای Altium designer هست، همچنین مثال نمایش عکسهای Jpeg هم موجوده، کار کردن باهاشون و فهمیدنشون مثل آب خوردنه، در واقع توی محیط Altium با FPGA کار کردن خیلی عالیه! امتحان کنی دیگه سراغ چیز دیگه ای نمیرین. در ضمن اگر SRAM سرعت بالا هم بخواهید من موجود دارم، شماره اش هم اینه IS61WV25616BLL-10TL سرعتش و ظرفیتش 4M (256K x 16) 10ns
            این مدل رو تو بازار ایران پیدا کردی؟
            خدا گفت : به جهنم ببریدش، او برگشت و با تعجب به خدا نگاه کرد. خدا گفت : به بهشت ببریدش. فرشتگان پرسیدند: چرا؟! خدا گفت : او هنوز به من امیدوار است...

            دیدگاه


              #7
              پاسخ : نمایش تصویر بر روی VGA

              اگر منظورتون اون رم هست، همانطور که گفتم خودم وارد کردم، یک تعدا موجود دارم، درضمن یک FPGA خوب با ظرفیت بالا رو هم وارد کردم EP3C16Q240C8، اونو هم موجود دارم، ظرفیتش خیلی خوبه، یک سیستم دو CPU میتونید توش درست کنید.

              دیدگاه


                #8
                پاسخ : نمایش تصویر بر روی VGA

                سلام دوستان
                پروژه کارشناسی من تموم شد.
                بازی PONG با FPGA

                زبان برنامه نویسی : VHDL
                سخت افزار : FPGA spartan3 XCS400 xillinx
                فرکانس کاری : 50MHz
                پروتکل ارتباطی : VGA
                وضوح تصویر : 640x480
                با سپاس از : دکتر رضا صباغی ندوشن و سایت fpgacenter
                ویژگش منحصر به فرد : طراحی برنامه ای که عکس را به کد VHDL تبدیل کند(مثل اون برنامه که عکس رو به کد هگز GLCD تبدیل میکرد)

                فیلم پروژه :
                http://shahimv.persiangig.com/FPGA/V...V.3GP/download


                عکس های پروژه :






                کلیدها : چپ - راست - شروع - ریست


                دیدگاه


                  #9
                  پاسخ : نمایش تصویر بر روی VGA(جدید)

                  با عرض سلام و خسته نباشید
                  لطفا در مورد پروژه بیش تر توضیح بدید. یک متن خوب بزارید، تا دوستان دیگه لازم نباشه راهی که شما رفته اید رو دوباره بروند، بلکه ادامه دهنده راه شما باشند.
                  -کدهاتونو برای استفاده دیگران بزارید.
                  -مشکل SRAM را چطور حل کردید؟
                  -برای تبدیل عکس به کد VHDL چه کار کردید؟
                  با تشکر
                  مهم نيست که کجايي هستي، چه رنگي هستي، به چه زبوني حرف مي زني. مهم اينه که انسان باشي.
                  http://baranelec.mihanblog.com/
                  آینده ای خواهم ساخت که گذشته ام در برابرش زانو بزند...

                  دیدگاه


                    #10
                    پاسخ : نمایش تصویر بر روی VGA(جدید)

                    نوشته اصلی توسط rima3250
                    با عرض سلام و خسته نباشید
                    لطفا در مورد پروژه بیش تر توضیح بدید. یک متن خوب بزارید، تا دوستان دیگه لازم نباشه راهی که شما رفته اید رو دوباره بروند، بلکه ادامه دهنده راه شما باشند.
                    -کدهاتونو برای استفاده دیگران بزارید.
                    -مشکل SRAM را چطور حل کردید؟
                    -برای تبدیل عکس به کد VHDL چه کار کردید؟
                    با تشکر
                    با عرض سلام به همه دوستان
                    توضیحات که روی چشمم : من هرچی بلدم از بچه های این انجمن بوده
                    وقتی متن پروژه رو دکتر صباغی تایید کرد و نمره بنده رو داد به صورت کامل اینجا میگذارم

                    ولی فعلا به سوالات دونه دونه پاسخ میدم
                    1) اصلا نیازی به SRAM نداشت .چون اومدم اطلاعات رنگی هر پیکسل رو در آن واحد پردازش و روی مانیتور نمایش میدم
                    مثلا وقتی میخواد توپ رو نشون بده به این صورت کار میکنه که هر گاه کانتر x , y به مختصات جدید توپ رسید سیگنال RGB به رنگ توپ دربیاد
                    عملا یک if ساده

                    2)برای عکس هم یک نرم افزار با Delphi نوشتم تا عکس رو به دیتای خامی که در عکس نیاز دارم تبدیل کنه
                    با اون فرمتی که من عکس ها رو روی روی مانیتور نمایش میدم
                    به این صورت که نرم افزار میگه از فلان پیکسل تا فلان پیکسل رنگ عکس مثلا سفید بوده
                    در FPGA هم برنامه رو طوری نوشتم که یک مدار ترکیبی تولید کنه و اگر کانتر x , y به اون مقادیر رسیده بودن سیگنال RGB رو تغییر بده

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

                    عکس برنامه:



                    یک تکه کد تبدیل شده با برنامه :
                    OR ( y_counter = 98 AND ((x_counter >= 172 AND x_counter <= 197 ) ))
                    OR ( y_counter = 99 AND ((x_counter >= 172 AND x_counter <= 197 ) ))
                    OR ( y_counter = 100 AND ((x_counter >= 172 AND x_counter <= 197 ) ))
                    OR ( y_counter = 101 AND ((x_counter >= 172 AND x_counter <= 197 ) ))

                    یعنی یک مدار ترکیبی که اگر کانتر بین اعداد خاصی بود سیگنال RGB متناسب با اون تغییر کنه

                    دیدگاه


                      #11
                      پاسخ : نمایش تصویر بر روی VGA(متن پروژه نیز اضافه شد)

                      سلام ...
                      متن پروژه کارشناسی ام در پست اول ضمیمه شد
                      منتظر نظرات شما هستم

                      دیدگاه


                        #12
                        پاسخ : نمایش تصویر بر روی VGA(متن پروژه ضمیمه شد)

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

                        دیدگاه


                          #13
                          پاسخ : نمایش تصویر بر روی VGA(متن پروژه ضمیمه شد)

                          سلام عزیز جان
                          چرا !! فکر میکنم تا حد امکان در متن پروژه به روشنی روش کار رو گفته ام

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

                          فقط کافیه دوتا کانتر بزارید تا سطر و ستون رو بشماره و میگید هر وقت ستون بین ۰ تا ۳۲۰ بود پایه مربوط به رنگ زرد و هر وقت بین ۳۲۱ تا ۶۴۰ بود پایه مربوط به رنگ قرمز فعال بشه
                          چندتایی کلاک هم باید برای سیگنال های همزمانی اضافه تر بزنید

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


                          دوستان اگر در این تایپک سوال گذاشتید حتما بهم ایمیل هم بزنید چون به دلیل مشغله کاری دیر به دیر به انجمن سر میزنم
                          با کمال تشکر

                          دیدگاه


                            #14
                            پاسخ : نمایش تصویر بر روی VGA(متن پروژه ضمیمه شد)

                            سلام
                            یه برنامه خیلی ساده نوشتم که فقط چند تا رنگ را نشون بده اما همش پیام Out of range میده.
                            لطفا کمک کنید.
                            کد:
                            entity vga1 is
                            port(
                            		I_CLK:in std_logic;
                            --		i_SYS_RESET:in std_logic;
                            		o_VGA_vsync:out std_logic;
                            		o_VGA_hsync:out std_logic;
                            		o_VGA_blue0,o_VGA_blue1:out std_logic;
                            		o_VGA_green0,o_VGA_green1:out std_logic;
                            		o_VGA_red0,o_VGA_red1:out std_logic);
                            	
                            		
                            end vga1;
                            
                            architecture Behavioral of vga1 is
                            
                            constant HD:integer:=640;
                            constant HF:integer:=16;
                            constant HR:integer:=96;
                            constant HB:integer:=48;
                            
                            constant VD:integer:=480;
                            constant VF:integer:=11;
                            constant VR:integer:=2;
                            constant VB:integer:=31;
                            
                            --constant HD:integer:=800;
                            
                            signal vcounter:integer range 0 to 10000:=0;
                            signal hcounter:integer range 0 to 10000:=0;
                            signal voon:std_logic;
                            signal clk_25: std_logic:='0';
                            
                            begin
                            
                            	o_VGA_hsync<='1' when hcounter<=(HD+HF+HB-1) and hcounter>=0 else '0';	
                            	o_VGA_vsync<='1' when vcounter<=(VD+VF+VB) and vcounter>=0 else '0';	 
                            
                            	voon<='1' when hcounter<HD and vcounter<VD else '0';
                            
                             process(I_CLK)
                            	begin
                            		if rising_edge(I_CLK) then
                            			clk_25<=not clk_25;
                            		end if;
                            		if hcounter<100 then
                            			o_VGA_red0<='0';
                            			o_VGA_red1<='0';
                            			o_VGA_blue1<='0';
                            			o_VGA_blue0<='0';
                            			o_VGA_green0<=voon;
                            			o_VGA_green1<='0';
                            		elsif hcounter<200 then	
                            			o_VGA_red0<='0';
                            			o_VGA_red1<='0';
                            			o_VGA_blue1<='0';
                            			o_VGA_blue0<=voon;
                            			o_VGA_green0<='0';
                            			o_VGA_green1<='0';
                            		elsif hcounter<300 then
                            			o_VGA_red0<=voon;
                            			o_VGA_red1<='0';
                            			o_VGA_blue1<='0';
                            			o_VGA_blue0<='0';
                            			o_VGA_green0<='0';
                            			o_VGA_green1<='0';
                            		else
                            			o_VGA_red0<=voon;
                            			o_VGA_red1<='0';
                            			o_VGA_blue1<='0';
                            			o_VGA_blue0<=voon;
                            			o_VGA_green0<='0';
                            			o_VGA_green1<='0';
                            		end if;
                            	end process;
                            	
                            	
                            	process(clk_25)
                            	variable hcounter_div:integer range 0 to 10000:=0;
                            	variable vcounter_div:integer range 0 to 10000:=0;
                            	begin
                            		if rising_edge(clk_25) then
                            			hcounter_div:=hcounter_div+1;
                            			if hcounter_div=(HD+HF+HB+HR-1) then
                            				hcounter_div:=0;
                            				vcounter_div:=(vcounter_div+1);
                            			end if;
                            			if vcounter_div=(VD+VF+VB+VR) then
                            				vcounter_div:=0;
                            			end if;
                            			hcounter<=hcounter_div;
                            			vcounter<=vcounter_div;
                            		end if;
                            	end process;
                            
                            
                            end Behavioral;

                            دیدگاه


                              #15
                              پاسخ : نمایش تصویر بر روی VGA(متن پروژه ضمیمه شد)

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

                              لینک ها در پست اول تصحی شد
                              دوتا فایل rar هست یکی متن پروژه و دیگری فایل های برنامه نویسی هست

                              دیدگاه

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