Vivado

Vivado FIR IP使用方法

在matlab中使用fdatool设计自己想要的数字滤波器,然后保存文件为.coe文件。

在vivado中调用FIR IP核,在Select Source处,选择COE File。

在Filter Type中可以选择插值,抽取等选项。

Number of Channels 和Number of Paths 分别设置通道数为3和路径数为2(通道之间是时分多路复用,相当于一个帧有3个时隙;路径数相当于并行数据,相当于有两路信号)。Input Sampling Frequency 设置的是单个通道的频率。Clock Frequency 设置的是工作的时钟频率。3个通道对应的信号的输入的频率=3.84*3=11.52MHz。输入一个数据需要的时钟数184.32/11.52=16 。插值倍数为2 ,则输出的频率=11.52*2=23.04MHz 输出一个数据需要的时钟数184.32/23.04=8

视频:在 Vivado Design Suite 中使用 IP 加密

本视频将概括介绍 Vivado 设计套件中的 IP 加密。其中包括 IP 加密工具流程、为加密准备 IP 的方法以及在 Vivado 中运行加密工具的方法。

Vivado内coe系数文件

本文主要介绍Vivado的三类coe文件:

  • fdatool生成的FIR系数文件
  • 特殊要求的FIR系数文件
  • 导入RAM的coe文件
  • fdatool生成的FIR系数文件

    fdatool可以设计滤波器,在对系数定点后可以直接生成FIR的coe文件,假设定点后的滤波器如下图所示:

    fdatool导出滤波器coe过程如下图所示:
    - 找到Targets
    - 点击图中XILINX Coefficient(.COE)FILE

    基于Vivado调用ROM IP core设计DDS

    DDS直接数字式频率合成器(Direct Digital Synthesizer)

    下面是使用MATLAB生成正弦波、三角波、方波的代码,直接使用即可。
    t=0:2*pi/2^12:2*pi
    y=0.5*sin(t)+0.5;
    r=ceil(y*(2^8-1)); %将小数转换为整数,ceil是向上取整。
    fid = fopen('sin.coe','w'); %写到sin.coe文件,用来初始化sin_rom
    fprintf(fid,'MEMORY_INITIALIZATION_RADIX=10;\n');
    fprintf(fid,'MEMORY_INITIALIZATION_VECTOR=\n');
    for i = 1:1:2^12
    fprintf(fid,'%d',r(i));
    if i==2^12
    fprintf(fid,';');
    else
    fprintf(fid,',');
    end
    if i%15==0
    fprintf(fid,'\n');
    end
    end
    fclose(fid);
    t=1:1:2^12;
    y=(t<=2047);
    r=ceil(y*(2^8-1));
    fid = fopen('square.coe','w'); %写到square.coe,用来初始化rom_square

    linux系统上实现vivado调用VCS仿真教程

    在linux系统上实现vivado调用VCS仿真教程
    作用:vivado调用VCS仿真可以加快工程的仿真和调试,提高效率。
    前期准备:确认安装vivado软件和VCS软件
    VCS软件最好安装VCS-MX的版本,可以混合编译Verilog和VHDL语言

    由于在linux系统中个人用户各种权限被限制,导致很多地方无法正常使用软件之间的协调工作。
    为了以防万一,在此以个人用户去实现vivado调用VCS仿真。
    1、 配置好个人用户下的.bashrc(只要运行cd命令即可到达该目录下(利用命令 ll –la 可查看该文件))。如图:

    2、 若因为服务器上的权限问题无法正常使用vivado,则可利用makefile命令打开vivado,在makefile中添加以下命令:(注意最后面不能跟空格键)
    vivado:
    source /home2/qiuyquan/.bashrc &&\
    /home/xjp/Xilinx/Vivado/2015.4/bin/vivado

    Vivado中综合实现和出bit文件

    接上一节的把IP搭建成原理图,这节说下综合实现和出bit文件。

    各Block都搭建完成后,选中这个bd右键,Generate Output Products主要是把IP参数和连接信息update到project中,同时也会检查错误。(一般synth也会更新,但是有目标的update下更放心)

    没有错误的话,再右键Create HDL Wrapper,给整个bd加个hdl的壳。(因为综合工具不处理原理图bd,所以再次倒腾回hdl的code模式)

    我的project会报这个警告。是BRAM的连接端口不匹配,我自己的IP中BRAM类型是OTHER,可以自己双击BRAM_Port端口把MasterType类型改成BRAM_CTRL,就不报warning了。

    视频:面向 UltraScale 的部分重配置+

    本视频回顾了 UltraScale + 芯片的部分重配置功能,展示了 Vivado Design Suite 中部分重新配置的新功能,并在 Vivado 系统和设计版本中引入了更多的部分重配置。

    Vivado中各个文件的含义

    在Xilinx ISE中不同的操作都有不同的文件类型对应,例如综合、布局、布线、生成比特流等都会产生特定格式的文件,在vivado中也是一样,只不过在vivado中,文件的格式相比于ISE中更加同一。

    1,.dcp文件,在ise中每个过程都会产生特定格式的文件,例如.ncd, .pcf, .ngd等等,但是在vivado中,不论是综合还是布局布线都只会产生一种格式的文件,即.dcp文件,每个阶段的.dcp文件都是下一阶段的输入文件,.dcp文件实际上包含了对应阶段处理的信息,用vivado可以直接打开,File->Open Checkpoint.

    .dcp文件主要包括Physical Constraints, Device Constraints, Netlists以及device的信息,如下图所示:

    从这可以看出其实.dcp文件就是ise中的网表文件和约束文件的集合,只不过在vivado中被集合在了一个文件里。

    Vivado中新建工程或把IP搭建成原理图

    上一节说了怎么建自己的IP,下面把自己的设计方案用IP的方式搭建成原理图。

    1、新建project

    2、选择芯片型号xc7z020clg400-1

    3、既然vivado是按照IP原理图来设计的,首先是要添加block

    4、直接从IP Catalog中选择想要的IP模块

    Vivado中将verilog代码封装成IP

    Xilinx的Vivado采用原理图的设计方式,比较直观适合大型项目,我们自己的code都需要封装成user IP。

    这里主要介绍怎么把多个关联管脚合并成类似bus的大端口

    第一大部分 选择source文件

    先新建一个project,把要package的v文件加进去,一般都会先做功能仿真

    Tools->Create and Package IP,我个人喜欢用第一项current project;

    第二项block design用来封装多层嵌套的大IP;

    第三项是封装指定文件夹下的source文件,也非常好用;

    第四项是新建一个AXI4接口的IP,比如说我要自己写AXI-HP的接口就用这个;

    建个文件夹Verilog_IP,存自己的IP,每个IP再建个子文件夹

    同步内容