专栏中心

EEPW首页 > 专栏 > FPGA开发板DIY过程(十二)

FPGA开发板DIY过程(十二)

发布人:mmqm 时间:2012-10-27 来源:工程师 发布文章

10.27

继续学习NIOS II。

参考网上资料,设计VGA的控制器IP。代码和之前的VGA实验代码差不多,增加了与SDRAM的读取方式。在SDRAM开辟一段显示缓存区域。VGA的分辨率为800x600,在50MHz时钟下,刷新频率为72Hz。

// VESA Signal 800x600 @ 72Hz timing
// Screen refresh rate: 72Hz
// Vertical refresh: 48.076923076923kHz
// Pixel freq.: 50.0MHz

// Horizontal timing (line)
parameter H_SYNC_PULSE = 120; // 行同步
parameter H_BACK_PORCH = 64; // 行同步后
parameter H_VISIBLE_AREA = 800; // 行图像显示
parameter H_FRONT_PORCH = 56; // 行同步前
parameter H_WHOLE_LINE = 1040; // 行总和

// Vertical timing (frame)
parameter V_SYNC_PULSE = 6; // 场同步
parameter V_BACK_PORCH = 23; // 场同步后
parameter V_VISIBLE_AREA = 600; // 场图像显示
parameter V_FRONT_PORCH = 37; // 场同步前
parameter V_TOTAL_FRAME = 666; // 场总和





在NIOS的测试程序,将屏幕分成32x8的小块,分别显示256色(1个字节)

#define VGA_WIDTH 800
#define VGA_HEIGHT 600
#define VGA_BUFFER_SIZE VGA_WIDTH*VGA_HEIGHT
#define VGA_SET_PIXEL(x,y,color) IOWR_8DIRECT((unsigned long)vga_buffer,(y*VGA_WIDTH)+x,color)
unsigned char vga_buffer[VGA_BUFFER_SIZE];

for(y = 0; y < VGA_HEIGHT; y++)
{
yy = y / 75;
for(x = 0; x < VGA_WIDTH; x++)
{
xx = x / 25;
color = yy * 32 + xx;
VGA_SET_PIXEL(x, y, color);
}
}



效果:

专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

电子科技大学--嵌入式系统应用开发技术15

受市场疲软的影响博世预计2025年销售额将增长1%-3%

汽车电子 2025-05-08

如果特朗普废除人工智能扩散规则:需要关注的 3 件事——芯片转移、中东动向等

Arm季度营收创新高,首破10亿美元大关

嵌入式系统 2025-05-08

Bourns扩充其屏蔽式功率电感产品组合,新推出四大产品系列

触摸开关五例

恩智浦推出用于L2+至L4自动驾驶的第三代成像雷达处理器

触摸式互锁电子开关

大中型PLC的工作过程

特朗普将修改人工智能芯片限制 这对Nvidia和AMD意味什么

程序的多任务和资源复用举例

从应用实例理解MAXQ2000评估扳使用

电子科技大学--嵌入式系统应用开发技术12

特朗普将取消全球芯片限制,准备新的人工智能限制

电子科技大学--嵌入式系统应用开发技术13

电子科技大学--嵌入式系统应用开发技术16

纳芯微发布车规级2路半桥驱动NSD3602-Q1,多负载兼容,提升汽车域控系统的灵活性

方寸之间构筑系统级可靠性,纳芯微发布国产首款高性能2线制霍尔开关MT72xx系列

用于汽车的Tensilica AI协处理器

电子科技大学--嵌入式系统应用开发技术14

更多 培训课堂
更多 焦点
更多 视频

技术专区