当前位置:首页 > FPGA > Versal ACAP > 正文内容

自定义Versal BSP创建XSA文件

新建工程:

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

紧接着添加CIPS

image.png

image.png

image.png


image.png

双击,

image.png

image.png

image.png

然后根据你的硬件添加外设,例如我添加SPI的存储器、EMMC和SD卡

image.png

image.png

image.png

image.png

这里图片截图有问题,GEM0需要勾选MDIO。

image.png


image.png

image.png

接下来按OK即可,我们现在开始配置NOC

image.png

image.png

image.png


image.png

按OK后退出,我们配置这个时钟

image.png

image.png


image.png

紧接着创建例化模板:

image.png


Verilog程序(top.v)

`timescale 1ns / 1ps

module top (
    CH0_DDR4_0_0_act_n,
    CH0_DDR4_0_0_adr,
    CH0_DDR4_0_0_ba,
    CH0_DDR4_0_0_bg,
    CH0_DDR4_0_0_ck_c,
    CH0_DDR4_0_0_ck_t,
    CH0_DDR4_0_0_cke,
    CH0_DDR4_0_0_cs_n,
    CH0_DDR4_0_0_dm_n,
    CH0_DDR4_0_0_dq,
    CH0_DDR4_0_0_dqs_c,
    CH0_DDR4_0_0_dqs_t,
    CH0_DDR4_0_0_odt,
    CH0_DDR4_0_0_reset_n,
    sys_clk0_0_clk_n,
    sys_clk0_0_clk_p,
    sys_rst_n_in,
    PL_LED
);

  output [0:0] CH0_DDR4_0_0_act_n;
  output [16:0] CH0_DDR4_0_0_adr;
  output [1:0] CH0_DDR4_0_0_ba;
  output [0:0] CH0_DDR4_0_0_bg;
  output [0:0] CH0_DDR4_0_0_ck_c;
  output [0:0] CH0_DDR4_0_0_ck_t;
  output [0:0] CH0_DDR4_0_0_cke;
  output [0:0] CH0_DDR4_0_0_cs_n;
  inout [7:0] CH0_DDR4_0_0_dm_n;
  inout [63:0] CH0_DDR4_0_0_dq;
  inout [7:0] CH0_DDR4_0_0_dqs_c;
  inout [7:0] CH0_DDR4_0_0_dqs_t;
  output [0:0] CH0_DDR4_0_0_odt;
  output [0:0] CH0_DDR4_0_0_reset_n;
  input sys_clk0_0_clk_n;
  input sys_clk0_0_clk_p;
  input wire sys_rst_n_in;
  output wire PL_LED;

  //********************////********************// System Parameter Defines //********************////********************//
  // Sys clock generate
  wire sys_clk_200mhz;
  IBUFDS IBUFDS_inst (
      .O (sys_clk_200mhz),
      .I (sys_clk0_0_clk_p),
      .IB(sys_clk0_0_clk_n)
  );

  wire sys_rst_n;
  BUFG bufg_inst (
      .I(sys_rst_n_in),  // 输入信号
      .O(sys_rst_n)      // 缓冲后的信号
  );

  reg [27:0] led_cnt;
  always @(posedge sys_clk_200mhz or negedge sys_rst_n) begin
    if (~sys_rst_n) led_cnt <= 28'b0;
    else led_cnt <= led_cnt + 1;
  end
  assign PL_LED = led_cnt[27];

  design_1_wrapper design_1_wrapper_1 (
      .CH0_DDR4_0_0_act_n(CH0_DDR4_0_0_act_n),
      .CH0_DDR4_0_0_adr(CH0_DDR4_0_0_adr),
      .CH0_DDR4_0_0_ba(CH0_DDR4_0_0_ba),
      .CH0_DDR4_0_0_bg(CH0_DDR4_0_0_bg),
      .CH0_DDR4_0_0_ck_c(CH0_DDR4_0_0_ck_c),
      .CH0_DDR4_0_0_ck_t(CH0_DDR4_0_0_ck_t),
      .CH0_DDR4_0_0_cke(CH0_DDR4_0_0_cke),
      .CH0_DDR4_0_0_cs_n(CH0_DDR4_0_0_cs_n),
      .CH0_DDR4_0_0_dm_n(CH0_DDR4_0_0_dm_n),
      .CH0_DDR4_0_0_dq(CH0_DDR4_0_0_dq),
      .CH0_DDR4_0_0_dqs_c(CH0_DDR4_0_0_dqs_c),
      .CH0_DDR4_0_0_dqs_t(CH0_DDR4_0_0_dqs_t),
      .CH0_DDR4_0_0_odt(CH0_DDR4_0_0_odt),
      .CH0_DDR4_0_0_reset_n(CH0_DDR4_0_0_reset_n),
      .sys_clk0_0_clk_n(sys_clk0_0_clk_n),
      .sys_clk0_0_clk_p(sys_clk0_0_clk_p)
  );

endmodule

约束文件(top.xdc)

#top
set_property IOSTANDARD LVDS15 [get_ports sys_clk_200mhz_p]
set_property PACKAGE_PIN AB23 [get_ports sys_clk_200mhz_p]
create_clock -period 5.000 -name sys_clk_200mhz [get_ports sys_clk_200mhz_p]

set_property PACKAGE_PIN D10 [get_ports sys_rst_n_in]
set_property IOSTANDARD LVCMOS33 [get_ports sys_rst_n_in]

set_property -dict {PACKAGE_PIN F11  IOSTANDARD LVCMOS33} [get_ports     PL_LED]

#DDR4
set_property PACKAGE_PIN AC11 [get_ports {DDR4_act_n[0]}]
set_property PACKAGE_PIN AB12 [get_ports {DDR4_adr[0]}]
set_property PACKAGE_PIN AB17 [get_ports {DDR4_adr[10]}]
set_property PACKAGE_PIN AE13 [get_ports {DDR4_adr[11]}]
set_property PACKAGE_PIN AH12 [get_ports {DDR4_adr[12]}]
set_property PACKAGE_PIN AD15 [get_ports {DDR4_adr[13]}]
set_property PACKAGE_PIN AD21 [get_ports {DDR4_adr[14]}]
set_property PACKAGE_PIN AD17 [get_ports {DDR4_adr[15]}]
set_property PACKAGE_PIN AC13 [get_ports {DDR4_adr[16]}]
set_property PACKAGE_PIN AE22 [get_ports {DDR4_adr[1]}]
set_property PACKAGE_PIN AD22 [get_ports {DDR4_adr[2]}]
set_property PACKAGE_PIN AB15 [get_ports {DDR4_adr[3]}]
set_property PACKAGE_PIN AD12 [get_ports {DDR4_adr[4]}]
set_property PACKAGE_PIN AE17 [get_ports {DDR4_adr[5]}]
set_property PACKAGE_PIN AD16 [get_ports {DDR4_adr[6]}]
set_property PACKAGE_PIN AG11 [get_ports {DDR4_adr[7]}]
set_property PACKAGE_PIN AE14 [get_ports {DDR4_adr[8]}]
set_property PACKAGE_PIN AB14 [get_ports {DDR4_adr[9]}]
set_property PACKAGE_PIN AC16 [get_ports {DDR4_ba[0]}]
set_property PACKAGE_PIN AD11 [get_ports {DDR4_ba[1]}]
set_property PACKAGE_PIN AB18 [get_ports {DDR4_bg[0]}]
set_property PACKAGE_PIN AC19 [get_ports {DDR4_ck_t[0]}]
set_property PACKAGE_PIN AD19 [get_ports {DDR4_ck_c[0]}]
set_property PACKAGE_PIN AB21 [get_ports {DDR4_cke[0]}]
set_property PACKAGE_PIN AC17 [get_ports {DDR4_cs_n[0]}]
set_property PACKAGE_PIN AG12 [get_ports {DDR4_dm_n[0]}]
set_property PACKAGE_PIN AH13 [get_ports {DDR4_dm_n[1]}]
set_property PACKAGE_PIN AE28 [get_ports {DDR4_dm_n[2]}]
set_property PACKAGE_PIN AD24 [get_ports {DDR4_dm_n[3]}]
set_property PACKAGE_PIN V22  [get_ports {DDR4_dm_n[4]}]
set_property PACKAGE_PIN V28  [get_ports {DDR4_dm_n[5]}]
set_property PACKAGE_PIN N28  [get_ports {DDR4_dm_n[6]}]
set_property PACKAGE_PIN U25  [get_ports {DDR4_dm_n[7]}]
set_property PACKAGE_PIN AF14 [get_ports {DDR4_dq[0]}]
set_property PACKAGE_PIN AH18 [get_ports {DDR4_dq[10]}]
set_property PACKAGE_PIN AH20 [get_ports {DDR4_dq[11]}]
set_property PACKAGE_PIN AH14 [get_ports {DDR4_dq[12]}]
set_property PACKAGE_PIN AH22 [get_ports {DDR4_dq[13]}]
set_property PACKAGE_PIN AH15 [get_ports {DDR4_dq[14]}]
set_property PACKAGE_PIN AG22 [get_ports {DDR4_dq[15]}]
set_property PACKAGE_PIN AF26 [get_ports {DDR4_dq[16]}]
set_property PACKAGE_PIN AE26 [get_ports {DDR4_dq[17]}]
set_property PACKAGE_PIN AH27 [get_ports {DDR4_dq[18]}]
set_property PACKAGE_PIN AE27 [get_ports {DDR4_dq[19]}]
set_property PACKAGE_PIN AG18 [get_ports {DDR4_dq[1]}]
set_property PACKAGE_PIN AG27 [get_ports {DDR4_dq[20]}]
set_property PACKAGE_PIN AD26 [get_ports {DDR4_dq[21]}]
set_property PACKAGE_PIN AG26 [get_ports {DDR4_dq[22]}]
set_property PACKAGE_PIN AG28 [get_ports {DDR4_dq[23]}]
set_property PACKAGE_PIN AE24 [get_ports {DDR4_dq[24]}]
set_property PACKAGE_PIN AD25 [get_ports {DDR4_dq[25]}]
set_property PACKAGE_PIN AH24 [get_ports {DDR4_dq[26]}]
set_property PACKAGE_PIN AF25 [get_ports {DDR4_dq[27]}]
set_property PACKAGE_PIN AG23 [get_ports {DDR4_dq[28]}]
set_property PACKAGE_PIN AG25 [get_ports {DDR4_dq[29]}]
set_property PACKAGE_PIN AG15 [get_ports {DDR4_dq[2]}]
set_property PACKAGE_PIN AH23 [get_ports {DDR4_dq[30]}]
set_property PACKAGE_PIN AH25 [get_ports {DDR4_dq[31]}]
set_property PACKAGE_PIN Y22  [get_ports {DDR4_dq[32]}]
set_property PACKAGE_PIN V23  [get_ports {DDR4_dq[33]}]
set_property PACKAGE_PIN Y23  [get_ports {DDR4_dq[34]}]
set_property PACKAGE_PIN W24  [get_ports {DDR4_dq[35]}]
set_property PACKAGE_PIN AA22 [get_ports {DDR4_dq[36]}]
set_property PACKAGE_PIN V24  [get_ports {DDR4_dq[37]}]
set_property PACKAGE_PIN AA21 [get_ports {DDR4_dq[38]}]
set_property PACKAGE_PIN W25  [get_ports {DDR4_dq[39]}]
set_property PACKAGE_PIN AF18 [get_ports {DDR4_dq[3]}]
set_property PACKAGE_PIN V25  [get_ports {DDR4_dq[40]}]
set_property PACKAGE_PIN W27  [get_ports {DDR4_dq[41]}]
set_property PACKAGE_PIN AA28 [get_ports {DDR4_dq[42]}]
set_property PACKAGE_PIN W26  [get_ports {DDR4_dq[43]}]
set_property PACKAGE_PIN Y26  [get_ports {DDR4_dq[44]}]
set_property PACKAGE_PIN AA26 [get_ports {DDR4_dq[45]}]
set_property PACKAGE_PIN AB28 [get_ports {DDR4_dq[46]}]
set_property PACKAGE_PIN AB26 [get_ports {DDR4_dq[47]}]
set_property PACKAGE_PIN P27  [get_ports {DDR4_dq[48]}]
set_property PACKAGE_PIN K27  [get_ports {DDR4_dq[49]}]
set_property PACKAGE_PIN AF13 [get_ports {DDR4_dq[4]}]
set_property PACKAGE_PIN R28  [get_ports {DDR4_dq[50]}]
set_property PACKAGE_PIN L28  [get_ports {DDR4_dq[51]}]
set_property PACKAGE_PIN R27  [get_ports {DDR4_dq[52]}]
set_property PACKAGE_PIN K28  [get_ports {DDR4_dq[53]}]
set_property PACKAGE_PIN T28  [get_ports {DDR4_dq[54]}]
set_property PACKAGE_PIN M27  [get_ports {DDR4_dq[55]}]
set_property PACKAGE_PIN P25  [get_ports {DDR4_dq[56]}]
set_property PACKAGE_PIN L26  [get_ports {DDR4_dq[57]}]
set_property PACKAGE_PIN R26  [get_ports {DDR4_dq[58]}]
set_property PACKAGE_PIN M26  [get_ports {DDR4_dq[59]}]
set_property PACKAGE_PIN AF19 [get_ports {DDR4_dq[5]}]
set_property PACKAGE_PIN T25  [get_ports {DDR4_dq[60]}]
set_property PACKAGE_PIN K26  [get_ports {DDR4_dq[61]}]
set_property PACKAGE_PIN T26  [get_ports {DDR4_dq[62]}]
set_property PACKAGE_PIN J25  [get_ports {DDR4_dq[63]}]
set_property PACKAGE_PIN AG13 [get_ports {DDR4_dq[6]}]
set_property PACKAGE_PIN AE19 [get_ports {DDR4_dq[7]}]
set_property PACKAGE_PIN AH17 [get_ports {DDR4_dq[8]}]
set_property PACKAGE_PIN AG21 [get_ports {DDR4_dq[9]}]
set_property PACKAGE_PIN AG17 [get_ports {DDR4_dqs_t[0]}]
set_property PACKAGE_PIN AG16 [get_ports {DDR4_dqs_c[0]}]
set_property PACKAGE_PIN AG20 [get_ports {DDR4_dqs_t[1]}]
set_property PACKAGE_PIN AH19 [get_ports {DDR4_dqs_c[1]}]
set_property PACKAGE_PIN AC28 [get_ports {DDR4_dqs_t[2]}]
set_property PACKAGE_PIN AD27 [get_ports {DDR4_dqs_c[2]}]
set_property PACKAGE_PIN AF24 [get_ports {DDR4_dqs_t[3]}]
set_property PACKAGE_PIN AF23 [get_ports {DDR4_dqs_c[3]}]
set_property PACKAGE_PIN Y24  [get_ports {DDR4_dqs_t[4]}]
set_property PACKAGE_PIN AA23 [get_ports {DDR4_dqs_c[4]}]
set_property PACKAGE_PIN Y28  [get_ports {DDR4_dqs_t[5]}]
set_property PACKAGE_PIN Y27  [get_ports {DDR4_dqs_c[5]}]
set_property PACKAGE_PIN U27  [get_ports {DDR4_dqs_t[6]}]
set_property PACKAGE_PIN U28  [get_ports {DDR4_dqs_c[6]}]
set_property PACKAGE_PIN P26  [get_ports {DDR4_dqs_t[7]}]
set_property PACKAGE_PIN N27  [get_ports {DDR4_dqs_c[7]}]
set_property PACKAGE_PIN AC22 [get_ports {DDR4_odt[0]}]
set_property PACKAGE_PIN AC24 [get_ports {DDR4_reset_n[0]}]
set_property PACKAGE_PIN AB23 [get_ports {ddr_cref_clk_p[0]}]

image.png

然后就可以编译了

image.png

image.png

生成完成后,点击左上角

image.png

image.png

image.png


image.png

image.png




扫描二维码推送至手机访问。

版权声明:本文由我的FPGA发布,如需转载请注明出处。

本文链接:https://myfpga.cn/index.php/post/440.html

分享给朋友:
返回列表

上一篇:(二)自定义Versal BSP编译Petalinux

没有最新的文章了...

“自定义Versal BSP创建XSA文件” 的相关文章

what is network on chip(NOC)?

what is network on chip(NOC)?

上面的一堆主要是说:现在PS、PL、DDR甚至外设和AIE都能通过统一的NOC进行通信。具体有以下这些单元来实现:1. NMU(NoC Master Units)功能 :NMU是数据进入NoC(片上网络)的入口 ,类似高速公路的“入口收费站”。它负责将主设备(如CPU、DMA控制器等)发出的数据请求...

Versal ACAP Primer Handbook

Versal ACAP Primer Handbook

一、核心架构区别1. Versal(ACAP)异构计算架构 :Versal是AMD/Xilinx推出的自适应计算加速平台(ACAP) ,集成多种计算单元:标量处理引擎 (Scalar Engine):包含ARM Cortex-A72应用处理器(APU)和Cortex-R5实时处理器(RPU),支持L...

自定义Versal BSP编译Petalinux

自定义Versal BSP编译Petalinux

首先设计XSA文件略紧接着我们开始编译Petalinux我的系统版本:LSB Version:    core-11.1.0ubuntu4-noarch:security-11.1.0ubuntu4-noarch Distributor ...

(二)自定义Versal BSP编译Petalinux

(二)自定义Versal BSP编译Petalinux

接下来我们配置uboot、内核,弹出uboot页面按两次Esc按键即可退出chanra1n@chanra1n-Standard-PC-i440FX-PIIX-1996:~/vd100$ petalinux-config -c u-boot [INFO] Bi...