用了半个多月的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 cant 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,先不必管什么区域束缚,今后进阶了再学. .
11.暂时就记住这些,今后再弥补吧.