1、 课 程 设 计 报 告 设计名称设计名称 EDA(VHDL)课程设计)课程设计 专业班级专业班级 电子电子 0942 姓姓 名名 学学 号号 电气与信息工程学院电气与信息工程学院 二二 0 0 一二一二年年一一月月 基于基于 FPGAFPGA 的半整数分频器设计的半整数分频器设计 一、系统设计任务及功能概述 本系统是利用VHDL硬件描述语言和原理图输入方式, 通过MUX+PLUS开发软件和ALTER 公司的 FLEX 系列 EPF10K10LC84-4 型 FPGA 方便的完成了半整数分频器电路的设计。本系统 是通过控制单位时间内两种分频比出现的不同次数来获得所需要的小数分频值。 二、系统设
2、计方案和程序设计 1系统设计方案 我们采用脉冲吞吐计数器和锁相环技术, 先设计两个不同分频比的整数分频器, 然后通 过控制单位时间内两种分频比出现的不同次数来获得所需要的 5.5 分频值。 该分频器电路可 由一个异或门、一个模 6 数器和二分频器组成。这样可以实现分频系数为 5.5 分频器以及 11 分频。 设计框图如下所示 模N计 数 器 异 或 门 2分 频 器 f0/(N-0.5)f0/(2N-1) OUTCLK(2.5分 频 ) Q(五 分 频 ) Q(5分 频 ) f0=5MHz 2VHDL 程序设计 (1)模 6 计数器 VHDL 描述设计 该计数器可产生一个分频系数为 5.5 分
3、频器,并产生一个默认的逻辑符号 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 port(clk:in std_logic; rst:in std_logic; en:in std_logic; qa,qb,qc:out std_logic); end entity cont6; architecture wode of cont6
4、 is signal count:std_logic_vector(2 downto 0); begin process(clk,rst,en)is begin if rst=1then count=“000“; elsif clkevent and clk=1then if en=1then if count=“101“ then count=“000“; else count=count+1; end if; end if; end if; end process; qa=count(0); qb=count(1); qc=count(2); end architecture wode;
5、模六计数器原件生成图如下: 图一 模六计数器原件生成 上面的程序经编译、时序模拟在 MAX+PLUS中可得到如图所示的仿真波形: 图 2 模 6 计数器仿真波形 (2)半整数分频器设计 现在通过设计一个分频系数为 5.5 的分频器给出用 FPGA设计半整数分频器的一般方法。 该 5.5 分频器由前面设计的模 6 计数器、 异或门和 D 触发器组成, 利用图形设计方法构造如 图所示的 5.5 分频器电路原理图。 图 3 5.5 分频器电路原理图 3 将 cont6、异或门和 D 触发器通过图 3 所示的电路建立逻辑连接关系,并用原理图 输入方式调入图形编辑器,然后经过逻辑综合即可得到如图 4 所
6、示的仿真波形。 图 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