1 基础理论部分

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

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

图14.1 PWM脉冲图

2 Verilog代码实现部分

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

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

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

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

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

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

3 Modelsim仿真部分

3.1 测试程序

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

3.2 仿真结果

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

图14.2 仿真波形

图14.3 脚本输出

《FPGA全程进阶---实战演练》第十四章 蜂鸣器操作的更多相关文章

  1. 《FPGA全程进阶---实战演练》第四章之实验平台软硬件使用简介

    本章主要是讲解读者在进行FPGA逻辑设计之前的准备工作,需要下载Quartus II软件和 Modelsim 软件,一个是用来进行FPGA逻辑设计,一个是用来对逻辑进行理论分析与验证. 1.1 qua ...

  2. 《FPGA全程进阶---实战演练》第四章之Quartus II使用技巧

    技巧1:“新”技能 hierarchies警告寻找 在编译之后,警告中“hierarchies”这个单词大家估计都很熟悉了,一看到这个警告,基本上就是例化时出现的问题.一般例化时,要是哪个连线没引出, ...

  3. 《FPGA全程进阶---实战演练》第五章 基于74HC595的LED操作

    1基础理论部分 1.1分频 分频,是的,这个概念也很重要.分频是指将一单一频率信号的频率降低为原来的1/N,就叫N分频.实现分频的电路或装置称为“分频器”,如把33MHZ的信号2分频得到16.5MHZ ...

  4. 《FPGA全程进阶---实战演练》第二十一章 细说低速与高速电路设计之电阻 电容 电感 磁珠

      1.1 什么是高速电路 信号的最高频率成分是取决于有效频率,而不是周期频率. 高速电路的定义是根据信号的有效频率来计算的,在现实世界中,任何信号都是由多个频率分量的正弦波叠加而成的.定义各正弦波分 ...

  5. 《FPGA全程进阶---实战演练》第十一章 VGA五彩缤纷

    1基础理论部分 VGA(video graphics array)即视频图形阵列,是IBM在1987年随PS/2一起推出的使用模拟信号的一种视频传输标准.VGA相比与现在的视频传输接口来说已经过时,不 ...

  6. 《FPGA全程进阶---实战演练》第二十一章 电源常用类型:LDO和 DCDC

    高速电路中的电源设计 高速电路中的电源设计大概分为两种,一种是集总式架构,一种是分布式架构.集总式架构就是由一个电源输入,然后生成多种所需要的电压.如图1所示.这种架构会增加多个DC/DC模块,这样成 ...

  7. 《FPGA全程进阶---实战演练》第七章 让按键恢复平静

    1基础理论部分 A:“怎么按键按下去之后,结果不正常?”,B:“按键你消抖了吗?”A:“消什么抖,还要消抖?”,  B:“先检测按键变化,然后消抖过滤波动信号,最后输出稳定信号”,A:“我好像漏掉了什 ...

  8. 《FPGA全程进阶---实战演练》第二十一章之 几种常用电平分析及特性

    TTL,CMOS以及LVTTL,LVCMOS TTL和CMOS是数字电路中两种常见的逻辑电平,LVTTL和LVCMOS是两者低电平版本.TTL是流控器件,输入电阻小,TTL电平器件速度快,驱动能力大, ...

  9. 《FPGA全程进阶---实战演练》第三章之PCB叠层

    1.双面板 在双层板设计layout时,最好不要不成梳状结构,因为这样构成的电路,回路面积较大,但是只要对较重要的信号加以地保护,布线完成之后将空的地方敷上地铜皮,并在多个过孔将两个地连接起来,可以弥 ...

随机推荐

  1. 浅析PCIe链路LTSSM状态机

    我们知道,在PCIe链路可以正常工作之前,需要对PCIe链路进行链路训练,在这个过程中,就会用LTSSM状态机.LTSSM全称是Link Training and Status State Machi ...

  2. jsack

    https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/tooldescr016.html#BABGHEJB

  3. 技术范儿的 Keep 发力AI赛道,为什么“虚拟教练”会更懂你?

    http://www.tmtpost.com/3363367.html 摘要: 虚拟教练技术会整合到一些业务场景和硬件产品中收费,但是收费的具体情况彭跃辉还暂未透露. 图片来源于Unsplash 自去 ...

  4. 缩放图片,解决bitmap 内存溢出out of memory的问题

    很多人在android开发中都遇到了生成bitmap时候内存溢出,也就是out of memory(OOM)的问题,网上对这样的问题的的解决说法不一.笔者作为一个初级开发者,在这里向大家提供一种比较实 ...

  5. CentOS下使用crontab+mysqldump实现定时自动备份数据库

    一 : 为什么要进行数据库的备份? 最主要的原因:尽可能地减少损失,包括时间上.精神上和金钱上的损失.很多人都不注意备份数据,以致在发生问题后丢失大量的重要数据.要知道,在地球上网是很危险的,即使做好 ...

  6. IIS6 301重定向和IIS7 301重定向

    IIS6 301重定向 1.先在IIS里把网站正常发布,例如域名为(www.114390.com) 2.再硬盘上建一个空文件夹 3.再到IIS里建一个网站,例如域名为(114390.com),指向这个 ...

  7. jquery改变元素上下排列的顺序

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. crontab格式,命令

    http://www.blogjava.net/xiaomage234/archive/2007/12/26/170490.html crontab格式: 第1列分钟1-59 第2列小时1-23(0表 ...

  9. 【转】Android的root原理

    转自知乎:https://www.zhihu.com/question/21074979 @Kevin @张炬 作者:Kevin链接:https://www.zhihu.com/question/21 ...

  10. hibernate特殊的映射

    <property name="update_date" column="update_date" type="java.sql.Timesta ...