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代表数据,数据后面为一个字节的帧边界。

      

  • 相关阅读:
    Nginx 部署多个 web 项目(虚拟主机)
    Nginx 配置文件
    Linux 安装 nginx
    Linux 安装 tomcat
    Linux 安装 Mysql 5.7.23
    Linux 安装 jdk8
    Linux 安装 lrzsz,使用 rz、sz 上传下载文件
    springMVC 拦截器
    spring 事务
    基于Aspectj 注解实现 spring AOP
  • 原文地址:https://www.cnblogs.com/xh13dream/p/8946997.html
Copyright © 2011-2022 走看看