SDI工程时钟路径分析

//------------- Receive Ports - RX Fabric Output Control Ports -------------
output rxoutclk_out,
//---------------- Receive Ports - FPGA RX Interface Ports -----------------
input rxusrclk_in,
input rxusrclk2_in, //--------- Transmit Ports - TX Fabric Clock Output Control Ports ----------
output txoutclk_out, //---------------- Transmit Ports - FPGA TX Interface Ports ----------------
input txusrclk_in,
input txusrclk2_in, //----------------------------------------------------------//
//通过查阅x7gtx_sdi_wrapper.v文件中的k7gtx_sdi_wrapper_GT模块
k7gtx_sdi_wrapper_GT #(
.GT_SIM_GTRESET_SPEEDUP ("FALSE"))
GTX_i (
.rxusrclk_in (rx_usrclk),
.rxusrclk2_in (rx_usrclk),
.rxoutclk_out (rx_outclk), .txusrclk_in (tx_usrclk),
.txusrclk2_in (tx_usrclk),
.txoutclk_out (tx_outclk),
); //----------------------------------------------------------//
//检查rx_usrclk rx_outclk tx_usrclk tx_outclk的使用情况
//从k7gtx_sdi_wrapper_GT出来的tx_outclk和rx_outclk通过BUFG之后,
//变成了tx_usrclk和rx_usrclk后又进入了k7gtx_sdi_wrapper_GT模块
BUFG BUFGTX (
.I (tx_outclk),
.O (tx_usrclk)); assign tx_usrclk_out = tx_usrclk; BUFG BUFGRX (
.I (rx_outclk),
.O (rx_usrclk)); assign rx_usrclk_out = rx_usrclk; //tx_usrclk 驱动tx_usrclk_out,rx_usrclk驱动rx_usrclk_out
//tx_usrclk_out,rx_usrclk_out两个时钟通过x7gtx_sdi_wrapper模块输出
module x7gtx_sdi_wrapper #(
parameter FXDCLK_FREQ = , // Frequency, in hertz, of fixed frequency clock
parameter DRPCLK_PERIOD = , // Period of drpclk in ns, always round down
parameter PLLLOCK_TIMEOUT_PERIOD = , // Period of PLLLOCK timeout in ns, defaults to 2ms
parameter RESET_TIMEOUT_PERIOD = , // Period of GTH RESETDONE timeout in ns, defaults to 500us
parameter TIMEOUT_CNTR_BITWIDTH = , // Width in bits of timeout counter
parameter RETRY_CNTR_BITWIDTH = , // Width in bits of the retry counter
parameter CPLL_REFCLK_PORT = "REFCLK1", // Options are REFCLK0, REFCLK1, GREFCLK, NORTH0, NORTH1, SOUTH0, SOUTH1
parameter TX_CLK0_QPLL = , // Set to 1 if QPLL is TX serial clock source with tx_m = 0, else set to 0
parameter TX_CLK1_QPLL = , // Set to 1 if QPLL is TX serial clock source with tx_m = 1, else set to 0
parameter GT_SIM_GTRESET_SPEEDUP = "FALSE")
(
output wire rx_usrclk_out, // rxusrclk input
output wire tx_usrclk_out, // clock input
); //----------------------------------------------------------//
//对于SDI核来说rx_usrclk和tx_usrclk都是输入进SDI核的,而不是先前理解的
//从核里面输出的时钟rx_usrclk,tx_usrclk
smpte_sdi your_instance_name (
.rx_usrclk(rx_usrclk), // input wire rx_usrclk
.tx_usrclk(tx_usrclk), // input wire tx_usrclk
); //----------------------------------------------------------//
//对于x7gtx_sdi_control模块
//tx_usrclk和rx_usrclk作为时钟输入
x7gtx_sdi_control #(
.FXDCLK_FREQ (FXDCLK_FREQ),
.DRPCLK_PERIOD (DRPCLK_PERIOD),
.PLLLOCK_TIMEOUT_PERIOD (PLLLOCK_TIMEOUT_PERIOD),
.RESET_TIMEOUT_PERIOD (RESET_TIMEOUT_PERIOD),
.TIMEOUT_CNTR_BITWIDTH (TIMEOUT_CNTR_BITWIDTH),
.RETRY_CNTR_BITWIDTH (RETRY_CNTR_BITWIDTH),
.TX_CLK0_QPLL (TX_CLK0_QPLL),
.TX_CLK1_QPLL (TX_CLK1_QPLL))
GTX_CTRL (
.txusrclk (tx_usrclk),
.rxusrclk (rx_usrclk),
); //查看x7gtx_sdi_control模块代码
module x7gtx_sdi_control #(
parameter FXDCLK_FREQ = , // Frequency, in hertz, of fxdclk
parameter DRPCLK_PERIOD = , // Period of drpclk in ns, always round down
parameter PLLLOCK_TIMEOUT_PERIOD = , // Period of PLLLOCK timeout in ns, defaults to 2ms
parameter RESET_TIMEOUT_PERIOD = , // Period of GTH RESETDONE timeout in ns, defaults to 500us
parameter TIMEOUT_CNTR_BITWIDTH = , // Width in bits of timeout counter
parameter RETRY_CNTR_BITWIDTH = , // Width in bits of the retry counter
parameter TX_CLK0_QPLL = , // Set to 1 if QPLL is TX clock source when tx_m = 0, 0 otherwise
parameter TX_CLK1_QPLL = ) // Set to 1 if QPLL is TX clock source when tx_m = 1, 0 otherwise
(
// TX related signals
input wire txusrclk, // Connect to same clock as drives GTX TXUSRCLK2
// RX related signals
input wire rxusrclk, // Connect to same clock as drives GTX RXUSRCLK2
); //----------------------------------------------------------//
//再向上一层看
//x7gtx_sdi_wrapper模块输出rx_usrclk,tx_usrclk给其它模块使用 module k7_sdi_rxtx #(
USE_CHIPSCOPE = "TRUE")
(
output wire rx_usrclk,
output wire tx_usrclk,
); multigenHD VIDGEN (
.clk (tx_usrclk),
); vidgen_ntsc NTSC (
.clk (tx_usrclk),
); vidgen_pal PAL (
.clk (tx_usrclk),
); x7gtx_sdi_wrapper #(
.FXDCLK_FREQ (),
.DRPCLK_PERIOD (),
.TIMEOUT_CNTR_BITWIDTH (), // 2^16 / 27e6 is enough for 2ms timeout period
.CPLL_REFCLK_PORT ("REFCLK1"), // CPLL reference clock connected to the gtrefclk1 port
.TX_CLK0_QPLL (), // TX uses QPLL as clock source when tx_m is Low
.TX_CLK1_QPLL ()) // TX uses CPLL as clock source when tx_m is High
SDI ( .rx_usrclk_out (rx_usrclk),
.tx_usrclk_out (tx_usrclk),
);

目前为止,尚未弄清楚的就是gtxe2_common模块了。

SDI工程时钟路径分析的更多相关文章

  1. GTP+SDI工程播出部分思路整理

    GTP+SDI工程播出部分思路整理 1.video_out_to_sdi模块 关于video_out_to_sdi模块的输出信号: tx_video_a_y[9:0] 这是要输入SDI IP核内的 t ...

  2. GTP+SDI工程播出部分思路整理(3)

    GTP+SDI工程播出部分思路整理(3) 1.本文的目的主要分析video_out_to_sdi模块中输入信号 tx_usrclk, rst, tx_mode, tx_level_b的使用 Tx_us ...

  3. GTP+SDI工程播出部分思路整理(2)

    GTP+SDI工程播出部分思路整理(2) 以同样的方法来分析tx_video_a_c_in信号: SDI核中tx_video_a_c_in信号连接情况如下所示 .tx_video_a_c_in     ...

  4. BT.656 NTSC制式彩条生成模块(verilog)

    BT.656 NTSC制式彩条生成模块(verilog) 1.知识储备 隔行扫描是将一副图像分成两场扫描,第一场扫描第1,2,5,7...等奇数行,第二场扫描2,4,6,8...等偶数行,并把扫奇数行 ...

  5. GTX_SDI搭建流程

    GTX_SDI搭建流程 1.GTX wrapper 因为顶层的GTX wrapper在实际的SDI工程中用不到,我们只是需要GTX wrapper模块中的部分文件.因此,在SDI工程中,我们并不需要生 ...

  6. VS2010 MFC实现启动画面

    1.创建一个SDI工程(或者其他工程都可以). 2.创建一个位图资源命名为IDB_BITMAP1. 3.利用类向导添加一个类CMySplashCtrl(名字可以自己随便取). 4.在MySplashC ...

  7. mfc ui2

    引用:http://www.cnblogs.com/likwo/archive/2010/10/22/1858716.html CJLib(mfc扩展开发包,是xtreme toolkit的前生,但x ...

  8. VC++中复制对话框资源 之较好方法之一

    资源对话框的编写有时候较为麻烦,这里我成功实现了这个方法的可用性,具体如下: 碰到模块移植问题了,自己做的对话框类(继承于CDialog)要移植到目标工程中.在网上搜了几个帖子发现都说的很生涩.   ...

  9. MFC中快速应用OpenCV(转)

    转载链接:http://wiki.opencv.org.cn/index.php/MFC%E4%B8%AD%E5%BF%AB%E9%80%9F%E5%BA%94%E7%94%A8OpenCV 简介和缘 ...

随机推荐

  1. Python基础3--Python复杂数据类型

    1 堆 堆是一种二叉树,其中每个父节点的值都小于或等于其所有子节点的值,最小的元素总是位于二叉树的根节点. 堆的创建 import heapq import random data = range(1 ...

  2. Angular 组件

    1 2 change是TimepickerDemoCtrl上的,mytime在timepicker内部改变生效就会触发 3 timepicker内部绑定TimepickerDemoCtrl对值的监控 ...

  3. iOS常用的代码块整理

    strong @property (nonatomic,strong) <#Class#> *<#object#>; weak @property (nonatomic,wea ...

  4. 服务器死机 导致 mongo 挂掉

    1.删除mongod.lock和mongodb.log日志文件 2.携带参数重新启动 mongod --dbpath=/var/lib/mongo --port=27017 --fork --logp ...

  5. i = i ++;的分解

    步骤分解: package wrong; public class ShortTest { public static void main(String args[]) { /* * i = i ++ ...

  6. django HttpResponse的用法

    一.传json字典 def back_json(rquest): #JsonResponse父类是HttpResponse,原码里调用了json.dumps() from django.http im ...

  7. day09 MapReduce

    , PS:上图为MapReduce原理全解剖, 图上带红色标识的部分是能够自定义的1.首先要解决读文件的问题. mapTask中有个read()方法,专门负责读取键值对,而且是整行整行的读2.在读好文 ...

  8. IntelliJ IDEA备忘

    IntelliJ IDEA生成get/set方法的快捷键 IntelliJ IDEA生成get/set有2种方式,alt+enter.alt+insert.下面分别介绍这2种方式快速生成get与set ...

  9. golang json html escape unicode

    https://play.golang.org/p/FAH-XS-QMC https://github.com/gin-gonic/gin/issues/693 package main import ...

  10. Windows和linux 文件互传

    一般我是直接在windows下创建一个共享文件夹,然后在linux挂载,我一直都是这么干的. 直到有一天,我需要往一个公网linux上面传几个文件,可是我的Windows是内网的,所以,这种方法行不通 ...