清风403 发表于 2015-11-20 14:12:45

清风陪你学FPGA(4)——三相正弦波发生器

本帖最后由 清风403 于 2015-11-20 14:13 编辑

        前几天一个同学问我,三相正弦波发生器用FPGA怎么做,我仔细思考了一下,回想到之前做过的信号发生器,三相无非也就是改变信号发生器的输出相位罢了,今天我将我的思路以及制作的过程分享给大家。
        我们都知道,FPGA是数字器件,所以无法输出模拟信号,所以输出必须是一个多少位的数字信号,这个数字信号经过DAC转换,才可以成为模拟信号。那么我们如何得到这个数字信号呢?
                1.        首先我们需要将正弦信号离散化(一个周期内);
                2.        然后对离散化的信号进行处理,处理成我们可以输出的数字信号(这里我们假设是8位的数字信号);
                3.        将这些离散化的信号依次存入到一个RAM中(宽度8,深度256),通过RAM的地址控制数字信号的输出。
        以上三个步骤的前两步需要用到其他的软件来帮助,这里我比较熟悉matlab,虽然比较麻烦,但是方法很通用,以下是matlab代码:
       
        打开Quartus II软件,新建一个mif文件,宽度8,深度256,将a.txt文件中的数据全部粘贴到mif文件中。之后用软件自带的IP核生成一个单口ram,并将这个mif文件导入到ram中,这样一个具有离散数据的ram就制作成功了。
        下面的任务就是代码的编写,首先我们需要通过这个ram实例化三个dds_ram_model1、dds_ram_model2、dds_ram_model3,输出数据只要将ram的wr置于低电平,并输入相应的地址就可以了。
        下面是我的代码:
       
       
        测试文件代码:
       
        仿真波形如下:
       
        我的分享也会发在我的公共号里面,有兴趣的可以扫描一下公共号加一下
       
        好了,今天的分享就到这里了。

雷磊 发表于 2023-4-1 16:32:04

电梯控制器程序设计与仿真.doc
http://www.fpgaw.com/forum.php?mod=viewthread&tid=83918&fromuid=54563
(出处: 集成电路技术分享)

宇xx 发表于 2023-4-2 09:23:26

清风陪你学FPGA(4)——三相正弦波发生器
页: [1]
查看完整版本: 清风陪你学FPGA(4)——三相正弦波发生器