简介
随着基于FPGA的EDA技术的发展和应用领域的扩大与深入,EDA技术在电子信息、通信、自动控制用计算机等领域的重要性日益突出。该课程设计则是基于FPGA的音乐播放器系统设计课程旨在培养FPGA设计和Verilog语言编程能力,涵盖仿真测试部分和上板测试部分,其主要涉及利用Verilog语言实现按键切换播放两首歌曲,并在播放过程中伴随有流水灯的设计。仿真实验部分,将会利用到Verilog语言编写音乐播放器的核心模块,包括音乐播放控制模块、音乐存储模块和按键控制模块,通过仿真验证音乐播放器的功能和正确性,并进行适当的调试与优化。上板实验部分,把编写好的程序烧录到FPGA开发板上进行实际检验,将学习到如何利用FPGA上板之后的资源配置和寄存器控制编程,深入理解FPGA芯片的基本原理和设计流程,培养硬件设计能力,并通过实验操作,提升问题解决能力和创新能力。通过完成该课程设计,能够掌握FPGA设计的基础知识和Verilog语言的应用技巧,为以后的FPGA系统设计提供了坚实的基础。
整体设计
仿真及上板两部分皆基于Verilog语言,为了便于观察仿真测试波形,实验平台采用Modelsim平台,而上板操作则使用Vivado来实现开发设计,整个实验使用正点原子的达芬奇Pro开发板实现。整个程序框架如下图1-1可知,音乐播放器系统通过开发板产生50MHZ的时钟信号来驱动,如表1-1所示,先是将音阶在基于50MHZ的时钟信号的前提下,根据公式:分频系数=时钟频率/音调频率,可以得到一个周期内每一个音符所对应的分频系数,而通过其分频系数可以依次写出所需要播放音乐其对应的谱子,在通过按键播放音乐时可根据谱子索引分频系数即可输出曲子波形,而按键则通过状态机实现切换不同的歌曲。而伴随的LED模块则设计成了流水灯自由闪烁的模式,使开发板上的四个LED灯逆时针闪烁,同时也可通过调节代码改变闪烁频率和闪烁顺序。而为了实现按键可以成功切换播放代码中内置的两首歌曲,也加上了按键消抖模块。如表1-2所示,则为此次设计过程中所需的半周期内的分频系数,根据不同的系数。可以分别得到不同音调、不同音符对应的值,从而便于乐谱索引。
硬件电路分析
此次设计使用的达芬奇Pro开发板实物图,其主要由底板和核心板组合而成,其丰富的功能足够满足对于音乐播放器的设计以及对于未来其它各种功能的拓展。例如本次课程设计中利用到的蜂鸣器模块、LED模块、按键模块等。
语言简介
Verilog是一种硬件描述语言(HDL),用于描述数字电路和系统。它是一种结构化的语言,可以用于描述电路中的组件和信号之间的关系。Verilog的主要用途是为数字系统设计提供建模和仿真工具。它可以描述各种数字电路,包括逻辑门、寄存器、存储器等。Verilog可以用于描述和设计各种数学运算、状态机、控制逻辑和通信协议等。数字电路设计者利用这种语言,可以从顶层到底层逐层描述自己的设计思想,用一系列分层次的模块来表示极其复杂的数字系统。然后利用电子设计自动化(EDA)工具,逐层进行仿真验证,再把其中需要变为实际电路的模块组合,经过自动综合工具转换到门级电路网表。接下来,再用专用集成电路 ASIC 或FPGA 自动布局布线工具,把网表转换为要实现的具体电路结构。在 FPGA 设计里面,我们有多种设计方式,如原理图设计方式、编写描述语言(代码)等方式。一开始很多工程师对原理图设计方式很钟爱,这种输入方式能够很直观的看到电路结构并快速理解,但是随着电路设计规模的不断增加,逻辑电路设计也越来越复杂,这种设计方式已经越来越不满足实际的项目需求了。这个时候 Verilog 语言就取而代之了,目前 Verilog 已经在 FPGA 开发/IC 设计领域占据绝对的领导地位。