目录1. 引言2. 设计框图3. CORDIC块:1. 引言学习如何在Vivado中使用CORDIC IP实现数控振荡器(NCO) !本教程将引导您在FPGA上创建数字正弦和余弦波发生器。你将学习:•NCO组件如何协同工作-从频率控制字(FCW)到相位累加器和CORDIC IP•提示提取正弦/余弦值和控制波的频率2. 设计框图这个框图代表了一个数控振荡器(NCO)它被用来产生一个频率可变的数字正弦波。NCO的主要组成部分是频率控制字(FCW)、相位累加器和CORDIC IP。Vivado.png中CORDIC NCO的框图•频率控制字(FCW - N位)•FCW是控制产生的正弦波频率的输入值。•为了增加正弦波的频率增加FCW。对于较慢的正弦波减小FCW。•相位累加器:•相位累加器是NCO的核心。它通过在每个时钟周期将FCW添加到其当前值来累积相位。•相位累加器的输出表示正弦波的当前相位。•该相位值持续增加当达到π时累加器将其重置为−π。相位累加器输出增加到π然后休息到-π。锯齿波的斜率取决于fw•相位累加器产生一个相位斜坡信号其值范围从−π到π。该阶段的阶跃增量由FCW决定。3. CORDIC块:CORDIC坐标旋转数字计算机块是NCO中的核心计算单元。它的作用是将相位累加器输出的相位值角度实时地、高效地计算并输出对应的正弦sin和余弦cos值。你可以把它想象成一个“超级计算器”输入一个代表角度的数字例如0、π/4、π/2 等这个角度来自相位累加器。核心算法CORDIC采用一种巧妙的迭代算法仅通过移位和加法这两种硬件极易实现的简单操作来逼近复杂的三角函数计算。这使其非常适合在FPGA中实现无需昂贵的乘法器或查找表。输出两个数字分别代表输入角度的正弦值sin和余弦值cos。这两个输出就是最终的数字正弦波和余弦波的采样点。简单来说相位累加器告诉你“现在波形走到哪个角度了”CORDIC块则负责回答“在这个角度上正弦波和余弦波的幅度是多少”。