基于CPLD技术的频率计设计及制作
基于CPLD的简易数字频率计的设计
基于CPLD的简易数字频率计的设计张洋【摘要】CPLD器件的出现给现代电子设计带来了极大的方便和灵活性,使复杂的数字电子系统设计变为芯片级设计,同时还可以很方便地对设计进行在线修改.首先介绍了频率计的测频原理,然后利用CPLD芯片进行测频计数,从而实现了简易数字频率计的设计.此频率计的设计采用基于VHDL的“Top-Down”(自上而下)的设计方法,从系统总体要求出发,自上而下地逐步将设计内容细化,最后完成系统硬件的整体设计.所设计的电路在GW48系列SoPC/EDA实验箱上通过硬件仿真,下栽到目标器件上运行,能够满足实际测量频率的要求.%The component of CPLD provided enormous convenience and flexibility for the modern electronic design, which changed the complicated digital electronic system design into chip design and performed the online modification for the design conveniently. The frequency measurement principle of the frequency meter is introduced, the method of using CPLD to count the frequency of the signal for completing the design of the simple digital frequency meter is proposed. The frequency meter used the VHDL-based "Top-Down" design method, set out the total requirement of system, refined the design content by "Top-Down" method and achieved the design of hardware finally. The designed circuit was simulated, programmed on the aim device and ran on series SoPC /EDA experiment chest. The design can meet the requirement of the practical frequency measurement.【期刊名称】《现代电子技术》【年(卷),期】2011(034)019【总页数】4页(P183-186)【关键词】CPLD;VHDL;频率计;设计【作者】张洋【作者单位】重庆市三峡师范学校,重庆404000【正文语种】中文【中图分类】TN409-340 引言目前已经有不少文献分别从不同的角度对此问题进行了讨论和研究。
基于CPLD的频率计设计(毕业设计)
山东理工大学毕业设计(论文)题目:基于CPLD的频率计设计学院:电气与电子工程学院专业:电子信息工程学生姓名:学号:指导教师:毕业设计(论文)时间:二О一三年 2月 20日~ 6 月8日共 16 周I摘要频率检测是电子领域里最基本的测量,也是最重要的测量。
由于频率信号抗干扰能力强、易于传输,可以得到相对较高的测量精度,因此频率测量方法的研究也受到越来越多的关注。
基于传统测频原理的频率计的测量精度将随被测信号频率的下降而降低,本次设计中共提出了四种设计方案,通过论证最终决定用等精度的测量方法来完成本次频率计的设计。
在本次设计中选择AT89C51单片机和CPLD的结合来实现。
其中单片机完成整个测量电路的测试控制、数据处理和显示输出;CPLD主要完成频率测量功能,频率的测量范围在1HZ—1MHZ之间,其中测量误差在1HZ;键盘信号由AT89C51单片机进行处理,它从CPLD读回计数数据并进行运算,向显示电路输出测量结果;显示器电路采用5段LED动态显示,由1个74HC138译码器和74HC573锁存器驱动5个数码管。
关键词: 频率计,EDA技术,CPLD,单片机,等精度测量IAbstractFrequency detection is the most basic in the electronics field measurement, which is the most important measurement. Due to frequency signal transmission, strong anti-jamming capability, easy can get relatively high measurement precision, so frequency measurement methods of research have also been more and more attention. Based on the traditional principle of frequency meter frequency measurement accuracy will be along with the decline of the measured signal frequency is reduced, the design of the communist party of China puts forward four kinds of design scheme, through the argument finally decided to use equal precision measurement method to complete the design of frequency meter.In this design choose the combination of the AT89C51 single-chip microcomputer and CPLD to implement. The single-chip microcomputer control, the entire measurement circuit test data processing and display output; CPLD main complete frequency measurement function, frequency of measurement range between 1 hz to 1 MHZ, which measurement error in 1 hz; Keyboard signals are processed using single-chip computer AT89C51, it read back from CPLD count data and calculation, the measurement results to display circuit output; 5 LED dynamic display, display circuit used by 1, 74 hc138 decoder and 74 hc573 latch drive five digital tube.Key Words: frequency meter, EDA technologythe, CPLD and single chip microcomputer, such as precision measurementII目录摘要 (I)Abstract (II)第一章概述 ......................................... 错误!未定义书签。
基于cpld数字频率计的设计
摘要本文主要论述了利用CPLD进行测频计数,单片机实施控制实现多功能频率计的设计过程。
该频率计利用等精度的设计方法,克服了基于传统测频原理的频率计的测量精度随被测信号频率的下降而降低的缺点。
等精度的测量方法不但具有较高的测量精度,而且在整个频率区域保持恒定的测试精度。
该频率计利用CPLD来实现频率、周期、脉宽和占空比的测量计数。
利用单片机完成整个测量电路的测试控制、数据处理和显示输出。
并详细论述了硬件电路的组成和单片机的软件控制流程。
其中硬件电路包括键控制模块、显示模块、输入信号整形模块以及单片机和CPLD主控模块。
本文详细论述了系统自上而下的设计方法及各部分硬件电路组成及单片机、CPLD的软件编程设计。
使用以GW48-CK EDA实验开发系统为主的实验环境下进行了仿真和验证,达到了较高的测量精度。
关键词: 频率计,EDA技术,CPLD,单片机IAbstractThis article discusses the use of frequency counts for CPLD, microcontroller control to achieve the implementation of the design process of multi-frequency meter. The use of such precision frequency meter design ways to overcome the traditional frequency measurement based on the principle of the measurement precision frequency meter with a decline in the measured signa l frequency decreases the shortcomings. And other precision measurement method not only has high accuracy, but in the entire frequency region to maintain a constant precision. The frequency meter using CPLD to implement the frequency, period, pulse width and duty cycle measurement count .I used SUM complete the measurement circuit control, data processing and display output. Then I discussed about the composition of hardware and microcontroller software control flow. The hardware circuit includes key control module, display module, the input signal shaping module and MCU and CPLD control module.This paper has particularly described the top-to-bottom design method of the system, the circuit composite of the hardware and the software program device of CPLD and single chip computer. Under the test environment of the system developed by GW48-CK EDA experiment, the precision and velocity of the measurement have been obtained after the simulation and the test of the hardware.KEYWORDS: Frequency meter, EDA technique, CPLD, Single chip computerII目录摘要 (I)Abstract (II)目录 (III)第一章引言 (4)第二章硬件电路设计 (5)3.1 系统顶层电路设计 (5)3.2 测频模块的工作原理及设计........... 错误!未定义书签。
基于cpld的频率计设计
本科生毕业设计基于CPLD的频率计设计Design of the Frequency Meter based on CPLD学生姓名专业学号指导教师学院毕业设计(论文)原创承诺书1.本人承诺:所呈交的毕业设计(论文)《基于CPLD的频率计设计》,是认真学习理解学校的《长春理工大学本科毕业设计(论文)工作条例》后,在教师的指导下,保质保量独立地完成了任务书中规定的内容,不弄虚作假,不抄袭别人的工作内容。
2.本人在毕业设计(论文)中引用他人的观点和研究成果,均在文中加以注释或以参考文献形式列出,对本文的研究工作做出重要贡献的个人和集体均已在文中注明。
3.在毕业设计(论文)中对侵犯任何方面知识产权的行为,由本人承担相应的法律责任。
4.本人完全了解学校关于保存、使用毕业设计(论文)的规定,即:按照学校要求提交论文和相关材料的印刷本和电子版本;同意学校保留毕业设计(论文)的复印件和电子版本,允许被查阅和借阅;学校可以采用影印、缩印或其他复制手段保存毕业设计(论文),可以公布其中的全部或部分内容。
以上承诺的法律结果将完全由本人承担!作者签名:• 年•• 月•••日摘要频率测量是电子测量领域最基本也是最重要的测量之一。
但基于传统测频原理的频率计在测频时测量精度将随被测信号频率的下降而降低,在实用中有较大的局限性。
因此,本文提出了一种基于CPLD的数字频率计的设计方法。
该设计电路简洁,软件潜力得到充分挖掘,低频段测量精度高,有效防止了干扰的侵入,把CPLD具有的编程灵活,适用范围宽,价格大众化等优点用于实现频率计的设计。
该频率计采用先进的EDA技术及自上而下的设计,使用流行的VHDL语言编程,并在Max+plusII软件平台上进行编译仿真。
经过硬件调试和软件仿真后结果证明此设计方案符合毕设要求和技术参数。
关键词:频率计 EDA技术 CPLDABSTRACTFrequency measurement is the most basic electronic and also one of the most important measure in the measurement field. But the accuracy of frequency meter which is based on the traditional principle will vary depending on the measured signal frequency and the lower, has great limitations in the practical in frequency measurement. Therefore, this article puts forward a design method of digital frequency meter based on CPLD. The advantage such as the CPLD programming flexibility, wide applicable scope, and the popular price etc, are used to implement the frequency meter design by the simple circuit design, the fully excavate of software potential, the precision in low frequency measurement, and the effectively prevent of the invasion of the interference. The frequency meter design which is from top to bottom adopts the advanced EDA technology and popular VHDL language programming, and compiling on Max + plusII software platform simulation.Key words: frequency meter; EDA; CPLD目录摘要 (I)ABSTRACT .......................................................... I I 第1章绪论 .. (1)1.1背景 (1)1.2频率计设计的目的和意义 (1)1.3论文所做的工作及研究内容 (2)第2章设计环境介绍 (3)2.1EDA技术的发展及VHDL简介 (3)2.1.1 EDA技术的发展 (3)2.1.2 VHDL简介 (3)2.1.3 CPLD器件及其特点 (4)2.2基于EDA的CPLD/FPGA设计流程 (4)2.2.1 设计输入 (4)2.2.2 综合 (5)2.2.3 适配 (5)2.2.4 时序仿真与功能仿真 (5)2.2.5 编程下载 (5)2.2.6 硬件测试 (5)2.3M AX+P LUSⅡ开发工具 (6)2.3.1 Max+PlusⅡ开发系统的特点 (6)2.3.2 Max+PlusⅡ的功能 (6)2.3.3 Max+PlusⅡ的设计过程 (6)第3章频率计的设计原理及方案 (8)3.1频率计的设计原理 (8)3.1.1 直接测频法原理 (9)3.1.2 等精度测频法原理 (9)3.2频率计的设计方案 (10)3.2.1 基于直接测频法的设计方案 (10)3.2.2 基于等精度测频法的设计方案 (11)第4章频率计硬件与软件 (14)4.1频率计硬件 (14)4.1.1 电源部分 (14)4.1.2 整形部分 (15)4.1.3 CPLD芯片 (15)4.1.4 显示部分 (16)4.1.5 键盘部分 (17)4.2频率计软件 (18)4.2.1 分频器模块 (18)4.2.2 闸门定时模块 (19)4.2.3 测频控制信号发生器模块 (20)4.2.4 计数器模块 (22)4.2.5 锁存器模块 (23)4.2.6 显示模块 (24)第5章调试 (25)5.1硬件调试 (25)5.1.1 静态调试 (25)5.1.2 连机仿真、在线动态调试 (25)5.2软件调试 (26)参考文献 (28)致谢 (29)附录1 设计源程序 (30)直接测频法 (30)等精度测频法 (33)附录2 电路图 (44)基于CPLD的频率计顶层电路设计图(1)---直接测频法 (44)基于CPLD的频率计顶层电路设计图(2)---等精度测频法 (45)基于CPLD的频率计硬件电路设计图(3)---直接测频法 (46)基于CPLD的频率计硬件电路设计图(4)---等精度测频法 (47)第1章绪论1.1 背景20世纪后期,随着信息技术、电子技术的飞速发展,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会信息化程度的大大提高和社会生产力的发展。
基于CPLD的简易数字频率计.doc
基于CPLD的简易数字频率计. .等级:课程设计课程名称嵌入式系统课程设计课题名称基于CPLD的简易数字频率计专业电子信息工程班级电信1303学号xxxxxxxxxxxxxxxxxxxx姓名XX指导老师陈爱萍XXXX年12月XXXX年12月18日-XXXX年12月30日(17、18周)教研室意见意见:同意审核人:刘望军一、任务及要求CPLD为复杂可编程逻辑器件,通过EDA 技术对其进行编程,设计数字频率计,并最终完成电路的编程调试。
具体要求如下:数字频率计是一种用数字显示的频率测量仪表,它不仅可以测量正弦信号、方波信号的频率,还可以测量如机械振动次数、物体转动次数、单位时间里经过传送带的产品数量等多种物理量。
技术指标:(1)、频率测量范围:1/10——9999Hz。
(2)、输入被测信号幅度Vit20,q=se);end architecture art;通过元件例化语句生成的元件图3-7、18周)教研室意见意见:同意审核人:刘望军一、任务及要求CPLD为复杂可编程逻辑器件,通过EDA技术对其进行编程,设计数字频率计,并最终完成电路的编程调试。
具体要求如下:数字频率计是一种用数字显示的频率测量仪表,它不仅可以测量正弦信号、方波信号的频率,还可以测量如机械振动次数、物体转动次数、单位时间里经过传送带的产品数量等多种物理量。
技术指标:(1)、频率测量范围:1/10——9999Hz。
(2)、输入被测信号幅度Vit20,q=se);end architecture art;通过元件例化语句生成的元件图3:图3-2总体仿真波形图四.总体电路图图4-1总体电路图五.设计调试1.软件调试与硬件调试 1.1软件调试仿真时,打开软件Quartus II,建立工程文件,然后新建7个VHDL 文件。
保存后,编译,无误后及可以仿真了。
仿真时最好每个模块单独分开仿真,这样不容易出错。
可以用默认的end time。
对时钟频率clk不宜过小,最好不要小于1ns否则可能出错,导致无仿真图。
基于CPLD的4位数字频率计的设计与实现
K wo I d s :d i g i al t f r e q u e n c y me t e r ; CP L D; E DA
数 字频 率 计是 以数 字电路 为基 础 ,能够对 周 期 性变 化 信 号 的频 率进 行 测量 的数 字 系统 ,其 在 电子 应 用 、测 量仪 表 、资 源勘 测 等 领域 都 有 着 极 为广 泛 的应用 【 ” 。以往 的数
周 鹏 , 孟 晋 ,孙 荣庆
辽宁 抚顺 ( 抚J 顶职 业技 术学 院 , l 1 1 3 1 2 2 )
摘 要 :随着 电子设 计 自动化技 术的 不 断提 高 ,利 用 C P L D 器件 来 实现 各种 数 字 系统 , 已经成 为一 种 需要 。为 了提 高数 字频 率 计 的精度 与 可 靠性 ,提 出采 用 A l t e r a公 司 的 E P M2 4 0 T可 编程 逻辑 器件 对 4位数 字频 率 计 进 行 设 计 。 该 数 字频 率 计 包括 基 准 时 钟 模 块 、计 数 控 制 模 块 及 显 示 输 出模 块 三 大 部 分 。 在 设 计 过 程 中 实现 了硬 件 的 系 统 与 软 件 的 功 能 , 利 用 mo d e l s i m 软 件 对 频 率 计 的 功 能 进 行 仿 真 , 结 果 准 确 ; 同 时 也 对 实 际 的 外 部 信 号 进 行 了硬 件 系 统 测 试 , 通 过 L E D 数 码 管 读 取 到 了准 确 的 频 率 数 据 。
基于cpld的频率测量计
基于cpld的频率测量计一、引言频率是指单位时间内重复发生的事件次数,是电子工程学中经常用到的概念之一。
例如,计算机系统中的频率就是指每秒钟的时钟脉冲数量。
而在电子测试和测量领域中,频率的测量也是非常重要的。
本文将介绍一种基于CPLD(Complex Programmable Logic Device)的频率测量计,它采用了基于数字技术的方法,能够非常准确地测量输入信号的频率。
二、系统设计CPLD是一种可编程逻辑器件,它可以根据用户的需求进行逻辑设计和综合实现。
该器件具有可重复使用性强、可编程性高、芯片密度大的特点,因此被广泛用于数字电路设计中。
在该频率测量计中,我们选用了普遍使用的CPLD型号——EPM240-F100C5。
系统设计中的各个部分功能如下所示:1. 信号输入模块:该模块用于接收原始的输入信号。
它实现了输入信号的滤波和防抖,保证了输入信号的稳定性。
在该模块中,我们使用了RC滤波电路和Schmitt触发器,对输入信号进行处理,以保证信号质量。
2. 信号计数模块:该模块用于对输入信号进行计数,并通过一个计数器来实现。
当计数器的值达到一定值时,我们就可以计算出输入信号的频率。
在该模块中,我们使用了CE (Clock Enable)触发器来实现计数器的计数功能,具有同时输入时钟和使能信号的特点。
3. 数字显示模块:该模块用于将测量出的频率通过数字方式显示出来。
我们采用了常见的七段数码管进行显示。
在该模块中,我们通过对七段数码管的控制来实现数字的显示。
4. 系统控制模块:该模块用于对整个测量系统进行控制和管理。
它包括开关机控制、复位控制、频率计算等功能。
我们使用了一个简单的有限状态机(FSM)来控制这部分功能。
三、实现过程除了上述四个模块之外,该频率测量计还需要使用一些额外的器件,如RC滤波电路、Schmitt触发器、CE触发器、七段数码管等。
这些器件的选型和接线将直接影响到最终的测量结果,因此要特别注意。
基于CPLD的频率计设计
基于CPLD的频率计设计摘要本文介绍了一种基于复杂可编程逻辑器件(CPLD)的频率计设计。
频率计是一种测量信号频率的仪器,广泛应用于电子工程、通信工程等领域。
本文首先简要介绍了频率计的原理和应用场景,然后详细阐述了基于CPLD的频率计的设计思路和实现步骤。
最后,通过实验验证了设计的可行性和准确性。
本文通过Markdown文本格式输出,便于阅读和理解。
引言频率计作为一种常用的测量设备,广泛应用于各个领域。
传统上,频率计主要使用模拟电路实现。
然而,随着数字电子技术的发展,CPLD逐渐成为一种流行的可编程逻辑器件,其具有体积小、功耗低和灵活性高等优点。
本文将介绍如何利用CPLD设计出一种精确可靠的频率计。
频率计原理频率计的基本原理是测量信号周期的倒数,即计算出信号的频率。
实现频率计需要以下几个步骤:1.输入信号经过滤波器,去除噪音和干扰。
2.使用计数器模块对输入信号进行频率计数。
3.使用定时器模块来确定计数的时间窗口。
4.根据计数结果和时间窗口的长度计算出信号的频率。
基于CPLD的频率计设计思路基于CPLD的频率计设计可以分为以下几个关键步骤:1.确定输入信号的范围和要求。
根据应用的具体需求,确定输入信号的频率范围和精度要求。
2.选择合适的CPLD芯片。
根据输入信号的要求,选择具有足够的计数器和定时器资源的CPLD芯片。
3.编写计数器和定时器的Verilog代码。
根据选定的CPLD芯片的特性,使用Verilog语言编写计数器和定时器的逻辑代码。
4.设计输入和输出接口。
根据具体的应用场景,设计CPLD芯片的输入和输出接口。
基于CPLD的频率计设计实现步骤1:确定输入信号的范围和要求在本设计中,假设输入信号的频率范围为1Hz到10MHz,要求测量精度为0.1Hz。
步骤2:选择合适的CPLD芯片根据步骤1的要求,选择支持至少10MHz频率计数的CPLD芯片。
步骤3:编写计数器和定时器的Verilog代码在这一步骤中,我们使用Verilog语言编写计数器和定时器的逻辑代码。
基于CPLD的数字频率计
湖南工程学院课程设计课程名称嵌入式系统课题名称基于CPLD的简易数字频率计专业电子信息工程班级学号姓名指导教师2011年12 月日湖南工程学院课程设计任务书课程名称:嵌入式系统题目:基于CPLD的简易数字频率计专业班级:学生姓名:指导老师:审批:任务书下达日期 2011 年12 月日设计完成日期 2011 年 12月日目录任务书 (4)1 设计目的和要求 (4)2任务日期 (5)一、设计总体思路和基本框图 (6)1 设计总体思路 (6)2 基本原理 (8)3 总体框图 (8)二、各单元模块设计…………………………………………………………………………..错误!未定义书签。
1模块FEN…………………………………………………………………………...错误!未定义书签。
2模块SEL……………………………………………………………………………错误!未定义书签。
3 模块CORNA (19)4 模块LOCK (19)5 模块CH (19)6 模块DISP (19)7 模块YM (19)三、顶层文件设计……………………………………………………………………………..错误!未定义书签。
1 总体电路图 (19)四、调试下载………………………………………………………………………….错误!未定义书签。
五、心得体会…………………………………………………………………………………..错误!未定义书签。
六、参考文献…………………………………………………………………………………...错误!未定义书签。
七、评分表……………………………………………………………………………………..错误!未定义书签。
一.设计总体思路,基本原理和框图1.设计总体思路采用现场可编程门阵列(FPGA)为控制核心,利用VHDL语言编程,下载烧制实现。
将所有器件集成在一块芯片上,体积大大减小的同时还提高了稳定性,可实现大规模和超大规模的集成电路,测频测量精度高,测量频率范围大,而且编程灵活、调试方便.2.基本原理众所周知,频率信号易于传输,抗干扰性强,可以获得较好的测量精度。
基于CPLD的简易数字频率计
一.设计总体思路,基本原理和框图1.1.设计总体思路数字频率计是数字电路中的一个典型应用,实际的硬件设计用到的器件较多,连线比较复杂,而且会产生比较大的延时,造成测量误差、可靠性差。
随着复杂可编程逻辑器件(CPLD)的广泛应用,以EDA工具作为开发手段,运用VHDL语言。
将使整个系统大大简化。
提高整体的性能和可靠性。
本文用VHDL在CPLD器件上实现一种8 b数字频率计测频系统,能够用十进制数码显示被测信号的频率,不仅能够测量正弦波、方波和三角波等信号的频率,而且还能对其他多种物理量进行测量。
具有体积小、可靠性高、功耗低的特点。
1.2.基本原理工作过程:脉冲发生器输入1Hz的标准信号,经过测频控制信号发生器2分频后产生一个脉宽为1秒的时钟信号,以此作为计数闸门信号。
测量时,将被测信号通过信号整形电路,产生同频率的矩形波,输入计数器作为时钟。
当计数闸门信号高电平有效时,计数器开始计数,并将计数结果送入锁存器中。
设置锁存器的好处是显示的数据稳定,不会由于周期性的清零信号而不断闪烁。
最后将锁存的数值译码并在数码管上显示。
1.3.总体框图二.单元电路设计2.1.分频电路模块本次课程设计中,我们选择的是20分频。
分频器在总电路中有两个作用。
由总图框图中不难看出分频器有两个输出,一个给计数器,一个给锁存器。
时钟信号经过分频电路形成了20分频后的门信号。
另一个给锁存器作锁存信号,当信号为低电平时就锁存计数器中的数。
其电路图如图1.图1 分频电路图2.2.片选信号电路模块此电路也有两用途。
一是为后面的片选电路产生片选信号,二则是为模块ch(译码信号)提供选择脉冲信号。
其电路图如图2.图2 片选信号电路图2.3.计数器模块计数器模块为该电路中的核心模块,它的功能是:当门信号为上升沿时,电路开始计算半个周期内被测信号通过的周期数,到下升沿后结束。
然后送忘锁存器锁存。
其电路图如图3.图3 计数器电路图2.4.锁存器模块该模块在分频信号的下降沿到来时,将计数器的信号锁存,然后送给编译模块中。
基于CPLD实现的DDS&频率计
基于STC89C51和CPLD实现的DDS与频率计系统框图功能描述:以STC89C51为控制核心,实现任意频率值fa(小于10KHz)的输入,经单片机出来后,生成相应的频率字,然后送给DDS模块,DDS模块开始工作,生成以频率值fs;但键盘测频键按下后,单片机控制频率计,让其开始控制,频率计输出值送回单片机处理,得出测量到的频率值fc,最后单片机控制LCD1602显示人为输入的频率值fa和频率计测得的频率值fc,两个值的差异可以直观的显示出系统的误差。
基于CPLD/FPGA的DDS原理图如下:基于CPLD/FPGA的频率计的原理图如下:DDS模块代码:(1)MUX832LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MUX832 ISPORT( DATAINN : IN STD_LOGIC_VECTOR(7 DOWNTO 0);clk : in std_logic;DATAOUTT : OUT STD_LOGIC_VECTOR(31 DOWNTO 0);SELL :IN STD_LOGIC_VECTOR(1 DOWNTO 0));END MUX832;ARCHITECTURE behav OF MUX832 ISBEGINPROCESS(SELL,DATAINN,clk)BEGINif clk'event and clk='1' thenCASE SELL ISWHEN "00" => DATAOUTT(7 DOWNTO 0) <= DATAINN;WHEN "01" => DATAOUTT(15 DOWNTO 8) <= DATAINN;WHEN "10" => DATAOUTT(23 DOWNTO 16) <= DATAINN;WHEN "11" => DATAOUTT(31 DOWNTO 24) <= DATAINN;END CASE;end if;END PROCESS;END behav;(2)32位加法器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ADDER32B ISPORT ( A: IN STD_LOGIC_VECTOR(31 DOWNTO 0);B: IN STD_LOGIC_VECTOR(31 DOWNTO 0);S: OUT STD_LOGIC_VECTOR(31 DOWNTO 0));END ADDER32B;ARCHITECTURE behav OF ADDER32B ISBEGINS<=A+B;END behav;(3)32位寄存器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY REG32B ISPORT( LOAD : IN STD_LOGIC;DIN : IN STD_LOGIC_VECTOR(31 DOWNTO 0);DOUT : OUT STD_LOGIC_VECTOR(31 DOWNTO 0));END REG32B;ARCHITECTURE behav OF REG32B ISBEGINPROCESS(LOAD,DIN)beginIF LOAD'EVENT AND LOAD ='1' THENDOUT<=DIN;END IF;END PROCESS;END behav;频率计模块代码:(1)标准频率计数器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY BZHH ISPORT (BCLK: IN STD_LOGIC; --FsBENA: IN STD_LOGIC;CLR : IN STD_LOGIC; --清零BZQ : inOUT STD_LOGIC_VECTOR(31 DOWNTO 0));END BZHH;ARCHITECTURE behav OF BZHH ISBEGINPROCESS(BCLK, CLR) --标准频率计数开始BEGINIF CLR = '1' THEN BZQ <= (OTHERS=>'0');ELSIF BCLK'EVENT AND BCLK ='1' THENIF BENA ='1' THEN BZQ <= BZQ + 1;END IF;END IF;END PROCESS;END behav;(2)待测频率计数器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY TTFF ISPORT (TCLK: IN STD_LOGIC; --FsENA: IN STD_LOGIC;CLR : IN STD_LOGIC; --清零TSQ : inOUT STD_LOGIC_VECTOR(31 DOWNTO 0));END TTFF;ARCHITECTURE behav OF TTFF ISBEGINPROCESS(TCLK, CLR,ENA)BEGINIF CLR = '1' THEN TSQ <= (OTHERS=>'0');ELSIF TCLK'EVENT AND TCLK ='1' THENIF ENA ='1' THEN TSQ <= TSQ + 1;END IF;END IF;END PROCESS;END behav;(3)MUX648LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MUX648 ISPORT( DATAIN1 : IN STD_LOGIC_VECTOR(31 DOWNTO 0);DATAIN2 : IN STD_LOGIC_VECTOR(31 DOWNTO 0);DATAOUT : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);SEL :IN STD_LOGIC_VECTOR(2 DOWNTO 0));END MUX648;ARCHITECTURE behav OF MUX648 ISBEGINDATAOUT <= DATAIN1(7 DOWNTO 0) WHEN SEL="000" ELSE --标准频率计低八位输出DATAIN1(15 DOWNTO 8) WHEN SEL="001" ELSEDATAIN1(23 DOWNTO 16) WHEN SEL="010" ELSEDATAIN1(31 DOWNTO 24) WHEN SEL="011" ELSE --标准频率计最高八位输出DATAIN2(7 DOWNTO 0) WHEN SEL="100" ELSE --待测频率计数值低八位输出DATAIN2(15 DOWNTO 8) WHEN SEL="101" ELSEDATAIN2(23 DOWNTO 16) WHEN SEL="110" ELSEDATAIN2(31 DOWNTO 24) WHEN SEL="111" ELSE --待测频率计数值最高八位输出DATAIN2(31 DOWNTO 24) ;END behav;单片机程序如下:主程序#include<reg52.h>#include<intrins.h>#include"key.h" //scankey(); keyexe(); setfre(); testfre(); #include"lcd1602.h" //display();void main(void){lcd_init();bena=0;clr=1;load_dds=0;oe=0;start=1;lcd_str(0,2,"dds.and.testfre!");while(1){keyexe();}}键盘程序:#ifndef __KEY_H__#define __KEY_H__#include<reg52.h>#include<intrins.h>#include "lcd1602.h"#define dinout P3;unsigned char keybuffer[8],longtochar[4],recieve[8];unsigned long freword,setdispbuf;unsigned long tfrecount,bfrecount; //Fs、Fx计数值unsigned long tfreword;//-----------pin define for dds and testfre------sbit sel2=P1^2;sbit sel1=P1^1;sbit sel0=P1^0;sbit oe=P2^3;//-----------pin define for dds loading ----------sbit load_dds=P2^4;//-----------pin define for testfre--------------sbit clr=P2^0;sbit bena=P2^1;sbit start=P2^2;//-----------delay programm----------------------void delay(unsigned int n){while(n--) _nop_();}//-----------format exchange---------------------void keytofreword(void){freword=keybuffer[0]*10000000+keybuffer[1]*1000000+keybuffer[2]*100000+k eybuffer[3]*10000+keybuffer[4]*1000+keybuffer[5]*100+keybuffer[6]*10+keybuffer [7];//合成输入频率值setdispbuf=freword;freword=(unsigned long)(freword*214.7493648);//计算相应的频率字longtochar[0]=(freword>>24)&0xff; //频率字最高八位longtochar[1]=(freword>>16)&0xff; //频率字次高八位longtochar[2]=(freword>> 8)&0xff; //频率字次低八位longtochar[3]=(freword) &0xff; //频率字最低八位}//-----------select channel-----------------------void select(unsigned char sel){unsigned char i,j;j=sel;sel=sel&0x07;i=P1;i=i&0xf8;i=i|sel;P1=i;}//-----------setting frequency--------------------void setfre(void){unsigned char i;keytofreword();display(setdispbuf,1); //显示输入的频率值lcd_str(0,2,"--setting.fre!-");oe=0;load_dds=0;for(i=0;i<4;i++){select(i);P3=longtochar[i];_nop_();_nop_();_nop_();load_dds=1;_nop_();_nop_();_nop_();load_dds=0;}lcd_str(0,2,"--setting.succ!-");}//----------test frequency------------------------void testfre(void){unsigned char i;unsigned int j;lcd_str(0,2,"--testing.fre---");bena=0;clr=0;_nop_();_nop_();_nop_();_nop_();clr=1; //-----clear register--------清零bena=1; //允许频率计开始工作delay1ms_x(1000); //门控时间2Sdelay1ms_x(1000);bena=0; //------count until start equals 0------------j=10000;while((start==1)&&(j--)); //----wait for end of testting or time out--- if(j==0)lcd_str(0,2,"--test.fre.err!-");elselcd_str(0,2,"-test.fre.succ!-");oe=1; //双向口for(i=0;i<8;i++){select(i);P3=0xff; //P3作为输入口_nop_();_nop_();_nop_();_nop_();recieve[i]=P3; //读取频率计计数值}oe=0;bfrecount=0;tfrecount=0;for(i=0;i<4;i++){bfrecount=(bfrecount<<8)+recieve[i]; //合成标准频率计数值tfrecount=(tfrecount<<8)+recieve[i+4]; //合成待测频率计数值}tfrecount=(unsigned long)tfrecount/3.5200886+1;//??????display(tfrecount,0);}//-------------------scan key value-------------------------unsigned char scankey(void) //键盘扫描{unsigned char i=0xff,k=0xfe,buf;unsigned code table[4]={0xfe,0xfd,0xfb,0xf7};for(i=0;i<4;i++){P1=table[i];buf=P1;if(buf!=table[i]){delay(1000);if(buf==P1){while(buf==P1);break;}}}switch(buf){case 0xee: return 1;case 0xed: return 2;case 0xeb: return 3;case 0xe7: return 10; //4case 0xde: return 4;//5case 0xdd: return 5;//6case 0xdb: return 6;//7case 0xd7: return 11; //8case 0xbe: return 7;//9case 0xbd: return 8;//0case 0xbb: return 9;//11case 0xb7: return 12;//12case 0x7e: return 13;//13case 0x7d: return 0;//14case 0x7b: return 14;//15case 0x77: return 15;//16default : return 16;//10}P1=0xff;}//-----------------key execution----------------------- void keyexe(void){unsigned char i,buf;buf=scankey(); //调键盘扫描,读取键值switch(buf){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9: for(i=0;i<7;i++)keybuffer[i]=keybuffer[i+1];keybuffer[7]=buf;lcd_data1(0,1,'i');lcd_data1(1,1,'n');lcd_data1(2,1,'p');lcd_data1(3,1,'u');lcd_data1(4,1,'t');lcd_data1(5,1,':');lcd_data1(6,1,keybuffer[0]+'0');lcd_data1(7,1,keybuffer[1]+'0');lcd_data1(8,1,keybuffer[2]+'0');lcd_data1(9,1,keybuffer[3]+'0');lcd_data1(10,1,keybuffer[4]+'0');lcd_data1(11,1,keybuffer[5]+'0');lcd_data1(12,1,keybuffer[6]+'0');lcd_data1(13,1,keybuffer[7]+'0');lcd_data1(14,1,'H');lcd_data1(15,1,'z');break;case 10: lcd_cmd(clear);setfre();break;case 11: testfre();break;case 12: for(i=0;i<8;i++){keybuffer[i]=0;lcd_data1(i+6,1,keybuffer[i]+'0');}lcd_data1(14,1,'H');lcd_data1(15,1,'z');break;default: break;}}#endif。
基于cpld的简易数字频率计的设计
基于cpld的简易数字频率计的设计
基于CPLD的简易数字频率计的设计如下:
首先,将CPLD作为主控芯片,实现信号的采集、处理和控制。
通过输入的信号,经过滤波器去除噪音和干扰,然后使用计数器模块对输入信号的频率进行测量。
计数器模块将信号的周期转换成相应的脉冲数,再通过单片机进行数据处理,计算出信号的频率。
其次,利用单片机进行数据处理和显示。
单片机通过接收计数器模块的脉冲数,根据测量公式计算出信号的频率,并将结果显示在LCD屏幕上。
同时,单片机还负责控制CPLD的工作流程,实现整个系统的协调工作。
最后,通过仿真和测试验证设计的正确性和可行性。
测试结果表明,该数字频率计具有测量精度高、抗干扰能力强、稳定性好等优点,可以广泛应用于各种需要测量频率的场合。
基于CPLD的简易数字频率计的设计方法包括硬件设计和软件设计两部分。
硬件设计主要是利用CPLD和单片机等芯片进行电路设计和搭建;软件设计主要是利用CPLD编程语言和单片机编程语言进行程序编写和调试。
在实际应用中,需要根据具体需求和条件进行选择和调整。
基于51单片机和CPLD技术数字频率计的设计
基于51单片机和CPLD技术数字频率计课题设计方案自动化09-9班李雄、张杰、马勇1 绪论测量频率是电子测量技术中最常见的测量之一。
不少物理量的测量, 如时间、速度等都涉及到或本身可转化为频率的测量。
目前, 市场上有各种多功能、高精度、高频率的数字频率计, 但价格不菲。
而在实际工程中, 并不是对所有信号的频率测量都要求达到非常高的精度。
本系统以单片机AT89C51为核心,采用自上向下的设计方法,设计了基于复杂可编程逻辑器件的数字频率计。
以AT89C51单片机作为系统的主控部件,完成电路的测试信号控制、数据运算处理、键盘扫描和控制数码管显示。
用VHDL语言编程,由CPLD(Complex Programmable Logic Device)完成各种时序控制及计数功能。
不仅能够测量正弦波、方波和三角波等信号的频率,而且还能对其他多种物理量进行测量。
该系统具有结构紧凑、可靠性高、测频范围宽和精度高等特点。
2 系统设计方案的选择常用的频率测量方案一下几种:①直接测频法:把被测频率信号经脉冲整形电路处理后加到闸门的一个出入端,只有在闸门开通时间T(以秒计)内,被计数的脉冲送到十进制计数器进行计数;设计数器的值为N,则可得到被测信号频率为f=N/T,经分析,本测量在低频率的相对测量误差较大,即在低频段不能满足本设计的要求。
②组合测频法:这种方法可以在一定程度上弥补方法(1)中的不足,但是难以确定最佳分测点,且电路实现较复杂。
③倍频法:是指把频率测量范围分成多个频段,使用倍频技术,根据频段设置倍频系数,将经整形的低频信号进行倍频后在进行测量,对高频段则直接进行测量。
倍频法较难实现。
④等精度测频法:其实现方式可用图2.1来说明。
图中,预置门控信号是宽度为TPR的一个脉冲,CNT1和CNT2是两个可控计数器。
标准频率信号从CNT1的时钟输出端CLK输入,其频率为fs,经整形后的被测信号从CNT2的时钟输入端CLK输入,设其实际频率为fx;当预置门控信号为高时,经整形后的被测信号的上升沿通过D触发器的Q端同时启动计数器CNT1和CNT2。
基于CPLD的数字频率计
第1章设计总体思路,基本原理和框图1.1设计总体思路数字频率计是数字电路中的一个典型应用,这里我们采用ALTERA公司的EP1C3T144C8作为控制核心,利用VHDL语言进行编程,硬件下载烧制实现。
将所有集成器件集成到一块芯片上,体积大大减小的同时还大大提高了稳定性,可实现大规模和超大规模的集成电路,测频测量精度高,测量频率范围大,而且编程灵活,调试方便。
1.2基本原理频率计的基本原理是利用一个稳定度高的频率源作为基准时钟,对比测量其他信号的频率。
通常情况下计算每秒内待测信号的脉冲个数,即闸门时间为1 s。
闸门时间可以根据需要取值,大于或小于1 s都可以。
测得的频率时间间隔与闸门时间的取值成正比,在这里取的闸门时间为1s。
其实频率就是1s中之内测得的周期个数,这里我们可以以时钟信号的频率作为基准来分频,即时钟信号是多大的频率我们就进行多少分频,这样被测信号就是1s钟读出来的周期个数,也就是可以进行直接读数。
数字频率计的关键组成部分包括分频器,计数器、锁存器、片选电路,译码驱动电路和显示电路.1.3总体框图第2章单元电路设计2.1 分频模块设计在分频模块中,我们选择的是10分频。
分频器在总电路中有两个作用。
由总图框图中不难看出分频器有两个输出,一个给计数器,一个给锁存器。
时钟信号经过分频电路形成了10分频后的门信号。
另一个给锁存器作锁存信号,当信号为低电平时就锁存计数器中的数。
模块图如下:图2.1 分频模块2.2 片选信号模块片选信号在整个模块中有两个作用,其中一个输出是给译码器用于选择四位数据哪个数据输出。
另一个输出是给片选,用于选中哪个LED灯点亮。
这里我们有8个LED灯,片选信号给出给出信号再经过片选选择哪个高电平,哪个灯就点亮,反之不亮。
片选信号的模块图如下:图2.2 片选信号模块2.3计数器模块计数器模块主要负责的是计数,当被测信号来一个上升沿,计数器就加一,当个位数满了就向十位进一,以此类推。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
昆明冶金高等专科学校毕业论文学院电气学院系部电子系专业班级应用电子技术学号 0700001813姓名黄智翔指导教师李瑞锋钟思佳昆明冶金高等专科学校电气学院毕业设计(论文)任务书系:电子系专业:应用电子技术学生姓名:赖龙芳班级:电子0707 班学号: 0700001813毕业设计(论文)题目:基于CPLD技术的频率计设计及制作毕业设计(论文)主要内容:数字频率计实际上是一个脉冲计数器,即在单位时间内计脉冲个数就可以得到信号频率。
本课题主要研究的是基于CPLD技术的频率设计及制作。
本课题主要通过单片机的一个最小系统和CPLD器件相结合的研究。
当按下复位键的时候给单片机一个信号,从而通过单片机给CPLD器件一个信号,此时CPLD器件纠结收到一个信号,并且接收一个频率,然后与固定频率相比较,从而得到的结果传给单片机,给单片机一个信号,然后通过单片机的最小系统处理,最后在传给数码显示管,通过数码显示管显示刚刚接收到的频率的大小。
然后通过按下复位键,以相同的过程来显示所接收到的频率的大小。
毕业设计(论文)预期目标:根据设计题目和开题报告查阅搜集相关资料并做好电路板并编写好程序,下载调试好,得到所需要的的结果。
在老师的组织下进行模拟答辩,找出问题并解决问题。
做好所有的准备并完成正式答辩。
毕业设计(论文)指导教师:李瑞锋钟思佳系主任(教研室主任):金瑞学院院长:龙志文2010 年 06 月 13 日摘要本毕业设计项目根据毕业设计任务书指定和我校高职高专特点的要求,体现毕业生的实践动手能力、创新思维、解决问题的能力和对所学知识的综合运用能力,研究的问题设计一个六位数字频率计,频率测量结果在六位LED数码管上显示,显示时间可设定为2秒左右延迟,一次测试完毕后将所有计数器复位即清零,并采集显示下一次被测信号的频率。
复位清零时间可设定为1秒左右。
此延迟信号及复位信号均由闸门控制电路产生并采用原理图输入。
可实现如下功能:1.详细论述了利用 VHDL硬件描述语言设计。
2.用大规模可编程逻辑器件,实现数字频率计的设计原理及相关程序。
3.无论底层还是顶层文件均用 VI-IDL语言编写,避免了用电路图形式设计时所引起的毛刺现象。
4.改变了以往数字电路小规模多器件组合的设计方法,整个频率计设计在一块CPLD芯片上。
5.采用数字显示,外形美观、大方,显示醒目、直观。
6.体积小,性能更可靠。
关键词:数字频率计;电子设计自动化;大规模可编程逻辑器;PickThe graduation project design according to the graduation design specification specified and our vocational characteristic, the requirement of practical skills, graduate innovative thinking, problem solving skills and knowledge to the comprehensive ability of the research question, design a six figure, frequency measurement frequency in six LED digital display, display time tube can be set to 2 seconds delay time after test will reset all counters reset, and collection show that the signal frequency. Reset the time can be set to 1 cleared seconds. This delay signal and reset signal generated by the control circuit principle diagram and the input. But funtions as follows:1、is discussed using the VHDL language design hardware description.2、in large-scale programmable logic devices, digital frequency of design principle and the related procedures.3、whatever bottom or top documents are written by VI - IDL language, avoiding the use form design diagram caused burr phenomenon.4、the small-scale combination of digital circuit design method of many devices, the frequency of design in a CPLD chip.5、Using digital display, beautiful appearance, easy and intuitive, showed marked.6、small volume, and more reliable.Keywords: digital frequency, Electronic design automation, Large-scale programmable logic device,目录毕业论文封面 (1)毕业论文任务书 (2)中文摘要 (3)英文摘要 (4)前言 (6)概述 (7)第1章CPLD开发环境简介 (8)1.1 CPLD的概要介绍 (8)1.2 Max+PlusⅡ开发工具 (8)1.3 本章小结 (9)第2章频率计的设计原理及设计内容 (10)2.1 频率计的技术性能指标 (10)2.2 频率计的设计原理 (10)2.3 频率计测量周期原理 (12)2.4频率计所需四种器件的VHDL文件及波形仿真 (13)2.4.1 带时钟使能十进制计数器 (13)2.4.2 测频控制信号发生器 (14)2.4.3 32位锁存器 (15)2.4.4 显示译码器LED 7 (16)2.5 顶层文件的编写 (17)2.6 电路的设计及输入 (19)第3章下载调试 (22)3.1 编译和管脚配置 (22)3.2编译下载和测试 (22)3.2.1 编程下载 (22)3.2.2 测试 (22)3.2.2.1 频率测试 (22)3.2.2.2 周期测试 (22)心得体会 (22)结束语 (23)致谢 (23)附录 (23)参考文献............................................................前言CPLD是一种新兴的高密度大规模可编程逻辑器件,它具有门阵列的高密度和PLD器件的灵活性和易用性,目前已成为一类主要的可编程器件。
可编程器件的最大特点是可通过软件编程对其器件的结构和工作方式进行重构,能随时进行设计调整而满足产品升级。
使得硬件的设计可以如软件设计一样方便快捷,从而改变了传统数字系统及用单片机构成的数字系统的设计方法、设计过程及设计观念,使电子设计的技术操作和系统构成在整体上发生了质的飞跃。
采用CPLD可编程器件,可利用计算机软件的方式对目标器件进行设计,而以硬件的形式实现。
既定的系统功能,在设计过程中,可根据需要随时改变器件的内部逻辑功能和管脚的信号方式,借助于大规模集成的CPLD和高效的设计软件,用户不仅可通过直接对芯片结构的设计实行多种数字逻辑系统功能,而且由于管脚定义的灵活性,大大减轻了电路图设计和电路板设计的工作量及难度,同时,这种基于可编程芯片的设计大大减少了系统芯片的数量,缩小了系统的体积,提高了系统的可靠性。
EDA(电子设计自动化)技术就是以计算机为工具,在EDA软件平台上,对以硬件描述语言HDL为系统逻辑描述手段完成的设计文件,自动的完成逻辑编译、逻辑化简、逻辑综合及优化、逻辑仿真,直至对特定目标芯片的适配编译、逻辑映射和编程下载等工作(本文选用的开发工具为Ahera公司的MAX+PLUSⅡ)。
EDA的仿真测试技术只需要通过计算机就能对所设计的电子系统从各种不同层次的系统性能特点完成一系列准确的测试与仿真操作,大大提高了大规模系统电子设计的自动化程度。
设计者的工作仅限于利用软件方式,即利用硬件描述语言(如VHDL)来完成对系统硬件功能的描述,在EDA 工具的帮助下就可以得到最后的设计结果,这使得对整个硬件系统的设计和修改过程如同完成软件设计一样方便、高效。
概述近年来,随着集成芯片制造技术的发展,可编程逻辑器件(PLD)在速度和集成度两方面得到了飞速提高。
由于它具有功耗低、体积小、集成度高、速度快、开发周期短、费用低、用户可定义功能及可重复编程和擦写等许多优点,应用领域不断扩大,越来越多的电子系统开始采用可编程逻辑器件来实现数字信号处理,从而使通用DSP芯片难于完成的一些时序组合逻辑和某些简单的大运算量的数学计算得以实现。
继QuickLogic和XILINX分别开发了内含嵌入式FIR core的CPLD之后,ALTERA公司又推出了新一代可编程逻辑器件Stratix系列,其性能完全满足高速数字信号算是系统的设计要求。
近年来,随着集成芯片制造技术的发展,可编程逻辑器件(PLD)在速度和集成度两方面得到了飞速提高。
由于它具有功耗低、体积小、集成度高、速度快、开发周期短、费用低、用户可定义功能及可重复编程和擦写等许多优点,应用领域不断扩大,越来越多的电子系统开始采用可编程逻辑器件来实现数字信号处理,从而使通用DSP芯片难于完成的一些时序组合逻辑和某些简单的大运算量的数学计算得以实现。
继QuickLogic和XILINX分别开发了内含嵌入式FIR core的CPLD之后,ALTERA 公司又推出了新一代可编程逻辑器件Stratix系列,其性能完全满足高速数字信号算是系统的设计要求。
基于EDA技术的设计方法为“自顶向下”设计,其步骤是采用可完全独立于目标器件芯片物理结构的硬件描述语言,在系统的基本功能或行为级上对设计的产品进行行为描述和定义,结合多层次的仿真技术,在确保设计的可行性与正确性的前提下,完成功能确认。
然后利用EDA工具的逻辑综合功能,把功能描述转换为某一具体目标芯片的网表文件,经编程器下载到可编程目标芯片中(如FPGA芯片),使该芯片能够实现设计要求的功能。
这样,一块芯片就是一个数字电路系统。