读书笔记
文章平均质量分 50
NoNoUnknow
这个作者很懒,什么都没留下…
展开
-
【IP层的校验和与UDP的校验和】+【FPGA实现】
IP头校验和是一种错误检测机制,用于在互联网协议(IP)中保证IP头的数据完整性。当一个IP数据包从源主机发送到目的主机时,它经过许多路由器和交换机,校验和可以帮助这些中间设备检查数据包在传输过程中是否出现错误。这个校验和随后被填充在IP头中专门为校验和预留的字段内。在接收端,同样的计算会被执行在收到的IP头上,包括校验和字段本身。如果数据包在传输过程中没有错误,所有段的总和加上接收到的校验和的结果应该是一个全1的二进制数(因为原始计算中结果取反了)。原创 2024-04-08 15:05:37 · 836 阅读 · 2 评论 -
CMD FIFO的深入理解:一种避免占用总线带宽的仲裁方法
3.虽然CMD FIFO能够让地址也具有缓存的能力,但是突发事件的执行本身也需要很长的时间(相对仲裁),这个方案的意义可能更在于使得每次仲裁的时间都不需要在总线空闲的时候,避免了总线带宽的占用;2.不使用CMD FIFO也是可以达到这些目的的,但你需要在更根源的情况下(请求)的时候进行好请求;1.1.每满足一次需求向FIFO中写入一次地址和命令,这些地址和命令会在总线空闲的时候被执行;原创 2024-03-14 14:04:47 · 361 阅读 · 0 评论 -
DDR3 APP接口的两种时序写法
3.每当计数器来到一次burst事件的总需求的时候,向CMD FIFO写入需要操作的地址;1.当写数据FIFO内的数值达到一次burst事件的需求的时候,进行请求;3.完成写操作以后地址增加这一整个burst的便宜了;读操作和写操作类似,仅把FIFO的请求规则改换即可;4.利用CMD FIFO的空信号取反作为请求的来源;2.每当写数据时,利用写数据使能来增加计数器;2.请求通过仲裁器传递到写模块,启动写;1.创建命令FIFO CMD FIFO;个人觉得第一种更好。原创 2024-03-14 11:37:16 · 517 阅读 · 0 评论 -
图像处理算法:白平衡、除法器、乘法器~笔记
LUTMultLUTMult除数的倒数和乘数的简单查找估计。由于倒数估计中需要偏差,因此仅支持余数输出类型。如果用于创建小数输出,此偏差会引入偏移(误差)。对于小于或等于 12 位的操作数宽度,建议这样做。该实现使用 DSP Slice、Block RAM 和少量 FPGA 逻辑原语(寄存器和 LUT)。对于可以使用 Radix2 或 LUTMult 选项的操作数宽度,LUTMult 解决方案提供了一种使用更少 FPGA 逻辑资源的解决方案,因为使用了 DSP 和 Block RAM 原语。原创 2024-01-23 21:56:50 · 1235 阅读 · 0 评论 -
相机解析驱动小记
通过字同步获得Offset解析出合适的数据以后(Lvds),通过分析信号到来的先后顺序完成Lane同步(类似MIPI模块里的操作);2.根据Lane的数量进行拼接,查阅手册知道输到Lane的方式,哪个前哪个后,raw8/10/12?Lvds需要先进行差分转单端、串并转换操作后可进行解析;1.阅读配置单,知道怎么配置、配置完输出来是什么。DVP接口知道同步头,大致时序后可以写解析驱动;2.搞清楚是什么接口,Dvp or Lvds?3.拼接完以后按照恰当的时序输出完整的像素。原创 2024-01-01 14:37:14 · 792 阅读 · 0 评论 -
Sony IMX222相机的配置和解析
【代码】IMX222:寄存器。原创 2023-12-27 21:07:28 · 610 阅读 · 0 评论 -
OV5640:寄存器 自用
【代码】OV5640:寄存器 自用。原创 2023-12-23 17:44:47 · 1224 阅读 · 0 评论 -
dbug_hub 错误 使用多个ILA导致
解决方法参考以上链接。或,使用高速下载器?原创 2023-12-07 22:03:59 · 596 阅读 · 0 评论 -
FPGA 借由DDR3 SDRAM视频传输可能的问题
同SDRAM类似问题:Sobel算子实现(完结)-CSDN博客原创 2023-12-01 15:51:26 · 544 阅读 · 0 评论 -
常用系统函数
系统函数 $clog2 应返回参数以 2 为底的对数的上限(对数四舍五入为整数值)。参数可以是整数或任意大小的向量值。参数应被视为无符号值,参数值为 0 将产生结果 0。该系统函数可用于计算对给定大小的存储器进行寻址所需的最小地址宽度或表示给定数量的状态所需的最小向量宽度。原创 2023-11-21 11:49:31 · 155 阅读 · 0 评论 -
循环优先级仲裁~位屏蔽仲裁算法
位屏蔽算法:描述:对输入的多通道请求进行仲裁。步骤:(1)原码减去对应位数(优先级最高的位次)(2)求得(1)中输出的反码(3)通过(2)中输出与原码进行相与,留下优先级最高的请求。举例:【1】四通道输入请求,ABCD。破解后为:4‘b1000,此时D通道优先级最高。仲裁完成,准许A通道请求。【2】四通道输入请求,ABCD。破解后为:4‘b1110,此时B通道优先级最高。仲裁完成,准许B通道请求。此外,为了仲裁A通道,需要对输入的请求进行拼接操作,实现向高位借位的过程。原创 2023-11-17 16:12:56 · 615 阅读 · 0 评论 -
ZYNQ PS端的Cache问题
CacheFlush把Cache里的数据清空,将Cache内容推到DDR中;而Cache Invalidate表示当场宣布Cache内容无效,需要从DDR中重新加载数据,即把数据从DDR中拉到Cache中。可以禁用掉0x1F00 0000区域的Cache,以上是让CPU将直接访问DDR内存,读写都是直接的。这样显然会降低CPU性能,但简化了数据传输操作,属于极端的方法。这个操作在双核读取同一片区域来通信的操作中常用。以上是相对柔和的方法,使用。原创 2023-11-13 13:02:50 · 1579 阅读 · 0 评论 -
内存映射:PS和PL DDR3的一些区别
可见,PS端的DDR3需要从已经映射好的地址去写。PL不需要,从零开始。原创 2023-11-12 20:12:13 · 508 阅读 · 0 评论 -
帧同步的思想与异步FIFO复位
这个过程中的复位信号可能需要拓展,这是因为异步FIFO的复位可能需要多个周期的复位使能,否则会带来BUG,这一点请参考UG057。图像从外部传输进来的时候,会产生若干延迟,可能会出现各种各样的问题(断帧等),此时可以通过VS信号清空FIFO进行复位。原创 2023-11-11 20:54:49 · 383 阅读 · 2 评论 -
FDMA 3.1 米联客的Axi-DDR3控制器及其配套的Dbuf
自定义的FDMA Brust Length,能够接收比实际Axi Brust Lengtht更多的数据,这是通过这个模块实现的:即通过设置的Axi总线最大brust len后,通过对比其位宽过一位的数据是否为高,来判断需求的brust长度是否是否超过了max brust len,如果超过了则进行截断。。FDMA的一次读写操作的分界线是一次FDMA Brust Length的完成,其中可以涵盖多个Axi Brust Length。原创 2023-11-09 15:12:02 · 1144 阅读 · 0 评论 -
目标检测之轻量化思考
据我的推测这是IO(访存量)的增加造成的,就类似于访问次数上去了带来了通讯成本的开支,虽然整体计算量小了,但是通讯开支大了,反而速度下降了。在最近的实验中我发现参数量减少的模型在实际的速度表现上未必比参数量多的模型更好。要找一个参数量和速度的均衡才具有轻量化的价值。一味追求参数量减少忽略了速度并不是好事!其中注意力机制真的很影响速度!网络层数的增加带来的参数量的减少并不是好事。原创 2023-08-27 21:41:01 · 115 阅读 · 0 评论 -
FLASH使用笔记~M25P64
1.通过阅读产品手册可知其是一枚工作在50mhz(最高)下的flash芯片,编写控制器的过程中需要输出分频时钟来确保数据的稳定。(FPGA的时钟频率也只有50MHZ,低一点好控制一些)读取则需要在指令+地址发送结束之前读取,当然实际上这里的时序并不苛刻,因为不是严格按照50MHZ时钟来控制,而是经过了分频。如果需要发送指令+地址+数据,数据可以使用RAM或FIFO来存储,提前写入。使用组合逻辑也是个好主意,但是我更倾向于多使用时序电路。原创 2023-08-27 21:11:12 · 557 阅读 · 0 评论 -
网络升级与FLASH
3.保存文件以后,在FPGA内部设置跳转地址:使FPGA能够跳转到保存文件的地址(手工设置)(防止变砖)答:跳转到出厂程序fatory。1.电脑和FPGA之间的通信:网口或串口的方式。2.通信开始以后把文件传输至FPGA,FPGA则需要接收文件。3.FPGA自带IP核进行跳转以及各个厂商带有IP核的不同。需要了解跳转条件,不同厂商通常都不一样。4.跳转失败的的设置(也需要依赖不同厂商IP核的特质)。群里老哥讲,我做做笔记,刚好最近学了一点FLASH。1.UDP通信,千兆网传输,串口通信。原创 2023-08-27 21:35:53 · 119 阅读 · 0 评论 -
SPI协议与FPGA的自动升级和多启动
以本文中使用的M25P16为例,16MB,八比特一个地址,则为2MB深度,32个扇区,一个扇区256页,一页256个字节地址,如果存储空间更大,扇区会更多,扇区地址的长度也会增加,比如32就有64个扇区之类的,根据厂商策略的不同,也可能改一个扇区内页的大小等。FPGA中的SPI协议主要通过片选线,时钟线,输入数据线和输出数据线进行连接(四线制),三线制的SPI协议通过三态门来构建数据线,SPI协议主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有。FLASH则分为扇区擦除和全擦除。原创 2023-08-22 20:54:23 · 215 阅读 · 0 评论 -
原码,补码与反码
原码:。反码:。补码:原创 2023-08-15 20:05:41 · 57 阅读 · 0 评论 -
节省频繁访问内存带来的通讯开销的一种思想。
这其实也和李沐老师在《动手学深度学习》中讲的类似,一次burst更多数据 (做好和内存大小的协调),来减少通讯时间带来的性能影响,而类似的想法在FPGA,IC,CPU设计,深度学习都普遍存在,因为这些工作都需要面临频繁读写数据带来的通讯影响。九次内存访问,每次访问一个元素的开支远大于一次访问九个元素的开支。那么在python的深度学习框架里是如何实现的呢?但我希望在将来的CPU设计学习还有DMA使用的时候学习到这一点。通过加入buff完成数据的本地化完成更优化的设计。原创 2023-07-12 12:15:04 · 69 阅读 · 1 评论 -
存储器~Zynq book第九章
还有小梅哥和正点原子的一些资料。原创 2023-10-21 12:29:41 · 297 阅读 · 0 评论 -
芯片手册自用
UG586 MIG:Zynq-7000 SoC 和 7 系列器件内存接口解决方案。UG585 ZYNQ BOOK:Zynq 7000 SoC 技术参考手册。DS182:Kintex-7 FPGA 电气特性。原创 2023-10-22 16:23:32 · 445 阅读 · 0 评论 -
Tensorrt部署的一个坑。
解决方法:把TensorRT-8.6.1.6\lib下的dll文件都复制到bin文件夹下,再运行编译,即可实现正常的trtexec.exe程序的使用。nvinfer_plugin.dll这个dll动态库找不到。原创 2023-08-30 11:27:11 · 772 阅读 · 3 评论