




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于VerilogHDL数字频率计设计与实现课程设计任务书学院:计算机与通信工程学院专业:网络工程专业课程名称计算机组成原埋课程设计时间20102011学年第一学期1718周学生XX郭祥斌指导教师陈沅涛题目主要内容:1数字频率计前端信号的放大整形处理2数字频率计的VerilogHDL设计实现3数字频率计的CPLD/FPGA制作要求:1通过对相应文献的收集、分析以及总结,给出相应课题的背景、意义及现状研究分析。2通过课题设计,掌握计算机组成原理的分析方法和设计方法。3学按要求编写课程设计报告书,能正确阐述设计和实验结果。4学生应抱着严谨认真的态度积极投入到课程设计过程中,认真查阅相应文献以及实现
2、,给出个人分析、设计以及实现。应当提交的文件:1课程设计报告。2课程设计附件主要是源程序课程设计成绩评定学院计算机通信工程专业网络工程班级网络08-02班学号3学生XX郭祥斌指导教师陈沅涛课程成绩完成日期2010年12月31日指导教师对学生在课程设计中的评价评分工程优良中及格不及格课程设计中的创造性成果学生掌握课程内容的程度课程设计完成情况课程设计动手能力文字表达学习态度规X要求课程设计论文的质量指导教师对课程设计的评定意见综合成绩指导教师签字年 月日基于VerilogHDL数字频率计设计与实现学生:郭祥斌指导教师:陈沅涛摘要:在电子技术中,频率是最根本的参数之一,并且与许多电参量的测量方案、
3、测量结果都有十分密切的关系,因此频率的测量就显得更为重要。测量频率的方法有多种,其中电子计数器测量频率具有精度高、使用方便、测量迅速,以及便于实现测量过程自动化等优点,是频率测量的重要手段之一。电子计数器测频有两种方式:一是直接测频法,即在一定闸门时间内测量被测信号的脉冲个数;二是间接测频法,如周期测频法。直接测频法适用于高频信号的频率测量,间接测频法适用于低频信号的频率测量。本文阐述了用VerilogHDL语言设计了一个简单的数字频率计的过程关键词:周期;EDA;VerilogHDL;数字频率计;波形仿真目录1 引言-.5.-1.1 数字频率计概述-.6.-1.2 频率测量的思想和方法-.7
4、.-2 VerilogHDL简介-.9.-2.1 VerilogHDL的简介-.9.-3 数字频率计系统框图-.1.0.-3.1 数字频率计系统框图-.1.0.-.3.2 数字频率计系统部件简介-.1.1.-.4 基于VerilogHDL数字频率计程序设计-.1.2.-.4.1 数字频率计系统模块划分构造-.1.2.-.4.2 计数模块counter-.1.3.-4.3 门控模块gate_contro.l-.1.5.-.4.4 分频模块fdiv-.1.8.-4.5 存放器模块flip_latch-.2.1.-.4.6 多路选择模块data_mux-.2.3.-.4.7 动态位选模块dispse
5、lec.t-.2.6.-4.8 BCD译码模块dispdecoder-.27.4.9 顶层电路top-.3.2.-5 总结-.3.6.-.参考文献-.3.7.-.1引言在电子测量领域中,频率测量的准确度是最高的,可达1010E-13数量级。PH值、振动、位移、速度、加速度,乃至各种气体的百分比成分等均用传感器转换成信号频率,然后用数字频率计来测量,以提高准确度。国际上数字频率计的分类很多。按功能分类,测量某种单一功能的计数器。如频率计数器,只能专门用来测量高频和微波频率;时间计数器,是以测量时间为根底的计数器,其测时分辨力和准确度很高,可达ns数量级;特种计数器,它具有特种功能,如可逆计数器、
6、予置计数器、差值计数器、倒数计数器等,用于工业和白控技术等方面。数字频率计按频段分类(1X氐速计数器:最高计数频率10MHz;(2)中速计数器:最高计数频率1A100MHz;(3)高速计数器:最高计数频率100MHz;(4满波频率计数器:测频X围180GHz或更高。单片机自问世以来,性能不断提高和完善,其资源又能满足很多应用场合的需要,加之单片机具有集成度高、功能强、速度快、体积小、功耗低、使用方便、价格低廉等特点,因此,在工业控制、智能仪器仪表、数据采集和处理、通信系统、高级计算器、家用电器等领域的应用日益广泛,并且正在逐步取代现有的多片微机应用系统。单片机的潜力越来越被人们所重视。特别是当
7、前用CMOS工艺制成的各种单片机,由于功耗低,使用的温度X围大,抗干扰能力强、能满足一些特殊要求的应用场合,更加扩大了单片机的应用X围,也进一步促使单片机性能的开展。1.1 数字频率计概述频率计的根本原理是用一个频率稳定度高的频率源作为基准时钟,比照测量其他信号的频率。通常情况下计算每秒内待测信号的脉冲个数,此时我们称闸门时间为1秒。闸门时间也可以大于或小于一秒。闸门时间越长,得到的频率值就越准确,但闸门时间越长那么每测一次频率的间隔就越长。闸门时间越短,测的频率值刷新就越快,但测得的频率精度就受影响。本文数字频率计是用数字显示被测信号频率的仪器,被测信号可以是正弦波,方波或其它周期性变化的信
8、号。如配以适当的传感器,可以对多种物理量进展测试,比方机械振动的频率,转速,声音的频率以及产品的计件等等。因此,数字频率计是一种应用很广泛的仪器电子系统非常广泛的应用领域内,到处可见到处理离散信息的数字电路。数字电路制造工业的进步,使得系统设计人员能在更小的空间内实现更多的功能,从而提高系统可靠性和速度。集成电路的类型很多,从大的方面可以分为模拟电路和数字集成电路2大类。数字集成电路广泛用于计算机、控制与测量系统,以及其它电子设备中。一般说来,数字系统中运行的电信号,具大小往往并不改变,但在实践分布上却有着严格的要求,这是数字电路的一个特点。数字集成电路作为电子技术最重要的根底产品之一,已广泛
9、地深入到各个应用领域1.2 频率测量的思想和方法1 .频率测量的根本思想测量被测信号在单位时间内的脉冲个数,其数字表达式f=N/t其中:f为被测信号的频率N为脉冲的个数t为被测信号产生N个脉冲所需的时间2 .频率测量方法直接测量法:直接测量被测信号的频率,通过计数法来对被测信号在一定时间内的脉冲个数进展计数。直接测量法的构造框图如图1.2.1所示。:被测信号放大整形计数测量结果1标准时钟分频图1.2.1直接测量法的构造框图3 .误差来源技术过程中最大存在着土1个字的量化误差对时间t的准确把握,主要包括准时钟的时间准确性、整形电路、分频电路以及技术时间控制闸门的开关速度等因素。=士 |1/ft|
10、 + |G|直接法测量的最大相对误差可以表达为df/fmax=±|1/N|+|G|其中:N为脉冲的个数,G为标准时钟的频率稳定性,f为被测信号频率,t为被测信号产生N个脉冲所需的时间。4 .功能及技术指标 频率测量X围:10Hz100MHz 测量分辨率:1Hz 测量通道灵敏度:50mVpp 通道输入阻抗:不小于100k? 测量误差:±1 测量结果显示:6位数码管显示该数字频率计的操作面板如图1.2.4所示输入波形选择方波I三角波测量结果显示I正弦波IIIII被测输入OO简易数字频率计量程选择十GND图1.2.4简易数字频率计的操作面板其中,被测信号可以有三种,分别是方波、三
11、角波和正弦波;测量结果显示采用六个数码管来显示;量程分为三个,分别为:0999999Hz、09999.99kHz、099.9999MHz2VerilogHDL简介2.1 VerilogHDL的简介VerilogHDL是一种硬件描述语言(hardwaredescriptionlanguage为了制作数位电路(数字电路)而用来描述ASICs和FPGAs的设计之用。Verilog的设计者想要以C程序语言(en:Cprogramminglanguage为根底设计一种语言,可以使工程师比拟熟悉跟容易承受。事实上,它产生与C程序语言类似的不严谨性质,并且大概与Pasca很相像。这种语言跟传统的程序设计语言
12、不同,在于它的程序表达并非严格地线性(循序)执行。Verilog模式包含不同模组(modules)(勺阶层关系。模组(modules是输出(inputs)和输入(outputs)所定义出来的一个集合。在每个模组中,有一串的电线(wires'暂存器(registers)口子模组(submodules)勺定义。并且在每个模组里面,语言表达大局部都被群组成为各种的执行区块(blocks)用来定义该模组所产生的行为描述。在每个区块(blocks内,使用begin和end的关键字来区隔开来,其中的表达是循序被执行。但是同一个设计,不同的区块间的执行是平行的。这个语言的表达之子集合是可合成(syn
13、thesizable)如果在一个电路设计的模组中仅包含可合成的表达,那麽这个电路设计就可以被适当的软件,转换合成为电脑芯片的电路layout。3数字频率计系统框图3.1 数字频率计系统框图设计如图3.1.1所示的数字频率计系统电路框图图3.1.1所示的数字频率计系统电路框图3.2 数字频率计系统部件简介1 .放大整形数字频率计允许测量信号的类型有三种:方波、三角波和正弦波,并且信号的测量通道灵敏度为50mVpp,为此,需要将被测信号放大整形成标准的TTL电平的方波型号,便于CPLD/FPGA对信号脉冲的计数。2 .SW幺SW2SW3按键SW1、SW2、SW3这三个按键用来在测量的时候,用户根据
14、被测信号的大致频率X围选择不同的适合被测信号的量程。在按键的设计中,需要考虑实际按键的消抖问题3.标准时钟标准时钟为频率计测量提供精度相比照拟高的时基信号,其时间的稳定性与精度将会直接影响到频率计测量的准确性。4. LED显示模块频率计将测量的结果通过6位数码管LED来显示。4基于VerilogHDL数字频率计程序设计4.1 数字频率计系统模块划分构造数字频率计中的CPLD/FPGA是频率计的核心,主要实现在一定时间内,对被测信号的脉冲个数进展计算,并且转化为相应的频率值显示在六个数码管上。首先将系统分成七个模块来分别设计仿真。分别有以下七个模块:经过上述模块化划分后的构造框如图4.1所示放大
15、整形后的信号量程选择开关标准 时钟图4.1模块化划分后的构造计数模块counter:对包含被测信号频率信息的脉冲进展计数门控模块gate_control根据量程,控制技术模块计数。分频模块fdiv:将标准时钟分频,得到计数以及动态显示所需的时钟存放器模块flip_latch:对计数模块的计数值进展存放。多路选择模块data_mux根据动态选择信号,选择相应的需要显示的计数值动态为选择模块dispselevt输出动态显示中的位选信号BCD译码模块dispdenoder将BCD码译成数码管的显示数据4.2计数模块counter该模块主要完成对被测信号经过放大整形后输入到可编程逻辑器件的F_IN信号
16、是现在一定的时间下的计数,采用六个异步BCD码十进制计数器来实现0999999X围的计数。计数模块的构造框图如图4.2.1所示。counterENCLRF INQ53.0Q43_0Q330Q23.OQ030F_OUTinst图4.2.1计数模块的构造框图根据模块实现的功能设计VerilogHDL源代码如下:modulecounter(EN,CLR,F_IN,F_OUT,Q0,Q1,Q2,Q3,Q4,Q5);output3:0Q5,Q4,Q3,Q2,Q1,Q0;outputF_OUT;reg3:0Q5,Q4,Q3,Q2,Q1,Q0;inputEN;regF_OUT;inputCLR;regF_o
17、ut0,F_out1,F_out2,F_out3,F_out4;inputF_IN;always(posedgeF_IN)beginif(EN=1'b1)&&(CLR=1'b0)&&(Q0!=4'b1001)beginQ0<=Q0+4'b0001;F_OUT<=1'b0;endelsebeginQ0<=4'b0000;if(EN=1'b1)&&(CLR=1'b0)&&(Q1!=4'b1001)beginQ1<=Q1+4'b000
18、1;F_OUT<=1'b0;endelsebeginQ1<=4'b0000;if(EN=1'b1)&&(CLR=1'b0)&&(Q2!=4'b1001)beginQ2<=Q2+4'b0001;F_OUT<=1'b0;endelsebeginQ2<=4'b0000;if(EN=1'b1)&&(CLR=1'b0)&&(Q3!=4'b1001)beginQ3<=Q3+4'b0001;该模块定义输入端口如下:
19、F_OUT<=1'b0;endelsebeginQ3<=4'b0000;if(EN=1'b1)&&(CLR=1'b0)&&(Q4!=4'b1001)beginQ4<=Q4+4'b0001;F_OUT<=1'b0;endelsebeginQ4<=4'b0000;if(EN=1'b1)&&(CLR=1'b0)&&(Q5!=4'b1001)beginQ5<=Q5+4'b0001;F_OUT<=1
20、9;b0;endelsebeginQ5<=4'b0000;F_OUT<=1'b1;endendendendendendendEndmoduleEN:异步BCD码十进制计数器的全局使能信号CLR:异步BCD码十进制计数器复位信号F_IN:被测信号经过放大与整形处理后的信号该模块定义输出端口如下:F_OUT:超出技术X围0999999的输出信号,用来指示提醒用户选择更大的量程。 Q0:计数器的最低位输出 Q1:计数器的第5位输出 Q2:计数器的第4位输出 Q3:计数器的第3位输出 Q4:计数器的第2位输出 Q5:计数器的第1位输出在Altera公司的软件工具Quartu
21、sII中编译和波形仿真得到波形如图4.2.2所示。图4.2.2计数模块counter的仿真波形4.3门控模块gate_control门控模块实现检测外界量程的选择,并且根据量程输出控制6位BCD码十进制计数器计算器的计数时钟,以及在测量完一次信号频率后,计数器计数值清零的清零要与后级存放器的锁存时刻做很好的时序配合。应该实在计数器测量完一次信号频率后,首先将数据锁存到存放器,然后再将计数器值清零,这样可以惊醒下一次测量门控模块的构造框图如图4.3.1所示gate_control SWOLatch_EN SW1Counter_Clr SW2Counter_EN f1hzdp_s1hz f10hz
22、dp_s10hz f100hzdp_s1OOhzinst3图4.3.1门控模块构造框图根据模块实现的功能设计VerilogHDL源代码如下:modulegate_control(SW0,SW1,SW2,f1hz,f10hz,f100hz,Latch_EN,Counter_Clr,Counter_EN,dp_s1hz,dp_s10hz,dp_s100hz);outputLatch_EN;outputdp_s1hz,dp_s10hz,dp_s100hz;outputCounter_Clr;outputCounter_EN;inputSW0,SW1,SW2;input f1hz,f10hz,f100
23、hz;reg dp_s1hz,dp_s10hz,dp_s100hz;reg fref;reg wire_1;reg wire_2;/ 初始化输入以及中间量initialbeginfref <= 1'b0;wire_1 <= 1'b0;wire_2 <= 1'b0;end/ 根据不同的外界量程选择,选择相应的计数基时钟always (SW0 or SW1 or SW2 or f1hz orf10hz or f100hz)beginif(SW2 = 1'b1)beginfref <= f100hz;dp_s1hz,dp_s10hz,dp_s1
24、00hz<= 3'b001;endelse if(SW1 = 1'b1)beginfref <= f10hz;dp_s1hz,dp_s10hz,dp_s100hz<= 3'b010;endelse if(SW0 = 1'b1)beginfref <= f1hz;dp_s1hz,dp_s10hz,dp_s100hz<= 3'b100;endend/ 根据不同的计数基时钟,提供输出相应的计数器计数值的去除脉冲与锁存器锁存脉冲always (posedge fref)beginwire_1 <= ! wire_1;endal
25、ways (negedge fref)beginwire_2 <= wire_1;endassign Counter_EN = wire_1;assign Latch_EN = (! Counter_EN)& wire_2;assign Counter_Clr = (! Counter_EN) & (!Latch_EN) | (! wire_2);endmodule该模块定义输入端如下:SW0SW1、SW2:量程选择开关flhz:1Hz的标准时钟输入fl0hz:10Hz的标准时钟输入 fl00hz:100Hz的标准时钟输入该模块定义输入端口如下: Latch_EN:用来是
26、能存放器所存数据 Counter_Clr:用于计数器的清零 Counter_EN:用于使能计数器开场计数 dp_s1hz:选择999999Hz量程时,用于控制显示中的小数点位置 dp_s10hz选择9999.99Hz量程时,用于控制显示中的小数点位置 dp_s100hz选择99.9999Hz量程时,用于控制显示中的小数点位置在Altera公司的软件工具QuartusII中编译和波形仿真得到波形如图4.3.2所示。LiiiqiTnerEi孑口TnkVindniHsp.事K松除置20%Z*&4可.JoibtgnViakcmMywI侑<|'Hortti1'5zIrtMt
27、电汨tErtt5FJE D®BOEkB U上加E AODIkt Q荤aexdfejUllrBIijLiDOkB 工CuoittEl ILsid_llBItxiiuB I- -Lrl审布,:,犷&-:,;:,:,妫::必::,:麴:审,榻跖虫窗,以代:注:初工"::四:5工分般;+:&:,::翻式婿娴然觥SJ旗您统统翩掇御秘流秘掇就嫡S掇瞰S微獭幽懑就统您斓掇侬班觥说两畿酒:施赧:谢漱狡痂:淞懿痂湿缀斯:涧密出做热端必翻:麻就的蹄;曜瀚明:;嵌修啜陶艇榻姆嫩&瞬微谶滋:猿然;嫄猴诬俄谶苑域畿溯;哪:烟;澎乐窗嫩瞰母般:搬嫩瑚:初崩加法:燎:燧虎滋富溷燃
28、她跋海:烟避他做西双淞鲂恭幽嘉磁淞掰械w总曲惑潴赧宓:励战:-图4.3.2门控模块的仿真波形4.4分频模块fdiv分频模块在系统全局时钟的驱动下,经过分频得到系统中所需要的多种频率成分的时钟信号分频模块的构造框图如图4.4.1所示fdivelkf1hzf10hzfWOhzflkhzinstlI,AHIIIII.1III1HIIIII»图4.4.1分频模块构造框图根据模块实现的功能设计VerilogHDL源代码如下:modulefdiv(clk,f1hz,f10hz,f100hz,f1khz);t1=t1+1;outputf1hz,f10hz,f100hz,f1khz;inputclk
29、;regf1hz,f10hz,f100hz,f1khz;integert1=0,t2=0,t3=0,t4=0;always(posedgeclk)begin/if(t1<9999)/实际系统分频值if(t1<2)/仿真时的分频值beginf1khz<=1'b0;endelsebeginf1khz<=1'b1;t1=0;endendalways(posedgef1khz)begin/if(t2<9)/实际系统分频值beginif(t2<2)/仿真时的分频值beginf100hz<=1'b0;t2=t2+1;endelsebegin
30、f100hz<=1'b1;t2=0;endendalways(posedgef100hz)begin/if(t3<9)/实际系统分频值if(t3<2)/仿真时的分频值beginf10hz<=1'b0;t3=t3+1;endelsef10hz<=1'b1;t3=0;endendalways(posedgef10hz)begin/if(t4<9)/实际系统分频值if(t4<2)/仿真时的分频值beginf1hz<=1'b0;t4=t4+1;endelsebeginf1hz<=1'b1;t4=0;enden
31、dendmodule该模块定义输入端口如下: Clk:全局系统时钟信号该模块定义输出端口如下: F1hz:输出1Hz的时钟信号 F10hz:输出1Hz的时钟信号 F1khz:输出1Hz的时钟信号在Altera公司的软件工具QuartusII中编译和波形仿真得到波形如图4.4.2所小0图4.4.2分频模块的仿真波形4.5 存放器模块flip_latch存放器模块实现每一个测量频率时,计数器计算值的暂时存储。存放器模块的构造框图如图4.5.1所示。inst2A53OA43*OJA33.OA23.OA13.OAO3.O elkQ33,Q04 3,. OQ33 ,.O02(3.0Q13 OQO3 Of
32、liplatch图4.5.1存放器模块根据模块实现的功能设计VerilogHDL源代码如下:moduleflip_latch(clk,A0,A1,A2,A3,A4,A5,Q0,Q1,Q2,Q3,Q4,Q5);output3:0Q0,Q1,Q2,Q3,Q4,Q5;inputclk;input3:0A0,A1,A2,A3,A4,A5;reg3:0Q0,Q1,Q2,Q3,Q4,Q5;beginalways(posedgeclk)Q0<=A0;Q1 <= A1;Q4 <= A4;Q2 <= A2;Q5 <= A5;Q3 <= A3;endEndmodule该模块定义
33、输入端口如下: clk:所存数据信号输入,当clk的上升沿到来时,存放器将输入端信号锁存进存放器,并且改变输出。 A0,A1,A2,A3,A4,A5:存放器的数据输入端该模块定义输出端口如下: Q0,Q1,Q2,Q3,Q4,Q5存放器的数据输出端。在Altera公司的软件工具QuartusII中编译和波形仿真得到波形如图4.5.2所0 fR | tWwlmhrIQISm口口口口口口吕IrJlgdo吕fl n- MU1m闻wJnJde T TdU&SIMK叩口於 044可 sflwB=anEflaaBi Itl:jh注篁sg.ID D_L,丁;ghIUn 山IUHif加 iMi::硼mw
34、Iffl二一 IPIMIAlli ;g J仇皿工nu工111Ml!LLIOlloiXjmIunIlaini:Id 同:1 口日X1 限IJ Hi1ESil:MIL:UHJ1IHI11WJMilEEH1-nn-ncrEK-1Q.16rwSEQfEnd-Dp图4.5.2存放器模块的仿真波形4.6 多路选择模块datamux多路选择模块实现测量频率值的分时显示,即动态显示。经过多路选择器模块来分时地传输数据多路选择模块的构造如图4.6.1所示inst8.A53.OA43.OA33,0A230一A130一AOPQQ3.Odisp_select2.OdatamuxIIIIiTThHIIBBlBiilII
35、I图4.6.1多路选择模块构造框图根据模块实现的功能设计VerilogHDL源代码如下:moduledata_mux(disp_select,A0,A1,A2,A3,A4,A5,Q);output3:0Q;input2:0disp_select;input3:0A0,A1,A2,A3,A4,A5;reg3:0Q;always(disp_select,A5,A4,A3,A2,A1,A0,Q)begincase(disp_select)3'b000:Q<=A5;3'b001:Q<=A4;3'b010:Q<=A3;3'b011:Q<=A2;3&
36、#39;b100:Q<=A1;3'b101:Q<=A0;default:Q<=4'b0;endcaseendEndmodule该模块定义输入端口如下:disp_select选择信号输入A0,A1,A2,A3,A4,A5:多路选择模块的数据输入端口该模块定义输出端口如下:多路选择模块的数据输出端口。在Altera公司的软件工具QuartusII中编译和波形仿真得到波形如图4.6.2所酒31虬3MidwTnEla,lOtEinr工1"Irfwwi2的*q1b1=:piEb|1ji-瓦|JDliiiM3fiji刘pikCDfieEnsJFjBADI1HEO
37、JmiDXeiiImooXsioi-uCil-MJED1-,jrLJ-£H黑【IMI1119T151、i51DIIlli5附LITO:imi_inp_JL»»n网迎电11jm:卬而|如共OtdU工Hi上4aMflmithMfrarantflLQI:_X_x_Iim迎iirl£<dOlifDioYoiiTw旧编-J皿wle建tn】LI|E3LiLFl由Q!llti4.7动态位选模块dispselect动态位选模块用来驱动数码动态地显示频率测量数据,分时地选择各个数码管进展显示动态位选的构造框图4.7.1所示。dispselect:一elkQ50Tdi
38、sp_select2,.0inst7卜、严'"',r,,、!、h、产%,-图4.7.1动态位选模块的构造框图根据模块实现的功能设计module dispselect(clk,disp_select,Q);output 5:0 Q;output 2:0 disp_select;input clk;reg 5:0 Q;reg 2:0 disp_select;always (posedge clk)beginif(disp_select < 3'b101)disp_select <= disp_select +Verilog HDL源代码如下:elsed
39、isp_select <= 3'b0;case(disp_select)3'b000: Q <= 6'b100000;3'b001: Q <= 6'b010000;3'b010: Q <= 6'b001000;3'b011: Q <= 6'b000100;3'b100: Q <= 6'b000010;3'b101: Q <= 6'b000001;default: Q <= 6'b000000;endendmodule该模块定义输入端口如
40、下: clk:动态位选的时钟信号输入,一般取1KHz左右的标准时钟。该模块定义输出端口如下: disp_select动态位选中间量输出,用于与系统中其他模块之间的同步。 Q:动态位选信号输出,可以直接接到数码管的公共端。在Altera公司的软件工具QuartusII中编译和波形仿真得到波形如图4.7.2所示。图4.7.2动态位选模块的仿真波形4.8BCD译码模块dispdecoderBCD译码模块主要实现BCD码到7段数码管显示码字段的转换,同时,考虑到频率测量中的一些“零的处理,比方选择量程1999999Hz,但被测信号频率为100Hz,这样在显示的时候就需要将6为数码管的前三位屏蔽。BCD
41、译码模块的构造框图如图4.7.1所示。dispdecoderi,data_in30data_out6C1¥1a«,disp_select20加dp_s1hzdp_s1Ohzdp_s100hz'Q53,0*'Q4J0FL1Q&3XL1Q23.O*'Qip.Ol'Q03.01Icouriter_oLi1rinstSB*iAimM&Bhsiaji,imBLhhaaAiS.MJIB&i1111sUdijI.,金ii&Hj1.品口鼻14JiUJijiUMAjia图4.8.1BCD译码模块的构造框图根据模块实现的功能设计V
42、erilogHDL源代码如下:module dispdecoder(data_in,disp_select,dp_s1hz,dp_s10hz,dp_s100hz,Q5,Q4,Q3,Q2,Q1,Q0,counter_out,data_out,input 2:0 disp_select;input dp_s1hz,dp_s10hz,dp_s100hz;input 3:0 Q5,Q4,Q3,Q2,Q1,Q0;input counter_out;reg dp;reg 6:0 data_out;reg hide;dp);initialoutput6:0data_out;beginoutputdp;dp&
43、lt;=1'b0;hide <= 1'b0;input3:0data_in;end7'b1110000;/7/译码显示数据always(data_in,hide,data_out)beginif(hide=1'b0)begincase(data_in)4'b0000:data_out<=7'b1111110;/04'b0001:data_out<=7'b0110000;/14'b0010:data_out<=7'b1101101;/24'b0011:data_out<=7
44、9;b1111001;/34'b0100:data_out<=7'b0110011;/44'b0101:data_out<=7'b1011011;/54'b0110:data_out<=7'b1011111;/64'b0111:data_out<=4'b1000:data_out<=7'b1111111;/84'b1001:data_out<=7'b1110011;/9default:data_out<=7'b0000000;endcaseendend/小数
45、点位置与零数字的处理always(disp_select,dp_s1hz,dp_s10hz,dp_s100hz,Q5,Q4,Q3,Q2,Q1,counter_out,dp,hide)beginif(disp_select=3'b001)&&(dp_s100hz=1'b1)|(disp_select=3'b011)&&(dp_s10hz=1'b1)|(disp_select=3'b101)&&(dp_s1hz=1'b1)dp <= 1'b1;1'b0)&&(Q5=
46、4'b0)&&elsedp<=1'b0;case(disp_select)3'b000:beginif(counter_out=1'b0)&&(Q5=4'b0)hide<=1'b1;elsehide<=1'b0;end3'b001:beginif(counter_out=1'b0)&&(Q5=4'b0)&&(Q4=4'b0)&&(dp_s100hz!=1'b1)hide<=1'b1;els
47、ehide<=1'b0;end3'b010:beginif(counter_out=(Q4=4'b0)&&(Q3=4'b0)&&(dp_s100hz!=1'b1)hide<=1'b1;elsehide<=1'b0;end3'b011:beginif(counter_out1'b0)&&(Q5=4'b0)&&(Q4=4'b0)&&(Q3=4'b0)&&(Q2=4'b0)&&
48、amp;(dp_s100hz!=1'b1)&&(dp_s10hz!=1'b1)hide<=1'b1;elsehide<=1'b0;end3'b100:beginif(counter_out1'b0) && (Q5 = 4'b0) &&else(Q4=4'b0)&&(Q3=4'b0)&&(Q2=4'b0)&&(Q1=4'b0)&&(dp_s100hz!=1'b1)&&am
49、p;(dp_s10hz!=1'b1)hide<=1'b1;hide<=1'b0;enddefault:hide<=1'b0;endcaseendendmodule该模块定义输入端口如下: data_in:BCD码字输入信号 disp_select来自动态显示位模块,实现两者之间的同步dp_s1hz,dp_s10h4dp_s100hz输入小数点位置控制信号来自门控模块 Q5,Q4,Q3,Q2,Q1,QQ计数器的计数值输入,用来控制“零显示控制 counter_out计数器计数溢出信号,用来提示用户更换更大量程该模块定义输出端口如下: data_o
50、ut:经过译码后的7段数码管显示数据输出,可以直接连接到数码管的数据端口 dp:小数点控制信号在Altera公司的软件工具QuartusII中编译和波形仿真得到波形如图4.8.2所示。M7EHer卬吧下,上"nsT.IBn5MEntP11Ifi0EX0II30QEEI加.口3MEDIVE.二_I_:i.I_IF豆-一三比正正应亘。LG05ucDOS!S3DJt曲inXoaiTtC-JW"IR皿NDI:nilX叩5CUQI£3IC(mm;l3JtmtnI.1叫口赳£皿1Jnun1moi:1DLQDXDOUatOln.】QLDJrQJLiIaLJy.LDDI
51、X.QE.JDbuElLDn;inLi-J.amJILVL';Icnn二I:口和|ruum,IQ州JmIjllDICMBTWrE*"t<|p_ilCCfars巾BaiS雪田as5*修B血,lQ4j/皿*幅国也innm*激獭源阴蝴瞰眼踹冷颇微瞬般顺瞄瞅娥娜能黜雌幽减娜般娴殿觥微蹦岛睇玄图4.8.2BCD译码模块的仿真波形4.9顶层电路top在设计完各个模块后,需要将各个模块有机地组合成一个整体,最后来实现系统的功能。在数字频率计中,同时采用了电路原理图示的设计以及VerilogHDL语言来编写的顶层电路,其中顶层如图4.9.1所示。用VerilogHDL语言描述如下:mo
52、dulemain(Clock,SW2,SW1,SW0,F_in,over_alarm,dp,wireSYNTHESIZED_WIRE_0;wireSYNTHESIZED_WIRE_1;wireSYNTHESIZED_WIRE_2;wire3:0SYNTHESIZED_WIRE_32;wire3:0SYNTHESIZED_WIRE_33;disp_data,wire3:0disp_selectSYNTHESIZED_WIRE_34;);wire3:0SYNTHESIZED_WIRE_35;inputClock;wire3:0inputSW2;SYNTHESIZED_WIRE_36;inputSW
53、1;wire3:0inputSW0;SYNTHESIZED_WIRE_37;inputF_in;wireSYNTHESIZED_WIRE_9;outputover_alarm;wireoutputdp;SYNTHESIZED_WIRE_10;output6:0disp_data;wireoutput5:0disp_select;SYNTHESIZED_WIRE_11;wireSYNTHESIZED_WIRE_12;wireSYNTHESIZED_WIRE_13;wireSYNTHESIZED_WIRE_14;wireSYNTHESIZED_WIRE_15;wire3:0SYNTHESIZED_
54、WIRE_16;wire2:0SYNTHESIZED_WIRE_38;wireSYNTHESIZED_WIRE_24;wire3:0SYNTHESIZED_WIRE_25;wire3:0SYNTHESIZED_WIRE_26;wire3:0SYNTHESIZED_WIRE_27;wire3:0SYNTHESIZED_WIRE_28;wire3:0SYNTHESIZED_WIRE_29;wire3:0SYNTHESIZED_WIRE_30;assignover_alarm=SYNTHESIZED_WIRE_15;counterb2v_inst(.EN(SYNTHESIZED_WIRE_0),.CLR(SYNTHESIZED_WIRE_1),.F_IN(F_in),.F_OUT(SYNTHESIZED
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 4498.1-2025橡胶灰分的测定第1部分:马弗炉法
- GB 45669.4-2025黄河流域工业用水定额第4部分:水泥
- 2025年信息处理考试深化试题及答案
- 高考语文复习突破口及试题与答案2023
- 行政管理的道德困境与试题答案解析
- 高考数学集中训练模块试题及答案
- 仓库出现火灾应急预案(3篇)
- 高考数学解题效率提升分享试题及答案
- 通信公司火灾应急预案(3篇)
- 采油树火灾应急预案(3篇)
- 2023年广东省中考物理试卷分析
- 2023中小学德育工作指南德育工作实施方案
- 团体体检报告格式模板范文
- 汉heidenhain itnc用户手册探测循环
- 学习领会《在二十届中央政治局第四次集体学习时的讲话》心得
- 水稻联合收割机使用与维护
- 供应商考核评分表
- 无土栽培学(全套课件660P)
- 《表观遗传》教学设计
- 20千伏及以下配电网工程业主项目部标准化管理手册
- GB/T 3683-2011橡胶软管及软管组合件油基或水基流体适用的钢丝编织增强液压型规范
评论
0/150
提交评论