OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6970|回复: 0

例说FPGA连载96:基于HDMI的AV采集显示之Verilog代码解析

[复制链接]

431

主题

438

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1866
金钱
1866
注册时间
2014-7-19
在线时间
50 小时
发表于 2017-4-30 10:23:01 | 显示全部楼层 |阅读模式
例说FPGA连载96:基于HDMIAV采集显示之Verilog代码解析
特权同学,版权所有
配套例程和更多资料下载链接:
http://pan.baidu.com/s/1c0nf6Qc
1.jpg
         本实例分为4个层级,大大小小共计25个模块,其层次结构如图19.4所示。
2.jpg
图19.4 工程实例17代码层次图
         各个模块的功能描述如表19.1所示。
表19.1 代码模块功能描述
  
模块名
  
功能描述
vip.v
该模块是顶层模块,其下例化了6个子模块。该模块仅仅用于子模块间的接口连接,以及和FPGA外部的接口定义,该模块中未作任何的逻辑处理。
ddr2_controller.v
该模块是一个软核IP,实现DDR2的时序控制功能,并且通过一个简单的Avalon接口实现DDR2和FPGA逻辑之间的读写数据传输。
ddr_avl_bridge.v
该模块作为连接ddr2_controller的桥接模块,用户逻辑中要写入或读出DDR2的数据都需要通过该模块例化的DDR2读数据缓存FIFO或DDR2写数据缓存FIFO实现。
rdfifo_for_sdram.v
  
该模块为片内存储器例化的FIFO,用于缓存从DDR2读出的数据。
wrfifo_for_sdram.v
  
该模块为片内存储器例化的FIFO,用于缓寸写入DDR2的数据。
hdmi_controller.v
该模块产生480p/600p/768p/960p/1024p/1080p分辨率可调的HDMI接口显示驱动逻辑,同时该模块也产生DDR2读操作接口的控制信号。
sys_ctrl.v
该模块中例化了PLL模块,并且对输入PLL的复位信号以及PLL锁定后的复位信号进行“异步复位,同步释放”的处理,确保系统的复位信号稳定可靠。
pll_controller.v
  
该模块为FPGA器件特有的IP硬核模块,其主要功能是产生多个特定输入时钟的分频、倍频、相位调整后的输出时钟信号。
adv7180_ctrl.v
该模块包含6个子模块,实现对ADV7180芯片的IIC寄存器初始化以及ITU656格式AV视频信号的采集、协议解析、去隔行处理、YCrCb转RGB处理等功能。
iic_ctrl.v
  
该模块产生IIC的读写时序,实现对ADV7180芯片的IIC接口寄存器访问。
tiic_debug.v
  
例化的“In-System Sources and Probes Editor”IP核,可用于在线访问IIC寄存器。
dbcheck_ctrl.v
  
ITU656协议的AV视频流解码,去除协议的帧头和帧尾,提取出有效的视频数据。
dbfir.v
  
使用移位寄存器和FIFO,对视频流缓存并实现去隔行处理。
dbsr_ctrl.v
  
移位寄存器,用于缓存一行的视频图像。
kfifo_ctrl.v
  
该模块的FIFO用于缓存ITU656协议解码后的有效视频数据流。
ycbcr2rgb.v
  
将YCrCb格式输入的视频流转换为RGB格式输出的视频流。
muxadd.v
  
3路输入的乘累加IP核。
Muxadd2.v
  
2路输入的乘累加IP核。
vip_qsys.v
该模块是Qsys系统的例化,该模块例化了一个NIOS II处理器,作为Avalon-MM总线的主机;Avalon-MM总线上可访问的从机有片内RAM、System ID、JTAG UART、HDMI_MODE_PIO、LED_PIO、Timer以及自定义的IIC控制器组件。
         以上模块的代码解析请参考工程实例10例程的代码详解,一些特殊的模块见如下解析。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-3-28 23:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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