差别
这里会显示出您选择的修订版和当前版本之间的差别。
| 两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
|
dds_verilog [2023/03/20 15:44] gongyu [2. DAC的选用说明] |
dds_verilog [2023/03/20 16:33] (当前版本) gongyu [4. “任意”信号生成] |
||
|---|---|---|---|
| 行 44: | 行 44: | ||
| 无论采用任何一款DAC,第一步就是要验证从FPGA的逻辑到DAC是否正常工作(尤其是FPGA和R-2R网络连接时管脚的分配),最简单的就是输出固定的数字,看输出的直流电压是否是你换算出来应该得到的模拟量,如下图所示: | 无论采用任何一款DAC,第一步就是要验证从FPGA的逻辑到DAC是否正常工作(尤其是FPGA和R-2R网络连接时管脚的分配),最简单的就是输出固定的数字,看输出的直流电压是否是你换算出来应该得到的模拟量,如下图所示: | ||
| - | {{ ::DDS_Training_DC.png?800 |}} <WRAP centeralign> 产生直流电压用来验证FPGA到DAC的链路是否能够正常工作</WRAP> | + | {{drawio>ACDLK_DDS_DC.png}} <WRAP centeralign> 产生直流电压用来验证FPGA到DAC的链路是否能够正常工作</WRAP> |
| - | {{drawio>ACDLK_DDS_DC.png}} | + | |
| <code verilog> | <code verilog> | ||
| 行 66: | 行 65: | ||
| ##### 3.1 生成方波 | ##### 3.1 生成方波 | ||
| - | {{ ::DDS_Training_Square.png?800 |}} | + | {{drawio>ACDLK_DDA_Squre.png}} |
| DDS常被用来产生周期性的信号,第一步我们先看看如何产生一个方波信号,下面是代码: | DDS常被用来产生周期性的信号,第一步我们先看看如何产生一个方波信号,下面是代码: | ||
| <code verilog> | <code verilog> | ||
| 行 94: | 行 93: | ||
| ##### 3.2 生成锯齿波 | ##### 3.2 生成锯齿波 | ||
| - | {{ ::DDS_Training_Sawtooth.png?800 |}} | + | {{drawio>ACDLK_DDA_SAWTOOTH.png}} |
| 我们再看看锯齿波是如何轻松实现的,只需要将上面的代码的最后两行更换成这样: | 我们再看看锯齿波是如何轻松实现的,只需要将上面的代码的最后两行更换成这样: | ||
| 行 107: | 行 106: | ||
| 根据下面的图示方法实现三角波也不难: | 根据下面的图示方法实现三角波也不难: | ||
| - | {{ ::DDS_Training_Triangle.png?800 |}} | + | {{drawio>ACDLK_DDA_Triangle.png}} |
| <code verilog> | <code verilog> | ||
| 行 133: | 行 132: | ||
| {{ :heartwave.jpeg |}}<WRAP centeralign> 用查找表的方式生成的心型模拟信号波形 </WRAP> | {{ :heartwave.jpeg |}}<WRAP centeralign> 用查找表的方式生成的心型模拟信号波形 </WRAP> | ||
| - | 参见[[steptrainingboardddsacode|用于小脚丫FPGA综合技能训练板的DDS培训代码]],在这个页面中有一段lookup table的代码,示例中使用的为8位地址波表(出于演示的方便,采用了更少的位数)、10位精度的DAC。基于正弦波的对称性,在这个波表中我们只保存了1/4个周期的波形,其它3个1/4周期的波形可以基于对称性来实现,周期的选择采用地址的高两位 - 示例中的phase[7:6]。 | + | 参见[[https://www.eetree.cn/wiki/steptrainingboardddsacode|用于小脚丫FPGA综合技能训练板的DDS培训代码]],在这个页面中有一段lookup table的代码,示例中使用的为8位地址波表(出于演示的方便,采用了更少的位数)、10位精度的DAC。基于正弦波的对称性,在这个波表中我们只保存了1/4个周期的波形,其它3个1/4周期的波形可以基于对称性来实现,周期的选择采用地址的高两位 - 示例中的phase[7:6]。 |
| <code verilog> | <code verilog> | ||