基于VHDL的数字频率计设计.doc_第1页
基于VHDL的数字频率计设计.doc_第2页
基于VHDL的数字频率计设计.doc_第3页
基于VHDL的数字频率计设计.doc_第4页
基于VHDL的数字频率计设计.doc_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

常州信息职业技术学院学生毕业设计(论文)报告系 别: 电子与电气工程学院 专 业: 电子信息工程技术 班 号: 学 生 姓 名: 学 生 学 号: 设计(论文)题目: 基于VHDL的数字频率计设计 指 导 教 师: 朱幼娟 设 计 地 点: 常州信息职业技术学院 起 迄 日 期: 2011.9.12011.10.31 毕业设计(论文)任务书专业 电子信息工程技术 班级 姓名 一、课题名称: 基于VHDL的数字频率计设计 二、主要技术指标:1. 频率范围为:1Hz50MHz。 2. 结果用数码管十进制显示。 3. 输入信号电压幅度为50mV5V。 三、工作内容和要求:1. 构建大体的设计方案,并了解其内容。 2. 构建出大体的顶层原理设计框图。 3. 对底层的每个电路模块的设计,并通过软件MAX+PLUS2完成程序的编写通过。4. 对整个原理框图进行编译并通过。 5. 对整个仿真图编译通过。 四、主要参考文献: 1 陈必群. EDA技术与项目训练M ,常州:常州信息职业技术学院,2009年. 2 王凤英. 基于FPGA的数字频率计设计与仿真J.科技资讯,,2008,15(8):110 3 谭会生,张昌凡.EDA技术及应用.西安M:电子科技大学出版社,2001年 4 张凯,林伟.VHDL实例剖析M.北京:国防工业出版社,2004年 5 刘玉良,李玲玉,邓勇全.吉林:用EDA方法设计数字系统的灵活性D,2002年 6 宋万杰等.CPLD技术及其应用.M.西安:西安电子科技大学出版社,2000年. 学 生(签名) 年 月 日 指 导 教师(签名) 年 月 日 教研室主任(签名) 年 月 日 系 主 任(签名) 年 月 日毕业设计(论文)开题报告设计(论文)题目基于VHDL的数字频率计设计一选题的背景和意义: 在电子技术中,频率是最基本的参数之一,频率是周期性信号在单位时间(1S)内的变化次数。频率检测是电子测量领域的最基本也是最重要的测量之一。频率信号抗干扰能力强、易于传输,可以获得较高的测量精度,所以测频率方法的研究越来越受到重视。以往的测频仪都是在低频段利用测周的方法、高频段用测频的方法,其精度往往会随着被测频率的下降而下降。该设计采用等精度测量方法,解决了这个问题。同时频率与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更加重要。随着电子技术的发展, 数字系统的设计正朝高速度、大容量、小体积的方向发展, 传统的自底而上的设计方法已难以适应形势。E D A技术的应运而生,使传统的电子系统设计发生了根本的变革。E D A 技术就是依赖功能强大的计算机, 在E D A 工具软件平台上, 对以硬件描述语言V H D L为系统逻辑描述手段自顶而下地逐层完成相应的描述、综合、优化、仿真与验证, 直至生成器件。利用E D A 仿真技术与V H D L 语言的功能来完成六位频率计的仿真设计。二课题研究的主要内容:1. 构建出大体的顶层原理设计框图。2. 对底层的每个电路模块的设计,并通过软件MAX+PLUS2完成程序的编写通过。3. 对整个原理框图进行编译通过。4. 对整个仿真图编译通过。三主要研究(设计)方法论述:本设计通过频率控制模块,将时钟信号clk 两分频后分别取反赋给锁存使能和计数使能端,这样计数完成后就能实现数据的锁存。当计数使能和时钟信号同时出现低电平的时候,计数复位信号有效,将计数器清零,从新开始计数。1.通过十进制计数器模块实现对输入信号周期的计数。2.通过锁存模块实现对计数器结果的锁存,并将其送入译码模块。3.通过译码模块实现对计数结果的译码,让其直观地显示于数码管上。4.通过系统模块编译、仿真实现对各模块功能的整合,实现整个系统的功能。四、设计(论文)进度安排:时间(迄止日期)工 作 内 容2011.9.19.17根据课题调研,收集资料,研究方案设计,完成开题报告。2011.9.189.19构建出大体的顶层原理设计框图。2011.9.209.24对底层的每个电路模块的设计,并通过软件MAX+PLUS2完成程序的编写通过。2011.9.259.29设计整体原理图,下载仿真,并对整个仿真图编译通过。2011.9.3010.7完成毕业论文的初稿,形成最后上交的毕业设计。2011.10.810.31再次修改完善论文五、指导教师意见: 指导教师签名: 年 月 日六、系部意见: 系主任签名: 年 月 日基于VHDL的数字频率计设计目录摘要Abstract第1章 前言. 1第2章 数字频率计的要求. 22.1 主要技术指标.22.2 工作内容和要求.2第3章 数字频率计的方案设计 . 3 3.1 基本原理.33.1.1 频率计测量频率的设计原理.33.1.2 频率计测量频率的原理图.33.2 设计流程图.3第4章 数字频率计各模块功能介绍. 44.1 频率控制模块的VHDL语言源程序.44.1.1 频率控制模块的程序.44.2 十进制加法计数器CNT10的VHDL语言源程序.5 4.2.1 十进制计数器的程序.54.2.2 十进制计数器的顶层设计.64.3系统模块的VHDL语言源程序.7 4.3.1系统模块的设计.7 4.3.2 系统模块的程序.74.4 锁存器LOCK的VHDL语言源程序.10 4.4.1 锁存器LOCK的程序.104.5 译码模块DECODER的VHDL语言源程序.11 4.5.1 译码模块DECODER的程序.114.6四选一选择器MUX41的VHDL语言源程序.12 4.6.1 MUX41程序.124.7 四进制计数器CNT4的VHDL语言源程序.13 4.7.1 四进制计数器CNT4的程序.134.8 250分频器的VHDL语言源程序.14 4.8.1 250分频器的程序.14第5章 数字频率计仿真图155.1 频率控制模块仿真波形图.155.2 十进制计数器模块仿真波形图.155.3 锁存模块仿真波形图.155.4 译码模块波形仿真图.165.5 四选一选择器MUX41的仿真图.165.6 四进制计数器CNT4的仿真图.165.7 250分频器的仿真图.17第6章 频率计顶层原理图的输入18第7章下载测试. 19第8章 结束语. 20参考文献答谢辞摘 要数字频率计是直接用十进制数字来显示被测信号频率的一种测量装置。它不仅可以测量正弦波、方波、三角波、尖脉冲信号,而且还可以测量它们的周期。经过改装,可以测量脉冲宽度,做成数字式脉宽测量仪;在电路中增加传感器,还可以做成数字脉搏仪、计价器等。因此数字频率计在测量物理量方面应用广泛。本设计用VHDL在CPLD器件上实现数字频率计测频系统,能够用十进制数码显示被测信号的频率,而且还能对其他多种物理量进行测量。具有体积小、可靠性高、功耗低的特点。采用VDHL编程设计实现的数字频率计,除被测信号的整形部分、键输入部分和数码显示部分以外,其余全部在一片FPGA芯片上实现,整个系统非常精简,而且具有灵活的现场可更改性。关键词: VHDL语言;频率计AbstractDigital cymometer is to directly show to be measured a kind of diagraph of signal frequency to equip with the decimal system number.It not only can measure sine wave, square wave, triangle wave, sharp pulse signal and other have a period of the frequency of the signal of characteristic, can measure pulse width, make into the number type vein breadth to measure an instrument; Increase to spread a feeling machine in the electric circuit, can also make into a number pulse instrument, account a price machine etc.Therefore the digital cymometer accounts in the diagraph physics to measure aspect applied extensive.This design is used VHDL the spare part is at CPLD up carry out digital cymometer to account to measure repeatedly system, can show to be measured the frequency of signal with the decimal system figures, and return an ability as to its he various physical quantity carry on diagraph.Have the physical volume small and dependable sex Gao and achievement to consume a low characteristics.digital cymometer is the diagraph instrument of research production realm indispensabilities, The digital cymometer that adopts VDHL to weave a distance to design a realization accounts, in addition to is measured the orthopedics of signal part, the key importation part and figures show part, rest all in one FPGA realization of chip, the whole system simplifies very much, and has vivid spot to change sex.Keywords: VHDL ; digital cymometer 第1章 前言频率信号抗干扰性强,易于传输,可以获得较高的测量精度,所以测频方法的研究是电子测量领域的重要内容。传统的数字频率计一般由分离元件搭接而成,其测量范围、测量精度和测量速度都受到很大的限制。虽然单片机的发展与应用改善了这一缺陷,但由于单片机本身也受到工作频率及内部计数器位数等因素的限制,所以无法在此领域取得突破性的进展。随着新型可编程逻辑器件FPGA技术的发展,能够将大量的逻辑功能集成于一个单个器件中,根据不同的需要所提供的门数可以从几百门到上百万门,从根本上解决了单片机的先天性限制问题。不但集成度远远超过了以往的数字频率计,而且在基准频率及精度等外部条件的允许下,根据不同场合的精度要求,对硬件描述语言进行一定的改动,使系统在精度提高的同时,用较少的器件来实现系统的功能,从而降低系统的整体造价。此外,系统芯片(SOC)的发展也要求其包含频率测量的功能,所以用FPGA实现数字频率计也是实现系统芯片的前提条件。数字频率计是数字电路中的一个典型应用,实际的硬件设计用到的器件较多,连线比较复杂,而且会产生比较大的延时,造成测量误差、可靠性差。随着现场可编程门阵列FPGA的广泛应用,以EDA工具作为开发手段,运用VHDL等硬件描述语言,将使整个系统大大简化,提高了系统的整体性能和可靠性。第2章 数字频率计的要求在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更加重要。2.1 主要技术指标1.频率范围为:1Hz50MHz。 2.结果用数码管十进制显示。 3.输入信号电压幅度为50mV5V。2.2 工作内容和要求:1. 构建大体的设计方案,并了解其内容。 2. 构建出大体的顶层原理设计框图。 3. 对底层的每个电路模块的设计,并通过软件MAX+PLUS2完成程序的编写通过。4. 对整个原理框图进行编译并通过。 5. 下载仿真,对整个仿真图编译通过第3章 数字频率计的方案设计6位数字频率计电路的设计, 应用MAX+PLUS软件平台, 来说明VHDL语言在EDA仿真中的应用。该设计实例的基本功能描述为:3.1 基本原理3.11 频率计测量频率的设计原理脉冲信号的频率就是在单位时间内所产生的脉冲个数,其表达式为fN/T,其中f为被测信号频率,N为计数器所累计的脉冲个数,T为产生N个脉冲所需的时间。计数器记录的结果即为被测信号的频率。3.1.2频率计测量频率的原理图 频率计测量频率的原理如图3.1主闸门计数及显示电路闸门控制电 路待测信号复位清零信号振荡分频 图3.1 原理图图中闸门受控制电路来的门控信号控制,在门控信号为逻辑1电平的时候,闸门打开,输入信号通过闸门到达计数显示电路,而当门控信号为低电平时,闸门关闭,输入信号不能通过闸门。这样,计数显示电路所记录和显示的只是门控信号作用期间即闸门时间内,输入脉冲的个数。3.2 设计流程图图3.2 设计流程图 第4章 数字频率计各模块功能介绍在原理图中共有5个模块: 频率控制模块、十进制计数器模块、锁存模块、译码模块、系统模块,我们将利用VHDL语言分别对这5个模块进行源程序设计。4.1频率控制模块的VHDL语言源程序 频率控制信号的输入信号是1HZ,将时钟信号clk 两分频后分别取反赋给锁存使能lock和计数使能端ena,这样计数完成后就能实现数据的锁存。当计数使能和时钟信号同时出现低电平的时候,计数复位信号clr有效,将计数器清零,从新开始计数。4.1.1 频率控制模块的程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity ctl is-计数允许、锁存数据和清零三个控制信号 port( clk : in std_logic; ena : out std_logic; clr : out std_logic; lock : out std_logic );end ctl;architecture behav of ctl is signal div2clk : std_logic; begin process(clk) begin if clkevent and clk=1 then div2clk=not div2clk; end if; end process; process(clk,div2clk) begin if clk=0 and div2clk=0 then clr=1; else clr=0; end if; end process; lock=not div2clk; ena0); elsif clkevent and clk=1 then if CS=1 then if cqi0); end if; end if;end if;if cqi=9 then cout=1;else cout=0;end if;QQf_in, clr=clr1,ena=ena1, cq=cq1,cout=cout1); u2 : cnt10 port map(clk=cout1,clr=clr1,ena=ena1, cq=cq2,cout=cout2); u3 : cnt10 port map(clk=cout2,clr=clr1,ena=ena1, cq=cq3,cout=cout3); u4 : cnt10 port map(clk=cout3,clr=clr1,ena=ena1, cq=cq4,cout=cout4); u5 : cnt10 port map(clk=cout4,clr=clr1,ena=ena1, cq=cq5,cout=cout5); u6 : cnt10 port map(clk=cout5,clr=clr1,ena=ena1, cq=cq6,cout=carry_out); u7 : ctl port map(clk=clk, clr=clr1,ena=ena1,lock=lock1); u8 : reg4 port map(clk=lock1,cq=cq1, led=led1); u9 : reg4 port map(clk=lock1,cq=cq2, led=led2); u10 : reg4 port map(clk=lock1,cq=cq3, led=led3); u11 : reg4 port map(clk=lock1,cq=cq4, led=led4); u12 : reg4 port map(clk=lock1,cq=cq5, led=led5); u13 : reg4 port map(clk=lock1,cq=cq6, led=led6); u19:decode port map(qin = led1,qout=dula_temp1); u14:decode port map(qin = led2,qout=dula_temp2); u15:decode port map(qin = led3,qout=dula_temp3); u16:decode port map(qin = led4,qout=dula_temp4); u17:decode port map(qin = led5,qout=dula_temp5); u18:decode port map(qin = led6,qout=dula_temp6); test_clk_out=clk_div1; wei=wei_temp; process(mclk)-分频:从50MHZ分出1HZ基准信号 处理后可以产生用于测频所需的计数允许、锁存数据和清零三个控制信号。variable cnt1 : integer range 0 to 2500;variable cnt2 : integer range 0 to 10000;beginif mclkevent and mclk=1 thenif cnt1=2500 thencnt1:=0;clk_div1 = not clk_div1;-扫描信号if cnt2=10000 thencnt2:=0;clk wei_temp = 111110;dula wei_temp = 111101;dula wei_temp = 111011;dula wei_temp = 110111;dula wei_temp = 101111;dula wei_temp = 011111;dulaNULL;end case;end process;end;-f_in 为测试信号,mclk为输入时钟,carry_out为溢出信号,test_clk_out为内部分频输出的10000HZ信号,为方便自测该程序,wei为六个数码管的位选,dula为数码管的段选,如图4.4图4.4 系统模块CODE4.4 锁存器LOCK的VHDL语言源程序锁存模块实现对计数器结果的锁存,并将其送入译码模块。clk是锁存允许信号,当clk有效时,锁存模块便将输入信号cq的值送给输出信号led。见图4.54.4.1 锁存器LOCK的程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity reg4 is-锁存器port( clk : in std_logic; cq : in std_logic_vector(3 downto 0); led : out std_logic_vector(3 downto 0) );end reg4;architecture one of reg4 isbegin process(clk,cq) begin if clkevent and clk=1 then led=cq; end if; end process;end;图4.5 锁存器LOCK4.4.2 锁存器LOCK顶层设计图图4.6 锁存器LOCK顶层设计图4.5 译码模块DECODER的VHDL语言源程序译码模块实现对计数结果的译码,让其直观地显示于数码管上。这便是典型的8段译码器。qin是输入信号,qout是输出信号,连接于数码管。见图4.74.5.1 译码模块DECODER的程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity decode is-BCD译码port(qin : in std_logic_vector(3 downto 0); qout : out std_logic_vector(7 downto 0);end decode;architecture behave of decode isbegin with qin selectqout=11000000when 0000,11111001when 0001,10100100when 0010,10110000when 0011,10011001when 0100,10010010when 0101,10000010when 0110,11111000when 0111,10000000when 1000,10010000when 1001,NULLwhen others;end behave;图4.7 译码模块DECODER4.6四选一选择器MUX41的VHDL语言源程序当被测频率超出量程时,设计分频模块对被测频率进行分频衰减,单位上升,从而扩大测量频率的范围。见图4.8 4.6.1 MUX41程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY MUX41 IS PORT(A,B,C,D:IN STD_LOGIC_VECTOR(3 DOWNTO 0); SEL:IN STD_LOGIC_VECTOR(1 DOWNTO 0); DATA:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END MUX41;ARCHITECTURE ONE OF MUX41 ISBEGINPROCESS(SEL)BEGINIF(SEL=00)THEN DATA=A;ELSIF(SEL=01)THEN DATA=B;ELSIF(SEL=10)THEN DATA=C;ELSE DATA=D;END IF;END PROCESS;END ONE; 图4.8 四选一选择器MUX414.7 四进制计数器CNT4的VHDL语言源程序 4.7.1 四进制计数器CNT4的程序如下:Library ieee;Use ieee.std_logic_unsigned.all;Use ieee.std_logic_1164.all;Entity cnt4 isPort (clk: in std_logic; Q: out std_logic_vector(1 downto 0);END CNT4;architecture BHV of cnt4 isSIGNAL A:std_logic_vector(1 downto 0);BEGINPROCESS(CLK)BEGINIF CLKEVENT AND CLK=1 THENIF A=11 THENA=00;ELSE A=A+1;END IF;END IF;Q=A;END PROCESS;END BHV;4.7.2 四进制计数器CNT4 四进制模块如图4.9图4.9 四进制计数器CNT44.8 250分频器的VHDL语言源程序4.8.1 250分频器的程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY FENG250 IS PORT(CLK:IN STD_LOGIC; CLK8HZ:OUT STD_LOGIC);END FENG250;ARCHITECTURE ONE OF FENG250 ISSIGNAL COUNT:INTEGER RANGE 0 TO 250;SIGNAL CLK_TEMP :STD_LOGIC;BEGINPROCESS(CLK)BEGINIF(CLKEVENT AND CLK=1)THENIF(COUNT=124)THENCOUNT=0;CLK_TEMP= NOT CLK_TEMP;ELSECOUNT=COUNT+1;END IF;END IF;END PROCESS;CLK8HZ=CLK_TEMP;END ONE;4.8.2 250分频器见图4.10图4.10 250分频器第5章 数字频率计仿真图以下分别是各个模块: 频率控制模块、十进制计数器模块、锁存模块、译码模块、系统模块、FEN250模块、MUX41模块的仿真结果。 图5.1 频率控制模块仿真波形图5.1 频率控制模块仿真波形图 5.2 十进制计数器模块仿真波形图图5

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论