使用Quartus 18.0 的NCO ip核产生一个正弦信号,并用modelsim仿真(解决asj文件not define 问题)

本文档介绍了如何在Quartus 18.0中利用NCOip核生成正弦信号,并详细阐述了模块设置和.V文件内容。同时,提供了测试文件的代码示例,展示了两种不同的仿真方法:一种是在ModelSim中创建工程进行仿真,另一种是直接通过Quartus调用ModelSim进行仿真。在遇到.asj文件未定义的问题时,解决方案是导入.sip文件到工程中。最后,展示了成功仿真的结果。
摘要由CSDN通过智能技术生成

使用Quartus 18.0 的NCO ip核产生一个正弦信号

NCO ip核的参数设置

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

.v文件的内容

module nco_test(clk,reset_n,clken,phi_inc_i,fsin_o,out_valid);

	input			clk;
	input			reset_n;
	input			clken;
	input	[15:0]	phi_inc_i;
	output	[9:0]	fsin_o;
	output			out_valid;
	
	nco_ip u1(
				.clk(clk),       // clk.clk
		.reset_n (reset_n),   // rst.reset_n
		.clken (clken),     //  in.clken
		.phi_inc_i (phi_inc_i), //    .phi_inc_i
		.fsin_o    (fsin_o),    // out.fsin_o
		.out_valid (out_valid)  //    .out_valid
	
	);

endmodule

测试文件的内容

`timescale	1ns/1ns
module nco_test_tb();
reg		clk;
reg		reset_n;
reg		clken;
reg	[15:0]	phi_inc_i;
wire	[9:0]	fsin_o;
wire	out_valid;

nco_test	nco_test_1(
	.clk(clk),
	.reset_n(reset_n),
	.clken(clken),
	.phi_inc_i(phi_inc_i),
	.fsin_o(fsin_o),
	.out_valid(out_valid)
	);

initial		begin
	begin
		clk = 0;
		phi_inc_i = 16'd1311;
		reset_n = 0;
		clken = 1;
		#10 reset_n = 1;
	end
end

always	#10	clk = ~clk;

endmodule

仿真

仿真的方法有两种一种是在modelsim中建一个工程,因为这个涉及到了altera的IP核,所以还像以前那样建工程仿真就会比较麻烦,今天找到了一种简便的方法,就是quartus对工程综合以后会在工程目录下产生一个simulation的文件夹,在这个文件夹下有一个 工程名.vo文件,在modelsim下建立一个工程 工程中只需要放两个文件,一个是之前的测试文件,还有一个就是综合之后生成的 .vo文件,然后正常编译,仿真,就可以得到仿真结果。
在这里插入图片描述
还有一种仿真的方法是直接使用quartus软件调用modelsim进行仿真,但是在最开始使用这种方法的时候出现了一种问题,如下所示:
在这里插入图片描述
显示的是一系列asj文件没有定义,这里的解决办法是将下图所示的sip在这里插入图片描述
文件导入到工程中去,如下图所示:
在这里插入图片描述
这样在使用quartus 调用 modelsim IP核就会成功,下图为直接使用quartus调用modelsim仿真的结果:
在这里插入图片描述
想要生成.sip文件需要做的是在下面这个界面的时候全选
在这里插入图片描述

  • 14
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值