zoukankan      html  css  js  c++  java
  • 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代表数据,数据后面为一个字节的帧边界。

      

  • 相关阅读:
    es6 语法 (数值扩展)
    手机日期插件 (转加上自己喜欢的)
    仿微信抢红包(js 转)
    默认时间为今天
    es6 语法 (解构赋值)
    es6 语法 (let 和const)
    es6环境搭建
    express 安装和运行
    git 常用操作,下拉,提交,更新,还原
    排序。
  • 原文地址:https://www.cnblogs.com/xh13dream/p/8946997.html
Copyright © 2011-2022 走看看