xilinx原语详解及仿真——ODDR
揭开Xilinx ODDR的神秘面纱:深度解析与仿真实战
在Xilinx的逻辑设计中,OLOGIC的奇妙之处在于它能将单沿数据转化为双沿,这对于信号的精确传输至关重要。OLOGIC,分为OLOGICE2和OLOGICE3两种类型,尽管型号不同,但它们在IOB内执行相同的信号输出任务。这个结构被分为上下两部分,包含配置数据和三态路径,如图所示。
使用ODDR时,D1和D2作为输入信号,转换路径清晰可见,如蓝色线路所示。ODDR的核心在于其OPPOSITE_EDGE和SAME_EDGE两种工作模式,图4和图5分别揭示了它们各自的时序特性。ODDR模板包括输入(din1, din2)和输出(dout0, dout1, dout2)端口,以及决定工作模式的参数。让我们通过一个实际的仿真示例来感受ODDR的威力:din0信号在经过OLOGIC处理后,输出dout0和dout2,展示了其转换的动态过程。
深入设计细节:在电路构建中,我们设定DDR_CLK_EDGE为"OPPOSITE_EDGE",并通过ODDR_inst进行实例化,同时利用IOB的复用功能,将dout1定位在ILOGICE中。时序控制方面,clk, rst, clk_en协同工作,TestBench的10ns周期clk、初始化rst以及数据输入都为仿真提供了坚实的基础。OPPOSITE_EDGE模式下的仿真结果与图6吻合,而SAME_EDGE模式下的情况则有待进一步探讨。
在TestBench代码中,我们精心设计了参数CYCLE=10ns,系统时钟、复位信号以及数据输入信号都得到精确配置。我们利用always块实现D触发器功能,将dout1置于ILOGICE内,并配置为SAME_EDGE模式,设置初始化值和SRTYPE。仿真过程中,我们细致观察EN信号的有效和无效状态,确保了理论与实践的一致性。图9揭示了OLOGIC中的OFD触发器如何利用D触发器,图10展示了dout0通过组合逻辑直接输出,而图11则深入展示了dout1信号经过两个触发器的过程,直观展示了触发器的运用。
焦点细节:dout1信号的旅程
在放大图11中,我们可以清晰地看到OLOGIC中触发器的布局,这对dout1信号的精确控制至关重要。图12进一步展示了dout1信号如何在OLOGIC的作用下成功地转换为双沿信号,传递出更稳定的信号特性。
而dout2信号的处理同样重要,图13展示了它在FPGA内部经过OLOGIC,执行ODDR功能后的路径走向,确保了信号的完整性和一致性。
OLOGIC与ILOGIC虽功能相近,但ODDR的独特工作模式和使用策略,如通过IOB=TRUE观察dout1的定义,显示了它们在多比特数据对齐时的优势。深入了解这些细节,将有助于我们更好地设计和优化Xilinx的逻辑电路。
若想获取更多工程文件或深入了解,只需在公众号后台回复“ODDR”,丰富的资源和更深入的探讨等你来探索。