EDA课程设计-数字频率计_第1页
EDA课程设计-数字频率计_第2页
EDA课程设计-数字频率计_第3页
EDA课程设计-数字频率计_第4页
EDA课程设计-数字频率计_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

四川师范大学成都学院电子工程系课程设计报告 目目 录录 前前 言言.1 1.1. 总体设计方案总体设计方案.2 1.1 总总体体设计设计方案方案.2 2.2. 单元模块设计单元模块设计.2 2.1 十十进进制制计计数器数器设计设计.2 2.1.1 十十进进制制计计数器原件数器原件 cnt10 设计设计.2 2.1.2 位十位十进进制制计计数器的数器的顶层设计顶层设计.4 2.2 闸门闸门控制模控制模块块 EDA 设计设计.5 2.2.1 定定时时信号模信号模块块 Timer.5 2.2.2 控制信号控制信号发发生器模生器模块块 T_con.7 2.3 译码显译码显示模示模块块.8 2.3.1 显显示寄存器示寄存器设计设计.8 2.3.2 译码扫译码扫描描显显示示电电路路.9 2.3.3 译码显译码显示模示模块块的的顶层电顶层电路路设计设计.12 3.3. 软件测试软件测试.13 3.1 测试测试的的环环境境.13 3.2 调试调试和器件和器件编编程程.14 4.4. 设计总结设计总结.15 5.5. 参考文献参考文献.16 四川师范大学成都学院电子工程系课程设计报告 1 前 言 在电子技术高度发展的今天,各种电子产品层出不穷,而频率作为设计的最基本的 参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此,频率 的测量就显得更为重要。测量频率的方法有多种,其中电子计数器测量频率具有精度高、 使用方便、测量迅速,以及便于实现测量过程的自动化等优点。 数字频率计是一种用十进制数字显示被测信号频率的数字测量仪器,它的基本功能 是测量正弦信号、方波信号、尖脉冲信号以及其它各种单位时间内变化的物理量。当今 国内外厂家生产的数字频率计在功能和性能方面都比较优良,而且还在不断发展中,但 其结构比较复杂,价位也比较高,在测量精准度要求比较低的测量场合,使用这些数字 频率计就不够经济合算。我所设计的这款数字频率计能够可靠实现频率显示功能,原理 及结构也比较简单本次所做的课程设计就是一个数字频率计,能测量 1HZ9999HZ 的矩 形波信号,并正确地显示所测信号的频率值。 数字频率计是数字电路中的一个典型应用,实际的硬件设计用到的器件较多,连线 比较复杂,而且会产生比较大的延时,造成测量误差、可靠性差。随着现场可编程门阵 列 FPGA 的广泛应用,以 EDA 工具作为开发手段,运用 VHDL 等硬件描述语言语言,将使 整个系统大大简化,提高了系统的整体性能和可靠性。 采用 FPGA 现场可编程门阵列为控制核心,通过硬件描述语言 VHDL 编程,在 Quartus仿真平台上编译、仿真、调试 ,并下载到 FPGA 芯片上,通过严格的测试后, 能够较准确地测量各种常用的波形信号的频率,而且还能对其他多种物理量进行测量。 四川师范大学成都学院电子工程系课程设计报告 2 1. 总体设计方案 1.1 总体设计方案 数字频率计基本原理是用计数器来计算 1S 内输入信号周期的个数。如图 1 所示是 4 位十进制数字频率计的系统方框原理图,当系统正常工作时,脉冲发生器提供的 1 Hz 的 输入信号,经过测频控制信号发生器进行信号的变换,产生计数信号,被测信号通过信 号整形电路产生同频率的矩形波,送入计数模块,计数模块对输入的矩形波进行计数, 将计数结果送入锁存器中,保证系统可以稳定显示数据,显示译码驱动电路将二进制表 示的计数结果转换成相应的能够在七段数码显示管上可以显示的十进制结果。 图 1 总体设计方案 2. 单元模块设计 2.1 十进制计数器设计 2.1.1 十进制计数器原件 cnt10 设计 十进制计数器即可采用 Quartus的宏元件 74160,也可用 VHDL 语言设计,其源程 序如下。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY cnt10_v IS PORT(CLK,RST,EN:IN STD_LOGIC; 四川师范大学成都学院电子工程系课程设计报告 3 CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT:OUT STD_LOGIC ); END cnt10_v; ARCHITECTURE behav OF cnt10_v IS BEGIN PROCESS(CLK,RST,EN) VARIABLE CQI:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF RST=1THEN CQI:=(OTHERS=0); -计数器异步复位 ELSIF CLKEVENT AND CLK=1 THEN -检测时钟上升沿 IF EN=1 THEN -检测是否允许计数(同步使能) IF CQI0); -大于 9,计数值清零 END IF; END IF; END IF; IF CQI=9 THEN COUT=1; -计数等于 9,输出进位信号 ELSE COUT=0; END IF; CQ=CQI; -将计数值向端口输出 END PROCESS; END behav; 在源程序中:COUT: 计数器进位输出 CQ3.0: 计数器的状态输出 CLK: 时钟输入端 RST: 复位控制输入端,当 RST=1 时,CQ3.0=0 EN: 使能控制输入端,当 EN=1 时,计数器计数;当 EN=0 时,计数器保持不工作状态。 四川师范大学成都学院电子工程系课程设计报告 4 图 2 十进制计数器仿真输出波形 在项目编译仿真成功后将设计的十进制计数器电路设置成可调用的元件 cnt10_v.bsf,用于以下四位十进制计数器的顶层设计。 cnt10_v inst CLKCLK RSTRST ENEN CQ3.0CQ3.0 COUTCOUT 图 3 十进制计数器元件符号 2.1.2 位十进制计数器的顶层设计 顶层电路原理图如图 4 所示。文件名 4cnt10.bdf。 该顶层设计可以用原理图输入的方法完成。在 QuartusII 中,新建一个原理图编辑窗 口,从当前的工程目录中调出 4 片十进制计数器元件 cnt_v,并按 4 所示的 4 位十进制计 数器的顶层原理图完成电路接线。 完成 4 位十进制计数器的顶层原理图编辑以后,即可进行仿真测试和波形分析,其 仿真输出波形如图 5 所示,当 CLR=0,EN=1 时其计数值在 09999 之间的变化,COUT 为计数进位输入信号,在实际应用中可作为超量程报警信号,因此仿真结果真确无误。 此后,可将以上设计的 4 位十进制计数器设置成可调用的元件 4cnt10.bsf 以备高层设计中 使用,其元件符号如图 6 所示。 图 4 十进制计数器的顶层原理图 四川师范大学成都学院电子工程系课程设计报告 5 图 5 四位十进制计数器的仿真图 4cnt10 inst clkclk rstrst enen out13.0out13.0 out23.0out23.0 out33.0out33.0 out43.0out43.0 coutcout 图 6 元件封装符号图 2.2 闸门控制模块 EDA 设计 根据以上所述,频率计电路工作时先要产生一个计数允许信号(即闸门信号) ,闸门 信号的宽度为单位时间如 1s,在闸门信号有效时间内,对被测信号计数,即为信号的频 率,该频率计电路的精度取决于闸门信号 T,该模块课分为 2 个子模块,一个是定是信号 模块,一个是控制信号发生器模块。 2.2.1 定时信号模块 Timer 根据设计要求,对于 4 位十进制计数器来说,当闸门信号的最大采样时间为 1s 时, 其计数值在 09999 之间,则最大频率为 9999Hz,此即位频率计电路工作的 1 档;当闸 门信号的最大采样时间为 0.1s(100ms)时,其计数值在 09999 之间,把它转化为频率则 为最小频率为 10Hz,最大频率为 9999Hz,此即为频率计电路工作的 2 档;当闸门信号的 最大采样时间为 0.01s(10ms)时,其计数值在 09999 之间,把它转换为频率则为最小频 率为 100Hz,最大频率为 Hz 或 999.9KHz,此即为频率计电路工作的 3 档;当闸门信号 四川师范大学成都学院电子工程系课程设计报告 6 的最大采样时间为 0.001s(1ms)时,其技术值在 09999 之间,把它转换为频率则为最小 频率为 1000Hz,最大频率为 Hz 或 9.99MHz,此即为频率计电路工作的 4 档。 本设计中假设输入的系统基准时钟为 1KHz,为产生 4 种不同的闸门信号 T,可由一 组 3 级模 10 计数器对 1KHz 信号进行分频,为控制信号发生器提供 4 种不同的频率信号, 通过数据选择器 41MUX 利用量程选择开关控制闸门信号 T 的基准时钟,原理如图 7 所 示。 图 7 中,cnt10_v 为已设计好的十进制计数器元件,可直接把该模块作为底层元件 使用,41MUX 为 4 选 1 数据选择器,其 4 个输入为 1KHz 信号进行分频后的 4 中不同的 频率信号 L4(1s)、L3(100ms)、L2(10ms)、L1(1ms)。A、B 为量程选择开关,其 4 种不同 编码状态 00、01、10、11 通过 4 选 1 数据选择器分别选择输出 4 种不同的频率信号到 Bclk, Blck 将作为控制信号发生器模块的控制时钟脉冲。A、B 的 4 种不同编码状态通 过 2-4 译码器 74139M 产生 4 个量程状态显示信号 p0(1 档)、p1(2 档)、p3(3 档)、p4(4 档)。 图 8 为其编译仿真后的输出时序波形图,生成的元件符号图如图 9 所示。 VCC 1msINPUT VCC BINPUT VCC AINPUT BclkOUTPUT p0OUTPUT p1OUTPUT p2OUTPUT p3OUTPUT CLK RST EN CQ3.0 COUT cnt10_v inst CLK RST EN CQ3.0 COUT cnt10_v inst1 CLK RST EN CQ3.0 COUT cnt10_v inst2 S0 D2 S1 D3 D0 INH D1 Q MUX41 inst3 B A G Y3N Y2N Y0N Y1N 74139M inst4 GND VCC 1s 100ms 10ms 1ms A B 100ms 10ms1s p0 p1 p2 p3 1ms CLR Bclk CLR ENAENA 图 7 定时信号模块原理图 四川师范大学成都学院电子工程系课程设计报告 7 图 8 仿真输出波形 Timer inst l1 l1 B B A A BclkBclk p0p0 p1p1 p2p2 p3p3 图 9 定时信号模块 2.2.2 控制信号发生器模块 T_con 控制信号发生器原理图如图 10,文件名 T_con.bdf。 该模块主要根据输入的控制时钟脉冲,产生计数允许信号 EN,该信号的高电平是持 续时间即计数允许时间输入的控制时钟脉冲周期;产生清零信号 CLR,在计数使能前对 计数器清零;产生存储信号 XEN,在计数后,利用上升沿把最新的频率测量值保存在显 示寄存器中。 控制信号发生器用 74161 构成 4 分频计数器,用一个与非门,一个或非门和一个异 或门实现 3 种译码状态,以便产生清零信号 CLR,使能信号 EN 和存储信号 XEN。其仿 真输出波形图如图 11,编译仿真真确无误后,生成元件符号图 12 所示。 COUNTER CLRN CLK ENP LDN A D ENT B C QD QC QB QA RCO 74161 inst NOR2 inst1 NAND2 inst2 XOR inst3 NOT inst6 GND VCC EN OUTPUT CLR OUTPUT XEN OUTPUT VCC Bclk INPUT Bclk 四川师范大学成都学院电子工程系课程设计报告 8 图 10 信号发生器模块原理图 图 11 仿真输出波形 T_con inst BclkBclkENEN CLRCLR XENXEN 图 12 控制信号发生器模块 2.3 译码显示模块 译码显示模块有显示寄存器和译码扫描显示电路组成。 2.3.1 显示寄存器设计 显示寄存器是在计数后,利用触发器的上升沿把最新的频率测量值保存起来,这样在 计数过程中可不必一直看着数码管显示器,显示器将最终的频率读数定期进行更新,其输出 将作为译码扫描显示电路的输入。16 位显示寄存器的 VHDL 源程序如下。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY reg_16 IS PORT ( Load: IN STD_LOGIC; DIN : IN STD_LOGIC_VECTOR(15 DOWNTO 0); DOUT: OUT STD_LOGIC_VECTOR(15 DOWNTO 0); END reg_16; ARCHITECTURE behav OF reg_16 IS BEGIN PROCESS( Load, DIN) BEGIN IF Load EVENT AND Load=1 THEN -时钟到来时,锁存输入数据 DOUT LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S NULL; END CASE; 四川师范大学成都学院电子工程系课程设计报告 11 END PROCESS; END one; 源程序中:A3.0: 09 的 BCD 码 LED7S: 译码后的 7 段数据信号 DECL7S inst A3.0A3.0LED7S6.0LED7S6.0 图 16 段数码显示译码器元件符号 动态扫描显示的 VHDL 源程序如下: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY dynamic IS port(clk, reset:in std_logic; din1:in std_logic_vector(6 downto 0); -译码后的数据信号 1 din2:in std_logic_vector(6 downto 0); -译码后的数据信号 2 din3:in std_logic_vector(6 downto 0); -译码后饿数据信号 3 din4:in std_logic_vector(6 downto 0); -译码后饿数据信号 4 shift: out std_logic_vector(3 downto 0); -位选信号 bus4: out std_logic_vector(6 downto 0); -数据信号 end dynamic; architecture one of dynamic is signal scan_clk:std_logic_vector(1 downto 0); begin p1:process(clk,scan_clk,reset) -分频进程 variable scan:std_logic_vector(17 downto 0); begin if reset=1 then scan:=; scan_clk=00; elsif clkevent and clk=1then scan:=scan+1; end if; scan_clkbus4=din1;shiftbus4=din2;shiftbus4=din3;shiftbus4=din4;shiftbus4=;shift=0000; end case; end process p2; end one; 源程序中:clk: 扫描时钟 reset: 复位信号,当 reset=1 时对位选信号复位 shift: 4 个数码管的位选信号,高电平有效 bus4: 进位选输出的 7 段数据信号 din1、din2、din3、din4:输入的 7 段数据信号 dynamic inst clkclk resetreset din16.0din16.0 din26.0din26.0 din36.0din36.0 din46.0din46.0 shift3.0shift3.0 bus46.0bus46.0 图 17 动态扫描显示模块元件符号 2.3.3 译码显示模块的顶层电路设计 在 QuartusII 中,按照图 18 所示的译码显示模块的原理图完成底层电路设计和仿真, 文件名 DEC_D.bdf。 图 20 是编译仿真后的输出时序波形图和生成的元件符号。分析图 19,当 FX=1234 时, 在时钟脉 CLK 作用下,首先送出最低位测量值 4,此时数码管的位选信号 CH3.0=(1) H,数码管的译码电平输出为(66)H。第 2 个为 3,此时数码管的位选信号 CH3.0=(2) H,数码管的译码电平输出 4(F) H。第 3 个为 2,此时数码管的位选信号 CH3.0=(4) H,数码管的译码电平输出为(5B) H。第 4 个为 1,此时数码管的位选信号 CH3.0=(8) H,数码管的译码电平输出为(06) H。 四川师范大学成都学院电子工程系课程设计报告 13 A3.0LED7S6.0 DECL7S inst A3.0LED7S6.0 DECL7S inst1 A3.0LED7S6.0 DECL7S inst2 A3.0LED7S6.0 DECL7S inst3 clk reset din16.0 din26.0 din36.0 din46.0 shif t3.0 bus46.0 dy namic inst4 Load DIN15.0 DOUT15.0 reg_16 inst5 F6.0OUTPUT CH3.0OUTPUT VCC CLKINPUT VCC REINPUT VCC XENINPUT VCC FX15.0INPUT D6.0 F6.0 CH3.0 D26.0 Y3.0 Y7.4 CLK RE D36.0 D46.0 Y15.0 FX15.0 D36.0Y11.8 Y15.12D46.0 XEN 图 18 译码显示模块的原理图 图 19 仿真输出波形 DEC_D inst CLKCLK RERE XENXEN FX15.0FX15.0 CH3.0CH3.0 F6.0F6.0 图 20 译码显示模块 DEC_D 四川师范大学成都学院电子工程系课程设计报告 14 3. 软件测试 3.1 测试的环境 QuartusII 是 Altera 公司推出各种可编程逻辑器件产品,具有完全集成化的易学、 易用的可视化环境,还有具有工业标准 EDA 工具接口,并且可以运行在多种操作平台上。 使 QuartusII 提供了丰富的逻辑功能库、模块库以及参数化的兆功能供设计者使用。它 还具有开放核的特点,允许设计人员添加自己的宏功能模块。充分利用这些逻辑功能模 块,可大大减少设计工作量。 QuartusII 由设计输入、项目编译、项目检验和器件编程等四部分组成。设计输入主 要有文本编辑器、图形编辑器、符号编辑器、波形编辑器以及第三方 EDA 工具生成的设 计网表文件输入等,输入方式不同,生成的设计文件也不同。 编译设计项目主要是根据要求设计参数和编译策略,如选定其间、锁定引脚等等,然后 对项目进行网表提取、逻辑综合、器件适配,产生报告文件,供分析仿真及编程用。项 目检验方法包过功能仿真、模拟仿真和定时分析,编程验证是将仿真后的目标文件编入 所选定的 Altera 可编程逻辑器件中,然后加入实际激励信号进行测试,检查是否达到要 求。 3.2 调试和器件编程 将各个模块的源文件程序代码输入文本文件,编译运行项目成功后,把各个模块放 在一起形成顶层设计文件,对项目进行逻辑综合,然后将项目的设计结果加载到 Altera 器件中;成功编译以后,进入到模拟仿真时段,设置好完成时间和网络间距,在列出输 入输出信号等等,进行波形编辑在模拟器运行成功;启动定时分析工具,对传播延迟、 时序电路性能、建立和保持时间等进行分析顺利后,就可以开始器件编程了。通过利用 ByteBlaster 电缆与微机并行口相连,接通 EL 实验箱电源,打开 QuartusII 编程器窗口, 将器件编程文件调出,确保与电路板顺序相同。设置完成后选

温馨提示

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

最新文档

评论

0/150

提交评论