3简易等精度频率计王章蓓打印.docx
- 文档编号:29378805
- 上传时间:2023-07-22
- 格式:DOCX
- 页数:14
- 大小:502.19KB
3简易等精度频率计王章蓓打印.docx
《3简易等精度频率计王章蓓打印.docx》由会员分享,可在线阅读,更多相关《3简易等精度频率计王章蓓打印.docx(14页珍藏版)》请在冰豆网上搜索。
3简易等精度频率计王章蓓打印
数字系统设计实践
设计报告
实验名称简易等精度频率计设计
班级11电信升本
学生姓名王章蓓
学号113040063
完成日期2012-05-09
目录
任务书2
一、设计任务2
二、设计要求2
三、设计说明2
正文3
一、使用方法的选择和实现3
1.1等精度频率计3
二、系统设计4
2.1程序总图4
三、系统功能、指标及调试4
3.1输入模块设计4
3.2分频器模块设计5
3.3同步电路模块设计5
3.4门控闸门计数模块设计5
3.5运算模块设计6
3.6除法器进制转化模块设计6
3.7控制输出模块设计7
四、系统模块程序8
4.1分频模块程序8
4.2寄存器模块8
4.3输出模块9
五、引脚配置10
六、系统测试11
任务书
一、设计任务
1.设计一个简易等精度频率计。
2.通过7段数码管直接显示十进制的频率控制字和输出频率。
二、设计要求
1.测量范围信号:
方波;
幅度:
TTL电平;
频率:
1Hz~1MHz。
2.测量误差≤0.1%(全量程)。
3.闸门时间:
~1s,响应时间:
~2s。
4.乘除运算:
单片机、FPGA、计算器。
5.计算:
时钟频率。
三、设计说明
1.预置闸门闸门可由一个“与”(或“或”)逻辑门电路实现。
2.由于D触发器有锁存功能,同步信号由D触发器实现。
3.输入频率与时钟频率之间的转换可以调用乘除法模块实现。
正文
摘要
等精度频率计中频率的定义是周期信号在单位时间(1s)内的变化次数即周期数。
如果在一定时间间隔T内周期信号重复变化了N次,则频率可表达为:
f=N/T。
本实验实现将需累加计数的信号即频率测量时为被测信号通过由一个“闸门”控制,并由一个“门控”信号控制闸门的开启(计数允许)与关闭(计数停止)输出一个同步信号,经计数器A计数器B计数后通过运算电路还原出原始输入信号的频率。
本实验基于FPGA,通过QuartusII软件编写的等精度频率计,通过编写,画图,模拟,仿真,调试等,最终在硬件箱上实现规定范围内的任意频率的调试,并用7段数码管直接显示。
一、使用方法的选择和实现
1.1等精度频率计
图1-1等精度频率计原理图
输入端:
显示器清零端clr;
外部被测信号fx。
输出端:
以十进制的形式显示被测信号的频率。
误差估计:
误差与被测频率fx无关,这就是等精度测量方法。
首先将预置闸门选择为0.5hz,占空比为50%。
|误差|=1/(T*fs)≤0.1%,因为最大测试频率达到1Mhz,所以计算器A选择为20位,计算器B选择为14位,预闸门脉宽T为1s,fs为10KHz,可以满足最大计数值误差为0.1%的要求。
显示用实验开发平台上的6个数码管直接显示(四个整数位、两个小数位)。
二、系统设计
2.1程序总图
用实验箱内部时钟作为系统时钟,频率选择为10Khz;将时钟通过预置闸门脉冲发生器产生频率为0.5hz,脉宽为1s的同步后的闸门脉冲;预置闸门脉冲发生器通过计数器来实现;同步电路采用D触发器,闸门AB采用与门;通过闸门A、B对输入波形和系统时钟波形进行计;计数器AB采用带异步清零端的计数器,最后讲两计数器连入两个寄存器,在同步后的脉冲下降沿来临时将数据锁存,然后将所存的计数值Na,Nb通过LPM乘除法模块进行频率公式计算,最后将计算值直接输出,方便观察。
三、系统功能、指标及调试
3.1输入模块设计
图3.1-1输入模块引脚
模块说明:
en:
系统清零端,en=0时系统自动清零;
fx由信号发生器产生被测的方波信号;
fc芯片外时钟发生器,根据误差要求,设定为10KHz;
high_or_low:
等于0时输出所得结果前八位,反之输出剩下的两位。
3.2分频器模块设计
图3.2分频器模块
模块说明:
将fc作为时钟脉冲输入,仿照单片机的延时电路和计数器,Tc=1/10000s,实现跳变1000次时控制输出翻转一次,从而产生脉宽为1s的门控信号。
3.3同步电路模块设计
图3.3同步电路模块
模块说明:
使用同步电路模块来产生同步的闸门脉冲信号。
同步电路使用D触发器形式,由于D触发器有锁存功能,因此能产生同步信号。
3.4门控闸门计数模块设计
图3.4门控闸门计数模块
模块说明:
利用计数器分别求出在1s的门控信号内被测信号fx与系统时钟fc所经过的个数Nx和Nc,同步后的fx和fc分别上升沿触发两个计数器计数,等将数据存入寄存器后,两计数器延时清零,准备下一次任务。
位数说明见运算模块。
3.5运算模块设计
图3.5运算模块
模块说明:
基于运算公式fx=Nx*fc/Nc,先将Nc*10K,然后放大1000倍,将小数部分升为整数部分,保证计算的精度。
1M小于1024*1024,即2的20次方,而且十进制的1000000转成二进制的11110100001001000000需要20位,换言之二进制的111111*********11111转成十进制的1048575为理论最大被测频率1.04MHz,同理10K——10011100010000,共计14位。
3.6除法器进制转化模块设计
3.6-1触发器进制转化模块1
其实际模块电路为:
图3.6-2触发器进制转化模块2
3.7控制输出模块设计
图3.7控制输出模块
模块说明:
输出显示模块从运算模块中获得直接显示输出六位有效数字(两位是小数部分)。
四、系统模块程序
4.1分频模块程序
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entityais
port(
en,fc:
instd_logic;
f_out:
outstd_logic);
enda;
architecturebehaveofais
signalcount:
integerrange0to10000;
signalc:
std_logic;
begin
process(en,fc)
begin
ifen='0'then
f_out<='0';
count<=0;
elsif(fc'eventandfc='1')then
if(count<10000)then
count<=count+1;
else
count<=0;
c<=notc;
endif;
endif;
f_out<=c;
endprocess;
endbehave;
4.2寄存器模块
寄存器1:
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entityregis
port(
reg_clk:
instd_logic;
reg_in:
instd_logic_vector(19downto0);
reg_out:
outstd_logic_vector(19downto0));
endreg;
architecturebehaveofregis
begin
process(reg_clk)
begin
if(reg_clk'eventandreg_clk='0')then
reg_out<=reg_in;
endif;
endprocess;
endbehave;
寄存器2:
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entityreg2is
port(
reg_clk:
instd_logic;
reg_in:
instd_logic_vector(13downto0);
reg_out:
outstd_logic_vector(13downto0));
endreg2;
architecturebehaveofreg2is
begin
process(reg_clk)
begin
if(reg_clk'eventandreg_clk='0')then
reg_out<=reg_in;
endif;
endprocess;
endbehave;
4.3输出模块
libraryieee;
useieee.std_logic_1164.all;
entityshuchuis
port(
data1,data2,data3,data4,data5,data6,data7,data8,data9,data10:
inintegerrange0to9;
res:
instd_logic;
high_or_low:
instd_logic;
q1,q2,q3,q4,q5,q6,q7,q8:
outintegerrange0to9);
endshuchu;
architectureaofshuchuis
begin
process(data1,data2,data3,data4,data5,data6,data7,data8,data9,data10,high_or_low)
begin
ifres='1'then
q1<=0;q2<=0;q3<=0;q4<=0;q5<=0;q6<=0;q7<=0;q8<=0;
else
if(high_or_low='0')then
q1<=data8;q2<=data7;q3<=data6;q4<=data5;q5<=data4;q6<=data3;q7<=data2;q8<=data1;
else
q7<=data10;q8<=data9;q6<=0;q5<=0;q4<=0;q3<=0;q1<=0;q2<=0;
endif;
endif;
endprocess;
enda;
五、引脚配置
六、系统测试
运行该程序,将起下载到实验箱上,并用信号发生器对其进行测试,得到如下结果:
理论值
输出值
绝对误差
1.000HZ
1.00HZ
0
100HZ
100.00HZ
0
500KZ
500.00KZ
0
1KHZ
1.00KHZ
0
5KHZ
4.99KHZ
0.01%
10KHZ
9.99KHZ
0.01%
50KHZ
49.99KHZ
0.01%
100KHZ
99.99KHZ
0.009998%
500KHZ
49.99KHZ
0.010398%
1MHZ
999.89KHZ
0.010498%
表6实际值与测量值之误差表
由上表看出,所测试的误差均≤0.1%,测试频率的范围满足1Hz~1MHz的要求。
所以该设计符合要求。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简易 精度 频率计 王章蓓 打印