-
老师你好:
最近在调试FPGA程序,FPGA内部程序分为两个子模块,一个是时钟模块(产生所需的同步时钟),另一个是地址发生模块(内部包含地址累加器,多路初始地址生成器)。由于地址发生器产生的多路地址无法对齐,一步一步往回测,想解决累加器地址没有毛刺问题---------我想的是在累加器后面加入D触发器,通过采样时钟进行控制。
问题:1.应该采取什么方法才能确定时钟沿正确的采样的数据。(是通过板子上引出时钟和数据测试引脚进行测试确定 还是通过wave波形仿真文件进行测试、)
2.对于wave波形仿真文件,是不是只能观察有输出引脚的信号时序延迟。对于内部信号线(不需要输出引脚,只是单纯的逻辑连接)进行信号分析时(由于wave波形文件只能输出引脚才能添加测试),是不是无法正确判断内部信号时钟和数据的延迟;
[ 本帖最后由 shuxueaw 于 2013-7-11 15:07 编辑 ]
-
谢谢老师和学长回答,这一段时间我采取的一些测试1.用FPGA片内RAM代替外部RAM波形是能正常输出的。2.外部只用1片RAM,没有复用,波形还是出现问题,初次觉得是写入RAM的数据有问题,于是继续进行验证。现在想问下老师一个问题,就是我对外部RAM一个确定地址一直读数据,在用signaltap观察时读取的数据会发生变化,其中RAM_DATAOUT1是外部RAM读进来的数据经过一个soft缓冲器而来的,CLK_RAMH为外部RAM的时钟输入引脚,RAM_ADDR1为外部RAM的地址,我想问:1:为什么一直读一个地址数据,数据会发生变化,不相同。
-
谢谢老师和学长回答,这一段时间我采取的一些测试1.用FPGA片内RAM代替外部RAM波形是能正常输出的。2.外部只用1片RAM,没有复用,波形还是出现问题,初次觉得是写入RAM的数据有问题,于是继续进行验证。现在想问下老师一个问题,就是我对外部RAM一个确定地址一直读数据,在用signaltap观察时读取的数据会发生变化,其中RAM_DATAOUT1是外部RAM读进来的数据经过一个soft缓冲器而来的,CLK_RAMH为外部RAM的时钟输入引脚,RAM_ADDR1为外部RAM的地址,我想问:1:为什么一直读一个地址数据,数据会发生变化,不相同。
-
夏老师,你好,我最近调试FPGA向RAM里写数据,RAM的数据总线是72位的,地址总线为20位。由于需要给6片RAM写入相同的数据,于是进行这样的设计,外部控制平台向FPGA内部写入72为数据,数据通过6个三态门给外部RAM,通过signaltap验证时,控制平台向FPGA写入的数据正确,三态门控制信号也正确,但是数据经过三态门后,6片RAM的数据不相同,而且都不是控制平台写入的FPGA内部数据。不知道什么原因。
第二:当设计成只写一片RAM时,用signaltap验证是正确的,但是我又设计了地址发生器,把RAM的数据读回FPGA,当地址发生器使能触发时,通过signaltap观看的话,有些地址配置的数据不正确,并且莫名的其妙,找不到规律。不知道什么原因。
还想问下老师,由于RAM是BGA封装的,测试RAM正确配置数据该怎么测试呢? 以前试过FPGA单独引出数据线到测试引脚,但是不知道有没有更好的方法,遇到这些问题,因为设计多采用Quartus宏模块,偶尔换成verilog代码任然出现相同问题,不知道怎么解决,感觉很棘手,找不到方向。
-
踩踩
-
看看
-
不可能啊,要产生的内部信号基本上能产生,会不会因为时序问题呢?
-
不好意思,我的意思没表达明确,就是顶层模块的功能仿真正确,但是时序效果比较差,于是我想将底层模块单独运行仿真,时序效果还不错,所以想将底层模块LOGICLOCK,但是刚建立一个float,auto的区域后,把底层模块也拖进区域后,运行仿真波形就不正确了,不知道该怎么解决。就是仿真错误,不是编译报告出错。或者有没有其他方法解决这类问题:就是单独模块运行仿真,功能时序比较好,但因为整体仿真会重新布局布线后,时序仿真效果比较差,该怎么解决呢~
-
我想问一下,就是子模块单独仿真时,波形输出正确,我想对子模块设置LOGICLOCK,结果创建region区域,拖入子模块后,编译设计时波形仿真时错误。。我想问一下这是原因。region区域是float和auto的。。。。不知道什么原因。
-
老师,你好,我想问一下,设计结束仿真时出现时序错误时,那板级验证是不是一定会出错呢?还有,对了数据延迟很大的路径该怎么修改呢?