问题描述
一般问题描述:
本答复记录提供有关Xilinx SPI-4.2内核日历编程的建议,并回答以下问题:
– 为什么我需要执行日历编程?
– 是否始终需要在启动时执行日历编程?
– 如何指定日历长度?
– 如何使用SnkCalendar_M和SrcCalendar_M?
– 当我不编程时,如何处理日历控制信号?
– 我如何执行日历编程?
解决/修复方法
为什么我需要执行日历编程?
当PL4内核配置为多通道内核时,必须定义接收状态的通道序列顺序(TStat或RStat)。 (在以前的POS-PHY或UTOPIA器件中,轮询方法用于获取状态。)但是,在SPI-4.2中,此轮询方法被“日历排序”取代。在此方法中,使用相同的日历序列初始化接收器和源核心,以按预定义的顺序发送和接收通道状态。
是否始终需要在启动时执行日历顺序编程?
不,如果您有一个通道核心,并且您的日历长度只有一个,则无需执行日历编程。如果需要在启动后重新编程日历序列,则必须先禁用核心(SnkEn,SrcEn =“0”)。
此外,作为日历编程的替代方法,您可以在COE文件中指定日历序列。然后,在核心生成期间,您可以在SPI-4.2 GUI中加载COE文件。有关更多信息,请参阅“日历COE文件格式”部分中的SPI-4.2(PL4)核心产品规范,位于:
http://support.xilinx.com/ipcenter/catalog/logicore/docs/spi4_2_product_spec.pdf
COE文件中指定的日历序列将自动作为BRAM INIT字符串传输到“wrapper.ucf”文件。如果必须修改日历序列,Xilinx建议修改COE文件并重新生成内核,因为修改UCF中的INIT字符串更加困难。
如何指定日历长度?
Xilinx SPI-4.2可配置为1至256通道内核。但是,日历长度可以定义为1到512个。您可以在核心生成期间在SPI-4.2i GUI中设置日历长度。您还可以通过更改包装器文件中的静态配置参数SnkCalendar_Len和SrcCalendar_Len来修改它。
注意:实际长度为SnkCalendar_Len +1。因此,如果您的SnkCalendar_Len设置为“0”,则实际日历长度为1。
如何使用SnkCalendar_M和SrcCalendar_M?
这些参数用于指定Sink和Source核心在插入DIP2和成帧字之前重复日历序列的次数。有关正确使用这些参数的信息,请参阅SPI-4.2(PL4)核心产品规范:
http://support.xilinx.com/ipcenter/catalog/logicore/docs/spi4_2_product_spec.pdf
我不编程时如何处理日历控制信号?
如果您没有编程日历序列或根本不编程日历编程,请将所有日历编程输入信号(* CalClk,* CalWrEn_n,* CalAddr [8:0],* CalData [7:0])绑定到适当的级别。 * CalWrEn_n应始终为“1”,其他信号可以为“1”或“0”。
我如何执行日历编程?
请参阅SPI-4.2(PL4)核心产品规范中的“接收日历初始化”和“PL4日历编程”部分:
http://support.xilinx.com/ipcenter/catalog/logicore/docs/spi4_2_product_spec.pdf
没有回复内容