FPGA NCO+FIRip核的使用及仿真(加法)(quartusii 13.1+modelsimse 10.5)
1、NCO及FIR ip核的调用
在使用ip核之前,首先要将IP核进行破解,可以参考上一篇文章:FPGA NCOip核的使用及仿真(quartusii 13.1+modelsimse 10.5)
FPGA NCOip核的使用及仿真(quartusii 13.1+modelsimse 10.5)_机械 zp的博客-CSDN博客
这里使用两个nco ip核来产生两个正弦信号,频率分别设定为1MHz和10MHz:ip_nco,ip_nco10
FIRip核的相关参数设置:
这里的系数设置也可以通过matlab的fdatools工具生成,然后导入系数文件(.txt)
勾选仿真,选择语言:,
生成ip核,接口如下:
2、代码部分
module fir_top(input sys_clk,input sys_rst_n,output signed[9:0] sin1,output sin1_vld,output signed[9:0] sin10,output sin10_vld,output signed[10:0] add_sin,output add_vld,output signed [29:0] fir_out);reg signed[10:0] sum_sin ;
wire signed[9:0] sin1_do ;
wire signed[9:0] sin10_do ;
wire out_en ;
wire s_val ;
wire s_err ;assign sin1 = sin1_do;
assign sin10 = sin10_do;
assign add_sin = sum_sin;
assign add_vld = sin1_vld & sin10_vld;//信号相加
always @(posedge sys_clk or negedge sys_rst_n) beginif(!sys_rst_n)beginsum_sin <= 10'd0;endelse beginif(sin1_vld & sin10_vld)sum_sin <= sin1 + sin10;elsesum_sin <= sum_sin;end
endip_nco u_ip_nco(.clk ( sys_clk ),.reset_n ( sys_rst_n ),.clken ( 1'b1 ),.phi_inc_i ( 32'd85899346),.fsin_o ( sin1_do ),.out_valid ( sin1_vld ));ip_nco10 u_ip_nco10(.clk ( sys_clk ),.reset_n ( sys_rst_n ), .clken ( 1'b1 ),.phi_inc_i ( 32'd858993459),.fsin_o ( sin10_do ),.out_valid ( sin10_vld ));ip_fir u_ip_fir(.clk ( sys_clk ), .reset_n ( sys_rst_n ), .ast_sink_data ( add_sin ), .ast_sink_valid ( add_vld ), .ast_sink_error ( 2'b0 ), .ast_source_ready (1'b1 ), .ast_source_data ( fir_out ), .ast_source_valid ( s_val ), .ast_source_error ( s_err ));endmodule
Test benches代码:
`timescale 1ns/1nsmodule tb_fir_top();//输入信号
reg sys_clk ;
reg sys_rst_n ;//输出信号
wire [9:0] sin1 ;
wire sin1_vld ;
wire [9:0] sin10 ;
wire sin10_vld ;
wire [10:0] add_sin ;
wire add_vld ;
wire [29:0] fir_out ;//模块例化fir_top u_fir_top(.sys_clk ( sys_clk ),.sys_rst_n ( sys_rst_n ),.sin1 ( sin1 ),.sin1_vld ( sin1_vld ),.sin10 ( sin10 ),.sin10_vld ( sin10_vld ),.add_sin ( add_sin ),.add_vld ( add_vld ),.fir_out ( fir_out ));//产生时钟parameter CLK_PRE = 20;//时钟周期always #(CLK_PRE/2) sys_clk = ~sys_clk;integer i;//循环变量//产生激励initial beginsys_clk = 1'b1;sys_rst_n = 1'b0;i=0;#(CLK_PRE*10);sys_rst_n = 1'b1;forever begin#(CLK_PRE);i=i+1;if(i==4000)$stop;endend
endmodule
3、仿真
频率显示,右击黄线,勾选显示频率。
参考:NCO ip核生成正弦波并用FIR滤波器输出滤波波形_兄弟抱一下~的博客-CSDN博客_fir滤波器波形
FPGA NCO+FIRip核的使用及仿真(加法)(quartusii 13.1+modelsimse 10.5)相关推荐
- FPGA NCOip核的使用及仿真(quartusii 13.1+modelsimse 10.5)
介绍了13.1版本的quartus中的NCOip核的破解.使用和仿真功能 文章目录 前言 一.quartus ip核 二. nco ip核的配置 1 ip核的配置 2.代码编写 3.联合仿真 总结 前 ...
- FPGA NCO+LPM_MULT+FIRip核 实现乘法+低通滤波 使用及仿真(quartusii 13.1+modelsimse 10.5)
目录 一.RTL Viewer: 二.IP核的使用 三.代码编写 四.结果 一.RTL Viewer: 二.IP核的使用 1.使用NCOip核产生两个4.5MHz和5MHz的正弦信号(位宽均为10位) ...
- 【FPGA】: ip核——Fir滤波器
文章目录 一.简介 二. ip核的端口说明 三. ip核的生成 四. 典型示例 五.结果展示 六. 参考资料 一.简介 FIR 滤波器之内插 FIR 滤波器Interpolated FIR Filte ...
- FPGA实现DDRIP核配置(Memory Interface Solutions)
FPGA实现DDRIP核配置(Memory Interface Solutions) DDR读写控制分三个文章来写,一部分写DDR的IP核配置,一部分写DDR的读写基本的过程和仿真,最后写读写控制的实 ...
- Xilinx Aurora 8B/10B IP核详解和仿真
Xilinx Aurora 8B/10B IP核详解和仿真 参考文献 XilinX PG046 Xilinx® LogiCORE™ IP Aurora 8B/10B 支持 AXI4-Stream用户接 ...
- FPGA的软核、硬核以及固核的概念
核(CORE)是一个数字系统的核心,负责整个系统的内存调度,中断管理,算术逻辑运算等,如同整个系统的大脑,是由物理电气实现逻辑功能的关键.尽管复杂,但不可忽略的是,核同其他数字器件一样,也是一个典型的 ...
- FPGA移植软核的原理
FPGA设计,规模巨大而且功能复杂,因此设计的每一个部分都从头开始是不切实际的.一种解决的办法是:对于较为通用的部分可以重用现有的功能模块,而把主要的时间和资源用在设计中的那些全新的.独特的部分.这就 ...
- Quartus II 13.1 调用NCO IP核无法生成终于搞定了
Quartus II 13.1 NCO IP核无法生成终于搞定了 1.调用NCO IP核时遇到的问题 2.解决我的问题的方法 1.调用NCO IP核时遇到的问题 初学FPGA的一只菜鸟,在树(书)上看 ...
- FPGA开源IP核下载opencores.org
原贴 http://bbs.elecfans.com/m/jishu_384213_1_1.html [问答] opencores这个网站的使用常识 2013-9-28 22:42 关于http:// ...
最新文章
- ui设计师要懂哪些B端设计原则?
- python http接口_python实现http接口测试
- html背景mov,科技常识:html5自动播放mov格式视频的实例代码
- 【转】解决keepalived正常启动但是虚IP(VIP)没有生成的问题
- shell实例第0讲:shell脚本完整pdf文档下载
- java提高篇之数组(1):认识JAVA数组
- Python3.7.5安装(Windows10附pip更换下载源)
- ACM-ICPC 2017 Asia Nanning
- 余额 微信钱包图片_微信红包技巧:关闭这个功能,不上传身份证也能正常使用!...
- python重复输入字符串a三次_8道Python基础面试练习题
- 2018年《环球科学》十大科学新闻:霍金逝世、贺建奎事件位列前二
- postgres复制数据库
- 10种用户友好的验证码
- SSDP协议内容解析
- java设计模式之组合设计模式
- 搭建frida+木木模拟器运行环境
- 基于OpenCV的手指只数检测
- 57.音乐播放器的进度条
- 如何用JavaScript自己实现一个unshift() 方法
- 2022软件测试工程师的简历怎么写?