zoukankan      html  css  js  c++  java
  • 利用system generator 生成vivado ip—以低通滤波器举例

      前段时间自学了matlab和vivado联合推出的system generator工具,用来做数字信号处理,十分好用且使开发更便捷,下面举个例子来供大家一起学习下。

    首先打开matlab命令行,输入simulink。注意要先安装system generator ,这个网上有教程。

    然后新建一个model,拖入模块成我这样:

    一个一个来设置:首先是信号源,采样率模逆的WCDMA码速率,为3.84Mcps。                                                然后是Gateway In,这个是IP核的输入端口,设定如下:

                                                                           

     Register保持不变,事实上加不加好像都没什么影响。

    重点是滤波器的设计,先点开FDA tool,设计出一个通带截止点1MHz,阻带起始点1.2MHz的低通滤波器。

     然后打开FIR compiler7.2,设置如下:1)输入xlfda_numerator(‘FDATool’),绑定一个FDATool;2)量化形式选成跟随FDATool量化,一般都是16bit保持不变。

     接着做截断处理,这一步关系着IP输出位宽。然后勾选Provide enanle port,这样就多了个截断使能信号。

                                                        

     默认16bit位宽,滤波器输出位宽32bit,截断为16bit,损失了一些精度,但是减小了输出位宽。如果你想看各模块的数据位宽,可以点击model的菜单栏的Display->signals&Ports->Ports Datas type。

    然后设置system generator:1)主要找到对应的FPGA芯片型号,只有对应的型号才能调用该IP。2)设计输入时钟,为该IP的主时钟,仿真时钟设置为3.84MHz。

     最终连起来

     点击RUN,进行仿真,看看波形。频谱仪点红框可以看到双边谱,这里我就看了单边谱。

     

     结论:因为我的信号源是3.84Mcps的脉冲信号,频谱无限大,被一个单级低通滤波器限制带1MHz,阻带1.2MHz,功率下降了15个dbm,但是滤波器设计的是衰减80个db,看来实际用起来还是有一定差距。

    最后还是打开system generator,更改你想存放IP的文件夹,然后点gengerate。就生成了该低通滤波器的IP。

    至于如何在vivado中导入IP,网上也是有很多教程,这里就不细说了。

                                                                                                  

      

  • 相关阅读:
    命令实现linux和客户端文件上传下载
    python--linux上如何执行shell命令
    Eureka系列(一)Eureka功能介绍
    Eureka系列(七) 服务下线Server端具体实现
    编译时多态 与 运行时多态
    静态绑定(前期绑定) 与 动态绑定(后期绑定)
    重载 与 重写
    热点检测、方法内联、动态反优化
    数据库日志
    单例模式
  • 原文地址:https://www.cnblogs.com/johor-yangmumu/p/15133979.html
Copyright © 2011-2022 走看看