FPGA
文章平均质量分 52
qq_807315755
微信公众号
展开
-
DDR1时钟的问题
最近 遇到一个问题, 特别 崩溃! 板子 上电的时候, 从Flash读取数据的时候, 写入DDR的时候偶尔会出错。对于偶尔发生的错误, 很难用 reveal在线抓到出错的地方, 并且 每次 出错的位置都不太一样。 今天 硬件工程师对我说可以试一下把频率降低, 把 DDR1的时钟 降到 90MHZ, 把从NAND_FLASH的 操作时钟 降到 90MHZ,惊喜地是,原创 2015-02-12 19:44:58 · 1808 阅读 · 1 评论 -
调试LATTICE 的SGMII的调试。
最近调试lattice 的sgmii接口。 项目最初的架构大概是这样的,用于调试。 FPGA这边的架构,就是 Tri_mac 转为 sgmii,然后再通过pcs出去。其实sgmii核自带了一个pcs核,最坑人的是PCS必须是外部时钟,最后没有办法只能自己生成一个pcs核和sgmii核对接起来。由于MDIO,我们这边没有去使用。使用的是强制输出。我调试了两天才发现可能是交换机这边原创 2015-06-26 20:19:56 · 4468 阅读 · 7 评论 -
FPGA 控制 nand flash读写
最近 项目上用FPGA 去操作nand_flash.终于实现 了。其实主要把 NAND_FLASH接口时序搞定,就没有问题。原创 2015-01-13 17:12:19 · 14418 阅读 · 8 评论 -
关于 FPGA 和 外部芯片接口时序设计
在看这篇文章之前, 建议先好好读下这篇文章。http://download.csdn.net/detail/angelbosj/8013827。 剩下的事情,就比较简单。 请读 lattice 的《Timing Closure》.原创 2014-10-08 19:47:49 · 3797 阅读 · 0 评论 -
fpga出来的 clock的幅度有问题
最近遇到一个问题: FPGA的上游芯片 进来时钟和 数据, fpga也用这个随路时钟去采样,然后做一些 视频信号的处理。然后把这个clock 通过 FPGA的io口输出。 输出 时钟的幅度 的最小值 为 2.0v 最大值为 3.3v ,这样导致 下游芯片采集不到信号数据。但是用正常的锁相环产生的clock,通过这个 pin输出,幅度很正常。 尝试过好原创 2016-01-04 15:54:40 · 3041 阅读 · 0 评论 -
yuv 4:2:2 编码为 bt1120
最近 做个项目,要把 1080p的yuv 4:2:2 转为 bt1120,搞了好长时间终于搞定了。图像正常显示了 基本思路写一下:/**************************************************************************************原创 2016-01-04 16:14:01 · 5542 阅读 · 0 评论 -
FPGA实现4K(分辨率为3840X2160)视频拼接器
今天我很开心,我做完了人生中第一个FPGA项目, 4个1080P 合成 1个 4K 的 视频。虽然不算很难。但是 还是从去年完全一点不懂FPGA ,至今,我就可以大胆滴说,我入门了。 总结: 对于跨时钟域要加 MultiCycle约束。 对于 时序没有跑过的, 可以等基本功能完成, 再回过头来,看时序报告, 慢慢改代码。努力把 频率跑上原创 2022-02-05 11:40:58 · 9973 阅读 · 9 评论 -
视频行场信号转 bt1120方案.
我们先看下下面的架构图现在我要做的就是把TTL(YCbCr 4:2:2)转为 BT1120给海思3531。我把思路说一下:如上图所示,当收到第一个nvsync下降沿,然后 de 上升沿的时候,开始计数。这样就可以在相应的位置上填上相应的标志位和有效像素。当然需要用到状态机。最后我附上,之前写的testbench关于1920 x 1080 @ 60hz原创 2015-11-20 11:03:42 · 12878 阅读 · 6 评论 -
FPGA关于时序报告的问题
项目上用了ECP3-35做视频处理相关的, 因为资源利用率比较高。用了 185MHZ时钟去读写DDR1, 很难通过时序。ddr的时钟总是缺少一些。因为当时项目周期短,然后就一直用在项目现场上, 后来发现在板子运行几天之后,会出现DDR读写错误。和 技术支持讨论了下, 有可能是 时序的问题。费了老大劲,终于跑到了185MHZ//// 撒花。。。。。我还要继续测试。。关原创 2016-09-21 15:06:59 · 3151 阅读 · 0 评论 -
关于异步fifo的实现原理
说起 异步fifo,底层是由异步RAM来实现的。我们先看一RAM的底层单元,下面例化的是台积电的RAM的底层单元。1、对于异步RAM的底层单元:SYT28HPCPHHD2PRFXXXX_wrapper a_ram(.QB( QB),.ADDRA(AA),.DA(DA),.WEA(WEA),.MEA(CSA),.CLKA(w_clk),.LS(1’h0),.CLKB(r_clk), .ADDRB(...原创 2018-03-27 20:47:24 · 2285 阅读 · 0 评论 -
FPGA 处理 视频信号噪声
首先谈一下为什么会产生噪声。 信号在传输过程中,都是按高电平和低电平的模拟信号来传输的。 由于在 传输过程中, 高频信号会丢失。如下图所示,信号的的上升沿变缓。上升时间变长。 这就是问题的关键。当同一时钟去采样数据的时候,就有可能 setup和holdon 满足不了。导致 采样出来的数据出问题。这样在图像上就会产生噪点。一般的解决原创 2015-06-21 10:08:57 · 2449 阅读 · 0 评论 -
调试LATTICE 的DDR
最近在调试lattice的DDR出现这么一个问题, 把纯红的图像写进ddr里面,读出来的时候, 边缘变成了蓝色。但是改动代码的其他地方, 有时候会变好。感觉代码不受我的控制,搞得我很郁闷!折腾了几天,还是没有找到问题。后来受了某人的启发,才觉得是 时钟的问题。 可能DDR_IP在我的代码里面编译,有些路径发生了改变,从而导致时钟读取地址总线和数据总线会对应不起来。 我看了下保持时间原创 2015-03-18 11:28:44 · 1993 阅读 · 0 评论 -
LATTICE 调试的问题。
转自: http://blog.csdn.net/zmq5411/article/details/8133181近做一个项目遇到的一些问题:1、SDRAM 通讯SDRAM 通讯模块在以前调试使用过全部正常但是在加入这个工程以后出现如下情况: 工程在加入reveal以后工作正常 ,如果不加入reveal文件SDRAM数据 就有一部分不正确:如:数据是原创 2015-03-17 20:02:04 · 2488 阅读 · 0 评论 -
总结下 sdram 知识
先看看 这篇文章http://download.csdn.net/detail/angelbosj/6622489, 如果 好好搞明白 这篇 文章 http://download.csdn.net/detail/angelbosj/6622489, 基本 就了解 SDRAM, 也就可以 在 FPGA 去仿真 和 使用 sdram 的IP核。 下面写的东西 ,是我看这篇文章的原创 2013-11-27 23:28:10 · 1480 阅读 · 0 评论 -
lattice 的 ddr_ip使用
首先 讲一下 if {[file exists work]} { file delete -force work }vlib workvmap work work#==== compilevlog -novopt +define+NO_DEBUG +define+ECP +define+ECP2 \-y ../../../models/ecp3 +libext+.v \-y原创 2013-12-10 10:31:00 · 2940 阅读 · 0 评论 -
lattice 使用 sdram_ip.
本来 可以在很短的时间内, 就可以把这个 sdram_ip原创 2013-12-06 13:49:03 · 2234 阅读 · 0 评论 -
异步复位、同步释放
异步复位、同步释放always @ (posedge clk)rst_nr //现将异步复位信号用同步时钟打一拍 always @ (posedge clk or negedge rst_nr)if(!rst_nr) b else b always @ (posedge clk or negedge rst_nr) if(!rst_nr) c else c原创 2013-12-16 13:38:37 · 1437 阅读 · 0 评论 -
IC Design综合工具--Synplify Pro的常用选项及命令
Synplify Pro是Synplicity公司(Synopsys公司于2008年收购了Synplicity公司, 其客户遍布于通讯、半导体、航空/航天、计算机和军事电子等诸多领域,如:Philips,Agilent,Cisco,Lockheed,GE,Siemens,Lucent,Ericsson,Huawei,ZTE,UTStarcom等。本人所在公司即其中之一。)的高性能FPGA综合工具,转载 2013-12-27 09:22:01 · 5089 阅读 · 0 评论 -
关于 linux 驱动 的 学习
很早就想写个技术贴,关于 linux驱动开发的事情,从大学毕业到现在有两年余载,从毕业开始,就一直在做 android驱动开发的事情, 由于自己大学本科的专业是电子信息工程,对于计算机方便的知识很匮乏,于是我好好地学习了 (美)Brian W. Kernighan《c程序设计语言》第二版、Mark Allen Weiss (维斯) 的《数据结构与算法分析:C语言描述(原书第2版)》原创 2014-03-29 14:30:46 · 1481 阅读 · 0 评论 -
关于 视频同步vsync 信号在不同时钟域采样问题
今天调试 视频 4k(3840 x 1920)的vsync信号 进入 170mhz 的时钟域, 发现输出来的信号信号抖动特别厉害。后来才发现这是不同时钟域 造成的影响。 快 时钟域的信号进入 慢时钟域 可能出现 采集不到的情况。所以我把 一个时钟的高电平 变为 3个时钟的高电平, 这样就能保证 慢时钟域肯定能够采集到。 always @(posedge clk or nege原创 2014-09-18 16:41:46 · 2117 阅读 · 2 评论 -
关于 lattice的 DDR_IP的仿真.
基本上要先看 DDR IP Cores User`s Guide. 文档 的下载地址(http://www.latticesemi.com/~/media/Documents/Solutions/Technology%20Solutions/ipug35_DDR_DDR2_SDRAM_Cont_PLinedUG.pdf) 在 操作DDR 之前, 需要把 init_start 拉高,原创 2014-08-26 17:14:47 · 3282 阅读 · 2 评论 -
FPGA静态时序分析简单解读
任何学FPGA的人都跑不掉的一个问题就是进行静态时序分析。静态时序分析的公式,老实说很晦涩,而且总能看到不同的版本,内容又不那么一致,为了彻底解决这个问题,我研究了一天,终于找到了一种很简单的解读办法,可以看透它的本质,而且不需要再记复杂的公式了。我们的分析从下图开始,下图是常用的静态分析结构图,一开始看不懂公式不要紧,因为我会在后面给以非常简单的解释:这两个公式是一个转载 2014-09-10 18:22:59 · 5945 阅读 · 1 评论 -
FPGA 时序问题
最近 做一个项目------4个 1080p(1920 x 1080) 合成 一个 4K(3840 x 2160,297M)的接口板。当 1080p 进去, 1080p出来的时候,视频正常 播放出来。 可是当 1080p进, 4k出来的时候,视频图像上会有水波纹。当时就猜想是 FPGA 送给 下游器件SII9136的 时序不能满足。于是把输出的时钟反向有了一定的效果, 水波纹少了很多。后来用示波器原创 2014-09-30 17:04:12 · 3087 阅读 · 0 评论 -
Synthesis关于模块设计的建议
一、 Maintain Synchronous Sub-Blocks by Registering All Outputs. 设计的子模块应该使用寄存器输出,以便更好地优化时序。 二、 Keep Related Logic Together in the Same Block. 把逻辑相关的部分放在同一个模块。 三、Sepa原创 2014-10-17 13:18:15 · 1182 阅读 · 0 评论 -
FPGA 提高 时序的方法
解决FPGA时序问题的八大忠告忠告一、、如果时序差的不多,在1NS以内,可以通过修改综合,布局布线选项来搞定,如果差的多,就得动代码。 忠告二、看下时序报告,挑一个时序最紧的路径,仔细看看是什么原因导致,先看逻辑级数是多少?是哪种电路有问题,乘法器 或者还是RAM接口数据 先弄清楚哪儿的问题 忠告三、搞时序优化的话 插入寄存器是王道 但也要看具体情况 不原创 2014-12-09 10:24:55 · 2105 阅读 · 0 评论 -
verilog 加法器和 D触发器在一起实现的 电路图
写verilog 好多时候,应该知道自己写的代码电路结构是什么样子, 下面分析一下: module tb( input clk, input rst_n, input de, output [11: 0] cntx); reg [11: 0] cntx; always @(posedge clk or negedge rst_n)原创 2015-01-14 11:28:06 · 4215 阅读 · 1 评论 -
(筆記) 如何使用blocking與nonblocking assignment? (SOC) (Verilog)
出自: http://www.cnblogs.com/oomusou/archive/2008/07/05/verilog_blocking_nonblocking.htmlAbstract blocking 与 non-blocking 是学习 Verilog 一个重要的关卡,若能掌握好四个原则, 就不会出错。Introduction转载 2013-11-01 09:17:51 · 2294 阅读 · 0 评论