引言

图形,总是给人直观的感觉。想让ORPSoC能有image/video的输出,是一件很有意义的事情,而VGA就是其中一个不错的选择。

本小节就分析一下一个wishbone接口的vga模块。

1,模块准备

下载:

http://opencores.org/project,vga_lcd

2,模块的architecture

3,模块的使用

这一步需要一点与LCD/vedio相关的知识。我曾经写过一个LCDC的linux driver,并且有数字电视的开发经验,所以理解起来就容易了很多。

这里只把最重要的timing拿来。更过详细信息,请参考内附的spec.

下面这个图要仔细看,真正理解了才行。理解之后,后面的很多事情就好说了。

建议:想象一下,电视的刷新过程。

这个模块是比较简单的,没有复杂的图像处理功能,但是这里还是必须把下面几个概念搞明白:

1>行同步(水平同步),行宽,前肩,后肩。

2>列同步(垂直同步),场宽

3>回扫

4>像素

5>rgb

6>灰阶

7>wishbone的burst访问

8>双buffer工作机制

9>alpha blanking

10>fifo的underrun和overrun

11>调色板的本质作用

4,仿真的整体结构

要想对vga_eng_top这个模块进行仿真,需要建立必要的仿真模型,并将它们连接起来。

5,仿真过程概述

1>复位

2>测试寄存器的读写是否有问题(reg_test)

3>初始化mem。

4>测试vga所有模式下的输出时序是否正确(tim_test),共6个模式。

5>测试DVI pixel数据的正确性:dvi_pd_test

6>测试VGA pixel的数据的正确性:pd1_test

7>测试FIFO的underrun:ur_test

6,各个模式下参数的设置:

for(mode=0;mode<6;mode=mode+1)begin// reset corescen = 0;m0.wb_wr1( `CTRL,  4'hf, 32'h0000_0000);repeat(10)    @(posedge clk);$display("Mode: %0d", mode);case(mode)0:beginthsync = 0;thgdel = 0;thgate = 319; // gate = 320thlen = 345;tvsync = 0;tvgdel = 0;tvgate = 239; // vgate = 240tvlen = 245;hpol = 0;vpol = 0;cpol = 0;bpol = 0;end1:beginthsync = 18;thgdel = 18;thgate = 319; // gate = 320thlen = 390;tvsync = 18;tvgdel = 18;tvgate = 239; // vgate = 240tvlen = 290;hpol = 1;vpol = 0;cpol = 0;bpol = 0;end2:beginthsync = 1;thgdel = 1;thgate = 639; // hgate = 640thlen = 644;tvsync = 1;tvgdel = 1;tvgate = 479; // vgate = 480tvlen = 484;hpol = 0;vpol = 1;cpol = 0;bpol = 0;end3:beginthsync = 0;thgdel = 2;thgate = 799; // hgate = 800thlen = 804;tvsync = 0;tvgdel = 2;tvgate = 599; // vgate = 600tvlen = 604;hpol = 0;vpol = 0;cpol = 1;bpol = 0;end4:beginthsync = 3;thgdel = 2;thgate = 799; // hgate = 800thlen = 807;tvsync = 2;tvgdel = 2;tvgate = 599; // vgate = 600tvlen = 606;hpol = 0;vpol = 0;cpol = 0;bpol = 1;end5:beginthsync = 6;thgdel = 2;thgate = 799; // hgate = 800thlen = 810;tvsync = 4;tvgdel = 2;tvgate = 599; // vgate = 600tvlen = 608;hpol = 1;vpol = 1;cpol = 1;bpol = 1;endendcase/*thsync = 0;thgdel = 0;thgate = 64;thlen = 70;tvsync = 0;tvgdel = 0;tvgate = 64;tvlen = 70;hpol = 0;vpol = 0;cpol = 0;bpol = 0;
*/m0.wb_wr1( `HTIM,  4'hf, {thsync, thgdel, thgate} );m0.wb_wr1( `VTIM,  4'hf, {tvsync, tvgdel, tvgate} );m0.wb_wr1( `HVLEN, 4'hf, {thlen, tvlen} );m0.wb_wr1( `CTRL,  4'hf, {16'h0,bpol, cpol,vpol, hpol,1'b0,   // PC2'h0, // CD2'h0, // VBL2'h0,    // Reserved5'h01   // Bank Switch, INT, VideoEn});repeat(2) @(posedge vsync);scen = 1;repeat(4) @(posedge vsync);end

7,仿真结果

说明:仿真过程需要很长时间(我的电脑超过30mins),所以只选取了一行数据的输出波形,如下;

可以看到行同步型号,混合同步信号,blank信号,rgb信号等重要的几个信号的时序关系。

8,小结

剩下的工作就是FPGA验证了,参考之前的blog内容,将其挂在arbiter_dbus上面。

与之前那个FFT模块的接口一样,也是一个slave接口,和一个master接口。

http://blog.csdn.net/rill_zhen/article/details/8849149

附:

本实验的所有源码和文档我已上传:

http://download.csdn.net/detail/rill_zhen/5353755

good luck!

OpenRisc-27-wishbone接口的vga ipcore的分析与仿真相关推荐

  1. 计算机主机的声音线是哪个好,电脑显示器连接线哪种接口好|VGA、HDMI视频接口选哪个好...

    电脑显示器和主机之间需要专用线路来连接,显示器和主机箱通常会同时配置多种视频接口,比较常见的视频接口有VGA.DVI.HDMI和DP,其中VGA和HDMI比较常用.视频接口这么多种,要选择哪一种比较好 ...

  2. 显示器接口:VGA、HDMI、DVI 、DisplayPort

    最常见的显示器接口有VGA端子.数码视频接口 (DVI).高画质多媒体接口(HDMI)和DisplayPort(DP). 1)VGA端子 VGA端子(Video Graphics Array (VGA ...

  3. 常见视频接口(HDMI/VGA/SDI/CmaeraLink)介绍

    对于常见的视频接口总结以下图 模拟接口 CVBS(RCA接口) Composite Video Broadcast Signal(复合视频广播信号) CVBS是Composite Video Broa ...

  4. 使用OPC DA接口将robotdtudio与西门子sim进行仿真连接

    使用OPC DA接口将robotdtudio与西门子sim进行仿真连接 简介 使用软件 博途TIA V16 RobotStudio 6.01 ABB IRC5 OPC Configuration Ne ...

  5. USB接口供电不足的原因分析与解决方案

    USB接口供电不足的原因分析与解决方案 USB接口供电不足是什么原因.我们在使用电脑的时候,经常会用到电脑的USB接口,因为有很多USB接口的设备会连接电脑.但是当我们的电脑提示USB接口供电不足,那 ...

  6. 怎么用python爬股票接口对股票数据进行分析

    怎么用python爬股票接口对股票数据进行分析 在 Python的QSTK中,是通过 s_datapath 变量,定义相应股票数据所在的文件夹. 具体的股票数据来源,例如沪深.港股等市场,你可以使用免 ...

  7. 高速接口之VGA接口

    原理介绍 VGA(Video Graphics Array)即视频图形阵列,是IBM在1987年推出的使用模拟信号的一种视频传输标准,在当时具有分辨率高.显示速率快.颜色丰富等优点,在彩色显示器领域得 ...

  8. 关于DP和HDMI和VGA和RS232这几种接口的实用性和功能性分析

    感觉很多朋友对液晶显示器的接口类型缺乏了解,笔者以最常见的几种液晶显示器接口为例,为各位读者一一介绍一下. 1:HDMI,中文名为"高清晰度多媒体接口",与VGA和DVI等接口不同 ...

  9. 【Computer Organization笔记27】接口电路和外部设备

    本次笔记内容: P53 计算机组成原理(53) P54 计算机组成原理(54) 我的计组笔记汇总:计算机组原理成笔记 视频地址:计算机组成原理 清华大学刘卫东 全58讲 国家精品课程 1080P 更完 ...

最新文章

  1. springboot整合freemarker(转)
  2. Memcache 内存分配策略和性能(使用)状态检查
  3. 1023:Hello,World!的大小
  4. powershell新建python文件_powershell如何打开Python
  5. Jsoup代码解读之七-实现一个CSS Selector
  6. 【C++模板】特化与偏特化 template [partial] specialization
  7. 大道至简 读后有感
  8. PHP扩展详解(一)
  9. ssis zip压缩文件_SSIS平面文件与原始文件
  10. 【shell 练习5】编写简单的多级菜单
  11. 数据挖掘—Apriori算法
  12. 手机内存带宽和分辨率
  13. 桌面文件不见了怎么恢复?整理的这3个方法你一定不能错过
  14. 【O2O领域】外卖订餐APP商家手机端Axure原型作品(实战项目功能全)
  15. 130个资源网站,总有一个你用得着
  16. jsp+ssm计算机毕业设计st音乐网站论文【附源码】
  17. 数据挖掘常用算法优缺点分析
  18. 红黑树(一)的原理和算法详细介绍
  19. 华为云数据中心建设全面复工进行中,预计2021年投入使用
  20. VMware 14 Pro 永久许可证激活密钥

热门文章

  1. 神经网络与PyTorch:线性回归
  2. 基于数字电路典型分频电路设计
  3. My dear dalao please daidai wo。
  4. 静态化freemarker,分布式文件系统minIO
  5. meo学习笔记4:C++中对象占用内存情况
  6. benj™ 100+城市街拍电影人像调色LR预设/移动LR预设/LUT预设效果预览
  7. 在Qt中使用OpenGL(三)
  8. 蓝牙音乐SRC侧的安卓实现
  9. 分辨率并不是越高越好,因为人眼分辨能力存在极限
  10. 小程序支付“”商户号该产品权限未开通,请前往商户平台产品中心检查后重试“”解决方案