在很多Vivado的高速接口的IP中,比如Ethernet、PCIe、SRIO的设置中,都会有个Shared Logic的页面: 可能很多同学并没有很关注这个页面,直接默认设置就完事了。 但其实这个页面的内容也是非常有用的,我们可以看到页面中有两个选择: 首先,什么是Shared Logic?字面意思很好理解,就是共享逻辑,主要包括时钟、复位等逻辑。当选择Shared Logic in core时,这些共享的逻辑就会被集成到IP的内部,也就是说这些逻辑是不能被修改的。当选择Shared Logic in example design时,这些共享逻辑就会出现在IP的接口上,我们可以根据自己的需求进行控制,那为什么叫in example design呢?因为Vivado的IP都会提供一个example,在shared logic在example中就相当于是这些逻辑是对外开放的。 我们以SRIO IP Core为例,下图显示了Shared Logic in core和Shared Logic in example design接口上的区别,可以看到,Shared Logic in core的输入接口是比较少的,因为这些时钟和复位的逻辑都被集成到了内部,但这些IP提供了这些逻辑的输出接口,我们在外面可以监测这些逻辑是否正确;Shared Logic in example design的输入接口明显要多一些,这些时钟、复位接口都需要我们自己提供,灵活性更强,当然我们可以直接参考example中的控制方式。 看懂上面这些,我们也就理解IP设置页面中下面这个图的含义了。
![image-20210903124458804 图片[1]-Xilinx FPGA开发工具Vivado IP中的Shared Logic到底是干嘛的?-Xilinx-AMD社区-FPGA CPLD-ChipDebug](http://chipdebug.com/wp-content/uploads/2022/11/61668140439.png)
![image-20210903134618393 图片[2]-Xilinx FPGA开发工具Vivado IP中的Shared Logic到底是干嘛的?-Xilinx-AMD社区-FPGA CPLD-ChipDebug](http://chipdebug.com/wp-content/uploads/2022/11/91668140441.png)
![image-20210903124518028 图片[3]-Xilinx FPGA开发工具Vivado IP中的Shared Logic到底是干嘛的?-Xilinx-AMD社区-FPGA CPLD-ChipDebug](http://chipdebug.com/wp-content/uploads/2022/11/51668140441.png)




