欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    基于VerilogHDL的数字频率计设计课程设计Word文档下载推荐.docx

    • 资源ID:17619285       资源大小:237.72KB        全文页数:42页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于VerilogHDL的数字频率计设计课程设计Word文档下载推荐.docx

    1、闸门时间越短,测的频率值刷新就越快,但测得的频率精度就受影响。本文数字频率计是用数字显示被测信号频率的仪器,被测信号可以是正弦波,方波或其它周期性变化的信号。如配以适当的传感器,可以对多种物理量进行测试,比如机械振动的频率,转速,声音的频率以及产品的计件等等。因此,数字频率计是一种应用很广泛的仪器电子系统非常广泛的应用领域内,到处可见到处理离散信息的数字电路。数字电路制造工业的进步,使得系统设计人员能在更小的空间内实现更多的功能,从而提高系统可靠性和速度。集成电路的类型很多,从大的方面可以分为模拟电路和数字集成电路2大类。数字集成电路广泛用于计算机、控制与测量系统,以及其它电子设备中。一般说来

    2、,数字系统中运行的电信号,其大小往往并不改变,但在实践分布上却有着严格的要求,这是数字电路的一个特点。数字集成电路作为电子技术最重要的基础产品之一,已广泛地深入到各个应用领域1.2 频率测量的思想和方法1频率测量的基本思想测量被测信号在单位时间内的脉冲个数,其数字表达式f = N / t 其中: F为被测信号的频率 N为脉冲的个数 T为被测信号产生N个脉冲所需的时间2频率测量方法 直接测量法:直接测量被测信号的频率,通过计数法来对被测信号在一定时间内的脉冲个数进行计数。直接厕灵法的结构框图如图1.2.1所示。被测信号 测量结果图1.2.1 直接测量法的结构框图3误差来源 技术过程中最大存在着1

    3、个字的量化误差 对时间t的准确把握,主要包括准时钟的时间准确性、整形电路、分频电路以及技术时间控制闸门的开关速度等因素。直接法测量的最大相对误差可以表达为( df/f )max=( |1/N| + |G| )=( |1/ft| + |G| ) N为脉冲的个数,G为标准时钟的频率稳定性,f为被测信号频率,t为被测信号产生N个脉冲所需的时间。4功能及技术指标 频率测量范围: 10Hz 100MHz 测量分辨率: 1Hz 测量通道灵敏度: 50mVpp 通道输入阻抗:不小于100k 测量误差:1 测量结果显示:6位数码管显示该数字频率计的操作面板如图1.2.4所示图1.2.4 简易数字频率计的操作面

    4、板其中,被测信号可以有三种,分别是方波、三角波和正弦波;测量结果显示采用六个数码管来显示;量程分为三个,分别为:0999999Hz、09999.99kHz、099.9999MHz2 Verilog HDL简介2.1 Verilog HDL的简介 Verilog HDL是一种硬件描述语言(hardware description language),为了制作数位电路(数字电路)而用来描述ASICs和FPGAs的设计之用。Verilog 的设计者想要以 C 程序语言(en:C programming language)为基础设计一种语言,可以使工程师比较熟悉跟容易接受。事实上,它产生与 C 程序语

    5、言类似的不严谨性质,并且大概与Pascal很相像。 这种语言跟传统的程序设计语言不同,在于它的程序叙述并非严格地线性(循序)执行。Verilog 模式包含不同模组(modules)的阶层关系。模组(modules)是输出(inputs)和输入(outputs)所定义出来的一个集合。在每个模组中,有一串的电线(wires)、暂存器(registers)和子模组(submodules)的定义。并且在每个模组里面,语言叙述大部分都被群组成为各种的执行区块(blocks),用来定义该模组所产生的行为描述。在每个区块(blocks)内,使用 begin 和 end 的关键字来区隔开来,其中的叙述是循序被

    6、执行。但是同一个设计,不同的区块间的执行是平行的。 这个语言的叙述之子集合是可合成(synthesizable)。如果在一个电路设计的模组中仅包含可合成的叙述,那麽这个电路设计就可以被适当的软件,转换合成为电脑芯片的电路layout。3 数字频率计系统框图3.1数字频率计系统框图设计如图3.1.1所示的数字频率计系统电路框图图3.1.1 所示的数字频率计系统电路框图3.2数字频率计系统部件简介1. 放大整形 数字频率计允许测量信号的类型有三种:方波、三角波和正弦波,并且信号的测量通道灵敏度为 50mVpp,为此,需要将被测信号放大整形成标准的TTL电平的方波型号,便于CPLD/FPGA对信号脉

    7、冲的计数。 2. SW1、SW2、SW3按键SW1、SW2、SW3这三个按键用来在测量的时候,用户根据被测信号的大致频率范围选择不同的适合被测信号的量程。在按键的设计中,需要考虑实际按键的消抖问题3. 标准时钟 标准时钟为频率计测量提供精度相对比较高的时基信号,其时间的稳定性与精度将会直接影响到频率计测量的准确性。4. LED显示模块 频率计将测量的结果通过6位数码管(LED)来显示。4 基于Verilog HDL数字频率计程序设计4.1数字频率计系统模块划分结构数字频率计中的CPLD/FPGA是频率计的核心,主要实现在一定时间内,对被测信号的脉冲个数进行计算,并且转化为相应的频率值显示在六个

    8、数码管上。首先将系统分成七个模块来分别设计仿真。分别有以下七个模块:经过上述模块化划分后的结构框如图4.1所示图4.1 模块化划分后的结构 计数模块counter:对包含被测信号频率信息的脉冲进行计数 门控模块gate_control:根据量程,控制技术模块计数。 分频模块fdiv:将标准时钟分频,得到计数以及动态显示所需的时钟。 寄存器模块flip_latch:对计数模块的计数值进行寄存。 多路选择模块data_mux:根据动态选择信号,选择相应的需要显示的计数值 动态为选择模块dispselevt:输出动态显示中的位选信号 BCD译码模块dispdenoder:将BCD码译成数码管的显示数

    9、据4.2计数模块counter该模块主要完成对被测信号经过放大整形后输入到可编程逻辑器件的F_IN信号是现在一定的时间下的计数,采用六个异步BCD码十进制计数器来实现 0999999范围的计数。计数模块的结构框图如图4.2.1所示。图4.2.1 计数模块的结构框图根据模块实现的功能设计Verilog HDL源代码如下:module counter(EN,CLR,F_IN,F_OUT,Q0,Q1,Q2,Q3,Q4,Q5);output 3:0 Q5,Q4,Q3,Q2,Q1,Q0;output F_OUT;input EN;input CLR;input F_IN;reg 3:reg F_OUT;

    10、reg F_out0,F_out1,F_out2,F_out3,F_out4;always (posedge F_IN)begin if(EN = 1b1)&(CLR = 1b0)&(Q0 != 4b1001) begin Q0 = Q0 + 4b0001; F_OUT = 1b0; end elseb0000;(Q1 ! Q1 = Q1 + 4(Q2 ! begin Q2 = Q2 + 4 Q2 if(EN = 1(Q3 ! begin Q3 = Q3 + 4 F_OUT end else begin(Q4 ! Q4 = Q4 + 4(Q5 ! Q5 = Q5 + 4 F_OUT b1;en

    11、dEndmodule该模块定义输入端口如下: EN:异步BCD码十进制计数器的全局使能信号 CLR:异步BCD码十进制计数器复位信号 F_IN:被测信号经过放大与整形处理后的信号该模块定义输出端口如下: F_OUT:超出技术范围0999999的输出信号,用来指示提醒用户选择更大的量程。 Q0:计数器的最低位输出 Q1:计数器的第5位输出 Q2:计数器的第4位输出 Q3:计数器的第3位输出 Q4:计数器的第2位输出 Q5:计数器的第1位输出在Altera公司的软件工具QuartusII中编译和波形仿真得到波形如图4.2.2所示。图4.2.2 计数模块counter的仿真波形4.3门控模块gate

    12、_control 门控模块实现检测外界量程的选择,并且根据量程输出控制6位BCD码十进制计算器的计数时钟,以及在测量完一次信号频率后,计数器计数值清零。计数器的清零要与后级寄存器的锁存时刻做很好的时序配合。应该实在计数器测量完一次信号频率后,首先将数据锁存到寄存器,然后再将计数器值清零,这样可以惊醒下一次测量。门控模块的结构框图如图4.3.1所示图4.3.1 门控模块结构框图 module gate_control( SW0,SW1,SW2, f1hz,f10hz,f100hz, Latch_EN, Counter_Clr, Counter_EN, dp_s1hz,dp_s10hz,dp_s1

    13、00hz);output Latch_EN;output Counter_Clr;output Counter_EN;output dp_s1hz,dp_s10hz,dp_s100hz;input SW0,SW1,SW2;input f1hz,f10hz,f100hz;reg dp_s1hz,dp_s10hz,dp_s100hz;reg fref;reg wire_1;reg wire_2;/初始化输入以及中间量initial fref wire_1 wire_2 /根据不同的外界量程选择,选择相应的计数基时钟always (SW0 or SW1 or SW2 or f1hz or f10hz

    14、 or f100hz) if(SW2 = 1b1)= f100hz; dp_s1hz,dp_s10hz,dp_s100hz = 3b001; else if(SW1 = 1= f10hz;b010; else if(SW0 = 1= f1hz;b100;/根据不同的计数基时钟,提供输出相应的计数器计数值的清除脉冲与锁存器锁存脉冲always (posedge fref)= ! wire_1;always (negedge fref)= wire_1;assign Counter_EN = wire_1;assign Latch_EN = (! Counter_EN) & wire_2;assi

    15、gn Counter_Clr = (! (! Latch_EN) | (! wire_2);endmodule 该模块定义输入端如下: SW0、SW1、SW2:量程选择开关 flhz:1Hz的标准时钟输入 fl0hz:10Hz的标准时钟输入 fl00hz:100Hz的标准时钟输入 Latch_EN:用来是能寄存器所存数据 Counter_Clr:用于计数器的清零 Counter_EN:用于使能计数器开始计数 dp_s1hz:选择999999Hz量程时,用于控制显示中的小数点位置 dp_s10hz:选择9999.99Hz量程时,用于控制显示中的小数点位置 dp_s100hz:选择99.9999H

    16、z量程时,用于控制显示中的小数点位置在Altera公司的软件工具QuartusII中编译和波形仿真得到波形如图4.3.2所示。图4.3.2 门控模块的仿真波形4.4分频模块fdiv分频模块在系统全局时钟的驱动下,经过分频得到系统中所需要的多种频率成分的时钟信号。分频模块的结构框图如图4.4.1所示。图4.4.1 分频模块结构框图module fdiv(clk,f1hz,f10hz,f100hz,f1khz);output f1hz,f10hz,f100hz,f1khz;input clk;reg f1hz,f10hz,f100hz,f1khz;integer cnt1=0,cnt2=0,cnt

    17、3=0,cnt4=0;always (posedge clk) /if(cnt19999) /实际系统分频值 if(cnt1 2) /仿真时的分频值 f1khz cnt1 = cnt1 + 1; cnt1 = 0;always (posedge f1khz) /if(cnt29) /实际系统分频值 if(cnt2 f100hz cnt2 = cnt2 + 1; cnt2 = 0;always (posedge f100hz) /if(cnt3 if(cnt3 f10hz cnt3 = cnt3 + 1; cnt3 = 0;always (posedge f10hz) /if(cnt4 if(c

    18、nt4 f1hz cnt4 = cnt4 + 1; cnt4 = 0;endmodule Clk:全局系统时钟信号 F1hz:输出1Hz的时钟信号 F10hz: F1khz:在Altera公司的软件工具QuartusII中编译和波形仿真得到波形如图4.4.2所示。图4.4.2 分频模块的仿真波形4.5 寄存器模块flip_latch寄存器模块实现每一个测量频率时,计数器计算值的暂时存储。寄存器模块的结构框图如图4.5.1所示。图4.5.1 寄存器模块module flip_latch(clk,A0,A1,A2,A3,A4,A5,Q0,Q1,Q2,Q3,Q4,Q5);0 Q0,Q1,Q2,Q3,

    19、Q4,Q5;input 3:0 A0,A1,A2,A3,A4,A5;= A0;= A1;= A2; Q3 = A3; Q4 = A4; Q5 = A5; clk:所存数据信号输入,当clk的上升沿到来时,寄存器将输入端信号锁存进寄存器,并且改变输出。 A0,A1,A2,A3,A4,A5:寄存器的数据输入端 Q0,Q1,Q2,Q3,Q4,Q5:寄存器的数据输出端。在Altera公司的软件工具QuartusII中编译和波形仿真得到波形如图4.5.2所示。图4.5.2 寄存器模块的仿真波形4.6 多路选择模块data_mux多路选择模块实现测量频率值的分时显示,即动态显示。经过多路选择器模块来分时地

    20、传输数据。多路选择模块的结构如图4.6.1所示。图4.6.1 多路选择模块结构框图module data_mux(disp_select,A0,A1,A2,A3,A4,A5,Q);0 Q;input 2:0disp_select;always (disp_select,A5,A4,A3,A2,A1,A0,Q) case(disp_select) 3b000: Q b001:b010:b011:b100:b101: default: endcase disp_select:选择信号输入多路选择模块的数据输入端口 多路选择模块的数据输出端口。在Altera公司的软件工具QuartusII中编译和波形仿真得到波形如图4.6.2所示。图4.6.2 多路选择模块的仿真波形4.7 动态位选模块dispselect动态位选模块用来驱动数码动态地显示频率测量数据,分时地选择各个数码管进行显示 动态位选的结构框图4.7.1所示。图4.7.1 动态位选模块的结构框图module dispselect(clk,disp_select,Q);output 5:output 2:0 disp_select;reg 5:reg 2: if(disp_select b101)


    注意事项

    本文(基于VerilogHDL的数字频率计设计课程设计Word文档下载推荐.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开