• verilog学习(8)实战之PPL与串行/解串器


    一:PLL

    1:组成

      输出时钟产生器,相位比较器,可变频率振荡器(VFO),PLL会比较输入时钟相位与VFO产生的输出时钟之间的差别,并且通过这个差别来调整VFO产生的时钟频率。

      

    2:VFO代码

      我们定义比较器给VFO加快频率的指令是2‘b11,减慢频率的指令是2’b00.

      

    3:比较器设计

    (A)方法一:用一个时钟来对另一个时钟的高电平宽度进行计数。如果每次PLLClock高电平时计数都为1,那么说明两个时钟是吻合的。

      

     (B)对A改进

      首先HiCount计数可能会溢出,技术值重新翻转到2‘b00。2’b00的作用是加快产生时钟频率,这使得频率的调整方向与真实情况正好相反。如果我们把HiCount的位宽由两比特扩展至3比特,可以解决这个问题。

      接着,来解决调整精度的问题,这可以通过把高电平的计数值在多个时钟里求平均的办法来解决;当两个时钟同步时,这个计数值应该一直为1。(这点不明白)

      

       

    4:顶层设计

      

    二:倍频PLL(以32倍频为例)

    1:电路图

      

      即在原1倍频的输出端加n比特向上计数器,如,32倍频时,每16个时钟,输出端输出一个时钟用于与输入时钟进行比较,从而起到倍频PLL。 32=2^5,因此计数器为5.                                                                                                                                                                                                                                                                                                        

     三:SerDes与PCI Express简介

    1:基本概念

      PCI是32比特的并行总线协议;

      PCI Express用来取代PCI总线的新的串行总线协议

      SerDes:串行/解串器

      下面将完成一个符合PCI Express规范的串行/解串器(SerDes)的设计

    2:并串转换器模型

      

       串行协议:每一个时钟发送一个比特,先发送MSB,同时把信号SerValidFlag拉高;当发送了LSB后,再把SerValidFlag拉低。

      主要代码:ParValid=1,SarValid=1,然后将BusIn[ix]的值循环输出,最后SarValid拉低。(ParValid是仿真给的值)

      

     3:串行帧编码器

      数据串行输出之前有一定的帧格式,例如一个并行包32bit,串行输出,要在每个字节后加一个字节。如下:x代表数据,数据后面为一个字节的帧边界。

      

  • 相关阅读:
    提问回顾与个人总结
    软工结对作业
    软件工程第一次阅读作业
    软件工程第0次作业
    oo第四次博客总结
    第三次博客总结
    第二次博客作业
    OO第一次总结博客
    软工第二次作业
    软工第一次作业
  • 原文地址:https://www.cnblogs.com/xh13dream/p/8946997.html
Copyright © 2020-2023  润新知