数字频率计报告(长沙理工大学EDA课程设计)_第1页
数字频率计报告(长沙理工大学EDA课程设计)_第2页
数字频率计报告(长沙理工大学EDA课程设计)_第3页
数字频率计报告(长沙理工大学EDA课程设计)_第4页
数字频率计报告(长沙理工大学EDA课程设计)_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、 城南学院 作者:lyc 数字频率计 城南学院 作者:lyc 数字频率计数字频率计 摘要 数字频率计是数字电路中的一个典型应用,实际的硬件设计用到的器件较多,连线比较复杂,而且会产生比较大的延时,造成测量误差、可靠性差。随着可编程专用集成电路(ASIC)的广泛应用,以EDA工具作为开发手段,基于VHDL语言,将使整个系统大大简化,提高整体的性能和可靠性。本次EDA基础课程设计的主要任务就是使用Altera公司的EP2C35系列的FPGA芯片,利用SOPC-NIOSII-EP2C35开发板设计和仿真一个数字频率计,实现对1Hz250KHz 的脉冲进行频率测量。本文主要介绍了FPGA基本结构、开发

2、环境及其在数字频率计设计的应用。关键词:数字频率计;ASIC;EDA;FPGA;VHDL目 录TOC o 1-3 h u HYPERLINK l _Toc26760 1 绪论 页 共 23 页 1 绪论1.1 课程设计内容及要求主要内容:在本课程设计中使用Altera公司的EP2C35系列的FPGA芯片,利用SOPC-NIOSII-EP2C35开发板设计和仿真一个数字频率计,对1Hz250KHz 的脉冲进行频率测量,采用等精度测量,即在所测量的整个频段内部,均可实现相同精度的测量,即测量精度与频率无关,测得结果在数码管上显示,并设计相应的功能按键。扩展内容:1. 16*16点阵显示当前输入数字

3、和自己姓名2、在液晶显示屏上做出功能菜单1.2. 相关概念 1.2.1 DEA的概念EDA是Electronic Design Automation的缩写,即电子设计自动化。在20世纪60年代中期从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。在EDA技术出现之前,设计人员必须手工完成集成电路的设计、布线等工作。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程

4、下载等工作。EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。 1.2.2 FPGA的概念 FPGA是FieldProgrammable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。 1.2.3 VHDL的概念VHDL是Very-High-Speed Integrated Circuit Hardware Description Language的缩写,VHDL是一

5、种硬件描述语言(Hardware Description Language,简称HDL),一种用于电路设计的高级语言,是电子系统硬件行为描述、结构描述、数据流描述的语言。利用这种语言,数字电路系统的设计可以从顶层到底层(从抽象到具体)逐层描述自己的设计思想,用一系列分层次的模块来表示极其复杂的数字系统。然后,利用EDA工具,逐层进行仿真验证,再把其中需要变为实际电路的模块组合,经过自动综合工具转换到门级电路网表。接下去,再用专用集成电路 ASIC 或现场可编程门阵列 FPGA 自动布局布线工具,把网表转换为要实现的具体电路布线结构。2 开发环境2.1 SOPC-NIOSII-EP2C35开发板

6、SOPC-NIOSII-EP2C35开发板是根据现代电子发展的方向,集EDA和SOPC系统开发为一体的综合性实验开发系统,除了满足高校专、本科生和研究生的SOPC教学实验开发之外,也是电子设计和电子项目开发的理想工具。整个开发系统由NIOSII-EP2C35核心板板、EDA/SOPC系统板和扩展子板构成,根据用户不同的需求配置成不同的开发系统。NIOSIIEP2C35核心板是基于Altera CycloneII器件而开发的一款嵌入式系统开发平台,它可以为开发人员提供以下资源,如表1所示。表1 NIOSIIEP2C35核心板资源Altera CycloneII EP2C35F484C8 FPGA

7、4 Mbits的EPCS4配置芯片1 Mbytes SRAM (256K32bit)8 Mbytes NOR Flash ROM32Mbytes SDRAM64M bytes NAND Flash4个用户自定义按键输入4个用户自定义LED显示1个七段码LED数码管显示50MHz高精度时钟源三个间距2.54mm标准扩展接口供用户自由扩展系统上电复位电路电源管理模块,输出功率、电压稳定的电源支持+5V直接输入2.2 Quartus IIAltera Quartus II 作为一种 HYPERLINK /view/10018762.htm t /_blank 可编程逻辑的设计环境, 具有强大的设计能

8、力和直观易用的接口,Altera Quartus II 、设计软件是业界唯一提供FPGA和固定功能 HYPERLINK /subview/804529/804529.htm t /_blank HardCopy器件统一设计流程的设计工具。工程师使用同样的低价位工具对 Stratix FPGA进行功能验证和 HYPERLINK /view/3421139.htm t /_blank 原型设计,又可以设计HardCopy Stratix器件用于批量成品。系统设计者现在能够用Quartus II软件评估HardCopy Stratix器件的性能和功耗,相应地进行最大吞吐量设计。 HYPERLINK

9、/subview/392358/392358.htm t /_blank Altera的Quartus II可编程逻辑软件属于第四代PLD开发平台。该平台支持一个 HYPERLINK /view/281640.htm t /_blank 工作组环境下的设计要求,其中包括支持基于Internet的协作设计。Quartus平台与 HYPERLINK /subview/193517/193517.htm t /_blank Cadence、ExemplarLogic、 MentorGraphics、 HYPERLINK /subview/392403/392403.htm t /_blank Syn

10、opsys和Synplicity等EDA供应商的开发工具相兼容。改进了软件的LogicLock HYPERLINK /view/2414000.htm t /_blank 模块设计功能,增添 了FastFit编译选项,推进了网络编辑性能,而且提升了调试能力。Quartus II软件界面如图1所示。图1 Quartus II软件界面3 数字频率计的工作原理所谓频率就是周期性信号在单位时间(1s)内变化的次数。若在一定时间间隔T(也称闸门时间)内测得这个周期性信号的重复变化次数为N,则其频率可表示为fN/T。若时间间隔T取1s,则fN。实现频率测量有两中方法,分别是直接测量法和等精度测量法,下面将

11、分别介绍。3.1 直接测量法由于闸门的起始和结束的时刻对于信号来说是随机的,将会有一个脉冲周期的量化误差。进一步分析测量准确度:设待测信号脉冲周期为Tx,频率为Fx,当测量时间为T=1s时,测量准确度为=Tx/T=1/Fx。由此可知这种直接测频法的测量准确度与被测信号的频率有关,当待测信号频率较高时,测量准确度也较高,反之测量准确度较低。因此,这种直接测频法只适合测量频率较高的信号,不能满足在整个测量频段内的测量精度保持不变的要求。若要得到在整个测量频段内的测量精度保持不变的要求,应该考虑待精度频率测量等其它方法。 3.2 等精度测量法等精度是指该频率计在所测量的整个频段内部,均可实现相同精度

12、的测量,即测量精度与频率无关。等精度测频实现框图如图2所示。图2 等精度测频实现框图图中预置门信号通常为1s。其内部包括一个同步门电路,用来实现被测频标与被测频率的同步,提高测量精度,减少基本误差。该部分与清零脉冲协调工作用来控制两个计数器的启动脉冲。计数器1和计数器2分别用来给频标和被测数字脉冲计数,设在同步门控制结束时计数器1计数N1,计数器2计数N2,假设频标频率为F1,被测频率位Fx,则可写出公式: Fx/N2=F1/N1; (1) Fx(F1/N1)* N2 (2)由公式可以看出,测量精度与预置门时间无关,主要由F1的频率稳定度来确定,所以为了提高测量精度,主要是提高频标的频率稳定度

13、,换句话说,测量精度基本上近似于频标的稳定度,若频标的稳定度位106,则测量误差边可达到106。在该电路中,为了确保频标计数与被测频率完全同步(即被测频率的上升沿开始计数,1s以后,被测频率的下跳沿停止计数),同步门必须由被测信号来控制,设计方法多种多样。3.3 数字频率计原理闸门时间固定为1s,闸门信号是一个0.5Hz的方波,在闸门有效(高电平)期间,对输入的脉冲进行计数,在闸门信号的下降沿时刻,所存当前的计数值,并且清零所有的频率计数器。由于闸门时间是1s(0.5Hz方波),所以显示的频率是1s钟更新一次,且显示的内容是闸门下降沿时锁存的值。因为闸门时间我们设定为1s,所以这种频率计仅能测

14、出频率大于或者等于1Hz的情况,且频率越高,精度也越高。实际应用中,频率计的闸门时间是个可变量,当频率小于1Hz是,闸门时间就要适当放大。采用一个标准的时钟,在单位时间内如:0.1秒对被测信号的脉冲进行计数,即为信号的频率。在设计频率计的时候,八个七段码管最多可以显示99,999,999Hz,因此在设计时候用八个4位二进制码(BCD码)来表示,另外还必须有同样的八个4位二进制码来对输入的频率进行计数,在闸门下降沿的时候,将后者的值锁存到寄存器中。其信号的时序关系如图3所示。图3 控制信号时序关系系统时钟选择核心板上的50M的时钟,闸门时间为1s(通过对系统时钟进行分频得到),在闸门为高电平期间

15、,对输入的频率进行计数,当闸门变低的时候,记录当前的频率值,并将频率计数器清零,频率的显示每过2秒刷新一次。被测频率通过一个拨动开关来选择是使用系统中的数字时钟源模块的时钟信号还是从外部通过系统的输入输出模块的输入端输入一个数字信号进行频率测量。当拨动开关为高电平时,测量从外部输入的数字信号,否则测量系统数字时钟信号模块的数字信号。其实现框图如下图4所示.图4 测频实现框图在本设计中,用到的模块有数字信号源模块、拨动开关模块、50M系统时钟源模块、数码管显示模块等。其中数码管、数字信号源、拨动开关与FPGA的连接电路和管脚连接在以前的实验中都做了详细说明,这里不在赘述。50M系统时钟源的模块位

16、于EP2C35核心板的中上方通过一个贴片的50M有源晶体来产生50MHZ的时钟信号,详细说明请参阅用户使用手册。其与FPGA的管脚连接如表2所示。表2 50M系统时钟与FPGA的管脚连接表信号名称对应FPGA管脚名说明系统时钟源L150MHZ系统时钟4 数字频率计的设计4.1 设计步骤1、打开QUARTUSII软件,新建一个工程。2、建完工程之后,再新建一个VHDL File,打开VHDL编辑器对话框。3、按照实验原理,在VHDL编辑窗口编写VHDL程序,共提供6个VHDL源程序。每一个源程序完成一定的功能。其具体的功能如下表3。表3 程序功能表文件名称完成功能CLKOUT.VHD产生1HZ的

17、闸门信号和1KHZ的显示扫描信号MUX.VHD被测信号源选择模块TELTCL.VHD在时钟的作用下生成测频的控制信号。CNT10.VHD十进制计数器。在实验中使用8个来进行计数SEG32B.VHD32位的锁存器,在锁存控制信号的作用下,将计数的值锁存DISPLAY.VHDL显示译码,将锁存的数据显示出来。4、编写完VHDL程序后,保存起来。5、将自己编写的VHDL程序进行编译并生成模块符号文件,并对程序的错误进行修改,最终所有程序通过编译并生成模块符号文件。6、新建一个图形编辑文件,将已生成的模块符号文件放入其中,并根据要求边接起来。如图5。图5 图形编辑文件7、将自己编辑好的的程序进行编译仿

18、真,并对程序的错误进行修改,最终通过编译。8、编译仿真无误后,进行管脚分配。表4是示例程序的管脚分配表。分配完成后,再进行全编译一次,以使管脚分配生效。表4 管脚分配表端口名使用模块信号对应FPGA管脚说 明CLK50M50M系统时钟L1EP1C12系统板时钟CLKIN1输入输出观测模块Y17外部被测时钟输入CLKIN2数字信号源模块L2内部被测时钟输入KEY拨动开关K1E15外部/内部被测时钟选择LEDAG0数码管A段G6被测信号频率显示 续表4端口名使用模块信号对应FPGA管脚说 明LEDAG1数码管B段G7LEDAG2数码管C段H3LEDAG3数码管D段H4LEDAG4数码管E段H5LE

19、DAG5数码管F段H6LEDAG6数码管G段J4SEL0位选DEL0G5SEL1位选DEL1G3SEL2位选DEL2F49、用下载电缆通过JTAG口将对应的sof文件加载到FPGA中。观察设计结果是否与自己的编程思想一致。4.2 设计运行结果当设计文件加载到目标器件后。拨动拨动开关的K1,使其置为低电平,数码管上显示的值为系统上的数字信号源的时钟的频率值24MHz。改变数字信号源的时钟,显示的值是否与标值一致。数字信号源如图6所示,数码管显示如图7所示。如果使拨动开关置为高电平,从输入输出观测模块的输入端输入一个1000HZ的时钟信号,这时在数码管上显示这个时钟信号的频率值。其他频率的时钟信号

20、也会有相应的频率显示。输入时钟信号波形如图8所示,数码管显示如图9所示。 图6 数字信号源 图7 数码管显示 图8 输入时钟信号波形 图9 数码管显示5 心得体会 经过两个星期的EDA基础课程设计,使我在课堂上学习的EDA理论知识运用在了实践当中。在EDA基础课程设计期间,我系统地了解了EDA的概念,什么是FPGA,怎样运用硬件描述语言VHDL进行FPGA编程。学习了Altera公司的EP2C35系列的FPGA芯片,了解了此芯片的基本结构和性能。从建立工程到程序的下载,学习了FPGA的开发环境Quartus II软件的使用。在EDA基础课程设计的过程中也遇到了很多困难,刚开始就连建立工程都有问

21、题,更不用说复杂的数字频率计的设计了,自己甚至有些急躁,但困难总要克服,经过查阅资料和同学之间的讨论,问题得到了一一解决。同时在设计的过程中我发现了自己的不足之处,就是对之前所学过的知识理解得不够深刻,掌握得不够牢固,学习太肤浅。通过这次课程设计之后,得以把以前所学过的知识重新温故,懂得了做实践要踏踏实实,不能急于求成。这次课程设计最终得以顺利完成,最后对老师的辛勤指导和同学的热心帮表示衷心感谢! 6 参考文献1 SOPCIIEDA实验指导书(第二版).2 SOPCII使用手册(第二版).3 /elec/eda/edanew_m/4 EDA技术基础. 谭会生编著. 湖南大学出版社,2004.5

22、 EDA技术实用教程(第三版),潘松、黄继业编著 ,科学出版社 ,2010.附录一 CLKOUT的VHDL程序 -产生1HZ的闸门信号和1KHZ的显示扫描信号- LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY clkout IS PORT ( clk50m : IN STD_LOGIC; -50M系统时钟输入 clk1kHZ : OUT STD_LOGIC; -1KHZ显示扫描时钟输出 clk1HZ : OUT STD_LOGIC);-1HZ闸门信号产生 END clkout;

23、ARCHITECTURE A OF clkout IS BEGIN PROCESS(clk50m) -产生显示扫描时钟1KHZ variable cnttemp : INTEGER RANGE 0 TO 99999; BEGIN IF clk50m=1 AND clk50mevent THEN IF cnttemp=99999 THEN cnttemp:=0; ELSE IF cnttemp50000 THEN clk1khz=1; ELSE clk1khz=0; END IF; cnttemp:=cnttemp+1; END IF; END IF; END PROCESS; PROCESS(

24、clk50m) -产生显示扫描时钟1KHZ variable cnt : INTEGER RANGE 0 TO 49999999; BEGIN IF clk50m=1 AND clk50mevent THEN IF cnt=49999999 THEN cnt:=0; ELSE IF cnt25000000 THEN clk1hz=1; ELSE clk1hz=0; END IF; cnt:=cnt+1; END IF; END IF; END PROCESS; END A; 附录二 MUX的VHDL程序 -被测信号选择模块-library ieee;use ieee.std_logic_116

25、4.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity mux is port( clkin1 : in std_logic; -设定为外部时钟输入 clkin2 : in std_logic; -设定为数字信号源输入 key : in std_logic; -拨动开关控制 fin : out std_logic -被测频率输出 ); end mux;architecture behave of mux is begin process(key) begin if key=1 then fin=clki

26、n1; else fin=clkin2; end if; end process; end behave;附录三 TELTCL的VHDL程序 -在时钟的作用下生成测频的控制信号- LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY TElTCL IS PORT ( CLK: IN STD_LOGIC; -1 Hz测频控制时钟 TSTEN: OUT STD_LOGIC; -计数器时钟使能 CLR_CNT: OUT STD_LOGIC; -计数器清零 LOAD: OUT STD_LOGIC

27、); -输出锁存信号END TElTCL;ARCHITECTURE ART OF TElTCL IS SIGNAL DIV2CLK :STD_LOGIC;SIGNAL CLR :STD_LOGIC;SIGNAL loadcnt :STD_LOGIC;BEGIN PROCESS ( CLK ) IS BEGIN IF CLKEVENT AND CLK= 1 -1 HZ时钟二分频 THEN DIV2CLK=NOT DIV2CLK; END IF ; END PROCESS; PROCESS ( CLK,DIV2CLK ) BEGIN IF CLK= 0 AND DIV2CLK = 0 THEN -

28、产生计数器清零信号 CLR= 1; ELSE CLR= 0 ; END IF; END PROCESS; LOAD=not div2clk; TSTEN=DIV2CLK;CLR_CNT=CLR;END ARCHITECTURE ART;附录四 CNT10的VHDL程序 -十进制计数器。在设计中使用8个来进行计数 -LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ENTITY CNT10 IS PORT (CLK:IN STD_LOGIC; -计数时钟信号 CLR:IN STD_LOGIC; -清零信号 ENA:IN STD_LOGIC; -计数使能信号 CQ

29、 :OUT INTEGER RANGE 0 TO 15;-4位计数结果输出 CARRY_OUT:OUT STD_LOGIC); -计数进位END CNT10;ARCHITECTURE ART OF CNT10 IS SIGNAL CQI :INTEGER RANGE 0 TO 15;BEGINPROCESS(CLK,ENA) ISBEGIN IF CLR= 1 THEN CQI= 0; 计数器异步清零 elsIF CLKEVENT AND CLK= 1 THEN IF ENA= 1 THEN iF CQI=10 THEN cqi=1; ELSE CQI=cqi+1; END IF; 等于9,则

30、计数器清零 END IF; END IF;END PROCESS;PROCESS (CQI) IS BEGIN IF CQI=10 THEN CARRY_OUT= 1; 进位输出 ELSE CARRY_OUT= 0; END IF;END PROCESS; CQ=CQI;END ART;附录五 SEG32B的VHDL程序-32位的锁存器,在锁存控制信号的作用下,将计数的值锁存-LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;ENTITY REG32B IS PORT(LOAD: IN STD_LOGIC; DIN: IN STD_LOGIC_VECTOR(31 DOWNTO 0); DOUT: OUT STD_LOGIC_VECTOR(31 DOWNTO 0);END ENTITY REG32B;ARCHITECTURE ART OF REG32B IS BEGINPROCESS ( LOAD, DIN

温馨提示

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

评论

0/150

提交评论