信号发生器的实验报告:
1、实验目的:
了解信号发生器的类型;掌握用数字电路产生随机序列码的实现方法;对信号发生器有更深刻的认识。掌握信号发生器的基本原理;理解仿真。
2、实验内容:
本波形发生器应该具有时钟复位信号,并具有选择和分频输入信号,选择信号的目的是为了选择输出四种之中的哪种波形,分频输入信号是为了提供分频的值。为了方便设计,这里选用2n分频,即输入的n输出的是2n分频后的波形。此外需要一个输出信号来输出选择好的波形。整个设计的代码如下,中间rom部分做成一个函数,输入对应地址就能返回表中的数值。
3、实验原理:
本实验的信号发生器分为三个独立的部分:以4096MHz品振为中心的时钟信号产生部分、以4.433MHz晶振为中心的数字信号产生部分和以8038函数发生器为中心的模拟信号产生部分。
4、实验工具:
PC机、quartus ii软件和modelsim软件。
5、实验代码:
实验原始代码:
module dds(clk,reset,div,choose,data);
input [5:0] div;
input [1:0] choose;input clk,reset;
output [7:0] data;
wire [7:0]data;
reg [5:0] addr,address;
reg [5:0] i;
reg clkdiv;
function [7:0] rom;
input [5:0]address;
begin case (address)
0 : rom = 0;
1 : rom = 4;
2 : rom = 12;
3 : rom = 21;
4 : rom = 25;
5 : rom = 21;
6 : rom = 12;
7 : rom = 4;
8 : rom = 20;
9 : rom = 20;
10 : rom = 20;
11 : rom = 20;
12 : rom = 1;
13 : rom = 1;
14 : rom = 1;
15 : rom = 1;
16 : rom = 0;
17 : rom = 5;
18 : rom = 10;
19 : rom = 15;
20 : rom = 20;
21 : rom = 25;
22 : rom = 30;
23 : rom = 35;
24 : rom = 35;
25 : rom = 30;
26 : rom = 25;
27 : rom = 20;
28 : rom = 15;
29 : rom = 10;
30 : rom = 5;
31 : rom = 0;
default :rom = 10’hxx;
endcase
end
endfunction
assign data = rom(address);
endmodule
实验测试代码:
module tbs6;
reg [5:0] div;
reg [1:0]choose;
reg clk,reset;
wire [7:0] data;
initial
begin
clk=0;reset=1;div=1;choose=0;
#4 reset=0;
#4 reset=1;
#1000 choose=1;
#1000 choose=2;
#1000 choose=3;
#1000 $stop;
end
always #5 clk=~clk;
dds dds(clk,reset,div,choose,data);
endmodule
6、实验截图:
7、实验视频:
下载哔哩哔哩进行观看:
【信号发生器-哔哩哔哩】https://b23.tv/kKGYug