|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
大家好,这是我在论坛的第一贴,如果有格式/内容问题请提醒我,谢谢
我的开发平台是altera quartus 16.0, fpga是stratix V.
系统的结构主要包含两个master devices, 其中一个是altpcie_sv_hip_avmm的bar windows, 另一个是dma engine.
两个master devices通过qsys interconnect 连接到同一个slave device, external ddr3 emif controller.
之前可以正常的从pcie_hip读取到ddr3的内容,但是我看到时序要求没有达到。
于是参照qsys优化手册上面的三种方法,试图在pcie_hip_avmm的bar2口到ddr3之间添加pipeline stage。主要尝试过三种方法:
1. qsys的系统全局设置 "limit interconnect pipeline stages to 4"
2. 插入avalon_mm_bridge
3. 在interconnect map中手动勾选pipeline框
第一种方法加入后,可以正常读取ddr3,但是对时序的帮助不大,因为pipeline的加入位置是系统决定的,不一定是在critical path上
第二种和第三种方法是用户自己选择添加pipeline stage的位置,但是加入后无法正常读取ddr3了
经过signaltap的信号分析,发现连接到ddr3 emif controller的avl 接口中,avl_read_req一直是高电位。
下图是我的interconnect map.
interconnect map
欢迎任何评论及意见! |
|