介绍了13.1版本的quartus中的NCOip核的破解、使用和仿真功能
文章目录
- 前言
- 一、quartus ip核
-
二、 nco ip核的配置
- 1 ip核的配置
- 2.代码编写
- 3.联合仿真
- 总结
前言
本文主要还介绍了13.1版本的quartus中的NCOip核的破解、使用仿真功能。适合正点原子开拓者等相同芯片系列产品的参考。
提示:以下是本篇文章正文内容,下面案例可供参考
一、quartus ip核
使用nco ip核之前先要确认nco的ip核是否可用,可以通过quartus 的tool-license setup界面确认,可以正常使用的quartus如下:
使用nco、fft等ip核卡住的情况也是由于ip核没有购买导致,需要先得到许可,才可使用。
二、NCO ip核的使用
1. 首先调用NCO ip核
创建一个新的ip核,名称命名为ip_nco
参数设置界面:(代码生成的是4.5khz,读者可自行修改输出频率,并在代码中修改,phi_inc_i)
执行栏,频率调制和相位调制取消勾选,输出数量选择1,最后一栏不需要修改,
step2:两个都要勾选,语言注意是:verilog HDL,然后点击生成即可。
完成后可以看到file栏,存在ip_nco.qip文件,ip核栏也显示ip核,我们可以双击这个ip核来完成参数的修改并重新生成。
2. nco的例化
代码如下:
module nco(
input sys_clk ,//系统时钟
input sys_rst_n ,//系统复位 低电平有效
output wire [9:0] sin1 ,//4.5khz正弦波
output sin1_vld //数据输出有效标志
);
wire [9:0] sin1_do;
assign sin1 = sin1_do;
ip_nco u_ip_nco
(
.clk ( sys_clk ),
.reset_n ( sys_rst_n ),
.clken ( 1'b1 ), //使能信号
.phi_inc_i ( 32'd386547 ), //相位累加器K值
.fsin_o ( sin1_do ),
.out_valid ( sin1_vld )
);
endmodule
仿真代码:
`timescale 1ns/1ns
module tb_nco();
reg sys_clk ;
reg sys_rst_n ;
wire [11:0] sin1 ;
wire sin1_vld ;
initial
begin
sys_clk = 1'b1;
sys_rst_n <= 1'b0;
#20
sys_rst_n <= 1'b1;
end
always #10 sys_clk = ~sys_clk;
nco nco_inst(
.sys_clk (sys_clk),
.sys_rst_n (sys_rst_n),
.sin1 (sin1) ,
.sin1_vld (sin1_vld)
);
endmodule
注意:将代码文件添加到工程后要先编译,找到ip核目录下的.vo文件,并添加到工程中才能仿真成功。
3、 联合仿真
RTL VIewer如下:
modelsim:波形如下:
文章来源:https://www.toymoban.com/news/detail-808449.html
总结
机械自学转FPGA,后续还会讲一下nco配合fir滤波器的使用,希望大家点个赞,共同学习!文章来源地址https://www.toymoban.com/news/detail-808449.html
到了这里,关于FPGA NCOip核的使用及仿真(quartusii 13.1+modelsimse 10.5)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!