MyFPGA Forum

 找回密码
 注册
搜索
楼主: rich
打印 上一主题 下一主题

DE1 NIOS-BASED VGA Display

[复制链接]
21#
发表于 2009-10-12 14:57:56 | 只看该作者
本帖最后由 kay54068 于 2009-10-12 15:00 编辑

rich 大大有空是否可以為我解答呢!!~~(問題在#20)
22#
 楼主| 发表于 2009-10-12 23:00:34 | 只看该作者
1. 關於arbitration share value, 基本上你要依照資料流量來分配, 是有規則性的. 由於vga display 是real time 的, 所以DMA 相關data flow一定要給足夠的頻寬, 最好再外加20~40%, 否則會看到雪花.

2/3. 關於D5M, 我建議先作最簡的作法是, 先作capture 的功能. 寫一個video source component, 先將一個畫面的Bayer pattern 放到另一顆SDRAM (跟VGA 用同一顆, 可能會頻寬不夠), 然後用nois 將bayer pattern 轉成24-bits RGB 畫到vga display 對應的writen frame buffer, 畫完後, 作display & writen buffer 的switch 將該影像顯示出來(這部分, 全部使用C code), 先把這些打通, 掌握一些D5M的技術後, 再加DMA 來作real-time capture 會比較容易些, 否則會太複雜, 不知如何debug 起.
23#
 楼主| 发表于 2009-10-13 10:03:44 | 只看该作者
補充一下, 已上說的"Video source component" 其實是用memory mapped interface 的avalon-master port, 將資料寫入sdram, 不用到streaming interface.
24#
发表于 2009-10-23 21:11:05 | 只看该作者
谢谢楼主分享
25#
发表于 2009-12-6 23:24:11 | 只看该作者
請問一下,我在此範例中寫........
display = alt_video_display_init( LCD_SGDMA_NAME,   
                                    800,//ALT_VIDEO_DISPLAY_COLS,               // int width(640)
                                    600,//ALT_VIDEO_DISPLAY_ROWS,               // int height(480)
                                    32,//ALT_VIDEO_DISPLAY_COLOR_DEPTH,
                                    ALT_VIDEO_DISPLAY_USE_HEAP,           
                                    ALT_VIDEO_DISPLAY_USE_HEAP,        
                                    2 );  
vid_draw_round_corner_box ( 100, 100, 200, 200, 10, COLOR_G, DO_FILL, display);
while(1)
{
     vid_draw_round_corner_box ( 440, 10, 520, 80, 10, COLOR_R, DO_FILL, display);
      alt_video_display_register_written_buffer( display );
        while(alt_video_display_buffer_is_available(display) != 0);
}

會有很大的閃爍問題,請問是哪裡出錯了呢?
26#
发表于 2009-12-23 16:50:02 | 只看该作者
請問一下rich大大,此de1採用streaming與一般使用memory mapped的差異?
27#
发表于 2009-12-23 16:50:24 | 只看该作者
請問一下rich大大,此de1採用streaming與一般使用memory mapped的差異?
28#
发表于 2009-12-24 21:26:20 | 只看该作者
下了,谢谢分享!!!
29#
 楼主| 发表于 2009-12-24 23:10:12 | 只看该作者
memory mapped: 有address pin 來定址所要access 的, 屬於random acess
streaming: 只有data & flow control pin, 沒有address pin, 屬於sequence access.

streaming 可提供較高傳輸速度, 適合於影像串流資料.
30#
发表于 2010-1-9 01:28:20 | 只看该作者
請問rich 大大 我先規劃好某一個畫布(沒寫入),之後重覆畫某個畫布,最之前的資料也會被顯現出來,而形成兩個資料交替(畫面閃爍)的問題EX:
vid_draw_round_corner_box ( 100, 100, 200, 200, 10, COLOR_G, DO_FILL, display);
while(1)
{
     vid_draw_round_corner_box ( 440, 10, 520, 80, 10, COLOR_R, DO_FILL, display);
      alt_video_display_register_written_buffer( display );
        while(alt_video_display_buffer_is_available(display) != 0);
}

請問這該如何修正??
31#
 楼主| 发表于 2010-1-9 10:52:51 | 只看该作者
之前畫布的東西如果不要, 要先呼叫"clear" function, 將畫布清空(其實是填0 到畫布對應的記憶體)
32#
发表于 2010-1-19 16:41:43 | 只看该作者
本帖最后由 kay54068 于 2010-1-19 16:43 编辑

回复 31# rich

請問rich大大若我先前規畫的畫布要保留(類試背景圖,新舊畫布都必須顯現),要如何處理。
PS: 目前我使用的方法:
clear dlsplay -> 貼背景圖->變動的圖,螢幕才不會閃爍,但速度會很"慢"(如果顯示範都很大的話)

以上問題,煩請指教。
33#
发表于 2010-1-28 18:36:27 | 只看该作者
本帖最后由 kay54068 于 2010-1-28 18:37 编辑

回复 32# kay54068

RICH 大大可以幫我解惑嗎?
問題在#32
34#
 楼主| 发表于 2010-2-2 21:39:35 | 只看该作者
如果備景是一樣的, 將"clear dlsplay -> 貼背景圖->" 存在另一個記憶體, 然後memcpy 過去畫布就好. 可以減少memory access 的頻率.
35#
发表于 2010-3-4 15:27:30 | 只看该作者
請問大大,這個專案可以建構出一個的動畫出來嗎?(目前測試3張640x480的圖片更新頻率大概每1~3秒才能輸出圖片,畫面會停頓。)
以上問題,煩請指教。
36#
 楼主| 发表于 2010-3-7 15:40:44 | 只看该作者
應該可以更快才對, 一秒幾張甚至幾十張應該沒問題.
每1~3秒才能輸出圖片的瓶頸有可能來自你自己寫的"產生動畫圖片".

你可已試著用example 提供的API, 產生這樣的動畫圖:"黑色background" + "數字Counter"  
我想一秒鐘, 應該可以count 很多張才對.

若輸出瓶頸真的是"產生動畫圖片". 應該考慮用硬體來加速.
37#
发表于 2010-4-21 10:53:30 | 只看该作者
谢谢楼主,资料太有用了,正是需要的。
38#
发表于 2010-5-6 10:55:44 | 只看该作者
谢谢楼主了  
39#
发表于 2010-5-14 13:36:49 | 只看该作者
好贴,学习了!!!
40#
发表于 2010-6-14 12:16:35 | 只看该作者
谢谢 我正在找这方面的资料,不知道各位用uclinux驱动VGA、ps2经验可否共享一下?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|MyFPGA

GMT+8, 2024-5-16 20:28 , Processed in 0.047768 second(s), 13 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表