当前位置: 首页 > news >正文

网站建设需求书餐饮o2o平台有哪些

网站建设需求书,餐饮o2o平台有哪些,wordpress标签库,石家庄房产信息网查询目录 1、前言免责声明 2、我这里已有的 GT 高速接口解决方案3、GTP 全网最细解读GTP 基本结构GTP 发送和接收处理流程GTP 的参考时钟GTP 发送接口GTP 接收接口GTP IP核调用和使用 4、设计思路框架HDMI输入视频配置及采集视频数据组包GTP aurora 8b/10b数据对齐视频数据解包图像… 目录 1、前言免责声明 2、我这里已有的 GT 高速接口解决方案3、GTP 全网最细解读GTP 基本结构GTP 发送和接收处理流程GTP 的参考时钟GTP 发送接口GTP 接收接口GTP IP核调用和使用 4、设计思路框架HDMI输入视频配置及采集视频数据组包GTP aurora 8b/10b数据对齐视频数据解包图像缓存HDMI 视频输出 5、vivado工程1--ADV7611采集--2路SFP传输6、vivado工程2--ADV7611采集--1路SFP传输7、vivado工程3--silicon9011采集--2路SFP传输8、vivado工程4--silicon9011采集--1路SFP传输9、上板调试验证光纤连接静态演示动态演示 10、福利工程代码的获取 1、前言 没玩过GT资源都不好意思说自己玩儿过FPGA这是CSDN某大佬说过的一句话鄙人深信不疑。。。 GT资源是Xilinx系列FPGA的重要卖点也是做高速接口的基础不管是PCIE、SATA、MAC等都需要用到GT资源来做数据高速串化和解串处理Xilinx不同的FPGA系列拥有不同的GT资源类型低端的A7由GTPK7有GTXV7有GTH更高端的U系列还有GTY等他们的速度越来越高应用场景也越来越高端。。。 本文使用Xilinx的Artix7 FPGA的GTP资源做视频传输实验视频源使用笔记本电脑输出模拟HDMI视频输入调用GTP IP核用verilog编写视频数据的编解码模块和数据对齐模块使用开发板硬件上的1个或2个SFP光口实现数据的收发本博客提供4套vivado工程源码4套工程的不同点在于使用1个SFP光口做收发还是两个2个SFP光口做收发在此基础上又分HDMI采集芯片的不同一个是ADV7611作为HDMI采集芯片HDMI输出则采用纯verilog代码的发送模块完成另一个是silicon9011作为HDMI采集芯片silicon9134作为HDMI编码芯片输出HDMI视频本博客详细描述了FPGA GTP 视频传输的设计方案工程代码可综合编译上板调试可直接项目移植适用于在校学生、研究生项目开发也适用于在职工程师做学习提升可应用于医疗、军工等行业的高速接口或图像处理领域 提供完整的、跑通的工程源码和技术支持 工程源码和技术支持的获取方式放在了文章末尾请耐心看到最后 免责声明 本工程及其源码即有自己写的一部分也有网络公开渠道获取的一部分(包括CSDN、Xilinx官网、Altera官网等等)若大佬们觉得有所冒犯请私信批评教育基于此本工程及其源码仅限于读者或粉丝个人学习和研究禁止用于商业用途若由于读者或粉丝自身原因用于商业用途所导致的法律问题与本博客及博主无关请谨慎使用。。。 2、我这里已有的 GT 高速接口解决方案 我的主页有FPGA GT 高速接口专栏该专栏有 GTP 、 GTX 、 GTH 、 GTY 等GT 资源的视频传输例程和PCIE传输例程其中 GTP基于A7系列FPGA开发板搭建GTX基于K7或者ZYNQ系列FPGA开发板搭建GTH基于KU或者V7系列FPGA开发板搭建GTY基于KU系列FPGA开发板搭建以下是专栏地址 点击直接前往 3、GTP 全网最细解读 关于GTP介绍最详细的肯定是Xilinx官方的《ug482_7Series_GTP_Transceivers》我们以此来解读 《ug482_7Series_GTP_Transceivers》的PDF文档我已放在了资料包里文章末尾有获取方式 我用到的开发板FPGA型号为Xilinx Artix7 xc7a35tfgg484-2带有4路GTP资源每通道的收发速度为 500 Mb/s 到 6.6 Gb/s 之间。GTP 收发器支持不同的串行传输接口或协议比如 PCIE 1.1/2.0 接口、万兆网 XUAI 接口、OC-48、串行 RapidIO 接口、 SATA(Serial ATA) 接口、数字分量串行接口(SDI)等等 GTP 基本结构 Xilinx 以 Quad 来对串行高速收发器进行分组四个串行高速收发器和一个 COMMOMQPLL组成一个 Quad每一个串行高速收发器称为一个 Channel(通道下图为四路 GTP 收发器在Artix-7 FPGA 芯片中的示意图《ug482_7Series_GTP_Transceivers》第13页 GTP 的具体内部逻辑框图如下所示它由四个收发器通道 GTPE2_CHANNEL原语 和一个GTPE2_COMMON 原语 组成。每路 GTPE2_CHANNEL 包含发送电路 TX 和接收电路 RX《ug482_7Series_GTP_Transceivers》第14页 每个 GTPE2_CHANNEL 的逻辑电路如下图所示《ug482_7Series_GTP_Transceivers》第15页 GTPE2_CHANNEL 的发送端和接收端功能是独立的均由 PMA(Physical Media Attachment物理媒介适配层)和 PCS(Physical Coding Sublayer物理编码子层)两个子层组成。其中 PMA 子层包含高速串并转换(Serdes)、预/后加重、接收均衡、时钟发生器及时钟恢复等电路。PCS 子层包含8B/10B 编解码、缓冲区、通道绑定和时钟修正等电路。 这里说多了意义不大因为没有做过几个大的项目是不会理解这里面的东西的对于初次使用或者想快速使用者而言更多的精力应该关注IP核的调用和使用后面我也会重点将到IP核的调用和使用 GTP 发送和接收处理流程 首先用户逻辑数据经过 8B/10B 编码后进入一个发送缓存区Phase Adjust FIFO该缓冲区主要是 PMA 子层和 PCS 子层两个时钟域的时钟隔离解决两者时钟速率匹配和相位差异的问题最后经过高速 Serdes 进行并串转换(PISO)有必要的话可以进行预加重(TX Pre-emphasis)、后加重。值得一提的是如果在 PCB 设计时不慎将 TXP 和 TXN 差分引脚交叉连接则可以通过极性控制(Polarity)来弥补这个设计错误。接收端和发送端过程相反相似点较多这里就不赘述了需要注意的是 RX 接收端的弹性缓冲区其具有时钟纠正和通道绑定功能。这里的每一个功能点都可以写一篇论文甚至是一本书所以这里只需要知道个概念即可在具体的项目中回具体用到还是那句话对于初次使用或者想快速使用者而言更多的精力应该关注IP核的调用和使用。 GTP 的参考时钟 GTP 模块有两个差分参考时钟输入管脚(MGTREFCLK0P/N 和 MGTREFCLK1P/N作为 GTP模块的参考时钟源用户可以自行选择。一般的A7系列开发板上都有一路 125Mhz 的 GTP 参考时钟连接到 MGTREFCLK0/1上作为 GTP 的参考时钟。差分参考时钟通过IBUFDS 模块转换成单端时钟信号进入到 GTPE2_COMMOM 的 PLL0 和 PLL1 中产生 TX 和 RX 电路中所需的时钟频率。TX 和 RX 收发器速度相同的话TX 电路和 RX 电路可以使用同一个 PLL 产生的时钟如果 TX 和 RX收发器速度不相同的话需要使用不同的 PLL 时钟产生的时钟。参考时钟这里Xilinx给出的GT参考例程已经做得很好了我们调用时其实不用修改GTP 的参考时钟结构图如下《ug482_7Series_GTP_Transceivers》第21页 GTP 发送接口 《ug482_7Series_GTP_Transceivers》的第75到123页详细介绍了发送处理流程其中大部分内容对于用户而言可以不去深究因为手册讲的基本都是他自己的设计思想留给用户可操作的接口并不多基于此思路我们重点讲讲GTP例化时留给用户的发送部分需要用到的接口 用户只需要关心发送接口的时钟和数据即可GTP例化模块的这部分接口如下 在代码中我已为你们重新绑定并做到了模块的顶层代码部分如下 GTP 接收接口 《ug482_7Series_GTP_Transceivers》的第125到213页详细介绍了发送处理流程其中大部分内容对于用户而言可以不去深究因为手册讲的基本都是他自己的设计思想留给用户可操作的接口并不多基于此思路我们重点讲讲GTP例化时留给用户的发送部分需要用到的接口 用户只需要关心接收接口的时钟和数据即可GTP例化模块的这部分接口如下 在代码中我已为你们重新绑定并做到了模块的顶层代码部分如下 GTP IP核调用和使用 有别于网上其他博主的教程我个人喜欢用如下图的共享逻辑 这样选择的好处有两个一是方便DRP变速二是便于IP核的修改修改完IP核后直接编译即可不再需要打开example工程再复制下面的一堆文件放到自己的工程什么的玩儿个GTP需要那么复杂么 这里对上图的标号做解释 1线速率根据自己的项目需求来GTP的范围是0.5到6.25G由于我的项目是视频传输所以在GTP的速率范围内均可为了通用性我在vivado工程中例化了5个GTP速率分别为1G、2G、4G、5G 2参考时钟这个得根据你的原理图来可以是80M、125M、148.5M、156.25M等等我的开发板是125M 4GTP组的绑定这个很重要他的绑定参考依据有两个已是你的开发板原理图而是官方的参考资料《ug482_7Series_GTP_Transceivers》官方将GTP资源分成了4组名字分别为X0Y0、X0Y1、X0Y2、X0Y3由于GT资源是Xilinx系列FPGA的专用资源占用专用的Bnak所以引脚也是专用的那么这些GTP组和引脚是怎么对应的呢《ug482_7Series_GTP_Transceivers》的说明如下红框内为的我的开发板原理图对应的FPGA引脚 我的板子原理图如下 选择外部数据位宽32bit的8b/10b编解码如下 下面这里讲的是K码检测 这里选择K28.5也就是所谓的COM码十六进制为bc他的作用很多可以表示空闲乱序符号也可以表示数据错位标志这里用来标志数据错位8b/10b协议对K码的定义如下 下面讲的是时钟矫正也就是对应GTP内部接收部分的弹性buffer 这里有一个时钟频偏的概念特别是收发双方时钟不同源时这里设置的频偏为100ppm规定每隔5000个数据包发送方发送一个4字节的序列接收方的弹性buffer会根据这4字节的序列以及数据在buffer中的位置来决定删除或者插入一个4字节的序列中的一个字节目的是确保数据从发送端到接收端的稳定性消除时钟频偏的影响 4、设计思路框架 本博客提供2套vivado工程源码2套工程的不同点在于使用1个SFP光口做收发还是两个2个SFP光口做收发使用1个SFP光口做收发是用光纤连接SFP的RX和TX使用2个SFP光口做收发是用光纤连接一个SFP的RX和另一个SFP的TX设计思路框架分别如下 DHMI视频输入ADV7611采集使用2个SFP光口框图如下 DHMI视频输入ADV7611采集使用1个SFP光口框图如下 DHMI视频输入silcom9011采集使用2个SFP光口框图如下 DHMI视频输入silcom9011采集使用1个SFP光口框图如下 HDMI输入视频配置及采集 工程1的HDMI输入解码采用ADV7611芯片完成工程1的HDMI输入解码采用silicon9011芯片完成二者都需要i2c配置才能使用二者均由纯verilog代码实现的i2c配置模块完成代码位置分别如下 关于silicon9011芯片的配置请参考我之前的博客博客地址点击直接前往 视频数据组包 由于视频需要在GTP中通过aurora 8b/10b协议收发所以数据必须进行组包以适应aurora 8b/10b协议标准视频数据组包模块代码位置如下 首先我们将16bit的视频存入FIFO中存满一行时就从FIFO读出送入GTP发送在此之前需要对一帧视频进行编号也叫作指令GTP组包时根据固定的指令进行数据发送GTP解包时根据固定的指令恢复视频的场同步信号和视频有效信号当一帧视频的场同步信号上升沿到来时发送一帧视频开始指令 0当一帧视频的场同步信号下降沿到来时发送一帧视频开始指令 1视频消隐期间发送无效数据 0 和无效数据 1当视频有效信号到来时将每一行视频进行编号先发送一行视频开始指令在发送当前的视频行号当一行视频发送完成后再发送一行视频结束指令一帧视频发送完成后先发送一帧视频结束指令 0再发送一帧视频结束指令 1至此一帧视频则发送完成这个模块不太好理解所以我在代码里进行了详细的中文注释需要注意的是为了防止中文注释的乱序显示请用notepad编辑器打开代码指令定义如下 指令可以任意更改但最低字节必须为bc GTP aurora 8b/10b 这个就是调用GTP做aurora 8b/10b协议的数据编解码前面已经对GTP做了详细概述这里不讲代码位置如下 需要注意的是我一共调用了5个GTP速率分别为1G、2G、4G、5G代码中用一个参数选择速率如下 GTP_RATE8’d1GTP以1G线速率运行 GTP_RATE8’d2GTP以2G线速率运行 GTP_RATE8’d4GTP以4G线速率运行 GTP_RATE8’d5GTP以5G线速率运行 以我的测试来看GTP以4G线速率运行时视频传输效果最佳 数据对齐 由于GT资源的aurora 8b/10b数据收发天然有着数据错位的情况所以需要对接受到的解码数据进行数据对齐处理数据对齐模块代码位置如下 我定义的 K 码控制字符格式为XX_XX_XX_BC所以用一个rx_ctrl 指示数据是否为 K 码 的 COM 符号 rx_ctrl 4’b0000 表示 4 字节的数据没有 COM 码 rx_ctrl 4’b0001 表示 4 字节的数据中[ 7: 0] 为 COM 码 rx_ctrl 4’b0010 表示 4 字节的数据中[15: 8] 为 COM 码 rx_ctrl 4’b0100 表示 4 字节的数据中[23:16] 为 COM 码 rx_ctrl 4’b1000 表示 4 字节的数据中[31:24] 为 COM 码 基于此当接收到有K码时就对数据进行对齐处理也就是将数据打一拍和新进来的数据进行错位组合这是FPGA的基础操作这里不再赘述 视频数据解包 数据解包是数据组包的逆过程代码位置如下 GTP解包时根据固定的指令恢复视频的场同步信号和视频有效信号这些信号是作为后面图像缓存的重要信号 至此数据进出GTP部分就已经讲完了整个过程的框图我在代码中描述了如下 图像缓存 经常看我博客的老粉应该都知道我做图像缓存的套路是FDMA他的作用是将图像送入DDR中做3帧缓存再读出显示目的是匹配输入输出的时钟差和提高输出视频质量关于FDMA请参考我之前的博客博客地址点击直接前往 HDMI 视频输出 工程1和工程2视频从FDMA读出后经过VGA时序模块和HDMI发送模块后输出显示器代码位置如下 VGA时序配置为1920X1080HDMI发送模块采用verilog代码手写可以用于FPGA的HDMI发送应用关于这个模块请参考我之前的博客博客地址点击直接前往 工程3和工程4的HDMI输出编码采用silicon9134芯片完成silicon9134芯片需要i2c配置才能使用关于silicon9134芯片的配置请参考我之前的博客博客地址点击直接前往 5、vivado工程1–ADV7611采集–2路SFP传输 开发板FPGA型号Xilinx–Artix7–xc7a35tfgg484-2 开发环境Vivado2019.1 输入笔记本电脑输出模拟HDMI视频输入分辨率1920x108060HzADV7611解码 输出HDMI显示器纯verilogHDMI发送模块 应用2路SFP光口GTP aurora 8b/10b编解码视频传输 工程Block Design如下 工程代码架构如下 综合编译完成后的FPGA资源消耗和功耗预估如下 6、vivado工程2–ADV7611采集–1路SFP传输 开发板FPGA型号Xilinx–Artix7–xc7a35tfgg484-2 开发环境Vivado2019.1 输入笔记本电脑输出模拟HDMI视频输入分辨率1920x108060HzADV7611解码 输出HDMI显示器纯verilogHDMI发送模块 应用1路SFP光口GTP aurora 8b/10b编解码视频传输 工程Block Design、工程代码架构、综合编译完成后的FPGA资源消耗和功耗预估同第5章节 7、vivado工程3–silicon9011采集–2路SFP传输 开发板FPGA型号Xilinx–Artix7–xc7a35tfgg484-2 开发环境Vivado2019.1 输入笔记本电脑输出模拟HDMI视频输入分辨率1920x108060Hzsilicon9011解码 输出HDMI显示器silicon9134编码 应用2路SFP光口GTP aurora 8b/10b编解码视频传输 工程Block Design如下 工程代码架构如下 综合编译完成后的FPGA资源消耗和功耗预估如下 8、vivado工程4–silicon9011采集–1路SFP传输 开发板FPGA型号Xilinx–Artix7–xc7a35tfgg484-2 开发环境Vivado2019.1 输入笔记本电脑输出模拟HDMI视频输入分辨率1920x108060Hzsilicon9011解码 输出HDMI显示器silicon9134编码 应用1路SFP光口GTP aurora 8b/10b编解码视频传输 工程Block Design、工程代码架构、综合编译完成后的FPGA资源消耗和功耗预估同第5章节 9、上板调试验证 光纤连接 工程12路SFP传输的光纤接法如下 工程21路SFP传输的光纤接法如下 静态演示 下面以工程12路SFP传输为例展示输出效果 当GTP运行1G和2G线速率时输出如下 可以看到输出的视频是乱的这是因为线速率太低了 我们把GTP线速率提高到4G时时输出如下 可以看到此时输出的视频质量就已经很高了 我们再把GTP线速率提高到5G时输出如下 如果仔细观察会发现此时输出视频有一下噪点这是因为线速率太高了 动态演示 经过我的认真对比发现GTP运行4G线速率时输出视频质量最高下面展示GTP运行4G线速率时的短视频 GTP_HDMI_7611 10、福利工程代码的获取 福利工程代码的获取 代码太大无法邮箱发送以某度网盘链接方式发送 资料获取方式私或者文章末尾的V名片。 网盘资料如下
http://www.w-s-a.com/news/448711/

相关文章:

  • 响应式网站模板下载免费wordpress 小工具移动
  • 网站标签title在线app制作平台
  • 做电器推广的网站简洁大方的网站模板
  • 网站开发的平台100个详情页设计图
  • wordpress淘宝客建站教程视频知名的设计公司网站
  • 批量做单页网站怎么直接用代码做网站
  • 百度收录较好的网站办公室装修设计方案
  • 建设购物网站要求cnzz数据统计
  • 深圳自适应网站建设价格广东网站建设软件
  • 网页设计介绍北京网站自己做彩票网站
  • 最牛论坛网站app生成链接
  • 用jsp做的网站源代码网站优化说明
  • 网站建设公司名字甘肃省和住房建设厅网站
  • 做外贸网站需要什么卡网站建设公司怎样
  • 网站关键词密度怎么计算的中文版wordpress
  • asp网站建设教程如何在线上推广自己的产品
  • 电脑网站你懂我意思正能量济南网站建设公司熊掌号
  • 杂志社网站建设萧山区网站建设
  • 电商网站前端制作分工网站怎做百度代码统计
  • 免费的html大作业网站网站开发心得500字
  • 临时工找工作网站做美缝帮别人做非法网站
  • 深圳网站建设 设计创公司新昌网站开发
  • 唐山教育平台网站建设上海装修网官网
  • 一个公司做多个网站什么行业愿意做网站
  • 成都龙泉建设网站免费域名app官方下载
  • xss网站怎么搭建如何用wordpress站群
  • 怎样做网站外链supercell账号注册网站
  • 阿里巴巴网站是用什么技术做的哪些网站做推广比较好
  • 做网站go和python手机如何创网站
  • 网站开发进修网站做301将重定向到新域名