由于altra FPGA买不到了,现在使用xilinx的CPLD 95144来替换,本来想把之前的verilog工程直接重新在ISE上编译一下,就可以了,看来我是低估FPGA到CPLD的移植过程,
1. 想着很简单的几个逻辑,结果在ISE上老是编译不过,我就奇了怪了,之前都是在现场用的好好的FPGA工程,怎么在ISE下就不行呢,看报错信息,
Insufficient number of product terms. This design needs at least 454 but only 360 left after allocating other resources.
上网baidu,都说是资源来够用,这么简单的几个逻辑,怎么会占用很多资源呢?
2, 既然说资源不够,那就删逻辑,之前在FPGA里面添加了1个串口,直接删掉,确实占用的资源少了,但是还是不够用,一点一点删,先删无用的,再删有用的,直到编译通过为止。这CPLD的资源真是不行,删到最后,连复位逻辑都不要了,因为我的复位逻辑中对几个寄存器设置了初始值,不知怎么的,就占用了很多资源,编译不过;把复位逻辑删掉之后,就顺利的编译通过了。想了想复位逻辑不要也问题不大,可以通过MCU程序来弥补。 (想了想复位逻辑还是有时序的范畴,所以占用资源?)
3. 工程的灵魂“双向总线转换”坚持保留了下来,因为这块是纯逻辑电路,没有时序,因为耗不了多少资源。
4. 又巩固了下verilog的用法, 阻塞赋值=也可以产生寄存器, 赋值=一定要写完整,每一个分支都要显式的在程序中表示,不然稍不留神就会生成1个意外的寄存器。
5.还有就是ISE软件本身的骚操作,我 做的逻辑一般都不复杂,所以我喜欢看RTL视图,用altra的时候,我能心情愉悦的欣赏我自己工程生成的RTL视图,但是用ISE时,我不但get不到RTL的美,而且看RTL还把我弄糊涂了,比如下面:
怎么会有这么多悬空的引脚,我明明都连接了,但在ISE中,这个引脚看起来就是用来悬空的,不用理会它,只要确认你的程序连接了!
还有这个,更是吓我一跳,怎么缓冲方向错了,这不是要短路吗? 我也弄不明白,反正工程是正常的,就这吧!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)