基于fpga任意倍数分频器设计_毕业设计论文(编辑修改稿)内容摘要:

的复杂性 ,进而 加快了设计 的 速度。 Quartus II 支持 的 器件类型 非常 丰富 ,其 图形界面 也易于操作。 Altera 在 Quartus II 中包 第 7 页 含了许多诸如 SignalTap II、 Chip Editor 和 RTL Viewer 的设计辅助工具,集成了 SOPC和 HardCopy 的 设计流程,并且继承了 Maxplus II 友好的图形界面及简便的使用方法。 Quartus II 作为一种可编程逻辑的设计环境 , 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的 喜爱和 欢迎 [11]。 Quartus II 提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括 : 可利用原理图、结构框图、 VerilogHDL、 AHDL 和 VHDL 完成电路描述,并将其保存为设计实体文件; 芯 片(电路)平面布局连线编辑; LogicLock 增量设计方法,用户可建立并优化系统,然后添加对原始系统的性能影响较小或无影响的后续模块; 功能强大的逻辑综合工具; 完备的电路功能仿真与时序逻辑仿真工具; 定时 /时序分析与关键路径延时分析; 可使用 SignalTap II 逻辑分析工具进行嵌入式的逻辑分析; 支持 软件 源文件 的添加和创建,并将它们链接起来生成编程文件; 使用组合 编译方式 可一次完成整体设计流程; 自动定位编译错误; 1 高效的期间编程与验证工具; 1 可读入标准的 EDIF 网表文件、 VHDL 网表文件和 Verilog 网表文件; 1 能生成第三方 EDA 软件 使用的 VHDL 网表文件和 Verilog 网表文件。 Altera 的 Quartus II 可编程逻辑 软件 属于第四代 PLD 开发平台。 该平台支持一个 工作组 环境下 的设计要求,其中包括支持基于 Inter 的协作设计。 Quartus 平台与Cadence、 ExemplarLogic、 MentorGraphics、 Synopsys 和 Synplicity 等 EDA 供应商的开发工具相兼容。 改进了 软件 的 LogicLock 模块设计 功能,增添了 FastFit 编译选项,推进了网络编辑性能,而且提升了调试能力。 支持 MAX7000/MAX3000 等乘积项器件 [12]。 第 8 页 2 分频 基本原理 等占空比偶数分频 方法 在设计偶数倍分频器时 ,常用的方法是:通过一个由待分频时钟上升沿所触发的计数器循环计数来实现 N 倍 (N 为偶数 )分频的实现方法:通过由待分频的时钟触发的模为 (N/2)1 的计数器计数,当计数器从 0 计数到 (N/2)1 时,输出时钟信号进行翻转,同时给计数器一个复位信号 ,使得计数器在下一个时钟重新开始计数,采用这种方法不断循环 ,就可得到所需的 N 倍分频器。 这种方法可以实现占空比为 50%的任意偶数分频 等占空比的奇数分频 方法 占空比为 50%的 N 倍 (N 为奇数 )分频的实现方法 :首先通过时钟的上升沿触发进行计数,当计数到某一个特定值时对计数输出进行翻转,然后经过 (N1)/2 个输入时钟,再次对计数输出进行翻转,从而得到一个占空比非 50%的 N 倍奇数分频时钟。 在此同时进行时钟的下降沿触发进行计数,当计数到和上升沿触发输出时钟翻转时所选的特定值相同时,对计数输出进行翻转 ,同样经过 (N1)/2 个时钟时,再次对计数输出进行翻转,从而得到 另一个占空比非 50%的 N 倍奇数分频时钟。 然后对两个占空比非 50%的 N 倍奇数分频时钟进行逻辑或运算,就能得到一个占空比为 50%的 N 倍奇数分频时钟。 如进行三倍分频时钟设计时,先通过待分频时钟上升沿触发计数器进行模三计数, 当计数器计数到特定值时进行翻转,比如可以在计数器计数到时,输出时钟进行翻转,当计数到 2 时再次进行翻转 ,这样实际上实现一个占空比为 1/3 的三分频时钟。 然后通过待分频时钟下降沿触发计数 ,采用和上升沿触发的计数相似的方法,可以产生另外一个三分频的时钟, 然后下降沿产生的三分频时钟和上升沿产生的时钟 进行逻辑或运算 ,就可得到占空比为50%的三分频时钟 [6]。 第 9 页 分 数分频方法 数分频器的设计思想与小数分频器类似。 假设进行 jnm .分频 , 总分频次数由分母 m决定 , 规律是进行 n 次 j+1 分频和 mn 次 j 分频。 两种分频交替进行的计算方法也和小数分频类似。 究竟是进行 j+1 分频还是 j 分频就看累加的结果是大于等于分母还是小于分母。 6311 的分频计算过程见表 可见要进行 6 次 4 分频 , 5 次 3 分频 , 满足上面的规律。 分数分频器 , 其 中 j、 m、 n 分别取 1 6, 故实现了 6311 分频 , 参数 n n2用来调节占空比。 表 6311 分频序列 分频次数 累加器 分频系数 1 6 3 2 12 4 3 8 3 4 14 4 5 10 4 6 16 3 7 12 4 8 8 3 9 14 4 10 10 3 11 16 4 小数分频方法 小数分频器是通过可变分频和多次平均的方法得到的 [45]。 假设要进行 m, n分频 ( m、n 都是整数,且 n< 10),因为只有一位小数,所以总共要进行 10 次分频,总的规律 是进行 n 次 m+1 分频, 10n 次m分频。 假设要进行 j, m,n 分频( j、 m、 n 都足整数且 m、 第 10 页 n< 10),由于小数是 2 位,所以总共要进行 100 次分频,分频的规律是进行 行 mn 次 j+1分频, 100mn 次 j 分频。 不管是几位小数总要进行两种系数的分频,两种分频究竟如何交义进行,可以根据一定的规律计算出来,下面以 分频为例进行讲解。 由上面的分析知道 分频要进行 6 次 4 分频, 4 次 3 分频。 将小数部分 6 按倍累加,假设累加的值为 a,如果 a< 10 则进行 3 分频, a< 10 的话下一次则加上 6,此后,如果 a≥ 10 则进行 4 分频, 4 分频过后再将累加值减去 4 后与 10 比较以决定下一次分频是 4 分频还是 3分频,计算过程见表。 表 分频序列 分频次数 累加器 分频系数 1 6 3 2 12 4 3 8 3 4 14 4 5 10 4 6 6 3 7 12 4 8 8 3 9 14 4 10 10 4 从表 中看出分频规律是:首先进行 3 分频,然后进行 4 分频,接着 1 次 3 分频和 2 次 4 分频,如此循环下去。 任意倍数分 频器 加入控制模块就 可以将上 述 4 种分频器集成到一起,变成任意数值分频器,顶层原理见图 第 11 页 图 任意倍数分频器框图 当输入的二进制数 a=00 时实现偶数和占空比不等于 50% 的奇数分频 , a=01 时实现占空比为 50% 的奇数分频, a=10 和 ll 时分别实现小数和分数分频。 其中 m、 j 分别控制整数分频的分频系数和占空比。 小数分频时 m、 n 分别调整整数部分和小数部分;分数分频时 j 调整整数部分,而 m、 n 分别控制分母和分子值。 nl 和 n2 用于调节分数和小数分频的占空比。 因为有小数和分数分频,所以预置端口较多,但是可 调性也达到了最大。 任意倍数 分频器 clk a(1 downto 0) m j n n1 n2 y 第 12 页 3 任意倍数分频器设计 设计 思想 本设计的 设计思想 是:把偶数分频,奇数分频,半整数分频,占空比可调的分频,小数分频这 5 种比较常见的分频器集成在一块芯片之上,并可以通过按钮来选择具体由哪一种分频器进行操作,而拨码开关则可以预置一些分频系数,发光二极管则显示具体由那种分频实现,数码管显示分频的系数。 具体功能如下: p, q, v:功能选择按钮。 f1, f2, f3, f4, f5:表明功能的序号。 P=0, q=0 , v =0 :偶数分频, f1=1, f2=f3=f4=f5=0; P=0, q=0, v =1 :奇数分频, f2=1, f1=f3=f4=f5=0; P=0, q=1 , v =0:半整数分频, f3=1, f1=f2=f4=f5=0; P=0, q=1 , v =1:可预置占空比分频, f4=1, f1=f2=f3=f5=0; P=1, q=0 , v =0:小数分频, f5=1, f1=f2=f3= f4=0; clk:时钟信号。 Rst:复位信号。 a,b,c,d:表明分频系数 偶数分频: 2, 4, 6, 8, 10, 12, 14 奇数分频: 1, 3, 5, 7, 9, 11, 13, 15 半整数分频: — 占空比分频: 1:1, 1:2, 1:3, 2:1, 2:2, 2:3, 3:1, 3:2, 3:3 小数分频: — y:输出信号。 y5:段选择信号。 y6:位选择信号。 y6=fb 选中第三个数码管 y6=fd 选中第二个数码管 y6=fe 选中第一个数码管,数码管显示分频系数。 第 13 页 顶层框图设计 图 顶层框 图设计原理图 该顶层框图主要由六个部分组成:选择按钮,拨码开关,二极管,分频器种类选择,信号输出。 各部分的功能如下: 选择按钮:设置输入的方式,选择需要实现何种分频。 拨码开关:提供分频的系数。 发光二极管:显示第几种分频被选择。 FPGA:根据前面的输入来确定何种分频器进行工作。 数码管:显示分频系数。 信号输出:把分频后的信号进行输出。 顶层文件设计 分频器的顶层文件是一个原理图文件,它包含 8 个模块 8 个模块 encoder35 模块,led 模块, fenpine 模块, fenpino 模块, fenpinm 模块, fenpinh 模块, fenpinx 模块,mux51 模块。 模块的正确性已在上面的介绍中进行验证了。 通过将各个模块用具有电气性质的导线将各个模块连接起来,这样原理图文件就建好了。 保存编译。 在建立一个 .vwf波形文件,保存并仿真。 原理图 见附录 B 所示,以 8 分频为例子进行仿真,其仿真结果如图 所示 : 选择按钮 拨码开关 FPGA 输出信号 发光二级管 数码管 第 14 页 图 顶层文件波形仿真结果图 P=0, q=0 , v =0:偶数分频, f1=1(表明第一个发光二极管亮), f2=f3=f4=f5=0; Rst=0 时,不分频。 Rst=1 时: 当 y5=99 时,数码管 1 显示 4。 当 y5=ff 时,数码管 2 不显示。 当 y5=c0 时,数码管 3 显示 0。 最终结果为: 三个数码管显示为: 0,不显示, 4。 模块设计 偶数分频模块的设计 偶数分频模块根据拨码开关选择分频系数( count),对输入的 clk 信号进行偶数分频。 本设计偶数分频的关键是对 clk 信号的上升信号进行计数( temp)。 当 temp 小于count/2 时 clout 输出 1,否则输出 0,从而实现偶数分频。 只有当 35 译码器的输出选中偶数分频且 rst=1 时偶数分频才工作。 偶数分频实现的程序 见附录 A1。 偶数分频( 4 分频)模块程序仿真结果如图 所示:。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。