SDI工程时钟路径分析
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工程时钟路径分析的更多相关文章
- GTP+SDI工程播出部分思路整理
GTP+SDI工程播出部分思路整理 1.video_out_to_sdi模块 关于video_out_to_sdi模块的输出信号: tx_video_a_y[9:0] 这是要输入SDI IP核内的 t ...
- GTP+SDI工程播出部分思路整理(3)
GTP+SDI工程播出部分思路整理(3) 1.本文的目的主要分析video_out_to_sdi模块中输入信号 tx_usrclk, rst, tx_mode, tx_level_b的使用 Tx_us ...
- GTP+SDI工程播出部分思路整理(2)
GTP+SDI工程播出部分思路整理(2) 以同样的方法来分析tx_video_a_c_in信号: SDI核中tx_video_a_c_in信号连接情况如下所示 .tx_video_a_c_in ...
- BT.656 NTSC制式彩条生成模块(verilog)
BT.656 NTSC制式彩条生成模块(verilog) 1.知识储备 隔行扫描是将一副图像分成两场扫描,第一场扫描第1,2,5,7...等奇数行,第二场扫描2,4,6,8...等偶数行,并把扫奇数行 ...
- GTX_SDI搭建流程
GTX_SDI搭建流程 1.GTX wrapper 因为顶层的GTX wrapper在实际的SDI工程中用不到,我们只是需要GTX wrapper模块中的部分文件.因此,在SDI工程中,我们并不需要生 ...
- VS2010 MFC实现启动画面
1.创建一个SDI工程(或者其他工程都可以). 2.创建一个位图资源命名为IDB_BITMAP1. 3.利用类向导添加一个类CMySplashCtrl(名字可以自己随便取). 4.在MySplashC ...
- mfc ui2
引用:http://www.cnblogs.com/likwo/archive/2010/10/22/1858716.html CJLib(mfc扩展开发包,是xtreme toolkit的前生,但x ...
- VC++中复制对话框资源 之较好方法之一
资源对话框的编写有时候较为麻烦,这里我成功实现了这个方法的可用性,具体如下: 碰到模块移植问题了,自己做的对话框类(继承于CDialog)要移植到目标工程中.在网上搜了几个帖子发现都说的很生涩. ...
- 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 简介和缘 ...
随机推荐
- certbot自动在ubuntu16.04的nginx上部署let's encrypt免费ssl证书
终结CA收费时代,让互联网更安全 Install On Ubuntu systems, the Certbot team maintains a PPA. Once you add it to you ...
- PAT 乙级1003. 我要通过!(20)
“答案正确”是自动判题系统给出的最令人欢喜的回复.本题属于PAT的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”. 得到“答案正确”的条件是: 1 ...
- 【Python】基础练习题-1
#练习1:从键盘输入两个数,并比较其大小,直到输入e/E退出程序 while 1: input_number=raw_inut("please input two numbers,enter ...
- MySQL常见建表选项及约束
阅读目录---MySQL常见的建表选项及约束: 1.create table选项 1.指定列选项:default.comment 2.指定表选项:engine.auto_increment.comme ...
- path-control demo js
THREE.Spline = function(a) { function b(a, b, c, d, e, f, g) { a = 0.5 * (c - a); d = 0.5 * (d - b); ...
- 在Maven项目中,指定使用阿里云仓库下载jar包
Maven项目中,在pom.xml的</project>标签之前加入一下标签,指定使用阿里云仓库下载jar包. <!-- 使用aliyun maven --> <repo ...
- Android强制横屏+全屏的几种常用方法
全屏: 在Activity的onCreate方法中的setContentView(myview)调用之前添加下面代码 1 requestWindowFeature(Window.FEATURE_NO_ ...
- 2017java文本文件操作(读写操作)
java的读写操作是学java开发的必经之路,下面就来总结下java的读写操作. 从上图可以开出,java的读写操作(输入输出)可以用“流”这个概念来表示,总体而言,java的读写操作又分为两种:字符 ...
- css实现三栏布局,两边定宽,中间自适应
1.利用定位实现 css代码如下: .box{overflow: hidden;height: 100px;margin: 10px 0;} .box>div{height: 100%;} #b ...
- Install Java on Ubuntu server
准备工作 a) 获得超级用户权限 关于超级用户访问权限的说明: 要将 Java 安装在系统级位置(例如 /usr/java),则必须以超级用户身份登录,从而获得必要的权限.如果您不具有超级用户访问权限 ...