FPGA实验6:计数器、ROM和DDS
2017-11-23 20:24
330 查看
设计直接数字频率合成(DDS)
要求:
–用计数器生成地址、读取ROM数据
–理解二进制补码和无符号数
–修改计数增量值,观察波形变化,思考输出频率
和计数器增量值的关系。
原参考设计:
1、 例化的子模块代码
2、原理图
![](https://img-blog.csdn.net/20171123193256801?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvU2VwX1lvdW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
3、RTL图
![](https://img-blog.csdn.net/20171123193540003?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvU2VwX1lvdW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
计数器模块内部电路结构:
![](https://img-blog.csdn.net/20171123193713814?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvU2VwX1lvdW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
【思考】:如果加法器溢出了,输出结果会怎样?
【答】:当相位累加器的溢出时,—个完整的阶梯正弦信号就从ROM查询表的输出端输出。因此,相位累加器的溢出率就是正弦波信号的输出频率。
ROM内部电路结构:
![](https://img-blog.csdn.net/20171123194433964?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvU2VwX1lvdW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
4、不同的计数增量值对应的波形
(1)计数增量为1时,正弦波频率约0.39 MHZ
![](https://img-blog.csdn.net/20171123194916849?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvU2VwX1lvdW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
(2)计数增量为2时,正弦波频率约0.78 MHZ
![](https://img-blog.csdn.net/20171123194932037?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvU2VwX1lvdW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
(3)计数增量为4时,正弦波频率1.5625 MHZ
![](https://img-blog.csdn.net/20171123194949221?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvU2VwX1lvdW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
【问题一】拨动开关,观察不同频率的正弦波, 电路的工作时钟是50MHz
(1) 请回答,你能得到的正弦波频率和计数器增量值的对应关系是什么?
(2)请回答,你能得到的最低频率的正弦波是多少?设该频率为f1
(3)请思考,能否有什么方法能够得到比f1频率还低的正弦波
【答】:
(1)正弦波频率和计数器增量值成 线性关系。
(2)正弦波的最低频率f1约0.39 MHZ。
(3)增加计数器增量或减小计数器数据位宽。
【问题二】输出信号频率 和 电路工作时钟频率,计数器增量值,以及计数器数据位宽之间的表达式关系?
【答】:
![](https://img-blog.csdn.net/20171123200754872?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvU2VwX1lvdW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
学生实验:
设计直接数字频率合成(DDS)
要求:
–把计数增量输入信号分配到10个拨码开关上
–把计数值信号的高7位分配为ROM的地址,低3位悬空不使用。
–编译、下载电路,拨动拨码开关,观察最低频率有什么变化。
1、 例化的子模块代码
2、原理图
![](https://img-blog.csdn.net/20171123201529794?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvU2VwX1lvdW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
3、不同的计数增量值对应的波形
(1)计数增量为1时,正弦波频率约0.0488 MHZ
![](https://img-blog.csdn.net/20171123213540557?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvU2VwX1lvdW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
(2)计数增量为2时,正弦波频率约0.0976 MHZ
![](https://img-blog.csdn.net/20171123213526259?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvU2VwX1lvdW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
(3)计数增量为4时,正弦波频率约0.1953 MHZ
要求:
–用计数器生成地址、读取ROM数据
–理解二进制补码和无符号数
–修改计数增量值,观察波形变化,思考输出频率
和计数器增量值的关系。
原参考设计:
1、 例化的子模块代码
// 带计数增量输入的计数器 // module cnt_incr( CLK , // clock INCR , // counter increase value CNTVAL); // counter value input CLK; input [7-1:0] INCR; output [7-1:0] CNTVAL; reg [7-1:0] CNTVAL; always @ (posedge CLK) begin CNTVAL <= INCR + CNTVAL; end endmodule //生成正弦波表的rom【代码太长,此处略去150行】 //
2、原理图
3、RTL图
计数器模块内部电路结构:
【思考】:如果加法器溢出了,输出结果会怎样?
【答】:当相位累加器的溢出时,—个完整的阶梯正弦信号就从ROM查询表的输出端输出。因此,相位累加器的溢出率就是正弦波信号的输出频率。
ROM内部电路结构:
4、不同的计数增量值对应的波形
(1)计数增量为1时,正弦波频率约0.39 MHZ
(2)计数增量为2时,正弦波频率约0.78 MHZ
(3)计数增量为4时,正弦波频率1.5625 MHZ
【问题一】拨动开关,观察不同频率的正弦波, 电路的工作时钟是50MHz
(1) 请回答,你能得到的正弦波频率和计数器增量值的对应关系是什么?
(2)请回答,你能得到的最低频率的正弦波是多少?设该频率为f1
(3)请思考,能否有什么方法能够得到比f1频率还低的正弦波
【答】:
(1)正弦波频率和计数器增量值成 线性关系。
(2)正弦波的最低频率f1约0.39 MHZ。
(3)增加计数器增量或减小计数器数据位宽。
【问题二】输出信号频率 和 电路工作时钟频率,计数器增量值,以及计数器数据位宽之间的表达式关系?
【答】:
学生实验:
设计直接数字频率合成(DDS)
要求:
–把计数增量输入信号分配到10个拨码开关上
–把计数值信号的高7位分配为ROM的地址,低3位悬空不使用。
–编译、下载电路,拨动拨码开关,观察最低频率有什么变化。
1、 例化的子模块代码
// 带计数增量输入的计数器 // module cnt_incr( CLK , // clock INCR , // counter increase value CNTVAL); // counter value input CLK; input [10-1:0] INCR; output [10-1:0] CNTVAL; reg [10-1:0] CNTVAL; always @ (posedge CLK) begin CNTVAL <= INCR + CNTVAL; end endmodule //生成正弦波表的rom【代码太长,此处略去150行】 //
2、原理图
3、不同的计数增量值对应的波形
(1)计数增量为1时,正弦波频率约0.0488 MHZ
(2)计数增量为2时,正弦波频率约0.0976 MHZ
(3)计数增量为4时,正弦波频率约0.1953 MHZ
相关文章推荐
- FPGA基础实验:用计数器读取ROM数据产生信号波形(直接数字频率合成DDS)
- FPGA入门实验六:计数器、ROM和DDS
- FPGA实验六——计数器、ROM和DDS
- 实验六:计数器、ROM和DDS
- ROM 之 可以控制波形类型的DDS
- 基于Vivado调用ROM IP core设计DDS
- DDS---相位累加器、ROM查找表的FPGA实现
- DDS技术之FPGA技术之LPM_ROM生成正弦波
- 基于MATLAB生成ROM查找表的DDS-中频载波实现
- Bezier curves And Catmull-Rom spline
- ANDROID ROM 包的制作流程简介
- Cocos2dx3.2编写常用UI组件(二)滚动计数器NumberScroller
- 注重轻快简 一加ROM正式命名氢OS
- Hadoop学习笔记—7.计数器与自定义计数器
- 利用Windows性能计数器(PerformanceCounter)监控 分类: windows驱动程序WDM VC++ 2015-03-10 10:44 369人阅读 评论(0) 收藏
- angsrom linux opkg update 失败 解决方案
- 防止一天内重复刷新计数器
- nandflash,norflash,sdram,emmc,rom,ram
- Xilinx DDS IP设置
- 小tip:CSS计数器+伪类实现数值动态计算与呈现