为什么在我的LaTeCeCP3设计中动态时钟选择器驱动器DDR(双数据率)原始组件时,我有NETSANITICCHECK错误?-Lattice-莱迪斯社区-FPGA CPLD-ChipDebug

为什么在我的LaTeCeCP3设计中动态时钟选择器驱动器DDR(双数据率)原始组件时,我有NETSANITICCHECK错误?

LaTeCeCp3设备需要专用或主时钟资源来驱动DDR(双数据速率)原始组件。从时钟输入垫到目的地DDR组件的时钟网络必须使用纯主时钟或专用时钟网络。如果在RTL设计中实现动态时钟选择器元素,则可以使用一般路由资源。这会导致设计规则检查违例,并生成NETSANITICCHECK错误。

LaTiCeCp3包含专用DCS(动态时钟选择)功能块,允许您只使用主时钟资源。虽然您的RTL编码是DCS块的等效函数,但除非显式实例化DCS块,否则合成工具可能不使用DCS资源。下面的Verilog示例演示如何在LaTeCeCP3设计中实例化DCS函数:

假设“CKYA”和“CKYB”是两个时钟输入,而“SEL”是时钟选择器输入。它可以表示如下所示,并且注意它可能不使用DCS块功能。

[ Verilog ]
分配CKKYOUT= =(SEL)?CKYA:CKYB;

[VHDL]
如果(SEL=1)则
βl;
否则
K·CKKYOUT=CKYB;
第二节

为了使用专用的DCS块函数,实例化DCS原语,如下所示:

[ Verilog ]
DCs U1YDCs(CLK0(CKYA),CLK1(CKYB),.SEL(SEL),DCSOUT(CKKYOUT));

[VHDL]
U1YDCS:DCS端口映射
αClk0= & gt;CKYA,Clk1= & gt;CKYB,SEL=& Gt;SEL,DCSOUT=& ClklOUT;

使用DCS块将让您使用完全专用的主时钟资源,并且您将不会看到NETSANITICCHECK错误。

请登录后发表评论

    没有回复内容