您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 2006112020330简易数字频率计的设计
HUBEINORMALUNIVERSITY电工电子实验报告课程名称EDA技术基础实验名称综合实验总结选题性质设计学号姓名2006112020330杨炜专业名称电子信息科学与技术所在院系物理与电子科学学院填表时间2008.06.20湖北师范学院电工电子实验教学示范中心·《EDA技术基础》实验第1页共11页简易数字频率计的设计一、任务解析被测信号通过门控电路送到计数器中,再从计数器中传送到显示数据缓冲buffer中,最后通过数码管显示出来。信号的传输过程就是这样。但是,我们要通过数码管显示频率,就需要对输入的信号进行控制,归根到底是对输入的时间进行控制,需要在1s内对输入的信号进行计数,因此,1hz精密时钟的设置非常重要,它既要控制门控电路来限制被测信号的输入时间,还要对计数器进行及时的清零,同时,还得对buffer里的数据进行更新。在实验中,就是通过1hz精密时钟和门控电路来实现对被测信号的控制的。本实验中门控电路是用与非门来实现的,如下图:湖北师范学院电工电子实验教学示范中心·《EDA技术基础》实验第2页共11页门控电路门控电路使99999999计数器的工作状态与buffer的工作状态恰好相反,即当计数器计数时,buffer不工作,计数器不向buffer中输入数据,也就是,当clks输入为0时,通过与非门向计数器输入就是1,计数器计数,但是向buffer中输入的就是0,buffer就不工作了,从而实现了对计数器和buffer进行分时控制,即能实现数据的输入和清零,也能实现数据的更新。在1s内,也就是在1hz精密时钟的控制下,99999999计数器是对输入的被测信号进行计数,1s内计的数值就是被测信号的频率。1s后计数器停止计数,buffer开始工作,计数器中的数据传到buffer中,再通过数码管扫描显示出来,数码管显示的值即为被测信号的频率。二、方案论证把抽象的原理框图改写成直观易懂的实验原理图如下:湖北师范学院电工电子实验教学示范中心·《EDA技术基础》实验第3页共11页三、实验步骤在实际设计过程中,采用的是分模块来设计的,最后把各个模块连接成实验原理图。下面介绍各个模块。1、1hz精密时钟的设计模块图如下:程序如下:moduleyihz(clk24M,clko);inputclk24M;outputclko;parameterN=24000000;parametern=24;reg[n:0]cnt;regclko;always@(posedgeclk24M)湖北师范学院电工电子实验教学示范中心·《EDA技术基础》实验第4页共11页beginif(cnt==N)begincnt=0;clko=1;endelsebegincnt=cnt+1;clko=0;endendendmodule由于实际的实验箱上没有1hz的频率发生器,只有24Mhz的频率,所以要把24Mhz的分频,使产生1hz的信号。1hz就是周期为1s的控制输入信号。2、99999999计数器的设计模块如下:程序如下:modulejishu(clk,rest,a,b,c,d,e,f,g,h);inputclk,rest;output[3:0]a,b,c,d,e,f,g,h;reg[3:0]a,b,c,d,e,f,g,h;always@(posedgeclkornegedgerest)beginif(!rest)begina=0;b=0;c=0;d=0;e=0;f=0;g=0;h=0;endelsebegina=a+1;if(a==10)begina=0;b=b+1;c=c;d=d;e=e;f=f;g=g;h=h;endelsebeginb=b;c=c;d=d;e=e;f=f;g=g;h=h;endif(b==10)beginb=0;c=c+1;d=d;e=e;f=f;g=g;h=h;endelsebeginc=c;d=d;e=e;f=f;g=g;h=h;endif(c==10)beginc=0;d=d+1;e=e;f=f;g=g;h=h;endelsebegind=d;e=e;f=f;g=g;h=h;end湖北师范学院电工电子实验教学示范中心·《EDA技术基础》实验第5页共11页if(d==10)begind=0;e=e+1;f=f;g=g;h=h;endelsebegine=e;f=f;g=g;h=h;endif(e==10)begine=0;f=f+1;g=g;h=h;endelsebeginf=f;g=g;h=h;endif(f==10)beginf=0;g=g+1;h=h;endelsebeging=g;h=h;endif(g==10)beging=0;h=h+1;endelseh=h;if(h==10)begina=0;b=0;c=0;d=0;e=0;f=0;g=0;h=0;endendendendmodule99999999计数器是本次实验的关键所在,它的主要功能是:在1hz精密时钟和门控电路的控制下,在1s的时间内,对输入信号进行计数,1s后,由于门控电路的存在,计数器停止计数。8个数码管采用8位A,B,C,D,E,F,G,H来计数输出。Clk、rest是计数的时钟信号,但是当rest为0时,计数器停止计数。3、显示数据缓冲buffer的设计模块如下:程序如下:modulebuffer(a,b,c,d,e,f,g,h,clk,n1,n2,n3,n4,n5,n6,n7,n8);inputclk;input[3:0]a,b,c,d,e,f,g,h;output[3:0]n1,n2,n3,n4,n5,n6,n7,n8;reg[3:0]n1,n2,n3,n4,n5,n6,n7,n8;湖北师范学院电工电子实验教学示范中心·《EDA技术基础》实验第6页共11页always@(clk)beginif(clk==1)beginn1=a;n2=b;n3=c;n4=d;n5=e;n6=f;n7=g;n8=h;endendendmodulebuffer的功能是用于数据的缓冲与锁存。当计数器正在计数时,它的输入时钟信号clk为0,buffer不工作,当计数器不工作时,buffer的输入时钟信号clk为1,buffer开始工作,即把计数器中的数据传到buffer中来锁存。由于门控电路的存在,计数器与buffer分时工作,避免了二者的冲突。当下一个计数开始时,buffer又停止工作,它就把上次存储的数据锁存起来了。当buffer再次工作时,就实现了对数据的更新。4、扫描电路的设计模块图如下:程序如下:modulesaomiao(n1,n2,n3,n4,n5,n6,n7,n8,clk,sel,q);input[3:0]n1,n2,n3,n4,n5,n6,n7,n8;inputclk;湖北师范学院电工电子实验教学示范中心·《EDA技术基础》实验第7页共11页output[2:0]sel;output[3:0]q;reg[2:0]sel;reg[3:0]q;always@(posedgeclk)beginsel=sel+1;endalways@(sel)begincase(sel)4'b0000:q=n1;4'b0001:q=n2;4'b0010:q=n3;4'b0011:q=n4;4'b0100:q=n5;4'b0101:q=n6;4'b0110:q=n7;4'b0111:q=n8;endcaseendendmodule扫描电路就是对buffer中传送过来的数据进行扫描,通过sel对8位数码管进行选择,确定显示哪一个数码管。5、显示电路的设计模块图如下:程序如下:modulexianshi(q,out);input[3:0]q;output[6:0]out;湖北师范学院电工电子实验教学示范中心·《EDA技术基础》实验第8页共11页reg[6:0]out;always@(q)begincase(q)4'b0000:out=7'b0111111;4'b0001:out=7'b0000110;4'b0010:out=7'b1011011;4'b0011:out=7'b1001111;4'b0100:out=7'b1100110;4'b0101:out=7'b1101101;4'b0110:out=7'b1111101;4'b0111:out=7'b0000110;4'b1000:out=7'b1111111;4'b1001:out=7'b1100111;endcaseendendmodule显示电路是将扫描电路扫描的那一个数码管用7段led显示出来,显示结果是从0至9.以上5部分就是顶层原理图的主要部分。四、实验分析1、实验箱上的演示结果如下:当信号发生器上的频率为500hz时,实验箱上数码管显示为499—500,在误差范围内基本属于正常。2、在程序的编写过程中,计数器这一块很快就编写出来了,可是在实验箱上运行时,这块确是出错最多的一部分。首先,在编译时有31个警告,最后找到问题所在,就是多了一句begina=0;b=0;c=0;d=0;e=0;f=0;g=;h=0;end,原本以为在计数开始时需要人为的给8个数码管清零,但在设计时有一步if(!rest)begina=0;b=0;c=0;d=0;e=0;f=0;g=0;h=0;end就已经具有清零功能,这样多出的那句就是画蛇添足,而且导致显示全为0,没有计数现象。同时下面的计数部分,应该是嵌套在if(!rest)……else的下面,不能和if(!rest)并列,因为清零功能应该优先于计数功能的。其他模块的工作基本是正常的。改正错误后,如上述程序,电路在实验箱上运行正常。湖北师范学院电工电子实验教学示范中心·《EDA技术基础》实验第9页共11页五、经验总结1、学verilog已经有一学期了,现在对那些原理框图并不陌生了。而且田sir基本上可以说是把设计思路已经给出来了,剩下我们要做的就是把那些思想用电路来进行物理实现。2、在选设计性实验时,对自己不自信,不知道选哪一个,总担心如果自己做不出来会怎样怎样的,这样徘徊了好几天,最后抱着豁出去的态度决定先做个简易频率计试一下。当时我们班有好几个都在做频率计,而且他们的基础比我好,遇到问题我也不敢问他们,因为如果问了,他们就会跟我讲,但是讲的全是他们自己的设计思路,我自己的想法可能就会被丢掉。于是,我用了一下午的时间就坐在电脑旁边,想设计思路,晚上就在电脑上敲。幸好之前做过9999计数器,程序的大致模块顺利的写出来了。在试验箱上运行的时候,还是计数那一个模块出了点问题,找同学帮忙解决,可是试了好几次还是没办法计数,最后还是田sir帮助解决的。看到现象出来了,心里真的很高兴。感谢田sir。湖北师范学院电工电子实验教学示范中心·《EDA技术基础》实验第10页共11页薃肀莂蒃袂肀肂虿袈聿芄薂螄肈莇螇蚀肇葿薀罿肆腿莃袅肅芁薈螁膄莃莁蚇膄肃薇薃膃芅荿羁膂莈蚅袇膁蒀蒈螃膀膀蚃虿腿节蒆羈芈莄蚁袄芈蒆蒄螀芇膆蚀蚆袃莈蒃蚂袂蒁螈羀袁膀薁袆袁芃螆螂袀莅蕿蚈衿蒇莂羇羈膇薇袃羇艿莀蝿羆蒂薆螅羅膁蒈蚁羅芄蚄罿羄莆蒇袅羃蒈蚂螁羂膈蒅蚇肁芀蚁薃肀莂蒃袂肀肂虿袈聿芄薂螄肈莇螇蚀肇葿薀罿肆腿莃袅肅芁薈螁膄莃莁蚇膄肃薇薃膃芅荿羁膂莈蚅袇膁蒀蒈螃膀膀蚃虿腿节蒆羈芈莄蚁袄芈蒆蒄螀芇膆蚀蚆袃莈蒃蚂袂蒁螈羀袁膀薁袆袁芃螆螂袀莅蕿蚈衿蒇莂羇羈膇薇袃羇艿莀蝿羆蒂薆螅羅膁蒈蚁羅芄蚄罿羄莆蒇袅羃蒈蚂螁羂膈蒅蚇肁芀蚁薃肀莂蒃袂肀肂虿袈聿芄薂螄肈莇螇蚀肇葿薀罿肆腿莃袅肅芁薈螁膄莃莁蚇膄肃薇薃膃芅荿螀羀膆蒃蚆肀芈芆薂聿羈蒂蒈肈肀芅袆肇芃薀螂肆莅莃蚈肅肅薈薄蚂膇莁蒀蚁艿薇蝿螀罿荿蚅蝿肁薅薁螈膄莈薇螈莆膀袆螇肆蒆螁螆膈艿蚇螅芀蒄薃螄羀芇葿袃肂蒃螈袂膄芅蚄袂芇蒁蚀袁肆芄薆袀腿蕿蒂衿芁莂螁袈羁薇蚇袇肃莀薃羆膅薆葿羆芈荿螇羅羇膁螃羄膀莇虿羃节芀薅羂羂蒅蒁羁肄芈螀羀膆蒃蚆肀芈芆薂聿羈蒂蒈肈肀芅袆肇芃薀螂肆莅莃蚈肅肅薈薄蚂膇莁蒀蚁艿薇蝿螀罿荿蚅蝿肁薅薁螈膄莈薇螈莆膀袆螇肆蒆螁螆膈艿蚇螅芀蒄薃螄羀芇葿袃肂蒃螈袂膄芅蚄袂芇蒁蚀袁肆芄薆袀腿蕿蒂衿芁莂螁袈羁薇
本文标题:2006112020330简易数字频率计的设计
链接地址:https://www.777doc.com/doc-2914127 .html