用了半个多月的ise,几乎全是自学起来的,碰到了很多很多让人dt好久的小问题,百度也百不到,后来还是都解决了,为了尽量方便以后的刚学ise的童鞋不再因为一些小问题而纠结,把这几天的经验总结了一下。好了,废话不多说,上料!
1.用ise仿真的时候.所用变量一定要初始化. ise默认初始量为"xxxxx", 而quarters是默认为"00000"的, 其实实际上, 下到fpga里后也是默认为0的,只是可以说ise严谨得令人dt吧.
比如说用一个累加器, result = a b result ,必须保证在某一刻a, b, result都为定值时, 之后的数据才不会一直为"xxxxx";
2.所有的中间线(就是module间用来传递参数的信号)都要用wire定义一下. 这个ise一般会提醒的;
3.任何一个warning都是有用的;
4.debug时要多把中间变量设成输出,然后查看仿真波形;
5.其实,新版本还是比较好用的.虽然取消了test bench wave 功能. 但是最好学会编测试文件,后期比test bench wave好用, 而且貌似一旦测试信号太多,test bench wave就不显示某些输出了;
6. warning: nod <....> is unconnected. 表明<...>所在的模块没用被执行,一般是参数没进来, 或者进来的参数不对("xxxx"之类)的原因引起的.
7.建立rom时候,error: sinrom can't be resolved. 因为在把程序挪地方的时候,sinrom.ngc文件没有一同拷过来.
8.把"xxxxx"信号处理掉的一个方法可以是: 从信号中随意选出一位 if (data[0] == 0) ....; else if (data[0] == 1).... else data = 0; 就可以把"xxxx"信号给清成"0000"了. 可以很好的解决1中仿真的问题.
9.如果某一个不是时钟的信号被当作周期信号来用的话,就会出现 warning:route:455 - clk net:trn_clk_obuf may have excessive skew. because 0 clk pins and 1 non_clk pins failed to route using a clk template 不管也行.
10. 一开始用fpga时不要害怕,用ucf文件配好引脚,直接load,先不用管什么区域约束,以后进阶了再学. .
『本文转载自网络,u球体育app下载的版权归原作者所有,如有侵权请联系删除』