添加test文件:输入key为1000_0000,此时delay的值为23889,得到的频率为高音do的频率1046Hz,如图5-3所示。
图5-3 波形编辑窗口1
进行功能仿真后可以看到,song_out的输出波形如图5-4所示,其周期为955.0μs,换算过来的频率为1047Hz。
图5-4 仿真结果波形1
更改key值为0100_0000,此时delay的延迟为25309,得到的频率为中音si的频率987.8Hz,如图5-5所示。
进行功能仿真后可以看到,song_out的输出波形如图5-6所示,其周期为1012.7μs,换算过来的频率为987.45Hz。
图5-5 波形编辑窗口2
图5-6 仿真结果波形2
更改key值为0010_0000,此时delay的延迟为28409,得到的频率为中音la的频率880Hz,如图5-7所示。
图5-7 波形编辑窗口3
进行功能仿真后可以看到,song_out的输出波形如图5-8所示,其周期为1135.9μs,换算过来的频率为880Hz。
图5-8 仿真结果波形3
更改key值为0001_0000,此时delay的延迟为31888,得到的频率为中音so的频率784Hz,如图5-9所示。
图5-9 波形编辑窗口4
进行功能仿真后可以看到,songout的输出波形如图5-10所示,其周期为1273.4μs,换算过来的频率为785Hz。
图5-10 仿真结果波形4
更改key值为0000_1000,此时delay的延迟为35791,得到的频率为中音fa的频率698.5Hz,如图5-11所示。
图5-11 波形编辑窗口5(www.xing528.com)
进行功能仿真后可以看到,songout的输出波形如图5-12所示,其周期为1430.7μs,换算过来的频率为698.9Hz。
图5-12 仿真结果波形5
更改key值为0000_0100,此时delay的延迟为37919,得到的频率为中音mi的频率659.3Hz,如图5-13所示。
图5-13 波形编辑窗口6
进行功能仿真后可以看到,song_out的输出波形如图5-14所示,其周期为1515.5μs,换算过来的频率为659.8Hz。
图5-14 仿真结果波形6
更改key值为0000_0010,此时delay的延迟为42568,得到的频率为中音re的频率587.3Hz,如图5-15所示。
图5-15 波形编辑窗口7
进行功能仿真后可以看到,song_out的输出波形如图5-16所示,其周期为1701.9μs,换算过来的频率为587.5Hz。
图5-16 仿真结果波形7
更改key值为0000_0001,此时delay的延迟为47774,得到的频率为中音do的频率523.3Hz,如图5-17所示。
进行功能仿真后可以看到,song_out的输出波形如图5-18所示,其周期为1912.7μs,换算过来的频率为522.8Hz。
显然,从以上功能仿真中可以看出,该程序实现了电子琴的频率产生和选择输出功能。
图5-17 波形编辑窗口8
图5-18 仿真结果波形8
接下来,进行引脚约束,引脚约束如图5-19所示。
图5-19 引脚约束
引脚约束后,生成ICON、VIO、ILA核,并进行例化。例化后的Verilog代码详见光盘附件5-2,为了方便观察波形,设计时重新设置了延迟时间。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。