频率可变的任意波形发生器.doc
文本预览下载声明
深 圳 大 学 实 验 报 告
课程名称: Verilog使用及其应用
实验名称: 频率可变的任意波形发生器
学院: 电子科学与技术学院
前言
波形发生器是一种数据信号发生器,在调试硬件时,常常需要加入一些信号,以观察电路工作是否正常Verilog HDL是一种硬件描述语言(HDL:Hardware Discription Language),是一种以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。
图 1-1 系统总体设计方案
DDS是一种把数字信号通过数/模转换器转换成模拟信号的合成技术。它由相位累加器、相幅转换函数表、D/A转换器以及内部时序控制产生器等电路组成。
参考频率f_clk为整个合成器的工作频率,输入的频率字保存在频率寄存器中,经N位相位累加器,累加一次,相位步进增加,经过内部ROM波形表得到相应的幅度值,经过D/A转换和低通滤波器得到合成的波形。△P为频率字,即相位增量;参考频率为f_clk;相位累加器的长度为N位,输出频率f_out为:
F_out——输出信号的频率;
N————相位累加器的位数;
△P———频率控制字(步长);
F_clk——基准时钟频率。
图1-2 四种波形单周期的取样示意图
段地址 基地址 16位二进制数代表波形的取值
00 000 0
00 001 70
00 010 100
00 011 70
00 100 0
00 101 -70
00 110 100
00 111 -70
01 000 100
01 001 100
01 010 100
01 011 100
01 100 -100
01 101 -100
01 110 -100
01 111 -100
10 000 0
10 001 25
10 010 50
10 011 75
10 100 100
10 101 125
10 110 150
10 111 175
11 000 175
11 001 150
11 010 125
11 011 100
11 100 75
11 101 50
11 110 25
11 111 0
图1-3 函数查找表的设计
源程序
module dds(f_clk,p,choice,data);//模块的端口设定
input [15:0] p; //频率控制字
input[1:0] choice; //波形选择变量
input f_clk; //输入时钟信号
output [15:0] data; //波形数值输出
wire [15:0] data;
reg [5:0] addr,address; //波形数值所在地址
reg [15:0] count;
reg f_out; //经P变量频率控制调动后的时钟信号
initial
begin
count=0;
addr=0;
f_out=0;
end
function [15:0]rom; //ROM中各波形数值的设定
input[5:0] address;
case(address) //波形选择
0 : rom = 0;
显示全部