DSP

FPGA时钟处理

2019-07-13 11:00发布

今天做了一个小程序,完成FPGA和DSP之间的数据传输,即FPGA产生一个数据使能、开始标志以及8位的数据,当有中断响应的时候,传输给DSP,之后DSP再将此组数据传递给FPGA。 在这个程序中出现了两个输入时钟,一个FPGA的系统时钟,另一个是DSP输出数据的时钟,两个时钟频率不同,且不同步。所以需要对DSP的输出时钟进行处理,将DSP_CLK时钟拉入全局时钟网络,这里使用原语BUFG进行处理。
BUFG原语: BUFG是具有高扇出的全局时钟缓冲器,一般由综合器自动判断并使用。全局时钟是具有高扇出驱动能量的缓冲器,可以将信号连到时钟抖动可以忽略不计的全局时钟网络,BUFG组件还应用于典型的高扇出信号和网络,如复位信号和时钟使能信号。如果要对全局时钟实现PLL或DCM等时钟管理,则需呀手动例化该缓冲器。其例化的代码模版如下所示:
// BUFG: 全局时钟缓存(Global Clock Buffer),只能以内部信号驱动   // Xilinx HDL库向导版本,ISE 9.1   BUFG BUFG_inst (  
.O(O), //时钟缓存输出信号  
.I(I) // /时钟缓存输入信号  );  
// 结束BUFG_ins模块的例化过程