




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课 程 设 计 报 告设计名称 EDA(VHDL)课程设计 专业班级 电子0942 姓 名 姬鹏冲 学 号 0904451213 成 绩 评 定考 核内 容平 时表 现设 计报 告设计成果和答辩综合评定成绩成 绩电气与信息工程学院二0一二年一月课程设计要求和成绩考核办法(要求和成绩考核办法在封皮背面打印)1不允许在教室或实验室内吸烟、吃零食,不准带无关人员到教室或实验室活动,否则扣平时表现分。2凡病事假超过3天(每天7小时),或迟到早退三次以上,或旷课两次(1天)以上,不得参加本次考核,按不及格处理,本次课程设计不能通过。3病事假必须有请假条,需经班主任或有关领导批准,否则按旷课处理。4课程设计的考核由指导教师根据设计表现(出勤、遵守纪律情况等)、设计报告、设计成果、答辩等几个方面,给出各项成绩或权重,综合后给出课程设计总成绩。该设计考核须经教研室主任审核,主管院长审批备案。5成绩评定采用五级分制,即优、良、中、及格和不及格。6课程设计结束一周内,指导教师提交成绩和设计总结。7设计过程考核和成绩在教师手册中要有记载。实习报告要求实习报告内容、格式各专业根据实习(设计)类别(技能实习、认识实习、生产实习、毕业实习等)统一规范,经教研室主任审核、主管院长审批备案。注意: 1课程设计任务书和指导书在课程设计前发给学生,设计任务书放置在设计报告封面后和正文目录前。 2为了节省纸张,保护环境,便于保管设计报告,统一采用A4纸,课程设计报告建议双面打印(正文采用宋体五号字)或手写,左侧装订,订两个钉。基于FPGA的半整数分频器设计一、系统设计任务及功能概述本系统是利用VHDL硬件描述语言和原理图输入方式,通过MUX+PLUS开发软件和ALTER公司的FLEX系列EPF10K10LC84-4型FPGA方便的完成了半整数分频器电路的设计。本系统是通过控制单位时间内两种分频比出现的不同次数来获得所需要的小数分频值。二、系统设计方案和程序设计1系统设计方案我们采用脉冲吞吐计数器和锁相环技术,先设计两个不同分频比的整数分频器,然后通过控制单位时间内两种分频比出现的不同次数来获得所需要的5.5分频值。该分频器电路可由一个异或门、一个模6数器和二分频器组成。这样可以实现分频系数为5.5分频器以及11分频。设计框图如下所示2VHDL程序设计(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 isport(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 issignal count:std_logic_vector(2 downto 0);beginprocess(clk,rst,en)isbeginif rst=1then count=000;elsif clkevent and clk=1thenif en=1thenif 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;模六计数器原件生成图如下: 图一 模六计数器原件生成上面的程序经编译、时序模拟在MAX+PLUS中可得到如图所示的仿真波形:图2 模6计数器仿真波形(2)半整数分频器设计现在通过设计一个分频系数为5.5的分频器给出用FPGA设计半整数分频器的一般方法。该5.5分频器由前面设计的模6计数器、异或门和D触发器组成,利用图形设计方法构造如图所示的5.5分频器电路原理图。图3 5.5分频器电路原理图3 将cont6、异或门和D触发器通过图3所示的电路建立逻辑连接关系,并用原理图输入方式调入图形编辑器,然后经过逻辑综合即可得到如图4所示的仿真波形。图4 5.5分频器仿真波形图4输入、输出接口说明接口名称类型(输入/输出)结构图上的信号名引脚号说明inclkininclock2系统时钟 11 MHzoutclkoutoutclock6系统输出Q1outq5系统输出三.课程设计总结 通过用VHDL语言描述模N计数器,然后进行波形仿真,原理图仿真等,了解了半整数分频器的工作原理。试验中遇到了好多不会的通过查书,请教老师,请教同学一一解决了。通过这次的实验认识了把课本的知识用到生活实践中,来解决问题很好的培养了自己的动手能力和学习能力。四.参考文献1 谭会生,张昌凡.EDA技术及应用. 西安:西安电子科技大学出版社,2006,12.2 郭振武,从红霞。EDA实验教程. 天津:南开大学出版社,2011,8 3 杨晓慧,杨永健.基于FPGA的EDA/SOPC技术与VHDL.北京:国防工业出版社,2007,7.4 皱其宏 EDA实验技术教程。 北京:中国电力出版社。 2009.5.5 陈雪松,滕立中编著.VHDL入门与应用.北京:人民邮电出版社. 2000.99分钟定时器的VHDL设计一.系统设计任务及功能概述1.系统设计任务任务要求:通过设计,定时器可以整体清零;可以定时最高到99MIN;以秒速度递增至预定时间,以秒速度递减至零。2.系统功能概述本系统是一个99分钟的定时器,具有以下功能:具有整体清零(reset)功能,定时99分钟。以秒速度递增至99分钟停止,启动报警(cout)5秒钟。具有置位(cn)控制,即cn高电平时,clk脉冲上升沿到来,计数加一;cn低电平时,置位结束,进入倒计时阶段,以秒速度使输出计数减一至零结束,并同时报警(cout)5秒钟。时钟信号提供秒信号(1HZ);四位数码管静态显示,高位high(3 downto 0)显示分,低位low(3 downto 0)显示秒。二.系统设计方案和程序设计1.系统设计方案 时钟信号a 控制计时部分译码器数码管时钟信号b报警器 通过记数器控制中心输入秒信号,并输出两个四位的BCD码,可分别来表示各位与十位,也可整体复位清零。通过该记数器实现以秒速度递增至清零,该记数器以秒的速度递增至99来实现置位,而以秒的速度递减至零以实现定时功能。当以秒速度递增至99分钟停止,启动报警(cout)5秒钟。cn低电平时,置位结束,进入倒计时阶段,以秒速度使输出计数减一至零结束时也同时报警(cout)5秒钟。通过二选一选择器对个位和十位进行扫描输出,并将输出送到译码器,通过译码器对输入的四位BCD码进行七段码编译,然后输出到数码管。2.VHDL程序设计Aaa控制计数模块,是该定时器的核心部分.res为复位端,用来清零,采用异步复位方式;cn用于置位,高电平有效。cout端将在定时结束时产生高电平。Low和high为四位BCD码输出端口,可用于显示。当cn有效时,clk脉冲上升沿到来,计数加1;当cn为低电平时,置位结束,进入计时阶段,每1个时钟周期发出一个脉冲,使输出记数减1,直到记时结束,令cout位为高电平为止。该模块的源程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jsq is port (cn,res,clk:in std_logic; cout :out std_logic; flow,fhigh,mlow,mhigh:out std_logic_vector(3 downto 0);end jsq;architecture art of jsq issignal fdisplow,fdisphigh,mdisplow,mdisphigh:std_logic_vector(3 downto 0); -定义信号分别表示分钟和秒钟的十位和个位beginprocess(clk,cn,res)beginif(res=1)thenmdisplow=0000;mdisphigh=0000;fdisplow=0000;fdisphigh=0000; cout=0; -res高电平执行复位elsif (clkevent and clk=1)then if cn=1then if mdisplow9 then mdisplow=mdisplow+1;-秒钟个位数小于9时执行计数加1 cout=0; elsif mdisplow=1001 and mdisphigh5 then mdisplow=0000; mdisphigh=mdisphigh+1;-秒钟十位进位加1 elsif mdisphigh=0101 and fdisplow9 then mdisplow=0000; mdisphigh=0000; fdisplow=fdisplow+1;-满59秒后分钟个位加1 elsif fdisplow=1001 and fdisphigh9 then mdisplow=0000; mdisphigh=0000; fdisplow=0000; fdisphigh=fdisphigh+1;-满9分59秒后分钟十位加1 elsif fdisplow=1000 and fdisphigh=1001 then mdisplow=0000; mdisphigh=0000; fdisplow=1001;-计时至99分停止 elsif fdisplow=1001 and fdisphigh=1001 then cout0 then mdisplow=mdisplow-1;-秒钟减1 cout0 then mdisplow=1001; mdisphigh0 then mdisplow=1001; mdisphigh=0101; fdisplow0 then mdisplow=1001; mdisphigh=0101; fdisplow=1001; fdisphigh=fdisphigh-1;-分减10 elsif fdisphigh=0000and fdisplow=0000and mdisphigh=0000and mdisplow=0000then cout=1;-倒计时结束cout变为高电平 end if; end if;end if;end process;mhigh=mdisphigh;mlow=mdisplow;fhigh=fdisphigh;flow=fdisplow;end art;该计数器生成的原件如下图所示: 图一 计数器原件生成图计数器波形仿真图如下图所示: 图二 计数器波形仿真报警器模块:主要功能是计数器以秒速度递增至99分钟停止时启动报警(cout)5秒钟。倒计时阶段,计时器以秒速度使输出计数减一至零结束时也同时报警(cout)5秒钟。当始终把脉冲clk上升沿到来时count开始计数,同时speak置高电平开始报警,当计数达到5s后speak置0,停止报警。它的操作源程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cou5 isport(clk,reset,en:in std_logic; speak:out std_logic);end cou5;architecture behavior of cou5 issignal count:std_logic_vector(2 downto 0);-定义计数信号beginprocess(reset,clk)beginif reset=1 or en=0 thencount(2 downto 0)=000;speak=0;-有复位信号或始能端低电平时输出0elseif(clkevent and clk=1)thencount=count+1;speak5 thenspeakppppppppppp=0000000;end case;end process;end arc;该译码器原件生成图如下: 图五 译码器原件生成图该译码器波形仿真图如下: 图六 译码器波形仿真对定时器设计的各个模块进行原件例化,程序如下:library ieee;use ieee.std_logic_1164.all;entity yjlh isport(sen,resa,clka,resb: in std_logic; myimal:out std_logic_vector(6 downto 0); -秒钟个位译码输出 myimah:out std_logic_vector(6 downto 0); -秒钟十位译码输出 fyimal:out std_logic_vector(6 downto 0); -分钟个位译码输出 fyimah:out std_logic_vector(6 downto 0); -分钟十位译码输出 baoj:out std_logic );end entity yjlh;architecture art of yjlh iscomponent jsq isport (cn,res,clk:in std_logic; cout :out std_logic; flow,fhigh,mlow,mhigh:out std_logic_vector(3 downto 0);end component jsq; -jsq控制模块component yima isport(a:in std_logic_vector(3 downto 0); p:out std_logic_vector(6 downto 0);end component yima;-译码模块component cou5 isport(clk,reset,en:in std_logic; speak:out std_logic);end component cou5;-报警模块signal s1,s2,s3,s4:std_logic_vector(3 downto 0);signal s5:std_logic;beginu1:jsq port map(sen,resa,clka,s5,s1,s2,s3,s4);u2:yima port map(s1,fyimal);u3:yima port map(s2,fyimah);u4:yima port map(s3,myimal);u5:yima port map(s4,myimah);u6:cou5 port map(clka,resb,s5,baoj);-各模块通过位置关联end architecture art;定时器原件例化后生成的原件图如下: 图七 定时器原件生成图3. 定时器原件例化后波形仿真图如下: 图八 定时器原件例化后波形仿真3.输入、输出接口说明接口名称类型(输入/出)结构图上的信号名说明I0INsen计数控制模块jsq置位控制端CLKINclka系统时钟 1HzI1INre
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论