文档介绍:设计二:非整数分频器设计
实验目的:
掌握非整数分频器设计的两种方法:分频比交错和累加器分频
实验内容
分频比K值的确定方法:
根据学号确定M和N:
Ns=08210647
由上式求得M=26,N=4
然后根据下式计算分频比K的值:
实现方法:
方法1:分频比交错
假定N=6, M=2 ,则分频比K=(8*(26-4)+9*4)=
首先设计两个分频器:8分频器fre8 与9分频器fre9。为使得分频效果尽可能均匀,则应该每隔5个8分频处插入一个9分频。
fre8与fre9都应对clk信号敏感,在需要时将分频器的输出引入。
fre8与fre9可看作两个元器件,在输出时存在时序问题。如,在第一次引入fre9的输出时,由于分频数不一致,此时fre9内部的状态count/=0。为使得在输出新分频器结果的时候,分频器的状态为初始状态,特引入复位信号re。当re=1时,分频器处于初始状态,re=0时,分频器正常工作。
工作流程如下:
fre9
fre_c
fre8
方法2:累加器分频
如下图所示,累加器分频,通过调整步长STEP的值来实现不同的分频比。
累加分频器原理图
累加器位数为29,累加器的模值NM为229。STEP=658426,分频比为:K=
:
在设计过程中程序分为两个进程,四个部分。进程P1,P2分别代表两种分频方法。
四个部分分别为8分频器fre8,9分频器fre9,控制部分fre_c以及累加分频器算法
为了将两种分频器的结果在一个程序中显示,在此将累加分频器算法加入到fre_c中
,,
5. 仿真结果
cout-----分频比交错
cout1----累加分频器
竖线处为第一周期结束的地方
竖线处为交错分频器第一次使用9分频器的情况
6. 思考题:
在你的实验中,分频比交错的规律是怎样的?
由学号计算出N=26,M=4,K=。所以共需进行26次分频。其中有22次是8分频,有4次是9分频,所以为了满足分频输出信号的占空比尽可能均匀,8分频和9分频应‘交替’进行,所以我的规律是:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
8
8
8
8
8
9
8
8
8
8
8
9
8
8
8
8
8
9
8
8
21
22
23
24
25
26
8
8
8
9
8
8
你的STEP值是怎么确定的?为什么这样确定?
为了满足题目所要求的8位精度,所以按以下计算方法计算:
依据公式计算出至少有8位小数的K值。如我的计算结果是:
用2X计算。根据不断尝试得知,X越大计算结果越精确,所以选择X=26开始尝试。
用226除以8位小数的K值并得到结果取整记为H0再用226/H0,将所得的结果与K想比较,发现8位小数内不同,故226不符合需求,需提高精度。可以尝试227
重复上述过程,直到234时,H0=2106965089,234/H0=