cyclone v hps部分管脚复用上,有这样几中选择,set 0 ,set 1,fpga,used。
set0,set1的选择并不关乎外部管脚,外部管脚是固定的。只是当多个控制器使用相同管脚时会有冲突,需要选择不同的映射方案。可以参考相应手册:
https://www.altera.com.cn/support/literature/lit-dp.html#cyclone-v
冲突会有提示。不要纠结到底是选择那个set。只要能把自己系统管脚复用开了就行,没有冲突就可以了。这些set的选择就是让我们选择不同的映射图案,避免冲突的。如果有些控制器不使用,比如usb1不用。那么这个管脚可以在后面点选作为gpio使用,也可以作为loan io使用。那么什么是loan io呢。从字面解释是"借贷",从这里延伸,我就想到了借给fpga用。注意这个借用,不是说这个管用不让hps使用了。也必须先配成hps相应管脚再借给fpga,好让fpga可以介入hps的一些信号处理。如果说有个文档上有这么个例子。
将usb1的phy是需要提供时钟的。而另一种模式是phy给usb 控制器提供时钟。在外部phy也需要提供时钟时,如下图所示:
但是我的altera soc是集成fpga的所以如果能向下面这样让fpga的pll提供时钟,那就不用提供外部时钟了。
这样就把原来hps的输入管脚“借给”fpga了,除了让fpga提供时钟外,还向外提供了时钟。
下面是原来hps io借出去管脚的重新定义:
原来的输入,变成了输出。
只要在相应的管脚后面点Loan,就可以在右面的块视图中发现hps 实例多出一个管脚。这样就可以在顶层模块中使用fpga连线对它就进行驱动。