打印

用PLL做分频有必要吗?

[复制链接]
1925|4
手机看帖
扫描二维码
随时随地手机跟帖
沙发
wrigleymint|  楼主 | 2012-12-30 19:28 | 只看该作者
学习板上的晶振是50M,AD是TLC549。我想把549采到的数通过led输出显示。程序如下:
module amyad(clk,din,clk_ad,cs,dout);
    input         clk;  //50MHz
    input         din;
    output  clk_ad;
    output reg cs;
    output reg [7:0]dout;
   
    reg [4:0]cnt_fre;
    reg clk1M = 1'b0;
    reg attach;
    reg [4:0]cnt_ad;
    reg [7:0]temp;
   
    parameter period_fre = 5'd24;
    parameter period_ad = 5'd27;
   
    always@(negedge clk)
    if(cnt_fre != period_fre)  
                cnt_fre <= cnt_fre + 5'd1;
    else begin  cnt_fre <= 5'd0;
                clk1M   <= !clk1M; end
   
    always@(negedge clk1M)
    if(cnt_ad != period_ad)  
             cnt_ad <= cnt_ad + 5'd1;
    else     cnt_ad <= 5'd0;
   
    always@(negedge clk1M)
    if(cnt_ad >= 5'd20 && cnt_ad <= 5'd27)
          attach <= 1'b1;
    else  attach <= 1'b0;
   
    assign clk_ad = (attach && clk1M);
      
    always@(negedge clk1M)
    case(cnt_ad)
        5'd0:   cs <= 1'b1;
        5'd1:   dout <= temp;
        5'd18:   cs <= 1'b0;
        5'd20:   temp[7] <= din;
        5'd21:   temp[6] <= din;
        5'd22:   temp[5] <= din;
        5'd23:   temp[4] <= din;
        5'd24:   temp[3] <= din;
        5'd25:   temp[2] <= din;
        5'd26:   temp[1] <= din;
        5'd27:   temp[0] <= din;
   endcase
   
endmodule
功能仿真正常。
编译时,时序分析好像说从cnt_fre[4]到clk1M的时钟延迟大于数据延迟,可能不工作。
要是用PLL而不是程序中的计数分频,是不是好些。我的片子可是cyclone2 的EP2C8,对于这样的小工程,应该默认就能轻松搞定的呀。
高手指点一下吧!先谢过!

使用特权

评论回复
板凳
kkzz| | 2013-1-3 12:51 | 只看该作者
应该是数据写入的时序 应该跟就是1M的频率

使用特权

评论回复
地板
hawksabre| | 2013-1-6 20:34 | 只看该作者
PLL(Phase Locked Loop): 为锁相回路或锁相环,用来统一整合时脉讯号,使内存能正确的存取资料。PLL用于振荡器中的反馈技术。 许多电子设备要正常工作,通常需要外部的输入信号与内部的振荡信号同步,利 用锁相环路就可以实现这个目的。


目录

锁相环的工作原理
  锁相环的基本组成   锁相环路是一种反馈控制电路,简称锁相环(PLL,Phase-Locked Loop)。锁相环的特点是:利用外部输入的参考信号控制环路内部振荡信号的频率和相位。因锁相环可以实现输出信号频率对输入信号频率的自动跟踪,所以锁相环通常用于闭环跟踪电路。锁相环在工作的过程中,当输出信号的频率与输入信号的频率相等时,输出电压与输入电压保持固定的相位差值,即输出电压与输入电压的相位被锁住,这就是锁相环名称的由来。锁相环通常由鉴相器(PD,Phase Detector)、环路滤波器(LF,Loop Filter)和压控振荡器(VCO,Voltage Controlled Oscillator)三部分组成,锁相环组成的原理框图如图所示   锁相环中的鉴相器又称为相位比较器,它的作用是检测输入信号和输出信号的相位差,并将检测出的相位差信号转换成uD(t)电压信号输出,该信号经低通滤波器滤波后形成压控振荡器的控制电压uC(t),对振荡器输出信号的频率实施控制。
锁相环电路的主要特点
  1)锁定是无剩余频差;   2)具有良好的窄带载波跟踪性能;   3)具有良好的宽带调制跟踪性能;   4)门限性能好;   5)易于集成。编辑本段锁相环的工作原理  锁相环是一种反馈电路,其作用是使得电路上的时钟和某一外部时钟的相位同步。PLL通过比较外部信号的相位和由压控晶振(VCXO)的相位来实现同步的,在比较的过程中,锁相环电路会不断根据外部信号的相位来调整本地晶振的时钟相位,直到两个信号的相位同步。在数据采集系统中,锁相环是一种非常有用的同步技术,因为通过锁相环,可以使得不同的数据采集板卡共享同一个采样时钟。因此,所有板卡上各自的本地80MHz和20MHz时基的相位都是同步的,从而采样时钟也是同步的。因为每块板卡的采样时钟都是同步的,所以都能严格地在同一时刻进行数据采集。   通过锁相环同步多块板卡的采样时钟所需要的编程技术会根据您所使用的硬件板卡的不同而不同。对于基于PCI总线的产品(M系列数据采集卡,PCI数字化仪等),所有的同步都是通过RTSI总线上的时钟和触发线来实现的;这时,其中一块版板卡会作为主卡并且输出其内部时钟,通过RTSI线,其他从板卡就可以获得这个用于同步的时钟信号,对于基于PXI总线的产品,则通过将所有板卡的时钟于PXI内置的10MHz背板时钟同步来实现锁相环同步的。   简单的PLL由频率基准、相位检波器、电荷泵、环路滤波器和压控振荡器(VCO)组成。基于PLL技术的频率合成器将增加两个分频器:一个用于降低基准频率,另一个则用于对VCO进行分频。而且,将相位检波器和电荷泵组合在一个功能块中也很容易,以便进行分析(见图1)。简单的PLL上所增设的这些数字分频器电路实现了工作频率的轻松调节。处理器将简单地把一个新的分频值“写入”到位于PLL中的寄存器中,更新VCO的工作频率,并由此改变无线设备的工作信道。   PLL是作为闭环控制系统工作,用于比较基准信号与VCO的相位。增设基准和反馈分频器的频率合成器负责比较两个由分频器的设定值调节相位。该相位比较在相位检波器中完成,在大多数系统中,这种相位检波器是一个相位和频率检波器。该相位-频率检波器生成一个误差电压,此误差电压在±2π的相位误差范围内近似为线性,并在误差大于±2π的情况下保持恒定。相位-频率比较器所采用的这种双模式操作可生成针对大频率误差(比如,当PLL在上电期间起动时)的较快的PLL锁定时间,并避免被锁定于谐波之上。   VCO利用调谐电压生成一个频率。VCO可以是模块、IC,也可由分立元件来制成。图2示出了一个位于MAX2361发送器IC内部的、采用有源元件制作的VCO。谐振回路和变容二极管是外置的,使得设计工程师能够对IF(中频)LO(本机振荡器)进行独特的规定,以便对特定的无线电频率方案提供支持。   --- 环路滤波器对由相位-频率检波器的电荷泵所产生的电流脉冲进行积分,以生成施加于VCO的调谐电压。传统的做法是使来自环路滤波器的调谐电压升高(变为更大的正值),以使VCO的相位超前并提高VCO的频率。环路滤波器可以采用诸如电阻器和电容器等无源元件来实现,也可采用一个运算放大器。环路滤波器的时间常数以及VCO、相位检波器和分频器的增益将设定PLL带宽。PLL带宽决定了瞬态响应、基准寄生电平和噪声滤波特性。在PLL带宽之内,频率合成器输出端上的相位噪声主要是相位检波器相位噪声;而在PLL带宽之外,输出相位噪声则主要源自VCO相位噪声。   --- 频率合成器PLL基准输入是一个稳定、无干扰的恒定频率信号。在大多数无线电设备中都采用了某种形式的晶体振荡器,原因是其相位噪声非常低,而且其频率稳定并进行了精确的规定。PLL将对该基准进行分频,以提供一个用于相位-频率检波器的较低频率。这一较低的频率将设定用于检波器的比较率,并通过使反馈分频器设定值以“1”的幅度递增的方法来设立可行的最小频率步进。这变成了合成器的频率分辨率(即频率步长),它应该等于或小于正在设计之中的无线电系统的信道间隔。利用由反馈分频器按比例缩小的VCO的输出,相位检波器和环路滤波器生成了一个调谐电压。   输入信号-> 鉴相器 -> 低通滤波器 -> 压控振荡器-> 输出信号。鉴相器有两个输入,分别是输入信号和压控振荡器的输出信号,在二者相位差和频率差不是很大的情况下,鉴相器的输出与两输入信号之差成正比,鉴相器的输出为模拟信号,其通过低通滤波器虑除高频杂波,后进入压控振荡器,压控振荡器的输出频率随其输入电压的改变而改变。从原理图上看,PLL实际上是一负反馈系统,只要输入信号在正常范围内,输出信号在“一定时间内”都能跟上。输入信号发生变化后,输出信号跟踪输入信号的过程称之为捕获;输出信号跟踪完毕时称之为锁定;输入信号变化过快导致输出信号无法跟踪时称为失锁。通过PLL可以方便实现N倍频,原理如下:   输入信号-> 鉴相器 -> 低通滤波器 -> 压控振荡器-> 输出信号   ^|______N分频器______________|   此外,可以实现小数倍频,原理如下:   输入信号-> 鉴相器 -> 低通滤波器 -> 压控振荡器-> 输出信号   ^|________N分频器/N+1分频_________|   | |   |------ 模式控制 ――---------> |   模式控制模块可以选择分频器处于N分频器还是N+1分频,若通过模式控制模块实现   10个clk中有9个clk为N分频,1个clk为N+1分频,则实际输出信号频率为(N+0.1)×   输入频率。   PLL电路本质是模拟电路,与ARM内核的数字电路截然不同,故在CPU中处于独立地   位,另外很多CPU的PLL供电为单独供电,且对PLL供电质量要求较高。   ---------------------------------------------------------------------------------------------

使用特权

评论回复
5
hawksabre| | 2013-1-6 20:35 | 只看该作者
锁相环这玩意真心没有玩过  还要加强啊
呵呵  硬件电路这一块还有很多需要学习  呵呵

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

166

帖子

0

粉丝