本人从2004年接触fpga开始,至今已经8年了。
开发过altera的flex系列和cyclone3系列;开发过xilinx的vii和v5系列。下面谈谈本人对二者的一些不同,
以便引起开发者对一些细节上的注意,免得为之付出代价,再走弯路!
(1)altera的任意一个管脚都可以连接到这样的sig信号上always @ (posedge(sig)) ……;但是xilinx的fpga不能,只有clk信号才能够分配这样的信号。
本人最早使用a公司flex系列的fpga,当fpga和dsp的emif连接时,为了接口粘合,采用如下所示的语句:
always @ (negedge(dsp_we)) ……;但是使用了x公司的vii-fpga后,上述语句无法通过编译。本人还曾犯过的一个错误是dsp的emif的emif_clk管脚和vii管脚连接时,没有连接到vii的clk类型的引脚上,结果无法使用dsp的emif的syn模式。最后在改板时将emif_clk管脚和vii的clk管脚连接才解决这个问题。
(2)altera的clk脚只能做输入,xilinx的clk脚不用于时钟输入时,能够作为普通IO用。
需要非常注意!!!两个公司对管脚类型的详细定义,虽然很多类似,但是也有很大的不同哦!!!
(3)altera公司的IO feature没有下拉电阻!xilinx公司的IO结构同时具备上下拉电阻。
本人开发一个项目遇到这么个问题:发射机,要求上电时输出低电平。在使用a公司的cyclone3时,在配置过程中管脚是三态+弱上拉,导致输出总是高电平,本人费尽心思,最后无解,只能在管脚上焊接1k欧姆的下拉电阻。使用x公司的vii和v5系列,直接使能管脚的pull_down特性,能够很方便的解决这个问题。
关于两者的io结构支持的io电平,这个我觉得两者肯定满足绝大多数的应用,应该没有问题。 |