当前位置:   article > 正文

【FPGA】使用Verilog编程通过ModelSim实现2FSK调制解调仿真②(调用.mif生成2FSK载波波形——DDS)_基于modesim2psk相干解调波形图

基于modesim2psk相干解调波形图

Verilog编写2FSK第②步调用.mif生成FSK载波波形_DDS

  • 定义模块端口
module DDS(clk,DA_Data,DA_Data2);//定义端口名字
input clk;//时钟端口输入
output [10:0]DA_Data;//数据输出位,可以在接下来仿真中被调用。因为生成的.mif中输出波形量化值最高为1024为转化为2进制为11位
output [10:0]DA_Data2;
  • 1
  • 2
  • 3
  • 4
  • 定义.mif文件查询地址位(该地址位是.mif文件中数据’:'左边为地址)
reg [10:0] rom_addr=11'b00000000000;//这里设置的为2FSK中频率低的波形为2048位,初始地址位为0
reg [9:0] rom_addr2=10'b0000000000;//这里设置的为2FSK中频率高的波形为1024位,初始地址位为0


always@(posedge clk)begin//时钟上升沿触发
if(rom_addr==11'b11111111111)//如果地址位达到最高上限将强制归零
rom_addr<=11'b0;
else 
rom_addr<=rom_addr+11'b1;//如果未达上限对地址位加一
end	


always@(posedge clk)begin
if(rom_addr2==10'b1111111111)
rom_addr2<=10'b0;
else 
rom_addr2<=rom_addr2+10'b1;
end	
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 调取.mif文件生成rom

在这里插入图片描述在这里插入图片描述

在这里插入图片描述
这里位数和位宽要和.mif文件中描写的对应。
是上的
在这里插入图片描述在这里插入图片描述

在这里插入图片描述
之后会生成一个rom.v文件
在这里插入图片描述
打开rom.v找到模块端口

module rom (
	address,//地址位输入
	clock,//时钟输入位
	q);//数据输出位
  • 1
  • 2
  • 3
  • 4

需要注意的是rom文件里的端口参数要和.mif文件一样和DDS中定义端口数据类型也一样

  • 接下来调用rom模块,通过地址查表输出量化数据
rom rom (//对rom模块例化
		.address(rom_addr),//将端口一一对应即可		
		.clock(clk),	
		.q(DA_Data)		//数据输出		
		);
rom2 rom2 (
		.address(rom_addr2),		
		.clock(clk),	
		.q(DA_Data2)				
		);
endmodule//结束模块
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 最后编写顶层和测试仿真模块
    !!!需要将顶层模块设置为顶层,操作是右键想要设置的文件名称set as top即可
    以下是测试代码
`timescale  1ms/1ms//延时1m精度1m这个可以按需求设置
module DDS_tb;//定义顶层仿真模块
reg clk;//定义时钟信号
wire [10:0]DA_Data;//波形1.输出位线性11位宽二进制量化数值
wire [10:0]DA_Data2;//波形2
DDS DDS(//例化模块端口
.clk(clk),
.DA_Data(DA_Data),
.DA_Data2(DA_Data2)
);
initial clk=1;//对时钟初始赋值
always #5 clk=~clk;//生成时钟信号
endmodule
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 开始使用Modelsim仿真
    Assignment >>settings
    在这里插入图片描述添加新的tb文件
    在这里插入图片描述

选择刚刚编写的tb测试文件add后应用
在这里插入图片描述

然后综合编译完成后对程序仿真 Tools>>run simulation
弹出Modelsim后选中wave窗口即可
此时窗口波形并不是熟悉的量化输出的正弦波形,需要对波形进行操作

右击想要生成波形的参数选择Format>>analog (custom)
对区间进行设置
在这里插入图片描述
然后再右击选择radix>>unsigned
对两个参数都进行这样的操作即可观察到载波波形。
在这里插入图片描述
需要注意的地方:
1.生成rom文件里参数要和.mif对应
2.要设置顶层文件
3.要对最后仿真的参数进行设置才能出波形
以上代码可直接粘贴运行分开是为了步骤注释方便

【FPGA】使用Verilog编程通过ModelSim实现2FSK调制解调仿真③(信号调制仿真)
【FPGA】使用Verilog编程通过ModelSim实现2FSK调制解调仿真①( MATLAB生成.mif文件)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/482380
推荐阅读
相关标签
  

闽ICP备14008679号