当前位置: 首页 > news >正文

CVA6+ARA通过cheshire平台部署到U280-2

1、时钟端口不匹配

原因:

RTL:sys_clk_p / sys_clk_n XDC:SYS_CLK0_P / SYS_CLK0_N

在 cheshire_top_xilinx.sv 端口定义处

`ifdef TARGET_U280 input logic SYS_CLK0_P, input logic SYS_CLK0_N, `else input logic sys_clk_p, input logic sys_clk_n, `endif

在 IBUFDS 处:

`ifdef TARGET_U280 IBUFDS #( .IBUF_LOW_PWR ("FALSE") ) i_bufds_sys_clk ( .I ( SYS_CLK0_P ), .IB ( SYS_CLK0_N ), .O ( sys_clk ) ); `else IBUFDS #( .IBUF_LOW_PWR ("FALSE") ) i_bufds_sys_clk ( .I ( sys_clk_p ), .IB ( sys_clk_n ), .O ( sys_clk ) ); `endif

2、

修改impl_ip.tcl

clkwiz: u280 { set_property -dict [list \ CONFIG.CLK_IN1_BOARD_INTERFACE {Custom} \ CONFIG.RESET_BOARD_INTERFACE {Custom} \ CONFIG.USE_RESET {true} \ CONFIG.PRIM_SOURCE {No_buffer} \ CONFIG.PRIM_IN_FREQ {100.000} \ CONFIG.CLKOUT1_USED {true} \ CONFIG.CLKOUT2_USED {true} \ CONFIG.CLKOUT3_USED {true} \ CONFIG.CLKOUT4_USED {true} \ CONFIG.CLK_OUT1_PORT {clk_50} \ CONFIG.CLK_OUT2_PORT {clk_48} \ CONFIG.CLK_OUT3_PORT {clk_20} \ CONFIG.CLK_OUT4_PORT {clk_10} \ CONFIG.CLKOUT1_REQUESTED_OUT_FREQ {50.000} \ CONFIG.CLKOUT2_REQUESTED_OUT_FREQ {48.000} \ CONFIG.CLKOUT3_REQUESTED_OUT_FREQ {20.000} \ CONFIG.CLKOUT4_REQUESTED_OUT_FREQ {10.000} \ CONFIG.MMCM_CLKFBOUT_MULT_F {12.000} \ CONFIG.MMCM_CLKIN1_PERIOD {10.000} \ // 由5修改为10 CONFIG.MMCM_CLKOUT1_DIVIDE {24} \ CONFIG.MMCM_CLKOUT2_DIVIDE {25} \ CONFIG.MMCM_CLKOUT3_DIVIDE {60} \ CONFIG.MMCM_CLKOUT4_DIVIDE {120} \ CONFIG.NUM_OUT_CLKS {4} \ ] [get_ips $proj] }

3、时序检查发现存在负裕量,构建脚本主动退出。

修改dram_wrapper_xilinx

`ifdef TARGET_U280 (* ASYNC_REG = "TRUE" *) logic [1:0] mig_aresetn_sync_q; logic mig_aresetn; always_ff @(posedge dram_axi_clk or negedge soc_resetn_i) begin if (!soc_resetn_i) mig_aresetn_sync_q <= 2'b00; else mig_aresetn_sync_q <= {mig_aresetn_sync_q[0], 1'b1}; end assign mig_aresetn = mig_aresetn_sync_q[1]; `endif `ifdef TARGET_U280 .c0_ddr4_aresetn ( mig_aresetn ), `else .c0_ddr4_aresetn ( soc_resetn_i ), `endif //.c0_ddr4_aresetn ( soc_resetn_i ),

4、DRC报错

1)u280.xdc中uart 端口与顶层uart端口命名不一致,修改u280.xdc与顶层保持一致

set_property PACKAGE_PIN A28 [get_ports uart_tx_o] set_property IOSTANDARD LVCMOS18 [get_ports uart_tx_o] set_property PACKAGE_PIN B33 [get_ports uart_rx_i] set_property IOSTANDARD LVCMOS18 [get_ports uart_rx_i]

2)u280无 jtag 端口,注释掉phy_definition.svh中JTAG相关的参数

`ifdef TARGET_U280 `define USE_RESET //`define USE_JTAG //`define USE_JTAG_VDDGND

3)u280.xdc中sys_reset 端口与顶层命名不一致,修改顶层

`ifdef USE_RESET `ifdef TARGET_U280 input logic CPU_RESET_FPGA, `else input logic sys_reset, `endif `endif logic sys_reset_int; `ifdef TARGET_U280 assign sys_reset_int = ~CPU_RESET_FPGA; `else assign sys_reset_int = sys_reset; `endif // Select SoC reset `ifdef USE_RESET logic sys_resetn; assign sys_resetn = ~sys_reset_int; `elsif USE_RESETN logic sys_reset; assign sys_reset = ~sys_resetn; `endif
http://www.jsqmd.com/news/1195916/

相关文章:

  • 08-LCD1602驱动实战:从时序解析到自定义字符显示
  • day16:极限四则运算法则与复合函数极限
  • 从零搭建企业级静态网页:前端开发者的 MSDN 式指南
  • 2026年度GEO服务商竞争力榜单:服务稳定性与优化效果综合评估
  • 10个即插即用的R语言效率提升技巧
  • AT89S52单片机定时器:从基础结构到精准应用实战
  • 绍兴越城区打井多少钱一米,越城打井电话,老小区水压不够打井 - 瑞溪泉水利
  • 2026年云计算运维实战:Docker与Kubernetes全链路技能指南
  • HarmonyOS7尾部吸附综合页实战:End 吸附策略与多配置综合演示
  • 在线学习平台
  • STM32F103通过USART串口指令实现多LED状态控制
  • FUEL算法调优实战:从参数解析到场景适配的探索效率提升
  • 嵌入式开发中GPMC时序配置详解:从原理到实战
  • IKFast机械臂逆运动学求解器实战:从5微秒响应到MoveIt!插件集成
  • 高级java每日一道面试题-2026年04月10日-实战篇[Docker]-如何排查容器之间的依赖问题?
  • 基于Stable Diffusion的水果艺术风格转换:浮一大果项目实战
  • 2026商用清洁机器人品牌选购指南:主流品牌技术与场景优势深度解析 - 匠言榜单
  • 2026江门本田皓影音响升级观察:江门汇声这套FOCAL劲浪前声场怎么搭?
  • 普尚云课堂 | 射频底层干货:幅度、频率、相位通俗解析一文讲透
  • Hermes Agent 3.x 源码专题【左扬精讲】—— AIAgent 核心循环:消息处理与工具调用
  • 从零到一:使用venv构建Python项目的纯净开发环境
  • 三相电路功率测量与计算实战解析
  • Ponytail 开源 14 天飙到 82K Stars:为什么 AI 编程越高效,越需要有人踩刹车?
  • 集合减法(set)
  • 前端开发实战:打造动态可增删的表格组件
  • 长安飞鱼车机系统安装限制深度解析:从Services.jar修改到ADB实战
  • 宠物领养系统
  • 为什么92%的ChatGPT英语学习者半年内放弃?资深教育技术专家拆解5大认知陷阱与破局路径
  • @Transactional 原理与事务失效场景
  • DS90UB949A-Q1 FPD-Link III串行器I2C配置与硬件设计实战指南