EDA频率计.docx
- 文档编号:29853172
- 上传时间:2023-07-27
- 格式:DOCX
- 页数:16
- 大小:120.64KB
EDA频率计.docx
《EDA频率计.docx》由会员分享,可在线阅读,更多相关《EDA频率计.docx(16页珍藏版)》请在冰豆网上搜索。
EDA频率计
目录
一、摘要…………………………………………………2
二、引言…………………………………………………3
三、设计…………………………………………………3
一)设计要求………………………………………3
二)设计提示………………………………………3
三)方案实现………………………………………5
1.测量/校验选择模块…………………………………5
2.二分频模块……………………………………………5
3.计数器模块……………………………………………5
4.送存选择/报警电路模块……………………………6
5.锁存器模块……………………………………………7
6.扫描显示模块…………………………………………8
7.整体设计图……………………………………………10
四、实验心得…………………………………………11
五、参考文献…………………………………………11
摘要
随着EDA技术发展和应用领域的扩大与深入,EDA技术在电子信息,通信自动控制及计算机应用等领域的重要性突出。
设计频率计测频有两种方式:
一是直接测频法,即在一定闸门时间内测量被测信号的脉冲个数;二是间接测频法,如周期测频法。
直接测频法适用于高频信号的频率测量,间接测频法适用于低频信号的频率测量。
本次设计用直接测频法测量频率,并以verilog语言设计输入,采用模块化单元构建系统,并且用仿真器对其进行仿真。
关键词:
EDA频率计仿真verilog语言
Abstract
WiththefieldofEDAtechnologydevelopmentandapplicationoftheexpansionandin-depth,EDAtechnologyinelectronicinformation,communicationsautomaticcontrolandcomputerapplicationareassuchastheimportanceofoutstanding.
Designfrequencymetermeasuringfrequencyintwoways:
First,directmeasurementofthefrequencymethod,thatis,inacertainperiodoftimethegatemeasurementsofthesignalpulses;thesecondisanindirectfrequencymeasurementmethod,suchascyclefrequencymeasurementmethod.Directfrequencymeasurementmethodformeasuringthefrequencyofhigh-frequencysignals,indirectmethodissuitableforlowfrequencymeasurementsignalfrequencymeasurements.Thedesignoffrequencymeasurementwithadirectmeasurementofthefrequency,andinputveriloglanguagedesign,theuseofmodularunitconstructionsystemanditssimulationwithasimulator.
Keywords:
EDA,frequencymeter,simulation,veriloglanguage
引言
所谓频率,就是周期性信号在单位时间内的变化次数,本频率计设计测量频率的基本原理是,首先让被测信号与标准信号一起通过一个闸门,然后用计数器计数信号脉冲的个数,把标准时间内的计数的结果,用锁存器锁存起来,然后用显示器译码,把锁存的结果用数码显示管显示出来。
根据频率计的设计原理,本设计方案的基本思想是分为五个模块来实现其功能,即分为二分频模块,测量/校验选择模块,计数器模块,送存选择报警模块,锁存模块,扫描显示模块。
并且用verilog语言进行编程,以实现各个模块的功能。
设计
一·设计要求
1.设计一个能测量方波信号频率的频率计,测量结果用十进制数显示
2.测量的频率范围是1~10KHz,分成两个频段,即1~999Hz,1k~10KHz,用三位数码管显示测量频率,用LED显示表示单位,如亮绿灯表示Hz,亮红灯表示KHz。
3.具有自动校验和测量两种功能,即能用标准时钟校验测量精度。
4.具有超量程报警功能,在超出目前量程档的测量范围时,发出灯光和音响信号。
二·设计提示
脉冲信号的频率就是在单位时间内所产生的脉冲个数,其表达式为f=N/T,f为被测信号的频率,N为计数器所累计的脉冲个数,T为产生N个脉冲所需的时间。
所以,在1秒时间内计数器所记录的结果,就是被测信号的频率。
测量/校验选择模块
计数器模块
送存选择报警模块
锁存模块
扫描显示模块
测量/校验选择模块
输入信号:
选择信号selet
被测信号meas
测试信号test
输出信号:
CP1
当selet=0时,为测量状态,CP1=meas;
当selet=1时,为校验状态,CP1=test。
校验与测量共用一个电路,只是被测信号CP1不同而已。
设置1秒定时信号(周期为2秒),在1秒定时时间内的所有被测信号送计数器输入端。
计数器对CP1信号进行计数,在1秒定时结束后,将计数器结果送锁存器锁存,同时将计数器清零,为下一次采样测量做好准备。
999Hz量程档,数码管显示的数值为被测信号频率值,Y显示绿色,即单位为Hz;设置量程档控制开关K,单位显示信号Y,当K=0时,为1
10KHz量程档,被测信号频率值为数码管显示的数值乘1000,Y显示红色,即单位为KHz。
当K=1时,为1KHz
10KHz(K=1),计数器进行四位十进制计数,取高三位显示,最大显示值为9.99KHz,如果被测信号频率超过此范围,报警。
设置超出量程档测量范围示警信号alert。
计数器由四级十进制计数构成(带进位C)。
若被测信号频率小于1KHz(K=0),则计数器只进行三级十进制计数,最大显示值为999.Hz,如果被测信号频率超过此范围,扬声器报警;若被测信号大于1KHz(K=1),计数器进行四位十进制计数,取高三位显示,最大显示值为99.9kHz,如果被测信号频率超过此范围、扬声器报警。
三·方案实现
测量/校验选择模块
modulein(test,meas,select,cp1);
outputcp1;
regcp1;
inputtest;
inputmeas;
inputselect;
always@
(1)
begin
if(!
select)cp1<=test;
elsecp1<=meas;
end
endmodule
仿真图形
二分频模块
modulefp(clk_in,clk);
outputclk;
regclk;
inputclk_in;
always@(posedgeclk_in)
beginclk<=clk+1;
end
endmodule
仿真图形
计数器模块
modulejsq10k(q4,q3,q2,q1,q0,clk,rd,C);
output[3:
0]q0;
output[3:
0]q1;
output[3:
0]q2;
output[3:
0]q3;
output[3:
0]q4;
output[3:
0]C;
reg[3:
0]q0;
reg[3:
0]q1;
reg[3:
0]q2;
reg[3:
0]q3;
reg[3:
0]q4;
reg[3:
0]C;
inputclk,rd;
always@(posedgeclkornegedgerd)
begin
q0<=q0+1;
if(~rd){C,q4,q3,q2,q1,q0}<=0;
elseif(q0==9)
begin
q1<=q1+1;q0<=0;
if(q1==9)
begin
q2<=q2+1;q1<=0;
if(q2==9)
begin
q3<=q3+1;q2<=0;
if(q3==9)
begin
q4<=q4+1;q3<=0;
if(q4==9)beginC<=C+1;q4<=0;
end
end
end
end
end
end
endmodule
仿真图形
送存选择/报警电路模块
modulechoice(q0,q1,q2,q3,q4,C,D1,D2,D3,k,alert);
output[3:
0]D1;
output[3:
0]D2;
output[3:
0]D3;
outputalert;
reg[3:
0]D1;
reg[3:
0]D2;
reg[3:
0]D3;
regalert;
input[3:
0]q0;
input[3:
0]q1;
input[3:
0]q2;
input[3:
0]q3;
input[3:
0]q4;
input[3:
0]C;
inputk;
always@
(1)
beginalert<=0;
if(~k)
if(q3!
=0)alert<=1;
elsebegin
D3<=q2;
D2<=q1;
D1<=q0;
end
elseif(k)
if(C!
=0)alert<=1;
elsebegin
D3<=q4;
D2<=q3;
D1<=q2;
end
end
endmodule
锁存器模块
modulesuo(D1,D2,D3,G1,G2,G3,clk);
input[3:
0]D3,D2,D1;
inputclk;
output[3:
0]G1,G2,G3;
reg[3:
0]G1,G2,G3;
always@(negedgeclk)
begin
G3<=D3;G2<=D2;G1<=D1;
end
endmodule
仿真图形
扫描显示模块
modulesaomiao(in1,in2,in3,in4,in5,in6,in7,in8,clk,ms1,ms2,
ms3,ms4,ms5,ms6,ms7,ms8,a,b,c,d,e,f,g,h,k);
inputclk,k;
input[3:
0]in1,in2,in3,in4,in5,in6,in7,in8;
outputms1,ms2,ms3,ms4,ms5,ms6,ms7,ms8,a,b,c,d,e,f,g,h;
regms1,ms2,ms3,ms4,ms5,ms6,ms7,ms8,a,b,c,d,e,f,g,h;
reg[3:
0]temp,flag;
always@(posedgeclk)
begin
if(k==1)
begin
{ms1,ms2,ms3,ms4,ms5,ms6,ms7,ms8}=8'b00000000;
flag=flag+1;
case(flag)
0:
begintemp=in1;ms1=1;end
1:
begintemp=in2;ms2=1;end
2:
begintemp=in3;ms3=1;end
3:
begintemp=in4;ms4=1;end
4:
begintemp=in5;ms5=1;end
5:
begintemp=in6;ms6=1;end
6:
begintemp=in7;ms7=1;end
7:
begintemp=in8;ms8=1;end
endcase
if(ms2==1)
begin
case(temp)
4'd0:
{a,b,c,d,e,f,g,h}=8'b11111101;
4'd1:
{a,b,c,d,e,f,g,h}=8'b01100001;
4'd2:
{a,b,c,d,e,f,g,h}=8'b11011011;
4'd3:
{a,b,c,d,e,f,g,h}=8'b11110011;
4'd4:
{a,b,c,d,e,f,g,h}=8'b01100111;
4'd5:
{a,b,c,d,e,f,g,h}=8'b10110111;
4'd6:
{a,b,c,d,e,f,g,h}=8'b10111111;
4'd7:
{a,b,c,d,e,f,g,h}=8'b11100001;
4'd8:
{a,b,c,d,e,f,g,h}=8'b11111111;
4'd9:
{a,b,c,d,e,f,g,h}=8'b11110111;
4'hA:
{a,b,c,d,e,f,g,h}=8'b11101111;
4'hB:
{a,b,c,d,e,f,g,h}=8'b00111111;
4'hC:
{a,b,c,d,e,f,g,h}=8'b10011101;
4'hD:
{a,b,c,d,e,f,g,h}=8'b01111011;
4'hE:
{a,b,c,d,e,f,g,h}=8'b10011111;
4'hF:
{a,b,c,d,e,f,g,h}=8'b10001111;
default:
{a,b,c,d,e,f,g,h}=8'b11111101;
endcase
end
else
begin
case(temp)
4'd0:
{a,b,c,d,e,f,g,h}=8'b11111100;
4'd1:
{a,b,c,d,e,f,g,h}=8'b01100000;4'd2:
{a,b,c,d,e,f,g,h}=8'b11011010;4'd3:
{a,b,c,d,e,f,g,h}=8'b11110010;
4'd4:
{a,b,c,d,e,f,g,h}=8'b01100110;
4'd5:
{a,b,c,d,e,f,g,h}=8'b10110110;
4'd6:
{a,b,c,d,e,f,g,h}=8'b10111110;
4'd7:
{a,b,c,d,e,f,g,h}=8'b11100000;
4'd8:
{a,b,c,d,e,f,g,h}=8'b11111110;
4'd9:
{a,b,c,d,e,f,g,h}=8'b11110110;
4'hA:
{a,b,c,d,e,f,g,h}=8'b11101110;
4'hB:
{a,b,c,d,e,f,g,h}=8'b00111110;
4'hC:
{a,b,c,d,e,f,g,h}=8'b10011100;
4'hD:
{a,b,c,d,e,f,g,h}=8'b01111010;
4'hE:
{a,b,c,d,e,f,g,h}=8'b10011110;
4'hF:
{a,b,c,d,e,f,g,h}=8'b10001110;
default:
{a,b,c,d,e,f,g,h}=8'b11111100;
endcase
end
end
elseif(k==0)
begin
{ms1,ms2,ms3,ms4,ms5,ms6,ms7,ms8}=8'b00000000;
flag=flag+1;
case(flag)
0:
begintemp=in1;ms1=1;end
1:
begintemp=in2;ms2=1;end
2:
begintemp=in3;ms3=1;end
3:
begintemp=in4;ms4=1;end
4:
begintemp=in5;ms5=1;end
5:
begintemp=in6;ms6=1;end
6:
begintemp=in7;ms7=1;end
7:
begintemp=in8;ms8=1;end
endcase
if(ms1==1)
begin
case(temp)
4'd0:
{a,b,c,d,e,f,g,h}=8'b11111101;4'd1:
{a,b,c,d,e,f,g,h}=8'b01100001;4'd2:
{a,b,c,d,e,f,g,h}=8'b11011011;4'd3:
{a,b,c,d,e,f,g,h}=8'b11110011;4'd4:
{a,b,c,d,e,f,g,h}=8'b01100111;4'd5:
{a,b,c,d,e,f,g,h}=8'b10110111;4'd6:
{a,b,c,d,e,f,g,h}=8'b10111111;4'd7:
{a,b,c,d,e,f,g,h}=8'b11100001;4'd8:
{a,b,c,d,e,f,g,h}=8'b11111111;4'd9:
{a,b,c,d,e,f,g,h}=8'b11110111;
4'hA:
{a,b,c,d,e,f,g,h}=8'b11101111;
4'hB:
{a,b,c,d,e,f,g,h}=8'b00111111;
4'hC:
{a,b,c,d,e,f,g,h}=8'b10011101;
4'hD:
{a,b,c,d,e,f,g,h}=8'b01111011;
4'hE:
{a,b,c,d,e,f,g,h}=8'b10011111;
4'hF:
{a,b,c,d,e,f,g,h}=8'b10001111;
default:
{a,b,c,d,e,f,g,h}=8'b11111101;
endcase
end
else
begin
case(temp)
4'd0:
{a,b,c,d,e,f,g,h}=8'b11111100;
4'd1:
{a,b,c,d,e,f,g,h}=8'b01100000;
4'd2:
{a,b,c,d,e,f,g,h}=8'b11011010;
4'd3:
{a,b,c,d,e,f,g,h}=8'b11110010;
4'd4:
{a,b,c,d,e,f,g,h}=8'b01100110;
4'd5:
{a,b,c,d,e,f,g,h}=8'b10110110;
4'd6:
{a,b,c,d,e,f,g,h}=8'b10111110;
4'd7:
{a,b,c,d,e,f,g,h}=8'b11100000;
4'd8:
{a,b,c,d,e,f,g,h}=8'b11111110;
4'd9:
{a,b,c,d,e,f,g,h}=8'b11110110;
4'hA:
{a,b,c,d,e,f,g,h}=8'b11101110;
4'hB:
{a,b,c,d,e,f,g,h}=8'b00111110;4'hC:
{a,b,c,d,e,f,g,h}=8'b10011100;4'hD:
{a,b,c,d,e,f,g,h}=8'b01111010;4'hE:
{a,b,c,d,e,f,g,h}=8'b10011110;4'hF:
{a,b,c,d,e,f,g,h}=8'b10001110;default:
{a,b,c,d,e,f,g,h}=8'b11111100;
endcase
end
end
end
endmodule
仿真图形
实验心得
通过本次实验设计,我学到了很多东西,也感觉到这次实验设计重要性。
下面的就是我在这次实验中的一些心得:
1.实验前做好准备是非常重要的,特别是查看一些相关资料。
2.在开始编程之前,一定要有一个比较清晰的思路,最好分成多个不同的模块来实现,这样有利于检查错误。
3.具体编各部分程序时,一定要仔细认真,特别各种语法,有些很容易出错。
4.编写完一部分后就编译一部分,通不过就修改,这样做效率会提高很多。
5.这次EDA实践让我更深刻的了解了现代数字电路系统设计相对于传统电子系统设计的模式的优势,采用模块法自顶向下设计的原则,一边设计一边调试,使系统的开发速度更快
最后,感谢老师的悉心指导!
参考文献
[1]李国丽,朱维勇.电子技术实验指导书[M].合肥:
中国科技大学出版社,2000
[2]王金明编,杨吉斌.数字系统设计与VerilogHDL[M].北京:
电子工业出版社,2002
[3]潘松,黄继业.EDA技术实用教程[M].北京:
科学出版社,2002
[4]董守田,张志杰,欧阳斌林.基于JK2技术的数字系统的设计[J].东北农业大学学报.2003,34(3):
254-257
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 频率计
![提示](https://static.bdocx.com/images/bang_tan.gif)