- 博客(119)
- 资源 (14)
- 收藏
- 关注
原创 Aurora IP核 —— NFC功能
通过发送空闲拍来控制全双工通信接收端的数据传输速率调用aurora ip后,用户直接使用tx和rx的用户接口,但由于接收端无tready,需要通过调用RX FIFO实现数据缓存但如果接收端 FIFO 仍存在可能满的情况,需要反压数据源头。这时候只能采用Aurora ip核自身的反压,即NFC流控功能通过NFC 发送空闲周期来拉低tx的tready,达到从源头抑制数据发送的效果。
2024-08-26 12:00:00
551
原创 xpm_cdc_single、xpm_cdc_gray原语
/使用时注意 :为保证脉冲漏采,Xilinx规定至少2拍寄存,因此DEST_SYNC_FF范围是2-10。//SRC_INPUT_REG :可设置0/1,1表示输入脉冲信号在源时钟域下添加一级寄存器。//DEST_SYNC_FF :设置目的时钟域的同步寄存器级数。采用多个寄存器构成寄存器同步链来进行单bit数据跨时钟域处理。//WIDTH :待同步数据位宽。采用格雷码方式对多bit数据跨时钟域处理。
2024-08-12 12:15:00
822
原创 Vivado VIO IP核(Virtual Input/Output)的使用
在Aurora通信工程中,有一个专门产生Aurora数据包的模块,该模块在Aurora ip准备好后会自动根据计数器产生发送的数据包。但现在希望能实时地控制数据包的发送以及中断,这时候可以采用vivado的vio ip核处理。
2024-04-01 15:37:14
1710
1
原创 modelsim使用小方法
今天需要用到modelsim,太久没用了,快一年了吧,不晓得咋操作了。vivado和modelsim关联了一上午。下午就开始简单看看咋用的。记录几个常用的操作吧。
2024-03-28 17:14:21
438
1
原创 Aurora IP的Framing帧接口和Streaming流接口
顾名思义,Framing帧接口,有了帧的概念,因此它有着tlast和tkeep信号。通过tvalid和tlast就能实现帧(包)长度的控制,通过tkeep来指示最后一拍数据的有效字节数。而Streaming流接口,它没有包的概念,即流处理,发一个数据则接收一个数据,因此没有tlast和tkeep信号。Framing帧接口有tlast和tkeep等控制信号,传输更准确,但传输效率较低,消耗的资源更多。Streaming流接口传输效率高,但无法保证传输的准确性。另外,帧的大小是可以任意的。
2024-03-26 11:20:35
1197
原创 xilinx FPGA 除法器ip核(divider)的学习和仿真(Vivado)
如下图所示,给了正确的r_axis_divisor_tvalid、r_axis_divisor_tdata、r_axis_dividend_tvalid、r_axis_dividend_tdata信号,并将其赋值给除法器IP的输入s_axis_divisor_tvalid、s_axis_divisor_tdata、s_axis_dividend_tvalid、s_axis_dividend_tdata。无余数的情况,可以看到m_axis_dout_tvalid高时,对应的余数都是0。2、分清除数和被除数;
2024-03-25 14:08:19
6832
2
原创 Verilog综合(synthesis)过程中出现 found timing loop.的critical warning
打开时序检查报告(synthesis->Report Timing Summary),找到loops的位置,查看生成的原理图schematic定位到出问题的模块,从而看到出问题的位置,在对应代码修改。Verilog综合(synthesis)过程中出现 found timing loop.的critical warning。found timing loop的问题不会像少写end等具体提示代码位置,只会提示所在模块,所以不便于查找🔍修改。组合电路中,else未写全,所以生成了latch。
2024-03-22 14:34:35
2728
原创 CRC校验
如 x8 + x2 + x + 1,二进制为1 0000 0111,省略最高位1,转换为十六进制为0x07 ( 之所以把最高位去掉,是因为任意多项式生成的二进制数的最高位肯定为1,所以为了便于16进制表示,统一把最高位去掉 )接收时首先将接收到的数据进行数据和校验码的分离,然后对数据采用同样的多项式进行计算,若计算结果和接收到的校验值一致,说明数据校验正确,该数据保留,否则说明传输过程中出错,该次传输数据丢弃重发。其中多项式为二进制除数,进行校验的数据为被除数,余数则为CRC校验码。
2023-11-27 15:01:16
1182
原创 基于FPGA的PCIe-Aurora 8/10音频数据协议转换系统设计阅读笔记
下图显示了包头中的字段,其中标记为“R”的字段为保留字段,默认为 0,每个字段代表不同含义,干不同的事儿,这里具体不具体介绍。文章可知网下载阅读,该论文设计了一种 PC 到光纤模块(基于Aurora的光纤传输)的数据通路,成功完成了Aurora 以及 DDR 等模块的功能验证。首先是TLP包头,包头决定了对应报文的格式,有两种格式,一种长度为 3 DW,一种长度为 4 DW,其中的 DW 是双字的意思,大小等于 4 字节。其中EP指具体的设备,比如FPGA,其可以作为请求者,也可作为完成者。
2023-11-09 10:52:32
1243
原创 根据Aurora发送时序,造Aurora 数据包,从而进行AXIS接口数据位宽转换仿真
也就是说,当计数器为0的表示,还没移入数据;由于我们发的第一个数据包中有11个64bit数据,因此最后一拍256bit数据中仅包含3个64bit数据,所以24个字节有效,因此m_tkeep的高两位为0,剩下为f。s_tvlaid、s_tdata 通过计数器来创造,创造不同长度的数据包,其中包含非4的倍数的数据包、刚好4个数据的数据包,仅一个数据的数据包。生成m_tkeep ,首先确定最后一个256bit数据,即m_tlast对应的256bit数据的m_tkeep值,这里根据移入寄存器的个数有关。
2023-11-02 18:28:40
1059
原创 Vivado调用FIFO IP核的注意点
在异步FIFO的读写控制部分,存在空满信号的处理。比如在写控制模块中,将读空则进行写操作,这里在使用将读空信号的时候注意,该信号是读时钟下的信号,那么在写控制模块使用的时候需要打两拍,实现跨时钟域,避免亚稳态。FWFT模式下,即使rd_en无效,第一个数据仍然能能出现在FIFO的数据线dout上,当rd_en有效,开始依次读数据。读写数据时不要立刻操作。由于FIFO内部信号存在一定的更新延迟,因此一般延迟10个clk进行操作。标准模式下,当rd_en有效时,数据才能出现在FIFO的数据线dout上。
2023-07-21 15:16:40
1106
1
原创 IDELAYG/ODELAY/IDELAYCTRL
如下是7系列FPGA HP Bank I/O 资源:其中ILOGIC是由许多的数据选择器和一个IDDR触发器构成。在HP BANK中,ILOGIC被称为ILOGICE2,在HR BANK中,ILOGIC被称为ILOGICE3。
2023-07-19 10:10:36
2163
原创 IDDR和ODDR
D:输入双倍速率数据(IOB输入,且数据在时钟的上升沿和下降沿都会发生切换,即一个时钟周期发送2bit数据)CE:时钟使能信号(高有效)C:时钟信号S,R:置位和复位信号Q1,Q2:单倍速率的输出数据。
2023-07-18 16:33:05
1051
1
原创 BUFG/BUFGCE/BUFH/BUFHCE/BUFH/BUFGHCE/BUFMR/BUFMRCE/BUFR/IBUF/IBUFDS
对BUFG/BUFGCE/BUFH/BUFHCE简单了解。
2023-07-17 17:46:29
14401
1
原创 循序渐进(一)关于Vivado软件
管脚约束即管脚分配,注意几个概念:bank、HR、HP以及I/O电平标准如何选择(根据手册中的原理图)。分配后生成xdc文件,其中可以看到我们对应输入输出分配的管脚以及对应的电平标准。工程创建步骤、文件创建步骤 、IP核创建步骤: 略。采用Set Up Debug 进行调试。,还有Set Up Debug的方法。生成比特流文件,下载到开发板。紧接着综合后,进行时序约束。编写仿真文件进行仿真。
2023-07-13 10:21:30
362
1
原创 未定义标识符
cvtColor 未定义标识符#include<opencv2/opencv.hpp>CV_BGR2GRAY未定义的标识符#include <opencv2\imgproc\types_c.h>SiftFeatureDetector detector 未定义的标识符using namespace cv::xfeatures2dCV_WINDOW_AUTOSIZE 未定义标识符#include <opencv2/highgui/highgui_c.h>
2023-04-26 09:30:42
339
原创 FPGA图像处理学习——基于肤色的人脸识别
1、学习肤色检测的方法:根据经验,为Cr和Cb分量设置阈值,得到肤色二值化结果,便于简化后续计算处理。2、直方图拉伸原理学习与分析
2022-07-18 20:07:07
10518
91
原创 FPGA高斯滤波实现并Modelsim仿真,与MATLAB高斯滤波进行对比
学习matlab实现高斯模板计算;掌握数据乘法及加法后数据位宽的计算
2022-06-12 20:01:07
6670
原创 FPGA中值滤波实现并Modelsim仿真,与MATLAB中值滤波进行对比
matlab实现中值滤波;FPGA实现中值滤波并仿真,二者效果图进行对比
2022-06-12 14:15:37
3825
8
原创 FPGA面试题目笔记(五)—— 代码覆盖率、BCD码、带宽
对大佬题目进行学习记录。fork… join_none 在testbench中的延时作用
2022-06-12 12:22:22
10979
2
针对咸鱼FPGA的FPGA实现人脸检测进行学习,此为代码
2023-05-06
verilog实现双线性插值
2022-09-09
verilog实现双线性插值
2022-09-09
FPGA实现高斯滤波并进行modelsim仿真验证
2022-06-12
FPGA实现高斯滤波并进行modelsim仿真验证
2022-06-12
FPGA实现中值滤波并modelsim仿真
2022-06-12
FPGA实现中值滤波并modelsim仿真
2022-06-12
FPGA设计-乒乓操作的实现
2022-06-07
FPGA设计-乒乓操作的实现
2022-06-07
verilog采用txt文档的形式,模拟双目摄像头采集
2022-05-31
verilog采用txt文档的形式,模拟双目摄像头采集
2022-05-31
verilog进行Ycbcr图像灰度转换,并modelsim联合matlab进行验证
2022-05-17
verilog进行Ycbcr图像灰度转换,并modelsim联合matlab进行验证
2022-05-17
encryption_key_256_Ycbcr FPGA实现Ycbcr灰度化并进行图像Arnold加密。
2022-03-25
多路视频实时全景拼接融合.xmind
2021-12-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人