- 博客(95)
- 资源 (1)
- 收藏
- 关注
原创 Xilinx GT传输器时钟结构以及速率调整
xlinx有2路refclk会输入到gtbank。此2路bank输入时钟是差分输入,经过IBUFDS_GTE2源语转换为单端。单端时钟输入到gt_common模块。从fpga外输入高速差分时钟。差分时钟转换为单端。下图为gt内部结构图。
2025-04-11 15:19:26
347
原创 function的使用
对于一个输入数据,如果其值大于0,右移1位,返回值加1;直到不满足判断条件,计算出一个输入数据的二进制位宽。再次判断右移后的结果任然大于0,返回值继续加1。函数的返回值为integer。函数的返回值为clogb2。
2023-12-22 18:05:56
512
原创 FPGA的设计原则
所谓速度指的是一个fpga设计最高能运行的时钟速率。所谓面积指的是一个FPGA一个FPGA设计所耗费的逻辑资源,最直观的反应就是资源利用报告。面积与速度是对立统一,不可能要求一个设计的面积最小速度又最高。科学的要求是在设计保证设计要求速度的情况下面积最小,在面积指定的情况下,速度尽可能达到设计要求。随着系统的增大,系统中不止有一个时钟,各时钟之间要有明确的时序关系。流水原则是指一个负责的数据处理流,可以分为多个简单的处理流,让数据在多个简单的流之间流动处理。设计的代码能让软件推断出你写的是什么电路。
2023-09-26 14:12:30
198
原创 Vivado HLS设计方法
随着vivado的诞生,xilinx提出了以IP为核心的设计理念,进一步强调了设计的可复用性。在设计输入阶段可以是RTL代码、C/C++、OPENCL、也可以是simulink下的AIE模块,HDL模块,HLS模块。其中高级语言C/C++或OPENCL描述的模型为高度抽象模型,需要借助工具转换为HDL语言。
2023-09-26 11:25:55
139
原创 FPGA的时序收敛
时序收敛与FPGA工程师的代码风格和对vivado工具的理解有很大关系。所谓良好的代码风格就是代码与FPGA内部结构息息相关,要保证综合工具能依据代码推断出合理的电路。就vivado工具而言,vivado的功能越来越强大,要理解每一个选项所对应的意义,能够正确合理地使用这些选项,同时面对未能收敛的时序,能够借助工具找到其根本原因。FPGA 的一个重要课题就是时序收敛和功耗收敛。
2023-09-26 10:57:58
138
原创 FPGA计数器边界问题解析
AMBE2000数据一旦准备好后,一次会输出24个字,其中第1个字0x13ec是同步头,连上同步头的前12个字为控制字,后12个字为数据字,我们需要提前数据字,抛弃控制字。作者的解决思路是:当捕获到0x13ec同步头后拉高一个flag,然后计数23次,完成整个接收过程。以上代码验证是拉高时刻是正确的,frame_cnt是在data_vld条件下增加的,所以去掉前11个字,那么cnt。结-1论:为统一期间,计数器的边界判断都需要带上计数条件,要判断n个数,判断条件就是: 条件 && n-1。
2023-09-14 15:44:33
351
原创 端口输入的数据为什么要打拍?
一次作者在开发图像时候,对输入的图像没有打拍,输出给显示终端,时好时坏,或者图像颜色不正确,最终经过打拍解决了此问题。
2023-08-10 14:26:45
1649
原创 vivado模块端口名被优化
问题:需要搞清楚(*keep_hierarchy = “yes” *)和(*keep_true = “yes” *)区别。在该模块后增加了防止被优化的语句后正常。(*keep_hierarchy = “yes” *)将该模块放在一个大工程中,模块名发生了变化,增加了一些不知名的信号。一次作者在调试过程中发现单独综合某个模块,模块名正常。
2023-08-09 09:23:47
552
原创 RAW数据
摄像头通过外部的光电传感器,将外部的光强度信号转换为电信号,然后通过AD转换将电信号转换为R G B三原色信号。我们将此三原色信号称之为RAW图像数据。后期需要将RAW数据转换为图像数据。
2023-08-01 16:24:53
207
原创 FPGA图像处理的技术点
图像采集:彩色转灰度,图像采集,图像卷积,边缘提取。图像特征提取:图像特征匹配矩阵运算图像格式变换:Bayer to gray Bayer to RGB图像显示
2023-07-28 18:31:29
134
原创 MIPI接口学习
MIPI接口属于移动通信联盟针对移动通信5G行业的迅速发展制定的一种低功耗协议,它连接基带、摄像头、显示屏等外设。MIPI协议细分为CSI和DSI等。CSI是camera serial interface的简称。DSI是display serial interface的简称。MIPI协议过程由应用层、物理层、协议层构成。物理层由D_PHY、C_PHY、M_PHY构成。主要讲下D_PHY,D_PHY有两种模式,高速模式和低速模式(低功耗模式)。
2023-07-28 18:24:03
2656
原创 output delay 约束
特别注意:在源同步接口中,定义接口约束之前,需要用create_generated_clock 先定义送出的随路时钟。
2023-07-25 19:25:44
1535
原创 BT656和BT1120的区别
由于海思HI3536DV200输出的视频格式是BT1120,无行场同步信号,行场同步信号镶嵌在数据中,所以GS2972需要配置成数据同步模式。BT1120:一根时钟线,16根数据线。两个BT656可以组成一个BT1120。BT656:一根时钟线,8根数据线。
2023-07-25 10:17:09
3189
1
原创 时序约束案例(没有解决)
2.时钟和数据分别来自于两个地方,通过选择器进行选择,一个时刻只能选择一个。问题:笔者使用此种模型进行了约束,还是有大量的路径违例,不明白原因。1.FPGA对外输出一组随路时钟和数据。3.随路时钟148.5MHz。
2023-07-20 19:31:45
395
原创 链表的简单示意
后,结构体指针p_spy保存了下一个结构体变量的地址。p_spy依然不等于0,第二次打印了B……首次执行,p_spy保存了结构体变量A的地址,所以首次执行p_spy->name打印A;链表的实质就是指针。
2023-07-17 10:48:28
208
原创 typedef和define
/使用D来代替struct lcd_operation *这个结构体指针。//使用C来代替struct lcd_operation这个结构体。//使用add_type来定义一个函数指针。//使用B来代替int *;typedef用来给数据类型进行重新命名的。
2023-07-17 09:15:03
74
原创 C语言结构体指针和指针
定义一个学生的结构体,该结构体包含学生本身以及该学生的同学。char name;int age;此种定义方法错误,因为同学包含同学,classmate又包含classmate,无穷尽也,编译器无法确定该变量的大小。所以错误。方法二此方法将学生的同学定义为一个指针,指针的大小是确定的,所以无语法错误。char name;int age;//struct student类型的指针 } student , * pstudent;char name;int age;
2023-07-14 09:52:43
312
原创 ddr3 ip仿真之non_module
笔者一次想验证ddr3的硬件是否正常。在工程里例化了一个ddr3_example,然后修改example_top代码,修改后发现只要动example_top代码,该代码立马就变成non_module,而非design source。
2023-07-13 17:21:18
104
原创 C语言中的结构体
因为int char struct company只是数据类型,没有定义变量,所以不占空间,但是定义了变量后才回分配空间。要特别注意int age;char name;但是下面的结构体不占用空间。结构体为了表示复杂是数据类型。一个公司里有100个成员。这是描述一个人的属性。
2023-07-11 08:41:09
196
原创 C语言一些关键字学习
对于volatile int i;执行for (i=0;i=i+1)时,编译器先将i读到cpu,然后执行i=i+1,再将累加结果写到内存,这样的操作执行100次。对于单纯的int i;执行for (i=0;i=i+1)时,编译器先将i读到cpu,然后执行i=i+1,当执行完所有的累加后,将累加和写入到内存。//在变量定义的时候,在定义前加volatile,表示这个变量是易变的,告诉编译器不能随便优化。volatile英文意思是易变的,易怒的。//一般变量的定义。
2023-07-10 17:22:01
217
原创 zynq系列器件使用vivado配置国产内存
以MT41K512M8-125器件为例,介绍镁光公司器件命名的含义。MT41K为固定前缀,512M8代表512M*8bit存储容量(深度乘以宽度),-125代表速度等级,其tCK参数1.25ns,CL为11ns。本次选用SCB13H8G162BF-13KI器件,其容量是64M words x 16 bits x 8 banks=8Gb。从其命名规则可以看出,最后-13K代表CL-tRCD-tRP=11-11-11。镁光-125,ddr时钟频率是1600M;同时,ddr不同的速度等级对应不同的ddr频率。
2023-07-03 14:52:03
3101
原创 基于UDP协议的千兆以太网传输(FPGA)
UDP协议是一种基于无连接协议,即发送端发送数据无需确认接收端是否存在;接收端收到数据后也无需给发送端反馈是否收到,所以UDP在数据发送过程中允许丢失一两包数据。用于对丢包不严格的场合,比如视频流,偶有一两帧的丢失,不影响显示效果。
2023-06-30 10:39:37
1281
原创 MII/RMII/GMII/RGMII接口区别
在千兆以太网中,常用的接口为 RGMII 和 GMII 接口。GMII( Gigabit MII): GMII 接口向下兼容 MII 接口, 支持 10Mbps、 100Mbps 和 1000Mbps的操作,数据位宽为 8 位,在 1000Mbps 传输速率下,时钟频率为 125Mhz。MII( Medium Independent Interface,媒体独立接口): MII 支持 10Mbps 和 100Mbps 的操作,数据位宽为 4 位,在 100Mbps 传输速率下,时钟频率为 25Mhz。
2023-06-29 11:04:21
2587
3
Xilinx SRIO详解.pptx
2020-08-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人