1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/ZJicm59w
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
数字AGC广泛应用于通信系统中,如无线电通信、卫星通信、雷达系统等。在这些应用中,数字AGC可以保证接收到的信号强度始终在适当的范围内,从而保证通信的质量和可靠性。以无线电通信为例,数字AGC可以使接收机在强信号和弱信号之间自动切换,从而避免强信号引起的失真和弱信号引起的噪声。数字AGC还可以减少对电池的能量消耗,延长电池寿命。在卫星通信中,数字AGC可以使接收机在不同的天线方向之间自动切换,并根据信号的强度进行自动调节,从而保证接收到的信号质量和可靠性。在雷达系统中,数字AGC可以保证雷达接收到的回波信号强度始终在适当的范围内,从而保证雷达的探测距离和探测精度。总之,数字AGC是一种非常重要的技术,在通信系统、雷达系统等领域有着广泛的应用和发展前景。
4.部分源码
..................................................................
//signal 延迟
reg signed[11:0]dly_x[2149:1];
always @(posedge i_clk or posedge i_rst)
begin
if(i_rst)
begin
for(i=1;i<=2149;i=i+1)
dly_x[i]<=12'd0;
end
else begin
dly_x[1]<=i_x;
for(i=2;i<=2149;i=i+1)
dly_x[i]<=dly_x[i-1];
end
end
//flag 延迟
reg signed[2148:0]dly_flag;
always @(posedge i_clk or posedge i_rst)
begin
if(i_rst)
begin
dly_flag<=2149'd0;
end
else begin
dly_flag<={dly_flag[2147:0],i_flag};
end
end
wire signed[11:0]w_y = dly_x[2149];
assign o_flag= dly_flag[2048];
//自动增益
wire [19 : 0] gains;
blk_agc blk_agc_u (
.clka(i_clk), // input wire clka
.rsta(i_rst), // input wire rsta
.addra(o_egy), // input wire [8 : 0] addra
.douta(gains), // output wire [19 : 0] douta
.rsta_busy() // output wire rsta_busy
);
reg signed[19:0]wgains;
always @(posedge i_clk or posedge i_rst)
begin
if(i_rst)
begin
wgains <= 20'b0;
end
else begin
if(o_flag == 1'b1)
wgains <= gains;
else
wgains <= wgains;
end
end
endmodule
00_013m