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

本文介绍了锁相环(PLL)的基本原理及其组成部分,包括输出时钟产生器、相位比较器和可变频率振荡器(VFO)。讨论了PLL的工作原理及VFO的控制代码设计,并提出了一种改进的比较器设计方案。此外,还探讨了倍频PLL的实现方法,以32倍频为例,展示了如何通过向上计数器实现时钟倍频。

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

  

 

转载于:https://www.cnblogs.com/xh13dream/p/8946997.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值