制作DDS信号发生器(FPGA部分)
制作DDS信号发生器(FPGA部分)
功能

组件
32位寄存器
- 这里采用2个16位寄存器拼接
- 代码如下
module REG16B(CLK,D,Q);
input[15:0] D;
input CLK;
output[15:0] Q;
reg[15:0] Q;
always @(posedge CLK)
begin
Q <= D;
end
endmodule
相位累加器
- 代码如下
module PHASE_ACC(CLK,FREQIN,ROMADDR);
input CLK;
input [31:0]FREQIN;
output [7:0]ROMADDR;
wire [7:0]ROMADDR;
reg [31:0]ACC;
always@(posedge CLK)
begin
ACC<=ACC+FREQIN;//在时钟上升沿时,累加相位
end
assign ROMADDR=ACC[31:24];//对AD芯片仅输出高8位
endmodule
地址锁存器
- 代码如下
module DLATCH8(CLK,D,Q);
input CLK;
input [7:0]D;
output reg [7:0]Q;
always@(CLK or D)
begin
if(CLK==0)
Q<=D;
end
endmodule
双口RAM
配置方式






锁相环
配置方式








拼接模块
32位寄存器

- 使用2个16位寄存器拼接而成
双口RAM


- 在获得确定相位后查找ROM表中当前时刻的信号幅值
- 将幅值的数据读取后向AD芯片输出高8位数据
AD芯片仅能读取8位数据
锁相环

相位累加器

滤波板通讯引脚


浙公网安备 33010602011771号