m基于FPGA的数字下变频verilog设计

news/2024/11/28 13:34:33/

目录

1.算法描述

2.仿真效果预览

3.verilog核心程序

4.完整FPGA


1.算法描述

整个数字下变频的基本结构如下所示

 

NCO使用CORDIC算法,CIC采用h结构的CIC滤波器,HBF采用复用结构的半带滤波器,而FIR则采用DA算法结构。

    这里,我们首先假设不考虑中频信号输入的载波频偏问题,即发送的中频频率和本地的载波频率是一致的。

为了验证系统的正确性,我们首先需要设计一个发送源,由于你要求的信号带宽为20M,

所以整个系统我们设计的系统参数为,中频为80M,A/D采样为60M。本地接收端的载波频率为20M。

即发送端通过80M的中频调制之后,信号的频谱会搬移到80M附近,然后接收端通过AD60M采样后,会将频谱搬移到20M附近,且不会发生混叠现象。

那么系统测试方案可以简化为,一个中心频率在20M附近的中频输入测试信号进行测试。

首先设计一个发送测试信号。

信号的基本结构如下所示:

      我们首先在FPGA中设计这么一个结构得到中频测试信号,然后使用这个测试信号进行下变频测试。

整个系统的原理框图如下所示:

RTL图:

综合资源占用:

2.仿真效果预览

quartusii10.0,ModelSim-Altera 6.6d Starter Edition

 

 

 

 

3.verilog核心程序

 module tops2(reset,clk,clk0,rst0,clk1,rst1,I0,phase0,phase1,Q0,cosr,I_cic,I_d,I_hb,I_out,Q_d,Q_out,R,sinr
);input wire	reset;
input wire	clk;
input wire	clk0;
input wire	rst0;
input wire	clk1;
input wire	rst1;
input wire	[7:0] I0;
input wire	[7:0] phase0;
input wire	[7:0] phase1;
input wire	[7:0] Q0;
output wire	[7:0] cosr;
output wire	[47:0] I_cic;
output wire	[13:0] I_d;
output wire	[31:0] I_hb;
output wire	[15:0] I_out;
output wire	[13:0] Q_d;
output wire	[15:0] Q_out;
output wire	[13:0] R;
output wire	[7:0] sinr;wire	[47:0] I_cic_ALTERA_SYNTHESIZED;
wire	[31:0] I_hb_ALTERA_SYNTHESIZED;
wire	[47:0] Q_cic;
wire	[31:0] Q_hb;
wire	[13:0] SYNTHESIZED_WIRE_0;
wire	[13:0] SYNTHESIZED_WIRE_1;
wire	[13:0] SYNTHESIZED_WIRE_2;
wire	SYNTHESIZED_WIRE_3;
wire	SYNTHESIZED_WIRE_4;
wire	SYNTHESIZED_WIRE_5;
wire	SYNTHESIZED_WIRE_6;assign	I_d = SYNTHESIZED_WIRE_0;
assign	Q_d = SYNTHESIZED_WIRE_1;
assign	R = SYNTHESIZED_WIRE_2;cic_top	b2v_inst(.i_clk(clk),.i_rst(reset),.i_din(SYNTHESIZED_WIRE_0),.o_clk16(SYNTHESIZED_WIRE_3),.o_dout(I_cic_ALTERA_SYNTHESIZED));defparam	b2v_inst.WIDTH = 48;cic_top	b2v_inst1(.i_clk(clk),.i_rst(reset),.i_din(SYNTHESIZED_WIRE_1),.o_clk16(SYNTHESIZED_WIRE_4),.o_dout(Q_cic));defparam	b2v_inst1.WIDTH = 48;Rec	b2v_inst12(.clk(clk1),.rst(rst1),.phase(phase1),.recs(SYNTHESIZED_WIRE_2),.Iss(SYNTHESIZED_WIRE_0),.Qss(SYNTHESIZED_WIRE_1));hb_filter_02	b2v_inst2(.i_clk(SYNTHESIZED_WIRE_3),.i_rst(reset),.i_din(I_cic_ALTERA_SYNTHESIZED[34:19]),.o_clk2(SYNTHESIZED_WIRE_5),.o_dout(I_hb_ALTERA_SYNTHESIZED));defparam	b2v_inst2.h0 = 27316;defparam	b2v_inst2.h1 = 20073;defparam	b2v_inst2.h11 = 1238;defparam	b2v_inst2.h13 = -1175;defparam	b2v_inst2.h15 = -624;defparam	b2v_inst2.h3 = -4745;defparam	b2v_inst2.h5 = 965;defparam	b2v_inst2.h7 = 667;defparam	b2v_inst2.h9 = -1238;hb_filter_02	b2v_inst3(.i_clk(SYNTHESIZED_WIRE_4),.i_rst(reset),.i_din(Q_cic[34:19]),.o_clk2(SYNTHESIZED_WIRE_6),.o_dout(Q_hb));defparam	b2v_inst3.h0 = 27316;defparam	b2v_inst3.h1 = 20073;defparam	b2v_inst3.h11 = 1238;defparam	b2v_inst3.h13 = -1175;defparam	b2v_inst3.h15 = -624;defparam	b2v_inst3.h3 = -4745;defparam	b2v_inst3.h5 = 965;defparam	b2v_inst3.h7 = 667;defparam	b2v_inst3.h9 = -1238;firfilter_da	b2v_inst4(.CLK(SYNTHESIZED_WIRE_5),.Reset(reset),.DIN(I_hb_ALTERA_SYNTHESIZED[30:23]),.Dout(I_out));firfilter_da	b2v_inst5(.CLK(SYNTHESIZED_WIRE_6),.Reset(reset),.DIN(Q_hb[30:23]),.Dout(Q_out));Trans	b2v_inst6(.clock(clk0),.reset(rst0),.I(I0),.phase(phase0),.Q(Q0),.cosr(cosr),.r(SYNTHESIZED_WIRE_2),.sinr(sinr));assign	I_cic = I_cic_ALTERA_SYNTHESIZED;
assign	I_hb = I_hb_ALTERA_SYNTHESIZED;endmodule
01-115m

4.完整FPGA

V


http://www.ppmy.cn/news/2572.html

相关文章

Matlab 中 global 函数实例解析

目录 global 函数 案例分析 1 案例分析 2 使用golbal的优点 1. 传递大数据的参数 2. 过多的常量需要传递 global 函数 比如在主函数里面,你需要设置 Nc 这个变量是一个全局变量,就需要声明一下: global Nc; 然后在子函数里面你又用到了…

蓝桥杯比赛 NOC竞赛C++ 类、函数和指针,选择题真题和模拟题汇总答案解析

第二部分 C 类、函数和指针 1、有关类的说法不正确的是 D A)类是一种用户自定义的数据类型. B)只有类中的成员函数才能存取类中的私有成员. C)在类中,如果不做特别说明,所指的数据均为私有类型. D&#…

【linux】ssh免密登录

概要 服务器免密登录实际上是基于公钥的认证,比如希望A服务器可以免密访问B服务器,则需要进行如下步骤 A服务器生成密钥对将A服务器生成的公钥分发到B服务器(写入~/.ssh/authorized_keys)A服务器即可免密登录B服务器 生成密钥对…

Vue学习:Vue中的数据代理

<!-- 准备容器 --><div idroot> <h2>学校名称&#xff1a;{{name}}</h2><h2>学校地址&#xff1a;{{adress}}</h2></div><script>const vm new Vue({ el: #root,data: {name:Jhon,adress:street 10},});</script> vm上…

计算机的硬件系统和软件系统的关系

计算机的硬件系统和软件系统的关系是缺一不可。 硬件它是所有软件运行的物质基础。 与硬件直接接触的是操作系统&#xff0c;它处在硬件和其他软件之间&#xff0c;表示它向下控制硬件&#xff0c;向上支持其他软件。 在操作系统之外的各层分别是各种语言处理程序、数据库管理…

【C++ unordered_set set 和 unordered_map 和 map】

文章目录前言简单介绍哈希表&#xff0c;哈希结构什么时候用哈希表unordered_map操作likou第一题 两数之和unordered_set 基础操作unordered_set 实现总结前言 今天重新打开力扣&#xff0c;看到以前的签到题两数之和&#xff0c;以前的方法是双指针暴力解法&#xff0c;偶然看…

nginx 正向代理http和https

nginx正向代理默认只支持http&#xff0c;不支持https&#xff0c;需借助第三方模块“ngx_http_proxy_connect_module”来实现&#xff08;https://github.com/chobits/ngx_http_proxy_connect_module&#xff09; yum -y install make zlib zlib-devel gcc-c libtool openss…

设计模式-day03

5&#xff0c;结构型模式 结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式&#xff0c;前者采用继承机制来组织接口和类&#xff0c;后者釆用组合或聚合来组合对象。 由于组合关系或聚合关系比继承关系耦合度低&#xff0c;满足“…