数字电路与模拟电路的综合应用
(1)实验目的
1、了解D/A转换器的基本工作原理和基本结构
2、了解大规模集成D/A转换器的功能及其典型应用方法
3、掌握综合性电路的调测方法
(2)实验原理或设计过程
实验内容∶设计一个可编程波形发生器技术指标∶
① 输出信号波形受K2和K1控制
开关K2K1=01时,输出信号波形为正斜率锯齿波。开关K2K1=10时,输出信号波形为负斜率锯齿波。
开关K2K1=11时,输出信号波形为正负斜率锯齿波组成的三角波。
② 输出信号频率
输出锯齿波时/=1KHZ;输出三角波时/,=0.5KHZ。
③ 输出正负斜率锯齿波上升或下降的台阶数等于16个。
④ 输出幅度V在0V~2V间可调。
设计条件∶
① 电源电压为±5V。
②系统时钟信号可以自行设计,也可以采用实验箱所提供的信号源。
波形控制电路∶
K2K1=01时,转换器输入的二进制数为加法计数;
K2K1=10时,转换器输入的二进制数为减法计数;
K2K1=11时,转换器先输入加法计数结果,然后输入减法计数结果。
(1)原理图实现数字电路部分:
逻辑电路卡诺图:
(3)RTL代码设计(加分项)
- RTL代码
module DAC
#( parameter M=4)
(K,clk,rst_n,cnt,co);
input [1:0]K;
input clk;
input rst_n;
output reg[M-1:0]cnt;
output reg co;
always @(posedge clk,negedge rst_n)
if(!rst_n)
begin
cnt<=0;
co<=1'b0;
end
else begin
case(K)
2'b01:
begin
if(cnt==4'b1111)
cnt<=5'b0000;
else
cnt<=cnt+1'b1;
end
2'b10:
begin
cnt<=4'b1111;
if(cnt==4'b0000)
cnt<=4'b1111;
else
cnt<=cnt-1'b1;
end
2'b11:
begin
if(co==0)
begin
if(cnt==4'b1111)
begin
cnt<=cnt;
co<=1;
end
else
cnt<=cnt+1'b1;
end
if(co==1)
begin
if(cnt==4'b0000)
begin
cnt<=cnt;
co<=0;
end
else
cnt<=cnt-1'b1;
end
end
endcase
end
endmodule
- 仿真测试模块代码
`timescale 1ns / 1ps
module DAC_tb;
reg [1:0] K;
reg clk;
reg rst_n;
wire [3:0] cnt;
wire co;
DAC uut (
.K(K),
.clk(clk),
.rst_n(rst_n),
.cnt(cnt),
.co(co)
);
initial begin
K = 0;
clk = 0;
rst_n = 0;
#100;
rst_n=1;
K=2'b01;
#400;
K=2'b10;
#400;
K=2'b11;
#400;
end
always #7 clk=~clk;
endmodule
(4)实验电路图
(5)实验数据分析和实验结果
当K1K2=01时,计数器递增。
当K1K2=10时,计数器递减。
当K1K2=11时,计数器先增后减。
可编程波形发生器的波形图:
(6)附录:示波器图像
当K1K2=01时,计数器递增。
当K1K2=10时,计数器递减。
当K1K2=11时,计数器先增后减。