EDA课程设计---基于FPGA的半整数分频器设计
课 程 设 计 报 告 设计名称设计名称 EDA((VHDL)课程设计)课程设计 专业班级专业班级 电子电子 0942 姓姓 名名 学学 号号 电气与信息工程学院电气与信息工程学院 二二 0 0 一二一二年年一一月月 基于基于 FPGAFPGA 的半整数分频器设计的半整数分频器设计 一、系统设计任务及功能概述 本系统是利用VHDL硬件描述语言和原理图输入方式, 通过MUXPLUSⅡ开发软件和ALTER 公司的 FLEX 系列 EPF10K10LC84-4 型 FPGA 方便的完成了半整数分频器电路的设计。本系统 是通过控制单位时间内两种分频比出现的不同次数来获得所需要的小数分频值。 二、系统设计方案和程序设计 1.系统设计方案 我们采用脉冲吞吐计数器和锁相环技术, 先设计两个不同分频比的整数分频器, 然后通 过控制单位时间内两种分频比出现的不同次数来获得所需要的 5.5 分频值。 该分频器电路可 由一个异或门、一个模 6 数器和二分频器组成。这样可以实现分频系数为 5.5 分频器以及 11 分频。 设计框图如下所示 模N计 数 器 异 或 门 2分 频 器 f0/N-0.5f0/2N-1 OUTCLK2.5分 频 ) Q五 分 频 ) Q5分 频 ) f05MHz 2.VHDL 程序设计 (1)模 6 计数器 VHDL 描述设计 该计数器可产生一个分频系数为 5.5 分频器,并产生一个默认的逻辑符号 cont6。其输 入端口为 rst、en 和 clk;输出端口为 qa,qb,qc。下面给出模 6 数器的 VHDL 描述代码 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity cont6 is portclkin std_logic; rstin std_logic; enin std_logic; qa,qb,qcout std_logic; end entity cont6; architecture wode of cont6 is signal countstd_logic_vector2 downto 0; begin processclk,rst,enis begin if rst 1 then count“000“; elsif clk event and clk 1 then if en 1 then if count“101“ then count“000“; else countcount1; end if; end if; end if; end process; qacount0; qbcount1; qccount2; end architecture wode; 模六计数器原件生成图如下 图一 模六计数器原件生成 上面的程序经编译、时序模拟在 MAXPLUSⅡ中可得到如图所示的仿真波形 图 2 模 6 计数器仿真波形 (2)半整数分频器设计 现在通过设计一个分频系数为 5.5 的分频器给出用 FPGA设计半整数分频器的一般方法。 该 5.5 分频器由前面设计的模 6 计数器、 异或门和 D 触发器组成, 利用图形设计方法构造如 图所示的 5.5 分频器电路原理图。 图 3 5.5 分频器电路原理图 3. 将 cont6、异或门和 D 触发器通过图 3 所示的电路建立逻辑连接关系,并用原理图 输入方式调入图形编辑器,然后经过逻辑综合即可得到如图 4 所示的仿真波形。 图 4 5.5 分频器仿真波形图 4.输入、输出接口说明 接口 名称 类型 输入/输出 结构图上 的信号名 引脚 号 说明 inclk in inclock 2 系统时钟 11 MHz outclk out outclock 6 系统输出 Q1 out q 5 系统输出 三.课程设计总结 通过用 VHDL 语言描述模 N 计数器,然后进行波形仿真,原理图仿真等,了解了半整数 分频器的工作原理。试验中遇到了好多不会的通过查书,请教老师,请教同学一一解决了。 通过这次的实验认识了把课本的知识用到生活实践中, 来解决问题很好的培养了自己的动手 能力和学习能力。 四.参考文献 [1] 谭会生,张昌凡.EDA 技术及应用. 西安西安电子科技大学出版社,2006,12. [2] 郭振武,从红霞。EDA 实验教程. 天津南开大学出版社,2011,8 [3] 杨晓慧,杨永健.基于 FPGA 的 EDA/SOPC 技术与 VHDL.北京国防工业出版社,2