已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
湖南科技大学信息与电气工程学院VHDL硬件描述语言课程设计报告题 目: 数字频率计 专 业: 通信工程 班 级: 一班 姓 名: 学 号: 指导教师: 胡仕刚 2015年 01月 04日信息与电气工程学院课程设计任务书20 20 学年第 学期专业: 学号: 姓名: 课程设计名称: 设计题目: 完成期限:自 年 月 日至 年 月 日共 周设计依据、要求及主要内容(可另加附页):指导教师(签字): 批准日期: 年 月 日目录摘要1引言2第一章 概述21.1 设计概述21.2课程设计的总体目标21.3 设计内容21.4 设计原理21.5 设计功能3第二章 数字频率计系统分析32.1数字频率计的设计任务及要求32.2 模块的划分32.3设计分析4第三章 各功能模块基于VHDL的设计43.1 时基产生与测频时序控制电路模块的VHDL源程序43.2 待测信号脉冲计数电路模块的VHDL源程序53.2.1 十进制加法计数器的VHDL源程序53.2.2待测信号脉冲计数器的VHDL源程序63.3 锁存与译码显示控制电路模块的VHDL源程序73.3.1 译码显示电路的VHDL源程序73.3.2 锁存与译码显示控制模块的VHDL源程序73.4 顶层电路的VHDL源程序8第四章 数字频率计波形仿真94.1 时基产生与测频时序控制电路模块的仿真94.2 待测信号脉冲计数电路模块的仿真104.2.1 十进制加法计数器的仿真104.2.2待测信号脉冲计数器的仿真104.3 锁存与译码显示控制电路模块的仿真104.3.1 译码显示电路的仿真114.3.2 锁存与译码显示控制模块的仿真114.4 数字频率计系统的仿真11第五章 体会和建议12参考文献:13摘要 本文介绍了一种自顶向下分层设计多功能数字频率计的设计方法。该频率计采用VHDL硬件描述语言编程以MAX+PLUS为开发环境,极大地减少了硬件资源的占用。数字频率计模块划分的设计具有相对独立性,可以对模块单独进行设计、调试和修改,缩短了设计周期。该数字频率计的测量范围为lHz1MHz,响应时间小于等于15秒;其测试结果由4只七段数码管稳定显示,测量误差小于等于1 。仿真波形与分析结果表明,所设计的电路通过硬件仿真能够满足数字频率计的功能要求,具有理论与实践意义,实现了电子电路自动化的过程。数字频率计模块划分的设计具有相对独立性,可以对模块单独进行设计、调试和修改,缩短了设计周期。关键词:VHDL 数字频率计 EDA MAX+PLUSAbstractThis paper presents a top-down design of multi-layered design method of digital frequency meter. The frequency counter using VHDL hardware description language programming in MAX + PLUS for the development environment, greatly reducing the hardware resources of the occupation. Digital frequency meter module design division of the relative independence of the separate modules can design, debug and modify, shorten the design cycle. The digital frequency meter measurement range of lHz 1MHz, response time of 15 seconds or less; the test results from the four seven-segment digital tube display stability, measurement error is less than equal to 1%. Simulation waveforms and analysis results show that the designed circuit simulation by hardware to meet the functional requirements of digital frequency meter of great theoretical and practical significance of the electronic circuit to achieve the automated process. Digital frequency meter module design division of the relative independence of the separate modules can design, debug and modify, shorten the design cycle.Key words: VHDL Digital frequency meter EDA MAX+PLUS引言数字频率计是数字电路中的一个典型应用,实际的硬件设计用到的器件较多,连线比较复杂,而且会产生较大的延时,造成测量误差、可靠性差。随着可编程逻辑器件(CPLD)的广泛应用,以EDA工具为开发平台,利用VHDL(Very High Speed Integrated Circuit Hardware Description Language,超高速集成电路硬件描述语言)工业标准硬件描述语言,采用自顶向下(Top to Down)和基于库(Library-based)的设计,设计者不但可以不必了解硬件结构设计,而且将使系统大大简化,提高整体的性能和可靠性。第一章 概述1.1 设计概述所谓频率,就是周期信号在单位时间(1s)里变化的次数。本数字频率计的设计思路是:(1) 根据频率计的测频原理,可以选择合适的时基信号对输入被测信号脉冲进行计数,实现测频的目的。(2) 根据数字频率计的基本原理,本文设计方案的基本思想是分为三个模块来实现其功能,即时基产生与测频时序控制电路模块、待测信号脉冲计数电路模块和锁存与译码显示控制电路模块,并且分别用VHDL对其进行编程,实现计数电路、锁存电路、显示电路等。1.2课程设计的总体目标(1)、本设计的任务是熟悉支持VHDL语言的软件,例如:MAXPLUS2,ISP,FOUNDATION等,利用这一类软件使用VHDL语言进行设计。(2)、熟悉数字电路及相关专业课程的基本知识并能联系具体程序 (3)、正确操作使用VHDL语言相关软件,能编译,调试,仿真VHDL语言程序(4)、设计数字电路,编写程序,实现电路功能。1.3 设计内容分析数字频率计的功能,完成功能模块的划分,分别用VHDL语言完成底层模块的设计和以原理图的方法完成顶层模块的设计,分别对各个模块以及顶层模块进行仿真分析,最后在硬件开发平台上进行测试。1.4 设计原理众所周知,频率信号易于传输,抗干扰性强,可以获得较好的测量精度。因此,频率检测是电子测量领域最基本的测量之一。频率计的基本原理是用一个频率稳定度高的频率源作为基准时钟,对比测量其他信号的频率。通常情况下计算每秒内待测信号的脉冲个数,即闸门时间为1s。闸门时间可以根据需要取值,大于或小于1S都可以。闸门时间越长,得到的频率值就越准确,但闸门时间越长,则每测一次频率的间隔就越长。闸门时间越短,测得的频率值刷新就越快,但测得的频率精度就受影响。一般取1s作为闸门时间。数字频率计的关键组成部分包括测频控制信号发生器、计数器、锁存器、译码驱动电路和显示电路,其原理框图如图1. 1所示。计数器锁存器译码驱动电路数码管显示测频控制信号发生器图1.1 原理框图待测信号1.5 设计功能 四位十进制数字频率计用四组七段译码显示的数字频率计,其频率测量范围为1Hz10kHz。采用记忆显示的方法,即在测量过程中不刷新数据,等数据过程结束后才显示测量结果,给出待测信号的频率值,并保存到下一次测量结束,显示时间不少于1秒。第二章 数字频率计系统分析2.1数字频率计的设计任务及要求设计一个四位十进制的数字频率计,要求具有以下功能:(1) 测量范围:1Hz10kHz。(2) 测量误差1%。(3) 响应时间15s。(4) 显示时间不少于1s。(5) 具有记忆显示的功能,即在测量的过程中不刷新数据,等数据过程结束后才显示测量结果,给出待测信号的频率值,并保存到下一次测量结束。2.2 模块的划分根据系统设计要求,系统设计采用自顶向下的设计方法,系统的组成框图如图3. 1所示,包括时基产生与测频时序控制电路模块,以及待测信号脉冲计数电路模块和锁存与译码显示控制电路模块。时基产生与测频时序控制电路待测信号脉冲计数电路锁存与译码显示电路ENCLRLOCKq0:15z10:6z20:6z30:6z40:6待测信号F_IN标准时钟CLK图3.1 数字频率计的组成框图(1) 时基产生与测频时序控制电路模块时基产生与测频时序控制电路的主要产生计数允许信号EN、清零信号CCLR和锁存信号LOCK。(2) 待测信号脉冲计数电路模块待测信号脉冲计数电路是对待测脉冲信号的频率进行测量,它可由4个十进制加法计数器组成,其中EN为计数选通控制信号,CLR为计数器清零信号。在计数器清零信号CLR清零后,当计数选通控制信号EN有效时,开始对待测信号进行计数。如果计数选通控制信号EN的宽度为1s,那么计数结果就为待测信号的频率;如果计数选通信号EN的宽度为100ms,那么待测信号的频率等于计数结果10。(3) 锁存与译码显示控制电路模块锁存与译码显示控制电路用于实现记忆显示,在测量过程中不刷新新的数据,直到测量过程结束后,锁存显示测量结果,并且保存到下一次测量结束。锁存与译码显示电路的功能是对四位BCD码进行锁存,并转换为对应的4组七段码,用于驱动数码管。2.3设计分析采用VHDL语言设计一个复杂的电路系统,运用自顶向下的设计思想,将系统按功能逐层分割的层次化设计方法进行设计。在顶层对内部各功能块的连接关系和对外的接口关系进行了描述,而功能块的逻辑功能和具体实现形式则由下一层模块来描述。各功能模块采用VHDL语言来描述。第三章 各功能模块基于VHDL的设计3.1 时基产生与测频时序控制电路模块的VHDL源程序程序ctrl.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CTRL IS PORT(CLK: IN STD_LOGIC; -系统时钟 LOCK: OUT STD_LOGIC; -锁存信号 EN: OUT STD_LOGIC; -计数允许信号 CLR: OUT STD_LOGIC); -清零信号END;ARCHITECTURE ART OF CTRL IS SIGNAL Q: STD_LOGIC_VECTOR(3 DOWNTO 0); -定义变量BEGINPROCESS(CLK) BEGIN IF(CLKEVENT AND CLK=1)THEN -检测时钟上升沿 IF Q=1111THEN Q=0000; -计数大于15,清零 ELSE Q=Q+1; -允许计数 END IF; END IF; EN=NOT Q(3); LOCK=Q(3) AND NOT(Q(2) AND Q(1); CLR=Q(3) AND Q(2) AND NOT(Q(1); END PROCESS;END ART; 程序主要讲述了由时钟信号产生计数允许信号、清零信号和锁存信号,而且限定了响应时间为不超过15s。3.2 待测信号脉冲计数电路模块的VHDL源程序3.2.1 十进制加法计数器的VHDL源程序程序cb10.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CB10 IS PORT(CLK,EN,CLR: IN STD_LOGIC; COUNT10: BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0); -计数输信号END CB10;ARCHITECTURE ART OF CB10 IS -结构体 BEGIN PROCESS(CLK,CLR,EN) BEGIN IF CLR=1 THEN COUNT10=0000; -计数器清零 ELSIF RISING_EDGE(CLK) THEN -检测时钟上升沿 IF(EN=1) THEN -检测是否允许计数 IF COUNT10=1001 THEN COUNT10=0000; -计数值满9清零 ELSE COUNT10=COUNT10+1; -允许计数 END IF; END IF; END IF; END PROCESS;END ART; 程序主要讲述了十进制加法计数器的使用,在符合了一定的标准以后十进制的使用,在计数器满9后清零。3.2.2待测信号脉冲计数器的VHDL源程序程序count.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY COUNT IS PORT(CLK: IN STD_LOGIC; -待测时钟信号 EN: IN STD_LOGIC; -计数选通控制信号 CLR: IN STD_LOGIC; -计数器清零信号 QA,QB,QC,QD: BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0); -结果输出信号END;ARCHITECTURE ART OF COUNT IS COMPONENT CB10 -元件CB10引用说明语句 PORT(CLK,EN,CLR: IN STD_LOGIC; COUNT10: BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0); -计数输出信号 END COMPONENT; SIGNAL CLK2: STD_LOGIC; SIGNAL CLK3: STD_LOGIC; SIGNAL CLK4: STD_LOGIC; BEGIN CLK2=NOT QA(3); CLK3=NOT QB(3); CLK4=NOT QC(3); U1:CB10 PORT MAP(CLK,EN,CLR,QA); -元件引用例示 U2:CB10 PORT MAP(CLK2,EN,CLR,QB); -元件引用例示 U3:CB10 PORT MAP(CLK3,EN,CLR,QC); -元件引用例示 U4:CB10 PORT MAP(CLK4,EN,CLR,QD); -元件引用例示END ART;3.3 锁存与译码显示控制电路模块的VHDL源程序3.3.1 译码显示电路的VHDL源程序程序bcd7.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY BCD7 IS PORT(BCD: IN STD_LOGIC_VECTOR(3 DOWNTO 0); -BCD输入信号 LED: OUT STD_LOGIC_VECTOR(6 DOWNTO 0); -七段译码输出信号END;ARCHITECTURE ART OF BCD7 IS BEGIN LED=0111111 WHEN BCD=0000 ELSE -对照七段字形显示译码器真值表 0000110 WHEN BCD=0001 ELSE 1011011 WHEN BCD=0010 ELSE 1001111 WHEN BCD=0011 ELSE 1100110 WHEN BCD=0100 ELSE 1101101 WHEN BCD=0101 ELSE 1111101 WHEN BCD=0110 ELSE 0000111 WHEN BCD=0111 ELSE 1111111 WHEN BCD=1000 ELSE 1101111 WHEN BCD=1001 ELSE 0000000;END ART; 程序主要讲述了七段译码器的显示问题,对应的给出了信号输入过程中七段译码器的各种显示。3.3.2 锁存与译码显示控制模块的VHDL源程序程序lock.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY LOCK IS PORT(LOCK: IN STD_LOGIC; QA,QB,QC,QD: IN STD_LOGIC_VECTOR(3 DOWNTO 0); LEDA,LEDB,LEDC,LEDD: OUT STD_LOGIC_VECTOR(6 DOWNTO 0);-频率计数输出END;ARCHITECTURE ART OF LOCK IS SIGNAL QAL,QBL,QCL,QDL: STD_LOGIC_VECTOR(3 DOWNTO 0); COMPONENT BCD7 -元件BCD7引用说明语句 PORT(BCD: IN STD_LOGIC_VECTOR(3 DOWNTO 0); LED: OUT STD_LOGIC_VECTOR(6 DOWNTO 0); END COMPONENT; BEGIN PROCESS(LOCK) BEGIN IF(LOCKEVENT AND LOCK=1)THEN -检测时钟上升沿 QAL=QA; QBL=QB; QCL=QC; QDL=QD; END IF; END PROCESS; U0: BCD7 PORT MAP(QAL,LEDA); -元件引用例示 U1: BCD7 PORT MAP(QBL,LEDB); -元件引用例示 U2: BCD7 PORT MAP(QCL,LEDC); -元件引用例示 U3: BCD7 PORT MAP(QDL,LEDD); -元件引用例示END ART; 程序主要讲述了调用七段译码器的显示,将输入的信号经过译码之后在七段译码器上进行显示。3.4 顶层电路的VHDL源程序程序pinlvji.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY PINLVJI IS PORT(F_IN,CLK: IN STD_LOGIC; ENT,LOCKT,CLRT: BUFFER STD_LOGIC; Z1,Z2,Z3,Z4: OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END PINLVJI;ARCHITECTURE ART OF PINLVJI IS SIGNAL ENS,LOCKS,CLRS: STD_LOGIC; SIGNAL QAS,QBS,QCS,QDS: STD_LOGIC_VECTOR(3 DOWNTO 0);COMPONENT CTRL -元件CTRL引用说明语句 PORT(CLK: IN STD_LOGIC; EN,LOCK,CLR: OUT STD_LOGIC);END COMPONENT;COMPONENT COUNT -元件COUNT引用说明语句 PORT(CLK,EN,CLR: IN STD_LOGIC; QA,QB,QC,QD: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END COMPONENT;COMPONENT LOCK -元件LOCK引用说明语句 PORT(LOCK: IN STD_LOGIC; QA,QB,QC,QD: IN STD_LOGIC_VECTOR(3 DOWNTO 0); LEDA,LEDB,LEDC,LEDD: OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END COMPONENT; BEGIN ENT=ENS; LOCKT=LOCKS; CLRT=CLRS; U1:CTRL PORT MAP(CLK,ENS,LOCKS,CLRS); -元件引用例示 U2:COUNT PORT MAP(F_IN,ENS,CLRS,QAS,QBS,QCS,QDS); -元件引用例示 U3:LOCK PORT MAP(LOCKS,QAS,QBS,QCS,QDS,Z1,Z2,Z3,Z4); -元件引用例示 END ART;第四章 数字频率计波形仿真4.1 时基产生与测频时序控制电路模块的仿真图4.1 时基产生与测频时序控制模块的仿真图图4. 2 时基产生与测频时序控制电路模块的仿真图的详细 图4.1显示的是时基产生与测频时序控制电路模块的仿真图,很鲜明的给出了时钟信号与计数允许信号、清零信号和锁存信号的关系,而图5. 2更加详细的给出了计数允许信号、清零信号和锁存信号与变量Q之间所存在的相对应的关系。4.2 待测信号脉冲计数电路模块的仿真4.2.1 十进制加法计数器的仿真图4.3 十进制加法计数器的仿真图 图4.3显示的是十进制加法计数器的仿真图,它详细的给出了计数输出信号与计数允许信号和清零信号之间的关系,能清楚的理解当CLR为0时,输出为0;在EN为1选通有效后,则开始计数。4.2.2待测信号脉冲计数器的仿真图4.4 测信号脉冲计数器的仿真图4.4显示的是测信号脉冲计数器的仿真图,以图文的形式更直接的表现了信号脉冲的计数值,简介明了。4.3 锁存与译码显示控制电路模块的仿真4.3.1 译码显示电路的仿真图4.5 译码显示电路的仿真图 图4.5显示的是译码显示电路的仿真图,它直接用图形诠释了程序中语句的意思,让人一目了然,更简单的了解了模块的作用。4.3.2 锁存与译码显示控制模块的仿真图4.6 锁存与译码显示控制电路的仿
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高中地理题库及答案
- 车工职业资格证车床操作试题及分析
- 绿色低碳综合供能链项目可行性研究报告模板申批拿地用
- 化妆品委托加工产品留样管理制度
- 2026年虚拟现实游戏开发外包协议
- 工作以外免责协议书
- 工程抽红协议书
- 工资晚发协议书
- 幼儿园送菜协议书
- 库存买卖合同范本
- 失禁性皮炎的护理实践案例分享
- 2026届广东省汕头市金平区重点中学中考语文押题卷含解析
- GB/Z 177.1-2026人工智能终端智能化分级第1部分:参考框架
- 水利数据分类分级规则(2026 版)
- 2026长三角一体化示范区(上海)外服人才服务有限公司综合窗口服务工作人员招聘17人笔试参考试题及答案详解
- 2026江苏苏州工业园区司法工作办公室辅助人员招聘4人考试备考试题及答案解析
- 2026年监理工程师《建设工程监理案例分析(水利工程)》考前必背笔记
- 江苏2025年江苏省林业局所属事业单位招聘人员笔试历年参考题库附带答案详解
- 排泄照护为老年人更换尿布纸尿裤养老护理员课件
- DL∕T 1924-2018 燃气-蒸汽联合循环机组余热锅炉水汽质量控制标准
- DL/T5315-2014水工混凝土建筑物修补加固技术规程(完整)
评论
0/150
提交评论