DDS直接数字合成3 - 相位累加器

发布时间:2024-01-16  

的第二个技巧是长。 它允许来自输出的信号频率非常灵活。

本文引用地址:

我们将通过一个示例了解它是如何工作的。 让我们从这个简单的代码开始。

reg [10:0] cnt;   // 11bit counter
always @(posedge clk) cnt <= cnt + 11'h1;

sine_lookup my_sine(.clk(clk), .addr(cnt), .value(sine_lookup_output));

计数器实际上是一个“”。 那是因为它每次递增,它都会将正弦波移动 360°/2048=0.175°

因此,让我们将计数器重命名为更好的名称。

reg [10:0] phase_acc;   // 11bit
always @(posedge clk) phase_acc <= phase_acc + 11'h1;

sine_lookup my_sine(.clk(clk), .addr(phase_acc), .value(sine_lookup_output));

现在,如果我们想将正弦输出的频率提高一倍,我们将增加 2 而不是 1。

always @(posedge clk) phase_acc <= phase_acc + 11'h2;

但是,如果我们想将频率减半呢?我们运气不好,因为我们不能将相位累加器增加 0.5(Verilog 仅支持整数)。 我们需要的是相位累加器的更高分辨率。

让我们看看如何通过向相位累加器添加更多位来完成它,但现在以提供与 11 位相位累加器相同的输出的方式完成。

reg [14:0] phase_acc;   // 4 more bits, for a total of 15 bits
always @(posedge clk) phase_acc <= phase_acc + 15'd16;   // increment by 16 instead of 1

sine_lookup my_sine(.clk(clk), .addr(phase_acc[14:4]), .value(sine_lookup_output));   // shifted lookup address

由于我们将计数器递增 16 并在查找地址中使用 phase_acc[14:4],因此我们没有更改输出。 但是多四个位为我们提供了一个具有更好分辨率的相位累加器。 现在,我们当然可以将输出频率减半(通过将相位累加器增加 8 而不是 16)。

将相位累加器分辨率提高 16 后,我们可以以 1/16 步长获得原始正弦频率的任意倍数。 我们当然可以在相位累加器上增加四个以上的位。 典型的实现使用非常长的位相位累加器,以在可用的输出频率中具有极高的精度和分辨率。

例如,使用32位相位累加器和100MHz时钟,输出的频率分辨率为0.023Hz!
这是一个 32 位相位累加器,用于从 440MHz 时钟生成 100Hz 信号。

reg [31:0] phase_acc;   // 32bit phase accumulator
always @(posedge clk) phase_acc <= phase_acc + 18898;   // 440Hz output when clocked at 100MHz

sine_lookup my_sine(.clk(clk), .addr(phase_acc[31:21]), .value(sine_lookup_output));

虽然 440Hz 相当慢,但使用上述代码可以实现高达 50MHz(或接近 <>MHz)的输出频率。 只需修改相位累加器增量即可。

上一篇:

下一篇:

文章来源于:电子产品世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    实验22 4位串行累加器;实验目的 (1)熟悉和掌握开发流程和软件使用方法; (2)通过实验了解的意义及原理方法 (3)掌握使用语言基于实现的原理及实现方法 实验任务 设计一个4位串行,电路原理......
    在 SCL 中,POINTER 的使用具有一定限制。只能将其转发到被调用块中。 示例 以下举例说明了使用区域内指针进行间接寻址 在 STL 中寻址 说明 L P#10.0 // 在累加器 1......
    要求在进行数据传送时,目的操作数不丢失,则不能用直接传送指令,而采用交换型的数据传送指令,数据传送指令不影响标志C,AC和OV,但可能会对奇偶标志P有影响。 以累加器A为目的操作数类指令(4条)   这4......
    DDS直接数字合成3 - 相位累加器;的第二个技巧是长。 它允许来自输出的信号频率非常灵活。本文引用地址:我们将通过一个示例了解它是如何工作的。 让我们从这个简单的代码开始。 reg [10:0......
    位地址 把位地址赋予标号段的字符名称 3.1.5 MCS-51 指令系统的特点 1、布尔处理机 位处理器 布尔运算器ALU 布尔累加器CY 布尔RAM......
    机时无须外扩存储器。因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。其具体硬件组成如图1所示。 图1 流水灯硬件原理图......
    水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。其具体硬件组成如图1所示。 图1 流水灯硬件原理图原理图中可以看出,如果......
    序查讯和判别。PSW是特殊功能寄存器中的一个,其格式如下: PSW7--既是布尔处理机的累加器C,又是进位标志CY,如果操作结果在最高位有进位输出(加法时)或借位输入(减法时),置位CY,否则清“0”CY......
    执行后,源操作数不改变,目的操作数修改为源操作数。所以数据传送类操作属“复制”性质,而不是“搬家”。 数据传送类指令不影响标志位,这里所说的标志位是指Cy、Ac和OV,但不包括检验累加器奇偶标志位P......
    奇偶标志位P。 1.内部RAM数据传送指令(16条) (1)以累加器为目的操作数的指令(4条) MOV A,Rn ; (Rn)→A,n=0~7 MOV A,@Ri ; ((Ri))→A,i=0,1......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>