当前位置:文档之家› 2位十进制高精度数字频率计设计

2位十进制高精度数字频率计设计

广州大学学生实验报告
实验室:电子信息楼 317EDA 2017 年 10 月 2 日
学院机电学院年级、专
业、班
电信
151
姓名苏伟强学号1507400051
实验课
程名称
可编程逻辑器件及硬件描述语言实验成绩
实验项
目名称
实验4 2位十进制高精度数字频率计设计指导老师
秦剑
一实验目的
1 熟悉原理图输入法中74系列等宏功能元件的使用方法,掌握更复杂的原理图层次化设计技术和数字系统设计方法。

2 完成2位十进制频率计的设计,学会利用实验系统上的FPGA/CPLD验证较复杂设计项目的方法。

二实验原理
1 若某一信号在T秒时间里重复变化了N 次,则根据频率的定义可知该信号的频率fs 为:fs=N/T 通常测量时间T取1秒或它的十进制时间。

三实验设备
1 FPGA
实验箱,quarteus软件
四实验内容和结果
1 2位十进制计数器设计
1.1 设计原理图:新建quarteus工程,新建block diagram/schematic File文件,绘制原理图,命名为conter8,如图1,保存,编译,注意:ql[3..0]输出的低4位(十进制的个位),
qh[3..0]输出的高4位(十进制的十位)
图片11.2 系统仿真:如图2建立波形图进行波形仿真,如图可以看到完全符合设计要求,当clk输入时钟信号时,clr有清零功能,当enb高电平时允许计数,低电平禁止计数,当低4位计数到9时向高4位进1
图2
1.3 生成元件符号:File->create/updata->create symbol file for current file,保存,命名为conter8,如图3为元件符号(block symbol file 文件):
图3
2 频率计主结构电路设计
2.1 绘制原理图:关闭原理的工程,新建工程,命名为ft_top,新建原理图文件,在project navigator的file 选项卡,右键file->add file to the project->libraries->project library name添加之前conters8工程的目录在该目录下,这样做的目的是因为我们会用到里面的conters8进行原理图绘制,绘制原理图,如图4,为了显示更多的过程信息,我们将74374的输出也作为output,重新绘制了原理图,图5
图4
图5
2.2 波形仿真:注:设end of time 为10s,F_IN 频率为20Hz(周期为50ms),EN_CNT 频率为0.5Hz (周期为2s ,之所以这样做是因为,结果可以直接显示出F_IN 的频率),如图
6
图6
F_IN 是待测频率信号(设其频率周期为50ms );CNT_EN 是对待测频率脉冲计数允许信号(设其频率周期为2s,频率为0.5Hz ),CNT_EN 高电平时允许计数,低电平时禁止计数。

仿真波形显示,当CNT_EN 为高电平时允许conter8对F_IN 计数,低电平时conter8停止计数,由锁存信号LOCK 发出的脉冲将conter8中的2个4位十进制数“21”锁存进74374中,并由74374分高低位通过总线H[6..0]和L[6..0]输给74248译码输出显示,这就是测得的频率值。

“21”的7段译码值分别是“5b ”和“06”。

此后由清0信号CLR 对计数器conter8清0,以备下一周期计数之用。

注意,由于有锁存器74374的存在,即使在conter8被清0后,数码管仍然能稳定显示上一测频周期测得的频率值。

3 时序控制电路设计
3.1 原理图设计:新建工程并且新建原理图文件,绘制如下原理图,保存文件名为controler.图7
图7
3.2 波形图仿真:如图
8
分析:
3.3 生成元件符号,File->create/updata->create symbol file for current file,保存,命名为controler (block symbol file 文件):如图8
图9
4 频率计顶层电路设计 4.1 原理图绘制:在project navigator 的file 选项卡,右键file->add file to the project->libraries->project library name 添加之前controler 工程的目录在该目录下,这样做的目的是因为我们会用到里面的controler 进行原理图绘制,绘制好的原理图如图9:
图10
4.2 波形仿真:设end of time为10s,F_IN频率为20Hz(周期为50ms),CLK频率为8Hz(周期为125ms,之所以这样做是因为,结果可以直接显示出F_IN的频率),如图10
图11
分析:电路只有两个输入信号:待测频率输入信号F_IN和测控时钟CLK,从CLK输入的时钟频率是8Hz,计数使能信号CNT_EN的脉宽即为1s,从而可使数码管直接显示F_IN的频率值。

如图所示,测出来的频率值为20Hz,和实际相符。

5 管脚的绑定和下载
5.1 引脚绑定:硬件测试实验电路采用NO.0电路结构,待测信号F_IN接clock0;测频控制时钟CLK接clock2,输出接数码管。

如图11
图12 5.2 下载:
可以看到,频率测量的结果是正确的。

五实验分析总结
思考题:
怎样提高测量的精确度?
答:由实验知道,在一个计数周期要尽可能的计到更多的输入信号周期,才能不会出现像一个计数周期没有出现一个完整周期的情况,这样会大大影响准确度,所以我们需要信号提高计数周期,来增加测量频率的准确度。

总结:
1 注意在绘制2位十进制计数器的时候,最后需要生成元件符号,文件名后缀是.bsf(block symbol file 文件),而不是block schematic file文件。

2 在波形仿真的时候,调整波形显示的进制数,方便查看实验结果,例如2位十进制计数器波形仿真的时候,输出的结果为2位十进制,但是引脚的输出是2进制的,这时候在波形右键->properties->radix->usigned decimal进行十进制表示,仿真的结果看得更直观了。

后面频率计主体结构的波形仿真也是同样的道理。

3 在进行管脚绑定的时候,在assignment editor中的category选项卡中选择location
4 在原理图中使用之前已经设计好的block symbol file 文件,需要在file选项卡中添加库,具体的方法是:ile->add file to the project->libraries->project library name,添加之前的自定义符号文件(block symbol file).
16。

相关主题