设为首页 加入收藏

TOP

《FPGA全程进阶---实战演练》第十四章 蜂鸣器操作
2017-10-10 12:22:56 】 浏览:4705
Tags:FPGA 全程 进阶 --- 实战 演练 十四 蜂鸣器 操作
1 基础理论部分

  本实验主要是实现蜂鸣器的操作,蜂鸣器的操作是非常简单的,只有把简单的事情做好,方可谈其他复杂的事。本实验部分会利用verilog一些宏定义语句,其实在VGA实验部分已经出现过,这里为了巩固,再次调用相关宏定义命令,已达到最大化的可移植性,请读者务必掌握这种用法,很实用。

谈及蜂鸣器或者LED,多多少少会有一个概念,PWM(pulse  width  modulation),即脉宽调制,PWM的输出只有高电平1和低电平0,PWM不断重复输出周期T,高电平所占用的时间为t,则占空比 = t / T ;频率 = 1 / T,如图14.1所示。

wps94F6.tmp

图14.1 PWM脉冲图

2 Verilog代码实现部分

  对于实现不同的占空比,可以去建立一个parameter模块,用来定义不同的PWM脉冲信号。主要是从两方面去定义,一个是占空比相同(这里是占空比为50%),频率不同,一个是频率相同,不同的占空比。下面是FM_param.v中的各参数的设置。

wps9507.tmp

上述是宏定义个参数,分别定义了不同的占空比和频率。

wps9508.tmp

上述是对定义的宏参数具体执行的参数设置。

下面是FM_PWM.v文件中的内容。

wps9518.tmp

24行调用参数文件,然后定义各宏参数,

wps9519.tmp

此部分是执行宏定义后的具体执行的内容。

3 Modelsim仿真部分

3.1 测试程序

wps952A.tmp

上述的测试程序很简单,和之前的部分一样。

3.2 仿真结果

图14.2是占空比为50%,周期为40ms的情况。图14.3是脚本文件的输出,其他的仿真类似。

wps952B.tmp

图14.2 仿真波形

wps953C.tmp

图14.3 脚本输出

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇USB2.0学习笔记连载(十七):kei.. 下一篇Quartus II 破解教程—FPGA入门教..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目