全数字锁相环的verilog源代码讲解
- 格式:doc
- 大小:14.50 KB
- 文档页数:2
锁相环的组成和工作原理 #1 1.锁相环的基本组成 . 许多电子设备要正常工作, 通常需要外部的输入信号与内部的振荡信 许多电子设备要正常工作, 号同步,利用锁相环路就可以实现这个目的。
号同步,利用锁相环路就可以实现这个目的。
锁相环路是一种反馈控制电路, 锁相环路是一种反馈控制电路,简称锁相环 )。
锁相环的特点是 (PLL)。
锁相环的特点是:利用外部输入的 )。
锁相环的特点是: 参考信号控制环路内部振荡信号的频率和相 位。
因锁相环可以实现输出信号频率对输入信号频率的自动跟踪, 所以锁 因锁相环可以实现输出信号频率对输入信号频率的自动跟踪, 相环通常用于闭环跟踪电路。
锁相环在工作的过程中, 相环通常用于闭环跟踪电路。
锁相环在工作的过程中,当输出 于闭环跟踪电路 信号的频率与输入信号的频率相等时, 信号的频率与输入信号的频率相等时,输出电压与输入电压保 持固定的相位差值,即输出电压与输入电压的相位被锁住,这 持固定的相位差值,即输出电压与输入电压的相位被锁住, 就是锁相环名称的由来。
就是锁相环名称的由来。
( ) 锁相环通常由鉴相器 PD) 环路滤波器 LF) 、 ( ) 和压控振荡器 VCO) ( ) 三部分组成, 所示。
三部分组成,锁相环组成的原理框图如图 8-4-1 所示。
锁相环中的鉴相器又称为相位比较器, 它的作用是检测输入信号和输 锁相环中的鉴相器又称为相位比较器, 出信号的相位差,并将检测出的相位差信号转换成 uD(t)电压信号 出信号的相位差, ) 输出, 该信号经低通滤波器滤波后形成压控振荡器的控制电压 u(t) 输出, , C ) 对振荡器输出信号的频率实施控制。
对振荡器输出信号的频率实施控制。
施控制 2.锁相环的工作原理 . 锁相环中的鉴相器通常由模拟乘法器组成, 利用模拟乘法器组成的鉴 锁相环中的鉴相器通常由模拟乘法器组成, 相器电路如图 8-4-2 所示。
所示。
全数字锁相环的verilog源代码讲解支持论坛发展帖出全数字锁相环的verilog源代码,仿真已通过moduledpll(reset,clk,signal_in,signal_out,syn; parameter para_K=4; parameter para_N=16; input reset; input clk; input signal_in; output signal_out; output syn; reg signal_out; reg dpout; reg delclk; reg addclk; reg add_del_clkout; reg [7:0]up_down_cnt; reg [2:0]cnt8; reg [8:0]cnt_N; reg syn; reg dpout_delay; reg [8:0]cnt_dpout_high; reg [8:0]cnt_dpout_low; /******phase detector*****/ always@(signal_in or signal_out begin dpout<=signal_in^signal_out; end /******synchronization establish detector*****/ always@(posedge clk or negedge reset begin if(!reset dpout_delay<='b0; elsedpout_delay<=dpout; end always@(posedge clk or negedge reset begin if(!reset begin cnt_dpout_high<='b0; cnt_dpout_low<='b0; end else if(dpout if(dpout_delay==0 cnt_dpout_high<='b0; else if(cnt_dpout_high==8'b11111111 cnt_dpout_high<='b0; else cnt_dpout_high<=cnt_dpout_high+1; else if(!dpout if(dpout_delay==1cnt_dpout_low<='b0; else if(cnt_dpout_low==8'b11111111 cnt_dpout_low<='b0; else cnt_dpout_low<=cnt_dpout_low+1; end always@(posedge clk or negedge reset beginif(!reset syn<='b0; else if((dpout&&!dpout_delay||(!dpout&&dpout_delayif(cnt_dpout_high[8:0]-cnt_dpout_low[8:0]<=4||cnt_dpout_low[8:0]-cnt_dpout_high[8:0]<=4 syn<='b1; else syn<='b0; end /****up down couter withmod=K****/ always@(posedge clk or negedge reset begin if(!reset begin delclk<='b0; addclk<='b0; up_down_cnt<='b00000000; end else begin if(!dpout begin delclk<='b0;if(up_down_cnt==para_K-1 begin up_down_cnt<='b00000000; addclk<='b0; end else begin up_down_cnt<=up_down_cnt+1; addclk<='b0; end end else begin addclk<='b0;if(up_down_cnt=='b0 begin up_down_cnt<=para_K-1; delclk<='b0; end elseif(up_down_cnt==1 begin delclk<='b1; up_down_cnt<=up_down_cnt-1; end elseup_down_cnt<=up_down_cnt-1; end end end /******add and delete clk*****/always@(posedge clk or negedge reset begin if(!reset begin cnt8<='b000; end else begin if(cnt8=='b111 begin cnt8<='b000; end else if(addclk&&!syn begin cnt8<=cnt8+2; end else if(delclk&&!syncnt8<=cnt8; else cnt8<=cnt8+1; end end always@(cnt8 or reset begin if(!resetadd_del_clkout<='b0; else add_del_clkout<=cnt8[2]; end /******counter withmod=N******/ always@(posedge add_del_clkout or negedge reset begin if(!reset begin cnt_N<='b0000; signal_out<='b0; end else begin if(cnt_N==para_N-1 begin cnt_N<='b0000; signal_out<='b0; end else if(cnt_N==(para_N-1/2 begin signal_out<='b1; cnt_N<=cnt_N+1; end else cnt_N<=cnt_N+1; end end endmodule DPLL由鉴相器模K 加减计数器脉冲加减电路同步建立侦察电路模N分频器构成. 整个系统的中心频率(即signal_in和signal_out的码速率的2倍为clk/8/N.模K加减计数器的K值决定DPLL的精度和同步建立时间,K越大,则同步建立时间长,同步精度高.反之则短,低.。
基于FPGA的全数字锁相环设计与实现一、前言全数字锁相环(Digital Phase-Locked Loop,简称DPLL)是一种数字电路设计技术,可实现同步数字信号的调制和解调。
基于FPGA的全数字锁相环设计与实现,是一个极为重要的课题。
它可以有效地提高数字电路的性能,使得数字系统具有更优越的特性,并可广泛应用于数字电路的设计、数字信号的处理等领域。
二、DPLL 的体系结构DPLL是由相频检测器、滤波器、数字控制振荡器和时钟输出等多个部分组成的。
其中,相频检测器、滤波器和数字控制振荡器通常被集成到FPGA的内部,而时钟输出则需要通过FPGA的普通I/O口与市场上常见的外部输出设备相结合。
三、数字锁相环的工作原理数字锁相环的工作原理基于一个反馈循环系统,其中参考振荡器的频率与输入信号会被比较,然后通过差错检测网络来确定缺陷。
如果这些信号频率不匹配,则通过调整数字控制振荡器的频率来达到匹配。
然后,系统会根据输出信号和参考信号的相位差异来调整数字控制振荡器的频率,并通过PLL的反馈路径传输至输入端,进而得到和参考信号相同频率的输出信号。
四、数字锁相环的应用数字锁相环在通信领域有着广泛的应用,如数据码隆、数字调制、同步检测等;在数字领域,数字锁相环主要应用于数字信号处理、频谱分析、信噪比提高等方面;在电子仪器领域,数字锁相环可以被应用于测量领域、噪声分析、频率合成等方面。
五、基于FPGA的数字锁相环的设计数字锁相环的设计是一项非常复杂的工作,其中需要解决的问题主要有相频检测、低通滤波、数字控制振荡器的设计和时钟输出等方面。
在基于FPGA的数字锁相环设计过程中,可以采用很多不同的方法和技术来解决这些问题。
在数字锁相环的设计中,相频检测器是极其关键的部分,其主要功能是检测输入信号与数字控制振荡器的频率是否匹配。
其中,相频检测器常用的方式有两种:一是通过比较输入信号和数字控制振荡器的频率来实现;二是通过测量输入信号和数字控制振荡器的相位差来实现。
基于Verilog的全数字锁相环的设计
刘永勤
【期刊名称】《渭南师范学院学报》
【年(卷),期】2010(025)005
【摘要】文章介绍了全数字锁相环的基本结构和工作原理,提出了一种基于verilog的全数字锁相环的设计方法,并利用QuartusII6.0软件对设计进行了时序仿真.
【总页数】3页(P49-51)
【作者】刘永勤
【作者单位】渭南师范学院,物理与电子工程系,陕西,渭南,714000
【正文语种】中文
【中图分类】TP311.1
【相关文献】
1.基于流水线技术的全数字锁相环设计 [J], 田帆;杨檬玮;单长虹
2.基于Verilog-A的两点调制锁相环综合实验设计 [J], 周冉冉;王永
3.基于FPGA的全数字延时锁相环的设计 [J], 李锐; 田帆; 邓贤君; 单长虹
4.基于Verilog-A的两点调制锁相环综合实验设计 [J], 周冉冉[1];王永[1]
5.基于自适应环路滤波算法的全数字锁相环设计与分析 [J], 周郭飞;杨宏;杨延峰因版权原因,仅展示原文概要,查看原文内容请购买。
全数字锁相环原理及应用2011年11月18日摘要:锁相环是一种相位负反馈系统,它能够有效跟踪输入信号的相位。
随着数字集成电路的发展,全数字锁相环也得到了飞速的发展。
由于锁相精度和锁定时间这组矛盾的存在使得传统的全数字锁相环很难在保证锁定时间的情况下保证锁定精度。
鉴于此,本文对一些新结构的全数字锁相环展开研究,并用VHDL语言编程,利用FPGA仿真。
为解决软件无线电应用扩展到射频,即射频模块软件可配置的问题和CMOS工艺中由于电压裕度低、数字开关噪声大等因素,将射频和数字电路集成在一个系统中设计难度大的问题,本文尝试提出数字射频的新思路。
全数字锁相环是数字射频中最重要的模块之一,它不仅是发射机实现软件可配置通用调制器的基础,还是为接收机提供宽调频范围本振信号的基础。
本文针对数字射频中的数字锁相环的系统特性以及其各重要模块进行了研究。
关键词:全数字锁相环;锁定时间;锁定精度;PID控制;自动变模控制;数控振荡器;时间数字转换器;数字环路滤波器;FPGA;Principle and Application of all-digital phase-locked loopAbstract: Phase-Locked Loop is a negative feedback system that can effectively track the input signal’s phase. With the development of digital integrated circuits, all-digital phase-locked loop has also been rapidly developed. Because of the contradiction between the existence of phase-locked precision and phase-locked time, it makes the traditional all-digital phase-locked loop difficult to ensure the lock time meanwhile as well as phase-locked precision. So some new structures of all-digital phase-locked loop are analyzed in this paper and programmed in VHDL language with simulation under FPGA.In order to extend the application from radio to RF, which including RF modules software configurable problems and the difficulty to integrate RF and digital circuit in one system due to some factors contain the low voltage and large noise of the digital switches etc. This paper will try to put out a new thought for digital RF. All-digital phase-locked loop is one of the most important modules in digital RF. It is not only the foundation of transmitter which can be realized by software configurable general modulator, but also the foundation of receiver which can be provided wide range of local vibration signal. This paper particularly makes a study of the system character of tall-digital phase-locked loop and its vital modules.Keywords: ADPLL; Locked time; Locked precision; PID control; Auto modulus control; DCO;TDC; Digital Loop Filter; 1. 引言锁相环路是一种反馈控制电路,锁相环的英文全称是Phase-Locked Loop,简称PLL。
单片机锁相环代码以下是一个简单的单片机锁相环(PLL)的代码示例。
请注意,这是一个非常基本的示例,您可能需要根据您的特定硬件和需求进行修改。
这个示例假设你使用的是一种常见的微控制器,如Arduino 或STM32,并且有一个函数可以读取某种类型的时钟源(例如,石英晶体振荡器或其他时钟源)。
c#include <stdint.h>// 假设你有一个函数来读取时钟源的频率uint32_t read_clock_source() {// 在这里实现读取时钟源频率的代码// 返回值应为时钟源的频率(以Hz为单位)return 12345678; // 例如,返回12,345,678 Hz}// 假设你有一个函数来设置输出频率void set_output_frequency(uint32_t frequency) {// 在这里实现设置输出频率的代码// 参数应为所需的输出频率(以Hz为单位)}int main() {// 初始化锁相环参数uint32_t reference_frequency = read_clock_source(); // 读取参考频率uint32_t output_frequency = 1000000; // 设置输出频率为1 MHz// 锁定输出频率到参考频率while (1) {uint32_t error = reference_frequency - output_frequency; // 计算误差if (error > 1000) { // 如果误差大于1 kHzoutput_frequency += 1; // 增加输出频率} else if (error < -1000) { // 如果误差小于-1 kHzoutput_frequency -= 1; // 减少输出频率} else {break; // 如果误差在±1 kHz范围内,锁定输出频率到参考频率}set_output_frequency(output_frequency); // 设置新的输出频率}return 0;}请注意,这个示例代码非常基础,并且没有包括许多可能需要的功能,例如抗抖动、平滑的频率调整等。
应用于TD-LTE系统的Σ-Δ分数频率综合器研究【摘要】频率综合器是射频前端电路中的关键模块之一,其作用是为无线收发机提供精确、易于控制、高频谱纯度的本振信号。
它的设计面临小面积、高性能、高集成度和低功耗的挑战。
针对频率综合器,本论文主要完成了以下工作:采用了一套模块级锁相环系统的电压域verilogA/verilog模型。
这种分析方式使得本文能分析和预测各个噪声源对锁相环系统的影响,有助于提高仿真速度和尽早深入的了解电路特性并在系统级加以优化,而且还方便在设计后期对各个模块进行单独的分析与仿真。
基于TSMC 0.13μm CMOS工艺,为TD-LTE终端射频芯片设计了一款Σ-Δ分数型频率综合器。
论文针对宽频带、低相位噪声、低杂散、快速锁定等技术难点,采用了创新性的解决方案。
基于TSMC 0.13μm CMOS工艺,为TD-LTE终端射频芯片设计了一款采样保持结构Σ-Δ分数型频率综合器。
并针对面积、集成度等难点采用了一些解决方案。
更多还原【Abstract】 Freqency synthesizer is a key block in thewireless transceiver, which provides a precise, programmable and clean local oscillator signal. There exist many challenges like small layout area, high performance, high integration level and low power consumption. The principal contributions of this dissertation are described in the following.A set of behavioral voltage-domain verilogA/verilog models are used inaΣ-Δfractional-n frequency synthesizer system. This allows us to analyse and predict the n... 更多还原【关键词】TD-LTE;Σ-Δ;verilogA/verilog;锁相环;采样保持;【Key words】TD-LTE;Σ-Δ;verilogA/verilog;PLL;S/H;摘要3-4Abstract 4第一章绪论8-101.1 本论文的研究背景和意义81.2 本论文的主要贡献81.3 本论文的组织结构8-10第二章锁相环频率综合器的工作原理和系统参数分析10-202.1 基本工作原理102.2 核心组成电路10-142.2.1 压控振荡器10-112.2.2 分频器11-122.2.3 鉴相器12-132.2.4 电荷泵132.2.5 环路滤波器132.2.6 ∑-△调制器13-142.3 性能参数14-172.3.1 频率范围142.3.2 频率分辨率142.3.3 频率切换时间142.3.4 频谱纯度14-172.3.4.1 相位噪声14-152.3.4.2 抖动15-162.3.4.3 杂散16-172.4 环路噪声分析17-192.5 小结19-20第三章Σ-Δ分数锁相环频率综合器的行为级建模和仿真20-263.1 抖动和杂散20-213.2 混合仿真21-223.3 基于veriogA/verilog 的电路模型设计22-243.3.1 频率振荡器223.3.2 鉴相鉴频器223.3.3 电荷泵22-233.3.4 压控振荡器和分频器233.3.5 Σ-Δ调制器23-243.3.6 控制信号testbench 243.3.7 处理结果用matlab 代码243.4 仿真结果24-253.5 小结25-26第四章基于TD-LTE 应用的CMOS Σ-Δ分数频率综合器26-474.1 TD-LTE 简介264.2 频率综合器设计指标26-274.3 技术难点和解决方案27-284.4 核心组成电路28-414.4.1 多频带LC 压控振荡器28-304.4.2 多模分数分频器N/N+0.5 30-334.4.3 高线性度鉴相鉴频器及电荷泵电路33-374.4.4 参数可调环路滤波器37-404.4.5 ∑-△调制器40-414.4.6 自动频率调谐电路414.5 频率综合器整体仿真结果和版图41-424.6 频率综合器整体测试结果42-464.7 小结46-47第五章基于TD-LTE 的Σ-Δ采样保持分数频率综合器47-575.1 系统结构47-485.2 基本原理48-505.3 核心组成电路50-555.3.1 采样保持核心电路505.3.2 电流源偏置50-515.3.3 控制信号产生电路51-535.3.4 D 触发器53-555.4 采样保持频率综合器仿真结果和版图55-565.5 小结56-57第六章结论57-596.1 总结57-586.2 研究展望58-59 致谢59-60参考文献。
一种锁定相位编程可调全数字锁相环设计一种锁定相位编程可调全数字锁相环设计1 引言锁相技术在信号处理、调制解调、时钟同步、倍频、频率综合等领域都得到了广泛的应用。
目前锁相技术的实现主要有模拟锁相环(APLL)、全数字锁相环(DPLL)、模拟数字混合锁相环与延迟锁相环(DLL)四种。
全数字锁相环(DPLL)具有精度高且不受温度和电压影响,环路带宽和中心频率编程可调等优点.得到了广泛应用。
经典全数字锁相环路由数字鉴相器、K模可逆计数器、脉冲加减控制电路和N分频器4部分组成。
在输入信号频率稳定条件下,锁相环锁定时输出信号与输入信号正交。
在通信和其他很多应用领域,不仅需要输出信号与输入信号保持正交关系,有时也需要他们保持某些特定的相位差。
本文在经典结构基础上稍做改进,提出了一种输出信号与输入信号的锁定相位编程可调的全数字锁相环路的设计。
经过计算机仿真分析、FPGA实现及板级系统实验,证明了系统的可行性和可靠性。
2 经典数字锁相环路结构及工作原理图1示出了采用异或门鉴相器的经典数字锁相环路的结构框图。
各个模块的结构和功能如下:2.1 异或门鉴相器异或门鉴相器将锁相环路输入信号Fin与输出信号Fout做减法,输出相位差Se作为K模可逆计数器的计数方向信号。
当环路锁定时输出信号与输入信号稳定正交,Se是一占空比为50%的方波信号。
2.2 K模可逆计数器K模可逆计数器产生进位和借位脉冲并起到环路滤波的作用。
他由系统时钟Clk(频率M?0)控制对异或门鉴相器输出的相位差信号Se进行采样计数,当Se为低电平时做加计数,计数值达到预定模值K时输出进位脉冲inc同时计数器回零;当Se为高电平时做减计数,计数值为零时输出借位脉冲dec同时计数器置K。
当环路锁定Se是一占空比为50%的方波信号时,交替输出进位和借位脉冲。
计数器模值K的大小决定了环路进入锁定的时间,K值越大环路锁定时间越长。
2.3 脉冲加减控制器和N分频器脉冲加减控制器实现数字压控振荡器的功能。
verilog 倍频代码从事半导体设计或数字电路设计的工程师可能会经常遇到需要进行倍频操作的情况。
在很多应用中,我们需要将输入时钟信号的频率提高到原来的倍数,这样可以满足更高的工作要求。
在本篇文章中,我将详细介绍如何使用Verilog语言编写倍频代码,以及每一步的具体实现过程。
在开始之前,我们先来了解一下什么是倍频。
倍频是指将输入信号频率的倍数提高,例如将一个1MHz的时钟信号倍频为2MHz或更高频率。
实现倍频操作的核心是使用锁相环(PLL)或者数字锁相环(DLL)。
在本篇文章中,我们将以PLL为例进行讲解。
第一步,我们需要定义输入和输出信号的数据类型和位宽。
在这个例子中,我们假设输入信号的数据类型为时钟信号,位宽为1位,而输出信号的数据类型也为时钟信号,位宽为1位。
我们可以使用Verilog中的reg类型来定义这两个信号的数据类型,使用parameter来定义位宽。
代码示例如下:verilogmodule frequency_multiplier (input wire CLK, 输入时钟信号output wire CLK_OUT 输出时钟信号);reg CLK_DIV; 倍频时钟信号parameter DIV_FACTOR = 2; 倍频因子TODO: 实现PLL代码endmodule第二步,我们需要编写PLL代码。
PLL由相位频率检测器(PFD)、锁相环滤波器(LPF)、倍频分频器(DIV)和振荡器(VCO)组成。
在本例中,我们使用一个简化的PLL结构,其中只包含一个倍频分频器。
代码示例如下:verilog锁相环中的倍频分频器always (posedge CLK)CLK_DIV <= !CLK_DIV; 输入信号变化时,输出信号取反实现倍频操作输出时钟信号assign CLK_OUT = CLK_DIV;第三步,我们需要进行仿真测试。
我们可以使用Verilog中的testbench 文件来验证倍频代码的正确性。
支持论坛发展帖出全数字锁相环的verilog源代码,仿真已通过 module
dpll(reset,clk,signal_in,signal_out,syn; parameter para_K=4; parameter para_N=16; input reset; input clk; input signal_in; output signal_out; output syn; reg signal_out; reg dpout; reg delclk; reg addclk; reg add_del_clkout; reg [7:0]up_down_cnt; reg [2:0]cnt8; reg [8:0]cnt_N; reg syn; reg dpout_delay; reg [8:0]cnt_dpout_high; reg [8:0]cnt_dpout_low; /******phase detector*****/ always@(signal_in or signal_out begin
dpout<=signal_in^signal_out; end /******synchronization establish detector*****/ always@(posedge clk or negedge reset begin if(!reset dpout_delay<='b0; else
dpout_delay<=dpout; end always@(posedge clk or negedge reset begin if(!reset begin cnt_dpout_high<='b0; cnt_dpout_low<='b0; end else if(dpout if(dpout_delay==0
cnt_dpout_high<='b0; else if(cnt_dpout_high==8'b11111111 cnt_dpout_high<='b0; else cnt_dpout_high<=cnt_dpout_high+1; else if(!dpout if(dpout_delay==1
cnt_dpout_low<='b0; else if(cnt_dpout_low==8'b11111111 cnt_dpout_low<='b0; else cnt_dpout_low<=cnt_dpout_low+1; end always@(posedge clk or negedge reset begin
if(!reset syn<='b0; else if((dpout&&!dpout_delay||(!dpout&&dpout_delay
if(cnt_dpout_high[8:0]-cnt_dpout_low[8:0]<=4||cnt_dpout_low[8:0]-
cnt_dpout_high[8:0]<=4 syn<='b1; else syn<='b0; end /****up down couter with
mod=K****/ always@(posedge clk or negedge reset begin if(!reset begin delclk<='b0; addclk<='b0; up_down_cnt<='b00000000; end else begin if(!dpout begin delclk<='b0;
if(up_down_cnt==para_K-1 begin up_down_cnt<='b00000000; addclk<='b0; end else begin up_down_cnt<=up_down_cnt+1; addclk<='b0; end end else begin addclk<='b0;
if(up_down_cnt=='b0 begin up_down_cnt<=para_K-1; delclk<='b0; end else
if(up_down_cnt==1 begin delclk<='b1; up_down_cnt<=up_down_cnt-1; end else
up_down_cnt<=up_down_cnt-1; end end end /******add and delete clk*****/
always@(posedge clk or negedge reset begin if(!reset begin cnt8<='b000; end else begin if(cnt8=='b111 begin cnt8<='b000; end else if(addclk&&!syn begin cnt8<=cnt8+2; end else if(delclk&&!syn
cnt8<=cnt8; else cnt8<=cnt8+1; end end always@(cnt8 or reset begin if(!reset
add_del_clkout<='b0; else add_del_clkout<=cnt8[2]; end /******counter with
mod=N******/ always@(posedge add_del_clkout or negedge reset begin if(!reset begin cnt_N<='b0000; signal_out<='b0; end else begin if(cnt_N==para_N-1 begin
cnt_N<='b0000; signal_out<='b0; end else if(cnt_N==(para_N-1/2 begin signal_out<='b1; cnt_N<=cnt_N+1; end else cnt_N<=cnt_N+1; end end endmodule DPLL由鉴相器模K 加减计数器脉冲加减电路同步建立侦察电路模N分频器构成. 整个系统的中心频率(即signal_in和signal_out的码速率的2倍为clk/8/N. 模K加减计数器的K值决
定DPLL的精度和同步建立时间,K越大,则同步建立时间长,同步精度高.反之则短,低.。