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)相关推荐

  1. FPGA NCOip核的使用及仿真(quartusii 13.1+modelsimse 10.5)

    介绍了13.1版本的quartus中的NCOip核的破解.使用和仿真功能 文章目录 前言 一.quartus ip核 二. nco ip核的配置 1 ip核的配置 2.代码编写 3.联合仿真 总结 前 ...

  2. FPGA NCO+LPM_MULT+FIRip核 实现乘法+低通滤波 使用及仿真(quartusii 13.1+modelsimse 10.5)

    目录 一.RTL Viewer: 二.IP核的使用 三.代码编写 四.结果 一.RTL Viewer: 二.IP核的使用 1.使用NCOip核产生两个4.5MHz和5MHz的正弦信号(位宽均为10位) ...

  3. 【FPGA】: ip核——Fir滤波器

    文章目录 一.简介 二. ip核的端口说明 三. ip核的生成 四. 典型示例 五.结果展示 六. 参考资料 一.简介 FIR 滤波器之内插 FIR 滤波器Interpolated FIR Filte ...

  4. FPGA实现DDRIP核配置(Memory Interface Solutions)

    FPGA实现DDRIP核配置(Memory Interface Solutions) DDR读写控制分三个文章来写,一部分写DDR的IP核配置,一部分写DDR的读写基本的过程和仿真,最后写读写控制的实 ...

  5. Xilinx Aurora 8B/10B IP核详解和仿真

    Xilinx Aurora 8B/10B IP核详解和仿真 参考文献 XilinX PG046 Xilinx® LogiCORE™ IP Aurora 8B/10B 支持 AXI4-Stream用户接 ...

  6. FPGA的软核、硬核以及固核的概念

    核(CORE)是一个数字系统的核心,负责整个系统的内存调度,中断管理,算术逻辑运算等,如同整个系统的大脑,是由物理电气实现逻辑功能的关键.尽管复杂,但不可忽略的是,核同其他数字器件一样,也是一个典型的 ...

  7. FPGA移植软核的原理

    FPGA设计,规模巨大而且功能复杂,因此设计的每一个部分都从头开始是不切实际的.一种解决的办法是:对于较为通用的部分可以重用现有的功能模块,而把主要的时间和资源用在设计中的那些全新的.独特的部分.这就 ...

  8. Quartus II 13.1 调用NCO IP核无法生成终于搞定了

    Quartus II 13.1 NCO IP核无法生成终于搞定了 1.调用NCO IP核时遇到的问题 2.解决我的问题的方法 1.调用NCO IP核时遇到的问题 初学FPGA的一只菜鸟,在树(书)上看 ...

  9. FPGA开源IP核下载opencores.org

    原贴 http://bbs.elecfans.com/m/jishu_384213_1_1.html [问答] opencores这个网站的使用常识 2013-9-28 22:42 关于http:// ...

最新文章

  1. ui设计师要懂哪些B端设计原则?
  2. python http接口_python实现http接口测试
  3. html背景mov,科技常识:html5自动播放mov格式视频的实例代码
  4. 【转】解决keepalived正常启动但是虚IP(VIP)没有生成的问题
  5. shell实例第0讲:shell脚本完整pdf文档下载
  6. java提高篇之数组(1):认识JAVA数组
  7. Python3.7.5安装(Windows10附pip更换下载源)
  8. ACM-ICPC 2017 Asia Nanning
  9. 余额 微信钱包图片_微信红包技巧:关闭这个功能,不上传身份证也能正常使用!...
  10. python重复输入字符串a三次_8道Python基础面试练习题
  11. 2018年《环球科学》十大科学新闻:霍金逝世、贺建奎事件位列前二
  12. postgres复制数据库
  13. 10种用户友好的验证码
  14. SSDP协议内容解析
  15. java设计模式之组合设计模式
  16. 搭建frida+木木模拟器运行环境
  17. 基于OpenCV的手指只数检测
  18. 57.音乐播放器的进度条
  19. 如何用JavaScript自己实现一个unshift() 方法
  20. 2022软件测试工程师的简历怎么写?

热门文章

  1. Qwt、QChart、QCustomPlot使用
  2. 数据科学与机器学习之信用卡欺诈识别(严重类失衡数据建模)
  3. 人工智能在金融领域的应用:预测市场趋势和风险管理
  4. oracle 如何判断是周末,Oracle判断周末
  5. GameFramework教程✨三、流程
  6. seo知否:死链对于网站的利与弊【对网站的特殊影响】...
  7. 11.网络编程的学习总结
  8. 中国高端床上用品市场报告发布,分析整体市场规模、增速
  9. 【大话设计模式】依赖倒转原则
  10. 极客时间算法训练营2019版LeetCode练习题题库