当前位置:首页 > FPGA课程设计(最终版)
武汉理工大学FPGA应用课程设计
5.2音调发生模块仿真
(1)创建Testbench波形源文件
新建一个Testbench波形源文件,并与tone.vhd文件关联,出现如图5-7所示的波形图。单击波形图中的蓝色方块来设置音符输入信号INDEX电平的高低,设置音符输入INDEX[7:0]从0x01到0x80。
图5-7 HDL Bencher中输入波形的设置
(2)设计的仿真
双击 Processes 窗口中的 Simulate Behavioral Model 对设计进行仿真,在右方窗口弹出仿真结果的波形,如图5-8所示。
图5-8仿真结果及示意
18
武汉理工大学FPGA应用课程设计
(3)仿真结果分析
由仿真结果图可以看出,当音符输入信号INDEX[7:0]为00000001时,输出分频系数TONE0为7648,输出音符显示信号CODE[6:0]为1001111,高低音显示信号HIGN为0。并且随着音符输入信号INDEX[7:0]的改变,输出信号按照程序设定改变,符合设计要求。
5.3数控分频模块仿真
(1)创建Testbench波形源文件
新建一个Testbench波形源文件,并与speaker.vhd文件关联,出现如图5-9所示的波形图。系统时钟信号为32MHz,但是由于仿真限制只能选择时钟周期为100ns,并且只能设置分频系数为TONE1[0:2047]。
图5-9 HDL Bencher中输入波形的设置
(2)设计的仿真
设置分频系数为4,TONE1取值为3,双击 Processes 窗口中的 Simulate Behavioral Model 对设计进行仿真,在右方窗口弹出仿真结果的波形,如图5-10所示。
图5-10仿真结果及示意
19
武汉理工大学FPGA应用课程设计
(3)仿真结果分析
由仿真结果图可以看出,系统时钟首先被4分频,然后根据分频系数再次分频。此时分频系数为4,进行4分频。最后进行二分频,将脉冲展宽,以使扬声器有足够功率发音。图中输出SPKS的周期为CLK1的32倍,频率是CLK1的1/32。
5.4电子琴系统的仿真
(1)创建Testbench波形源文件
新建一个Testbench波形源文件,并与top.vhd文件关联,系统时钟信号为32MHz,但是由于限制只能选择时钟周期为32ns,因此仿真时时钟信号为31.25MHz。
这时出现了如图5-11所示的波形图,可以单击波形图中的蓝色方块来设置波形电平的高低,并可以拉动仿真时间线。此时设置Auto=“1”,选择键盘输入。再设置键盘输入INDEX1[7:0]为00010000。
图5-11 HDL Bencher中输入波形的设置
(2)设计的仿真
单击Sourcese 窗口中的 testbench,则在 Processes 窗口中显示 Xilinx ISE Simulator 工具栏,扩展开后,右键单击 Simulator Behavioral Model,选择Properties, 对Simulation Run Time 输入 900us,单击 OK 按钮,如图5-12所示。
20
武汉理工大学FPGA应用课程设计
图5-12设置Properties
双击 Processes 窗口中的 Simulate Behavioral Model 对设计进行仿真,在右方窗口弹出仿真结果的波形,如图5-13所示。
图5-13仿真结果及示意
(3)仿真结果分析
按照设置输入系统时钟信号CLK为31.25MHz,AUTO设为1,键盘输入信号INDEX1为00010000。从图中可以看出,输出音符显示信号CODE为0100100,表示为中音5,高低音显示信号为0,表示为非高音。可以看出输出音频信号周期为
651114?2?1302228?10?9s,因此可以计算出音频信号频率约768Hz,与中音5的频率
21
共分享92篇相关文档