本实现采用是altera的cyclone实现的,使用了quartus的一些高级功能,如:宏模块的引用、signal Tap、以及modelsim的联合仿真。
正弦波的硬件实现比较简单:首先设计一个ROM用来存放正弦函数的幅度数据;用一个计数器来指定ROM地址(相位)的增加,输出相应的幅度值。这样在连续的时间内显示的就是一个完整的正弦波形。原理图如下:
生成模块如下:新建工程和原理图文件,点击symbol TOOL图标,点击选项就可以引用宏模型了。其中rom在storage中,counter 在数学库中。rom选择8BIT宽,64words,counter选择6bit宽,单向计数。
在建ROM模块前,先建一个初始数据文件(重点),这里直接在quartus中建memory initialnization file,输入正弦波的幅度值,也可以用excel/matlab/c++中的函数方便的生成数据。初始值如下所示:
最后仿真,因quartus不支持模拟显示,所以我们有两种方法:一种是signal tap,它是需要硬件平台的一种在线分析仪;另一种就是modelsim,在采用modelsim仿真时必须加入必要的altera库函数,由于篇幅关系,这里对两种仿真不再多说,下图是modelsim的后级仿真(加入延时),可见加入延时后有一定的毛刺,但并不影响结果,如果不加入延时,产生的为平滑的正弦波。验证了设计的正确性.
用户1533688 2011-7-1 09:15
用户1503232 2010-6-22 09:03
用户1569864 2008-7-1 21:54
用户146077 2008-6-15 21:26
用户146077 2008-6-15 21:25