
循序渐进
文章平均质量分 63
Fighting_FPGA
FPGA图像处理笔记,太难了,我真不会!
展开
-
Vivado VIO IP核(Virtual Input/Output)的使用
在Aurora通信工程中,有一个专门产生Aurora数据包的模块,该模块在Aurora ip准备好后会自动根据计数器产生发送的数据包。但现在希望能实时地控制数据包的发送以及中断,这时候可以采用vivado的vio ip核处理。原创 2024-04-01 15:37:14 · 1770 阅读 · 1 评论 -
modelsim使用小方法
今天需要用到modelsim,太久没用了,快一年了吧,不晓得咋操作了。vivado和modelsim关联了一上午。下午就开始简单看看咋用的。记录几个常用的操作吧。原创 2024-03-28 17:14:21 · 482 阅读 · 1 评论 -
Aurora IP的Framing帧接口和Streaming流接口
顾名思义,Framing帧接口,有了帧的概念,因此它有着tlast和tkeep信号。通过tvalid和tlast就能实现帧(包)长度的控制,通过tkeep来指示最后一拍数据的有效字节数。而Streaming流接口,它没有包的概念,即流处理,发一个数据则接收一个数据,因此没有tlast和tkeep信号。Framing帧接口有tlast和tkeep等控制信号,传输更准确,但传输效率较低,消耗的资源更多。Streaming流接口传输效率高,但无法保证传输的准确性。另外,帧的大小是可以任意的。原创 2024-03-26 11:20:35 · 1297 阅读 · 0 评论 -
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 · 7453 阅读 · 1 评论 -
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 · 3025 阅读 · 0 评论 -
Verilog实现以太网接收部分的学习笔记
以太网接收部分原创 2023-12-18 09:26:28 · 2702 阅读 · 0 评论 -
CRC校验
如 x8 + x2 + x + 1,二进制为1 0000 0111,省略最高位1,转换为十六进制为0x07 ( 之所以把最高位去掉,是因为任意多项式生成的二进制数的最高位肯定为1,所以为了便于16进制表示,统一把最高位去掉 )接收时首先将接收到的数据进行数据和校验码的分离,然后对数据采用同样的多项式进行计算,若计算结果和接收到的校验值一致,说明数据校验正确,该数据保留,否则说明传输过程中出错,该次传输数据丢弃重发。其中多项式为二进制除数,进行校验的数据为被除数,余数则为CRC校验码。原创 2023-11-27 15:01:16 · 1195 阅读 · 0 评论 -
基于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 · 1286 阅读 · 0 评论 -
根据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 · 1112 阅读 · 0 评论 -
Vivado调用FIFO IP核的注意点
在异步FIFO的读写控制部分,存在空满信号的处理。比如在写控制模块中,将读空则进行写操作,这里在使用将读空信号的时候注意,该信号是读时钟下的信号,那么在写控制模块使用的时候需要打两拍,实现跨时钟域,避免亚稳态。FWFT模式下,即使rd_en无效,第一个数据仍然能能出现在FIFO的数据线dout上,当rd_en有效,开始依次读数据。读写数据时不要立刻操作。由于FIFO内部信号存在一定的更新延迟,因此一般延迟10个clk进行操作。标准模式下,当rd_en有效时,数据才能出现在FIFO的数据线dout上。原创 2023-07-21 15:16:40 · 1147 阅读 · 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 · 2207 阅读 · 0 评论 -
IDDR和ODDR
D:输入双倍速率数据(IOB输入,且数据在时钟的上升沿和下降沿都会发生切换,即一个时钟周期发送2bit数据)CE:时钟使能信号(高有效)C:时钟信号S,R:置位和复位信号Q1,Q2:单倍速率的输出数据。原创 2023-07-18 16:33:05 · 1083 阅读 · 1 评论 -
BUFG/BUFGCE/BUFH/BUFHCE/BUFH/BUFGHCE/BUFMR/BUFMRCE/BUFR/IBUF/IBUFDS
对BUFG/BUFGCE/BUFH/BUFHCE简单了解。原创 2023-07-17 17:46:29 · 15151 阅读 · 0 评论 -
循序渐进(一)关于Vivado软件
管脚约束即管脚分配,注意几个概念:bank、HR、HP以及I/O电平标准如何选择(根据手册中的原理图)。分配后生成xdc文件,其中可以看到我们对应输入输出分配的管脚以及对应的电平标准。工程创建步骤、文件创建步骤 、IP核创建步骤: 略。采用Set Up Debug 进行调试。,还有Set Up Debug的方法。生成比特流文件,下载到开发板。紧接着综合后,进行时序约束。编写仿真文件进行仿真。原创 2023-07-13 10:21:30 · 369 阅读 · 1 评论