FPGA经验、总结以及debug记录
fpga经验,把之前调试项目中的总结转移到网上,以方便自己随时回顾,同时防止有些文档丢失。
Ethan_WC
这个作者很懒,什么都没留下…
展开
-
V3学院1元培训班笔记(腾讯视频)
V3学院1元培训班笔记(腾讯视频)[2019-10-20 12:00]1.如果时序出现一些问题,可以将查找表和寄存器约束在同一个LE里,这样其组合逻辑的路径会很短AlteraLAB:逻辑阵列块 包含16个LELE: 查找表1 +寄存器1我们写的if…else… 最终映射到查找表(以四输入查找表为例,可以写4个1bit条件)得出的值 最终映射到寄存器中如果我们写的if后面的位宽比较大或者条件较多,就会占用很多LUT,然后从LUT出来再到某一个寄存器,会有很多走线路径,延时比较大。原创 2022-03-12 23:04:35 · 749 阅读 · 0 评论 -
【千兆网】下游fifo如何根据不同帧长度实时调整rd_en的长度呢?
场景:千兆网采集项目中,对于不同帧长度的写入,下游fifo如何根据帧长度实时调整rd_en的长度呢?我:数据进来数一下长度,读的时候用这个长度去产生rd_en。弊端:如果这一帧是个长帧,后面跟随着几个短帧。写完之后,data_lenth就定下来了,但是随着后面几个短帧紧接着过来,data_lenth说不定已经变了几次了,而此时你的fifo读使能的计数器就会出错。尤老师:数据进一个大fifo的同时,data_lenth也需要进一个小fifo,当小fifo不空并且大fifo已经把当前帧取完了就将小fifo原创 2022-02-23 22:09:37 · 436 阅读 · 0 评论 -
【Lattice】视频分割项目 SERDES(PCS) IP 相关问题以及解决方法
(2020-03-16-21:00)<涉及项目: Cyclone*HDMI> 平台: altera Cyclo+ Lattice ECP(serides)现象1: 每次把声音调到那一路视频口时,会立马蓝屏(无信号),按红外遥控静音按键后图像又会出来。分析:尝试把it66121的i2s的三根线屏蔽掉则不会出现这种现象。很莫名其妙。抓reval发现serdes的PLL的lock都没起来。解决方案:将上板的输入时钟晶振由27M改成74.25M。将74.25M直接接入SERDES,降低原创 2022-02-23 16:15:13 · 3888 阅读 · 0 评论 -
视频fenge项目问题点总结
(2020-03-12-21:00)<涉及项目: Cycl32ed**> 平台: altera Cyclone* + Lattice EC****(serides)现象1:上电蓝屏(显示无信号)原因:SERDES误码,在行场信号上误码。解决:local_timing.v接受上板的V信号,如果连续三次计数器的值在vs沿处相等,则认为v信号正确,跟随正确的v信号用本地的时钟产出行场信号。==========================现象2:上电小概率蓝屏(显示无信号),大概原创 2022-02-23 15:55:44 · 242 阅读 · 0 评论 -
状态机未加超时退出机制问题分析
(2019-11-29-10:24)<涉及项目: Cyclon*81_***top> 平台: altera Cyclon场景:需要用户根据需求实时切换两种分辨率,即DDR的读取长度可能随时会被忽然改变。现象:切换分辨率偶尔出现绿屏,重启后又恢复。该现象具有概率性和随机性。分析:抓revel发现rdgnt(响应)一直为高,说明ddr_bridge响应了rdreq, 但是却没等来正确长度的rdval。结果状态机就死在这里了。可能是因为切分辨率的时候,读长度发生改变,导致状态机死机。原创 2022-02-23 12:48:36 · 642 阅读 · 0 评论 -
主板和bsd小板传输的数据采样问题
(2019-06-14-16:49)<涉及项目: Video_Switch_xxxx> 平台: lattice ecp5场景:主板fpga将摄像头采集的数据解码出来,通过ODDR将数据传输至BSD(ZYNQ)小板。现象:传数据给bsd小板的时候,发现以双沿bt656传输的数据总是出错(有误码)。后来改为bt1120单沿传输,图像大体上出来了,但是有时候颜色不对,并且会随机出现白色的小点点。摸索: 在发送侧,将Y递加,发现接受的图像亮度竟然不是连续的,而且很有规律。解决方法:原创 2022-02-23 12:41:26 · 251 阅读 · 0 评论 -
关于切ddr中的切Buffer(DDR多buffer缓存)
为什么要切Buffer呢?(2019-04-10-19:52)<涉及项目:Video_Switch_xxxx>平台: lattice ecp5关于切ddr中的切Buffer若读写帧率一致,则不用切buff,视频无卡顿错位。若读写ddr的帧率不一致,则需要切Buffer;否则这边还没写完,你就来读了,你读的数据就是上半部分是上一帧的,下半部分是下一帧的。====================怎么切buffer进行DDR 读写操作呢?读:最慢的那个读把b空间读完了,才能让原创 2022-02-22 13:02:09 · 970 阅读 · 0 评论 -
【Lattice】lvdstx ip的eclk一定要大于等于理论计算值
Lattice lvdstx ip的eclk一定要大于等于理论计算值(2019-04-02-19:23)<涉及项目:Video_Switch_xxxx>平台: lattice ecp5现象:Lvds_屏输出,每次上电后下载的时候闪一下colorbar,接着就一直黑屏,然后每次下载都没反应。非得重新上电后再下载colorbar才会闪一下,接着一直黑屏。============================最终发现问题:是eclk,这里的eclk理论值是47.5*3.5=166原创 2022-02-22 11:46:33 · 1661 阅读 · 0 评论 -
LVDS RX的底层逻辑
LVDS RX的底层逻辑(2019-03-26-20:30)<涉及项目:Video_Switch_xxxx>平台: lattice ecp5现象:lvds接受模块得到的hysnc,de,乱七八糟一度怀疑是eclk 或者sys_clk改错了其实不然==》 在保证lvds_out 正常的情况下,lvds_decode我在这里没加。切记,在仿真时就要加上,调好相位。...原创 2022-02-22 11:31:45 · 876 阅读 · 1 评论 -
【坑】DDR前侧改变数据位宽很容易跳的坑
(2019-03-15-21:29)<涉及项目:Video_Switch_xxxx>平台: lattice ecp5一个很容易掉的坑,写下,以避免后面再跳.!!!!!!!!目的: 原来ddr里走的是rgb888,后边还要旋转操作,前面还要走scaler等,都是走的8*3=24位,比较耗资源。现在改为yc422的数据,16位进ddr做后续一系列处理。之前ddr进出都是正常的,我就默认ddr是对的了。后来出现问题就没往ddr中去想,这没问题嘛!之前不是验证过了嘛。一度以为是scale原创 2022-02-22 11:16:10 · 414 阅读 · 0 评论 -
【Lattice】关于lattice的lvds管脚约束的注意事项
(2019-03-11)平台: lattice ecp5 LFE5U-25F-BG381关于lattice的lvds报错:ERROR - par: A generic DDR interface has been locked to bank(s) 3,6, which are not neighbors; therefore, the interface cannot be covered by an ECLK signal per device architecture.》》》 其实原创 2022-02-22 11:06:14 · 2395 阅读 · 0 评论 -
【Lattice】编译报错,但是控制台报告的error数为0,怎么查?
(2019-03-11)Lattice Diamond经常会报这样的错误,明明编译报错,但是最下面的error为0,编译也过了,但就是在布线跑不过去。error为0,怎么查呢?在report的这两处搜error.–>找到线索原创 2022-02-22 10:57:24 · 698 阅读 · 0 评论 -
【lattice】分配时钟管脚后直接报错
(2019-03-08)<涉及项目:Video_Switch_xxxx>平台: lattice ecp5 xxxxx问题:分配时钟管脚后,报错。但该管脚在别的相同类型芯片的板子上已经成功出货。代码里用到sys_clk的只有两个pll。解决:时钟经过PLLREFCS再进入PLL,就不报错了。PLLREFCS PLLREFCS_inst ( .CLK0 (sys_clk ), .CLK1 (1'b0 ), .SEL (1'b0 )原创 2022-02-22 10:32:18 · 1117 阅读 · 0 评论 -
外部改参数的时候一定要匹配寄存器位宽
(2019-03-05)有的时候在外部修改了参数,但是我忽略了寄存器位数不够,导致查了半天…但是这个是不报错的。改参数时,一定要形成条件反射,改参数立马去看这个参数相关的寄存器位数够不够,特别是把参数改大的时候。本来输入的是colobar.–> 逻辑分析仪一直无法触发vsync变化的情况,–> 改参数的时候一定要保证寄存器位数足够。...原创 2022-02-22 10:13:42 · 349 阅读 · 0 评论 -
Diamond/Quartus 工具的bug
Diamond /Quartus工具的bug(项目时间:2019.02.18)<涉及项目: Video_Switch_xxxxx>平台: lattice ecp5 / altera cycloneV发现了一个问题,就是不动代码,只加内嵌逻辑分析仪有时候会莫名其妙出错。把逻辑分析仪(reval)放在工程里边编译,下载到板子里可能导致最终显示在板子上的现象是错误的,此时,把逻辑分析仪(reval)去掉,重新编译下载,则会发现板子上的现象是正确的。这可能是Lattice的一个Bug.自己原创 2022-02-22 09:39:02 · 338 阅读 · 0 评论 -
[STM32和FPGA配合问题]
STM32和FPGA配合问题(项目实际:2018.11.28)<设计项目:light_gun>平台: lattice 2100场景:FPGA满足一定条件就给stm32发送中断,stm32收到中断后,立马来读FPGA(stm32为spi_master)。问题 : 每次都得下载jed文件后程序正常,但是重新上电后程序不正常。正常的数据应该如图1,数据头为10101100(8’hac)但是实际收到的数据如下,并且每次都不一样。原因:单片机运行速度慢于fpga当fpga上电后原创 2022-02-22 08:50:19 · 1977 阅读 · 0 评论