![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
fpga
文章平均质量分 62
Huskar_Liu
这个作者很懒,什么都没留下…
展开
-
AXIS中TDATA的辅助信号(TUSER,TSTRB,TKEEP)
AXIS总线是一个流式总线,总线上没有addr的概念,数据随着时间先后,形成流式存储布局,TDATA宽度以BYTE为基本单位,即8的倍数。每个字节宽度,视为一个byte lane。对于N个byte lane的宽度的TDATA,多字节宽度的数据,在内部被流式化的时候,是按照逐个byte lane来串化存储的。可以理解为一个8bits的FIFO。如果每个BYTE伴随有一个n位的TUSER时,可以理解为另有一个nbits的FIFO,在读取时,每取出一个TDATA 的8bits,就会同时取出一个TUSER的原创 2021-10-14 18:55:15 · 9743 阅读 · 1 评论 -
MIG使用中需要注意的细节
1)save pin out如果将其他工程中的管脚保存时,注意后缀名必须是.ucf。如果后缀是.xdc.ucf,则系统无法识别其中的信息,无法导入管脚关系。原创 2021-08-24 14:50:07 · 1494 阅读 · 2 评论 -
SMPTE 274M 协议详细解读
对于1080p@30HZ,或者1080i@60HZ,ui_clk是7425,total_words_per_line是2200,total_lines_per_frame是1125,+++++++++++++++++++++++++++++++对于1080p@60HZ,ui_clk是1485,total_words_per_line是2200,total_lines_per_frame是1125,+++++++++++++++++++++++++++++++对于1080p@50HZ,u原创 2021-08-20 17:09:17 · 2328 阅读 · 0 评论 -
SDI Wrapper的用户接口桥接模块设计
SDI核,内部逻辑会检测SAV和EAV。对于RX侧,SDI核会检测到SAV和EAV,并用几个指示信号来指示,rx_trs----指示出当前接收到的rxds1a和rxds2a上的数据,是SAV或者EAV的特殊码字。rx_sav----指示当前trs的最后一个XYZ特殊码字,是一个SAV的特殊码字。rx_eav----指示当前trs的最后一个XYZ特殊码字,是一个EAV的特殊码字。rx_line_a----指示当前行号。行号的更新,是在EAV接收后,从紧着着接收的LN0+LN1中转换出来的。所以,在原创 2021-08-19 11:31:39 · 363 阅读 · 0 评论 -
SMPTE协议解读
SMPTE 292M 1998本协议定义HDSD标准。SAV---- start of active video,EAV---- end of active video,LN---- line number,CRC ----校验数据Digital Active Line ---- 行内有效数据Digital Line Blanking---- 行内留白数据原创 2021-08-18 15:47:47 · 5975 阅读 · 0 评论 -
基于BD和video IP 构建Video System时的边界桥接模块(video_in video_out VTC)
视频信号输入时,是video format,通常由video clk 为工作时钟,数据指示信号,包括vsync, hsync, datavalid,而video IP则通常接受AXIS接口的视频流信号输入,经过处理后,输出AXIS接口的视频流信号给下一级的video IP。最后输出时,再转换成video format向外部其他模块输出。从AXIS接口的视频流中,重建vsync, hsync, datavalid。这时,就需要使用bridge IP。即Video In to AXIS核以及 A原创 2021-08-17 16:56:25 · 1281 阅读 · 0 评论 -
VIVADO中基于BD构建MicroBlaze系统
xapp1218,在BD中构建MB系统,由几个主要模块构成,++++++++++++++++++++++++MB核,生成的MB核,需要引出如下接口,clk,这是MB核的工作时钟,一般连接到一个100MHZ的时钟,reset,这是MB核的复位控制信号,一般连接到对应于工作时钟同域的PSRESET核所输出的mb_reset信号上。debug接口,这是MB核的debug接口,一般连接到MDM核所输出的mb_debug接口上。ILMB接口和DLMB接口,这是MB核的指令总线和数据总线,一般连接原创 2021-08-17 11:00:32 · 4021 阅读 · 0 评论 -
AXI接口中的RESET和CLK的同域问题
VIVADO中,对于同一个VCO输出的多个clk,认为有确定的时序关系,可以进行时序分析,并要求使用slowest_clk来作为PSRESET模块的工作时钟。但是如果是不同的VCO输出的clk,则认为是异步时钟,无法进行时序分析,并会报critical warning,提示时序风险。对此,VIVADO提供的建议是,对于每个VCO输出时钟,生成对应的PSRESET模块来生成复位信号。用各自对应的时钟域生成的复位信号,来复位对应的时钟域下的AXI接口。对于每个异步输入时钟源,生成对应的PSRESET模块原创 2021-08-13 18:16:22 · 665 阅读 · 0 评论 -
K7中使用VDMA设计video system
xapp742的例子来分析。整个BD由三个subsystem构成。microblaze 子系统, video pipe 子系统, memory子系统。+++++++++++++++++++++++++++++++++++++++首先来看看microblaze子系统,第一个是mb的IP。设置时,使能MDM接口,使能IC和DC接口,IC和DC地址,定位在DDR中,所以,baseaddr为0x80000000.尺寸设置为16KB,line length为4。break point设置,PC BP数量原创 2021-08-13 11:41:40 · 905 阅读 · 0 评论 -
SDI Wrapper解析
k7_sdi_rxtx这个模块,是用来生成SDI数据流,并通过GTX发送出去的模块。+++++++++++++++++++++++++++++++++这个模块中,实例化了几个生成数据流的模块,例如multigenHD,vidgen_ntsc,vidgen_pal,原创 2021-08-06 15:31:01 · 1397 阅读 · 0 评论 -
K7 GTX在SDI中的使用解析
UG476是GTX的数据手册。原创 2021-08-02 09:44:46 · 3253 阅读 · 2 评论 -
AXI协议中的BURST
AXI是基于BURST传输的。burst 传输必须不能越过4KB 地址接界线。AXI4 的burst 长度为:AxLEN[7:0]+1;master 可以通过关闭写strobe的方式关闭更多的写操作,每一个burst传输中数据按照byte一拍一拍传输:每个transfer中,字节数为2**AxSIZE[2:0],例如,每个transfer,传输字节数为4,那么AxSIZE[2:0]==3’h2,每个transfer,传输字节数为8,那么AxSIZE[2:0]==3’h3,传输的大小必须不能超原创 2021-07-07 15:21:32 · 11909 阅读 · 0 评论 -
IDELAYCTRL的例化与使用
IDELAYCTRL 模块是为IDELAY模块服务的。DDR2中的u_iodelay_dq_ce用到了IDELAY模块,也就需要相应的IDELAYCTRL。但在改变约束文件里的IO loction时,它的位置约束要手动更改。我是利用planahead来确定IDELAYCTRL的loction的。在device的视图中,找到约束文件中所定义的IDELAY的位置,就是下图橙色的方块。在它的附近找到IDELAYCTRL,图中白色的矩形,读出它的位置信息,再添到你的约束文件里就好了。DDR2总共要3个IDELA原创 2021-07-06 13:47:54 · 11536 阅读 · 1 评论 -
AXIS数据流和VIDEO数据流的相互转换
先来看看VIDEO数据流到AXIS数据流的转换。原创 2021-07-01 17:22:24 · 1083 阅读 · 2 评论 -
vivado中常用的Macro和primitive
打开vivado,tool->language template->verilog,可以找到大量的常用原语的示例代码。例如:verilog->device primitive instantiation->kintex7->io component->input buffer->IBUFDS, IBUFDS #( .DIFF_TERM("FALSE"), // Differential Termination .IBUF原创 2021-06-30 15:28:26 · 1806 阅读 · 0 评论 -
VIVADO中使用BD时,常用的IP
Concat,信号拼接,Slice,信号抽取,Constant,拉高拉低驱动,Utility Reduced Logic,缩位逻辑,例如缩与,缩或,缩异或,Utility Vector Logic,向量逻辑,例如按位与,按位或,按位异或,按位取反。...原创 2021-06-29 10:16:07 · 3382 阅读 · 0 评论 -
S_AXI_REG接口时序设计纪要
axi_wready使用了自反控制,当其他条件满足时,就跳转状态。axi_wready为拉低状态时,表示处于等待状态,检测AW和W通道的V握手,以及latch使能状态,满足条件时,产生R握手,并跳转到R握手状态。if (~axi_wready && S_AXI_WVALID && S_AXI_AWVALID && aw_en ) begin axi_wready <= 1'b1; end原创 2021-06-24 17:28:59 · 983 阅读 · 1 评论 -
vivado实现SDI接口
XAPP1249,用来介绍UHD_SDI的实现。原创 2021-06-10 14:50:19 · 5211 阅读 · 6 评论 -
vivado实现cameralink接口
直接使用selectIO 的 IP核,选择interface template为 Cameralink receiver 或者cameralink transmitter,IOstandard 选择LVDS25或者LVDS,注意,LVDS实际指的是LVDS18,如果要用HPbank,那么就要选择LVDS18。原创 2021-06-07 15:07:05 · 3902 阅读 · 1 评论 -
关于xilinx的CCIO(续)
CCIO 到各种时钟缓冲器(BUFR,BUFG,BUFMR,MMCM等等)之间,存在时钟专用布线。但是GPIO到这些BUF,是没有时钟专用布线的。这些GPIO只能连接到Fabric,如果程序中配置了GPIO输入的信号作为时钟使用,那么只能通过GPIO->Fabric->BUFG来实现。此时,我们要加上熟悉的CLOCK_DEDICATED_ROUTE=FALSE。同时我们也知道,Fabr...原创 2020-04-22 12:04:53 · 891 阅读 · 0 评论 -
CRC校验在线工具
CRC校验在线工具在线网页生成工具打开http://www.easics.com/webtools/crctool,根据需要设置CRC的多项式参数,点击生成就可以了。https://www.lammertbies.nl/comm/info/crc-calculation.html包含MODBUS、CRC16、CRC32...原创 2019-11-04 10:12:17 · 17425 阅读 · 0 评论 -
Artix-7的CFGBVS 设置为 Bank 0 的 VCCO 时,Bank 14 和 15 的配置电压限制为 3.3V 或 2.5V。
AR# 570457 系列配置用户指南 (UG470) 中关于推荐的 CFGBVS 设置,有不完整的陈述。文档 1.6 版本如下描述:“CFGBVS 可决定该 I/O 电压工作范围和专用配置 bank 0 的电压容差。CFGBVS 在所有 7 系列器件中始终选择专用 bank 0 的工作电压。”此外,CFGBVS 还可在 FPGA 配置期间决定 HR Bank 14 和 15 中双用途 ...原创 2019-05-14 09:48:55 · 3494 阅读 · 0 评论 -
关于xilinx的CCIO(即MRCC/SRCC时钟输入引脚)
CLOCK_DEDICATED_ROUTE=FALSEis a placement/routing thing.Whenever you are trying to reach a dedicated clock resource (BUFIO, BUFR, BUFMR, BUFG, BUFH, MMCM, PLL) from a pin that is a non-clock capable...原创 2019-04-28 18:26:36 · 11091 阅读 · 0 评论 -
VIO的使用
VIO这个IP,用于PL侧的开发,可以虚拟出输入和输出。用作调试时的模拟激励源。(数字常量的激励)原理上,基于JTAG通信,类似于PLC的运行机制。VIO内部,有一些寄存器,用于记录JTAG下发的InputProbe和OutputProbe的状态。输入到VIO的数据,显示方式可以是TEXT方式,也可以是LED方式。推荐用TEXT方式。反键切换显示方式。从VIO输出到其他逻辑模块的数据,显示方...原创 2019-03-26 20:52:10 · 4319 阅读 · 0 评论