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

网站开发用什么后端框架郑州手机网站制作

网站开发用什么后端框架,郑州手机网站制作,wordpress架站,wordpress自带企业主题下载目录 1、前言免责声明 2、我这里已有的 GT 高速接口解决方案3、GTX 全网最细解读GTX 基本结构GTX 发送和接收处理流程GTX 的参考时钟GTX 发送接口GTX 接收接口GTX IP核调用和使用 4、设计思路框架视频源选择IT6802解码芯片配置及采集动态彩条视频数据组包GTX aurora 8b/10b数据… 目录 1、前言免责声明 2、我这里已有的 GT 高速接口解决方案3、GTX 全网最细解读GTX 基本结构GTX 发送和接收处理流程GTX 的参考时钟GTX 发送接口GTX 接收接口GTX IP核调用和使用 4、设计思路框架视频源选择IT6802解码芯片配置及采集动态彩条视频数据组包GTX aurora 8b/10b数据对齐视频数据解包图像缓存视频输出 5、第1套vivado工程详解6、第2套vivado工程详解7、上板调试验证光纤连接静态演示 8、福利工程代码的获取 1、前言 没玩过GT资源都不好意思说自己玩儿过FPGA这是CSDN某大佬说过的一句话鄙人深信不疑。。。 GT资源是Xilinx系列FPGA的重要卖点也是做高速接口的基础不管是PCIE、SATA、MAC等都需要用到GT资源来做数据高速串化和解串处理Xilinx不同的FPGA系列拥有不同的GT资源类型低端的A7由GTPK7有GTXV7有GTH更高端的U系列还有GTY等他们的速度越来越高应用场景也越来越高端。。。 本文使用Xilinx的Kintex7 FPGA的GTX资源做板对板的视频传输实验视频源有两种分别对应开发者手里有没有摄像头的情况一种是使用笔记本电脑模拟HDMI视频IT6802解码输入的HDMI为GRB后供FPGA使用如果你得手里没有摄像头或者你得开发板没有HDMI输入接口则可使用代码内部生成的动态彩条模拟摄像头视频视频源的选择通过代码顶层的define宏定义进行默认使用HDMI输入作为视频源调用GTX IP核用verilog编写视频数据的编解码模块和数据对齐模块使用2块开发板硬件上的2个SFP光口实现数据的收发本博客提供2套vivado工程源码2套工程的不同点在于一套是GTX发送另一套是GTX接收本博客详细描述了FPGA GTX 视频传输的设计方案工程代码可综合编译上板调试可直接项目移植适用于在校学生、研究生项目开发也适用于在职工程师做学习提升可应用于医疗、军工等行业的高速接口或图像处理领域 提供完整的、跑通的工程源码和技术支持 工程源码和技术支持的获取方式放在了文章末尾请耐心看到最后 免责声明 本工程及其源码即有自己写的一部分也有网络公开渠道获取的一部分(包括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、GTX 全网最细解读 关于GTX介绍最详细的肯定是Xilinx官方的《ug476_7Series_Transceivers》我们以此来解读 《ug476_7Series_Transceivers》的PDF文档我已放在了资料包里文章末尾有获取方式 我用到的开发板FPGA型号为Xilinx Kintex7 xc7k325tffg676-2带有8路GTX资源其中2路连接到了2个SFP光口每通道的收发速度为 500 Mb/s 到 10.3125 Gb/s 之间。GTX收发器支持不同的串行传输接口或协议比如 PCIE 1.1/2.0 接口、万兆网 XUAI 接口、OC-48、串行 RapidIO 接口、 SATA(Serial ATA) 接口、数字分量串行接口(SDI)等等 GTX 基本结构 Xilinx 以 Quad 来对串行高速收发器进行分组四个串行高速收发器和一个 COMMOMQPLL组成一个 Quad每一个串行高速收发器称为一个 Channel(通道下图为四路 GTX 收发器在Kintex7 FPGA 芯片中的示意图《ug476_7Series_Transceivers》第24页 GTX 的具体内部逻辑框图如下所示它由四个收发器通道 GTXE2_CHANNEL原语 和一个GTXE2_COMMON 原语组成。每路GTXE2_CHANNEL包含发送电路 TX 和接收电路 RXGTXE2_CHANNEL的时钟可以来自于CPLL或者QPLL可在IP配置界面里配置《ug476_7Series_Transceivers》第25页 每个 GTXE2_CHANNEL 的逻辑电路如下图所示《ug476_7Series_Transceivers》第26页 GTXE2_CHANNEL 的发送端和接收端功能是独立的均由 PMA(Physical Media Attachment物理媒介适配层)和 PCS(Physical Coding Sublayer物理编码子层)两个子层组成。其中 PMA 子层包含高速串并转换(Serdes)、预/后加重、接收均衡、时钟发生器及时钟恢复等电路。PCS 子层包含8B/10B 编解码、缓冲区、通道绑定和时钟修正等电路。 这里说多了意义不大因为没有做过几个大的项目是不会理解这里面的东西的对于初次使用或者想快速使用者而言更多的精力应该关注IP核的调用和使用后面我也会重点将到IP核的调用和使用 GTX 发送和接收处理流程 首先用户逻辑数据经过 8B/10B 编码后进入一个发送缓存区Phase Adjust FIFO该缓冲区主要是 PMA 子层和 PCS 子层两个时钟域的时钟隔离解决两者时钟速率匹配和相位差异的问题最后经过高速 Serdes 进行并串转换(PISO)有必要的话可以进行预加重(TX Pre-emphasis)、后加重。值得一提的是如果在 PCB 设计时不慎将 TXP 和 TXN 差分引脚交叉连接则可以通过极性控制(Polarity)来弥补这个设计错误。接收端和发送端过程相反相似点较多这里就不赘述了需要注意的是 RX 接收端的弹性缓冲区其具有时钟纠正和通道绑定功能。这里的每一个功能点都可以写一篇论文甚至是一本书所以这里只需要知道个概念即可在具体的项目中回具体用到还是那句话对于初次使用或者想快速使用者而言更多的精力应该关注IP核的调用和使用。 GTX 的参考时钟 GTX 模块有两个差分参考时钟输入管脚(MGTREFCLK0P/N 和 MGTREFCLK1P/N作为 GTX 模块的参考时钟源用户可以自行选择。一般的A7系列开发板上都有一路 148.5Mhz 的 GTX 参考时钟连接到 MGTREFCLK0上作为 GTX 的参考时钟。差分参考时钟通过IBUFDS 模块转换成单端时钟信号进入到 GTXE2_COMMOM 的QPLL或CPLL中产生 TX 和 RX 电路中所需的时钟频率。TX 和 RX 收发器速度相同的话TX 电路和 RX 电路可以使用同一个 PLL 产生的时钟如果 TX 和 RX收发器速度不相同的话需要使用不同的 PLL 时钟产生的时钟。参考时钟这里Xilinx给出的GT参考例程已经做得很好了我们调用时其实不用修改GTX 的参考时钟结构图如下《ug476_7Series_Transceivers》第31页 GTX 发送接口 《ug476_7Series_Transceivers》的第107到165页详细介绍了发送处理流程其中大部分内容对于用户而言可以不去深究因为手册讲的基本都是他自己的设计思想留给用户可操作的接口并不多基于此思路我们重点讲讲GTX例化时留给用户的发送部分需要用到的接口 用户只需要关心发送接口的时钟和数据即可GTX例化模块的这部分接口如下 在代码中我已为你们重新绑定并做到了模块的顶层代码部分如下 GTX 接收接口 《ug476_7Series_Transceivers》的第167到295页详细介绍了发送处理流程其中大部分内容对于用户而言可以不去深究因为手册讲的基本都是他自己的设计思想留给用户可操作的接口并不多基于此思路我们重点讲讲GTX例化时留给用户的发送部分需要用到的接口 用户只需要关心接收接口的时钟和数据即可GTX例化模块的这部分接口如下 在代码中我已为你们重新绑定并做到了模块的顶层代码部分如下 GTX IP核调用和使用 这里对上图的标号做解释 1线速率根据自己的项目需求来GTX 的范围是0.5到10.3125G由于我的项目是视频传输所以在GTX 的速率范围内均可本例程选择了5.94G 2参考时钟这个得根据你的原理图来可以是80M、125M、148.5M、156.25M等等我的开发板是148.5M 4GTX 组的绑定这个很重要他的绑定参考依据有两个已是你的开发板原理图而是官方的参考资料《ug476_7Series_Transceivers》官方根据BANK不同将GTX资源分成了多组由于GT资源是Xilinx系列FPGA的专用资源占用专用的Bnak所以引脚也是专用的那么这些GTX组和引脚是怎么对应的呢《ug476_7Series_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组工程的不同点在于一套是GTX发送另一套是GTX接收我这里有2个FPGA开发板记作开发板1和开发板2两个开发板上均有HDMI输入和HDMI输出接口2套vivado工程源码如下极其设计架构如下 第1套vivado工程源码GTX作为发送端FPGA开发板1采集视频然后数据组包通过GTX做8b/10b编码后通过板载的SFP光口的TX端发送出去视频源有两种分别对应开发者手里有没有摄像头的情况一种是使用笔记本电脑模拟HDMI视频IT6802解码输入的HDMI为GRB后供FPGA使用如果你得手里没有摄像头或者你得开发板没有HDMI输入接口则可使用代码内部生成的动态彩条模拟摄像头视频视频源的选择通过代码顶层的define宏定义进行默认使用HDMI输入作为视频源 第2套vivado工程源码FPGA2开发板的SFP RX端口接收数据经过GTX做8b/10b解码、数据对齐、数据解包的操作后就得到了有效的视频数据再用我常用的FDMA方案做视频缓存最后输出HDMI视频显示 视频源选择 视频源有两种分别对应开发者手里有没有摄像头的情况如果你的手里有摄像头或者你的开发板有HDMI输入接口则使用HDMI输入作为视频输入源我这里用到的是笔记本模拟HDMI视频IT6802解码芯片解码HDMI如果你得手里没有摄像头或者你得开发板没有HDMI输入接口则可使用代码内部生成的动态彩条模拟摄像头视频动态彩条是移动的画面完全可以模拟视频默认使用HDMI输入作为视频源视频源的选择通过代码顶层的define宏定义进行如下 选择逻辑代码部分如下 选择逻辑如下 当(注释) define USE_SENSOR时输入源视频是动态彩条 当(不注释) define USE_SENSOR时输入源视频是HDMI输入 IT6802解码芯片配置及采集 IT6802解码芯片需要i2c配置才能使用关于IT6802解码芯片的配置和使用请参考我往期的博客博客地址点击直接前往 IT6802解码芯片配置及采集这两部分均用verilog代码模块实现代码位置如下 代码中配置为1920x1080分辨率 动态彩条 动态彩条可配置为不同分辨率的视频视频的边框宽度动态移动方块的大小移动速度等都可以参数化配置我这里配置为辨率1920x1080动态彩条模块代码位置和顶层接口和例化如下 视频数据组包 由于视频需要在GTP中通过aurora 8b/10b协议收发所以数据必须进行组包以适应aurora 8b/10b协议标准视频数据组包模块代码位置如下 首先我们将16bit的视频存入FIFO中存满一行时就从FIFO读出送入GTX发送在此之前需要对一帧视频进行编号也叫作指令GTX组包时根据固定的指令进行数据发送GTX解包时根据固定的指令恢复视频的场同步信号和视频有效信号当一帧视频的场同步信号上升沿到来时发送一帧视频开始指令 0当一帧视频的场同步信号下降沿到来时发送一帧视频开始指令 1视频消隐期间发送无效数据 0 和无效数据 1当视频有效信号到来时将每一行视频进行编号先发送一行视频开始指令在发送当前的视频行号当一行视频发送完成后再发送一行视频结束指令一帧视频发送完成后先发送一帧视频结束指令 0再发送一帧视频结束指令 1至此一帧视频则发送完成这个模块不太好理解所以我在代码里进行了详细的中文注释需要注意的是为了防止中文注释的乱序显示请用notepad编辑器打开代码指令定义如下 指令可以任意更改但最低字节必须为bc GTX aurora 8b/10b 这个就是调用GTX做aurora 8b/10b协议的数据编解码前面已经对GTX做了详细概述这里不讲代码位置如下 数据对齐 由于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的基础操作这里不再赘述 视频数据解包 数据解包是数据组包的逆过程代码位置如下 GTX解包时根据固定的指令恢复视频的场同步信号和视频有效信号这些信号是作为后面图像缓存的重要信号 至此数据进出GTX部分就已经讲完了整个过程的框图我在代码中描述了如下 图像缓存 经常看我博客的老粉应该都知道我做图像缓存的套路是FDMA他的作用是将图像送入DDR中做3帧缓存再读出显示目的是匹配输入输出的时钟差和提高输出视频质量关于FDMA请参考我之前的博客博客地址点击直接前往 视频输出 视频从FDMA读出后经过VGA时序模块和HDMI发送模块后输出显示器代码位置如下 VGA时序配置为1280X720HDMI发送模块采用verilog代码手写可以用于FPGA的HDMI发送应用关于这个模块请参考我之前的博客博客地址点击直接前往 5、第1套vivado工程详解 开发板FPGA型号Xilinx–Kintex7–xc7k325tffg676-2 开发环境Vivado2019.1 输入HDMI或者动态彩条分辨率1920x108060Hz 输出开发板1的SFP光口的TX接口 应用GTX板对板视频传输 工程代码架构如下 综合编译完成后的FPGA资源消耗和功耗预估如下 6、第2套vivado工程详解 开发板FPGA型号Xilinx–Kintex7–xc7k325tffg676-2 开发环境Vivado2019.1 输入开发板2的SFP光口的RX接口 输出开发板2的HDMI输出接口分辨率1920x108060Hz 应用GTX板对板视频传输 工程Block Design如下 工程代码架构如下 综合编译完成后的FPGA资源消耗和功耗预估如下 7、上板调试验证 光纤连接 两块板子的光纤接法如下 静态演示 下面以第1组vivado工程的两块板子为例展示输出效果 当GTX运行4G线速率时输出如下 8、福利工程代码的获取 福利工程代码的获取 代码太大无法邮箱发送以某度网盘链接方式发送 资料获取方式私或者文章末尾的V名片。 网盘资料如下
http://www.pierceye.com/news/182792/

相关文章:

  • 怎样做cms电影网站赚钱网络营销需要学什么
  • wordpress快速仿站视频教程没有备案的网站会怎么样
  • 美团先做网站还是app惠州惠阳网站建设
  • 可以更改上传到网站的文件内容吗信用 网站 建设方案
  • 获奖设计网站公司制作网站价格表
  • 做单页免费模板网站我是做推广的怎么找客户
  • 企业网站建设的缺点网络营销最基本的应用方式是什么
  • 做cpa推广用哪种网站好上海h5网站开发
  • 怎样做免费网站推广怎么申请二级域名
  • 站长之家源码之家虚拟空间官网
  • 网站建设推荐书籍装修公司装修房子
  • 上海专业微信网站开发公司怎么做seo
  • 上海市质量工程建设管理协会网站网站后台源码
  • 淄博机关建设网站免费发布企业信息平台
  • 怎么注册网站免费的怎么给网站备案
  • 新公司 做网站 流程西安房价
  • 展厅设计软件珠海百度快速优化
  • 网站 关键词 地区seo对网络推广的作用是什么?
  • 网站建设 知乎wordpress woocommerce主题
  • 申请建设工作网站的函如何做网站词库
  • 化工集团网站建设 中企动力网站建设用的服务器
  • wow做宏的网站重庆网址大全
  • 网站建设试题 jsp炎陵做网站
  • 购物网站前台功能模块怀孕单子图片在线制作
  • 做百度推广和企业网站那个有效果吗互动的网站
  • 织梦网站后台怎么登陆磁力兔子搜索引擎
  • wordpress建站必须选择主题磁力引擎
  • 主流网站 技术做爰的网站
  • 网站开发免责合同东莞营销型网站建设公司
  • 网站建设维护培训班网站排名系统