完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正致力于Virtex-6设计的时序收敛(使用ISE 14.7)。
我面临着一个奇怪的问题,ISE显然将一些完全不相关的逻辑合并在一起(信号甚至不在相同的时钟频率上运行)。 我已经设置了以下选项(适用于Synthesis和MAP / PAR),以避免优化不相关的信号: - resource_sharing off - ignore_keep_hierarchy off - LUT结合起来 MAP和Synthesis的Optmization设置为“Speed”。 -keep_hierarchy设置为“Soft”,-hetlist_hierarchy设置为“Rebuilt”。 我厌倦了-keep_hierarchy“是”的合成,但如果我这样做,我会遇到大量的映射器错误消息。 附上你可以找到时间报告。 失败路径在11954行。信号“../fmc_raw_dat_dff_s”与所有“../inst_tmem_user/ ..”信号位于不同的时钟域上,并且它们不必彼此做任何事情。 “../inst_tmem_user / ..”中的信号与配置寄存器组相关,“fmc_raw_dat_dff_s”信号是ADC输入后直接与寄存器组无连接的流水线级(它不可配置且具有 没有来自寄存器库或类似物的运行时钟启用)。 这条道路上的可疑网名如“lut77809_42134”也引起了我的注意。 没有使用“人类可读”名称这一事实指出该工具将不同的逻辑优化在一起,因此它无法分配可读的名称(因为我的VHDL源中没有这样的信号)。 有人知道这个(或类似的)问题吗? 有什么建议我可以试试吗? 以上来自于谷歌翻译 以下为原文 I am working on timing-closure for a Virtex-6 Design (using ISE 14.7). I am facing the strange issue that ISE is obviously merging some logic together that is completely unrelated (the signals do not even run on the same clock frequency). I already set the following options (for Synthesis and MAP/PAR where applicable) to avoid optimization of signals that are not related: - resource_sharing off - ignore_keep_hierarchy off - LUT Combining off Optmization of MAP and Synthesis is set to "Speed". -keep_hierarchy is set to "Soft" and -hetlist_hierarchy to "Rebuilt". I tired synthesyzing with -keep_hierarchy "Yes" but I run into tons of mapper error messages if I do so. Attached you can find the timing report. The failing path is on line 11954. The signal "../fmc_raw_dat_dff_s" is on a different clock domain than all the "../inst_tmem_user/.." signals and they do not have to do anything with each other. The signals in "../inst_tmem_user/.." are related to the register bank for configuration, the "fmc_raw_dat_dff_s" signal is a pipeline stage directly after the ADC input that has no connections to the register bank (it is not configurable and has no runtime-clock enable from the register bank or anything similar). The suspicious net-names like "lut77809_42134" for this path also catched my attention. The fact that no "human readable" names are used points into the directon that the tool optimizes different logic together and hence it cannot assign a readable name (because no such signal is present in my VHDL sources). Does anybody know this (or a similar) problem? Any suggestions what I could try? |
|
相关推荐
6个回答
|
|
你好@ obruendl_psi,
我建议对要合并的组件使用XBLKNM约束。 这将迫使MAP不要将它们打包在一起(UG612 -https://www.xilinx.com/support/documentation/sw_manuals/xilinx14_7/ug612.pdf的第231页)。 有关此约束的更多详细信息,请参见UG625的第316页-https://www.xilinx.com/support/documentation/sw_manuals/xilinx14_7/cgd.pdf。 祝你好运,克里斯 在原帖中查看解决方案 以上来自于谷歌翻译 以下为原文 Hello @obruendl_psi, I recommend using the XBLKNM constraint on the components being merged together. This will force MAP not to pack them together (page 231 of UG612 - https://www.xilinx.com/support/documentation/sw_manuals/xilinx14_7/ug612.pdf ). More details on this constraint on page 316 of UG625 - https://www.xilinx.com/support/documentation/sw_manuals/xilinx14_7/cgd.pdf. Good Luck, Chris View solution in original post |
|
|
|
这是附件。
由于Xilinxwilliam hill官网 不允许“.twr”文件,我不得不将时序报告打包成ZIP。 ifc1210_hipa_llrf_top.zip 117 KB 以上来自于谷歌翻译 以下为原文 Here is the attachment. I had to pack the timing report into a ZIP since the Xilinx Forums do not allow ".twr" files... ifc1210_hipa_llrf_top.zip 117 KB |
|
|
|
你好@ obruendl_psi,
我建议对要合并的组件使用XBLKNM约束。 这将迫使MAP不要将它们打包在一起(UG612 -https://www.xilinx.com/support/documentation/sw_manuals/xilinx14_7/ug612.pdf的第231页)。 有关此约束的更多详细信息,请参见UG625的第316页-https://www.xilinx.com/support/documentation/sw_manuals/xilinx14_7/cgd.pdf。 祝你好运,克里斯 以上来自于谷歌翻译 以下为原文 Hello @obruendl_psi, I recommend using the XBLKNM constraint on the components being merged together. This will force MAP not to pack them together (page 231 of UG612 - https://www.xilinx.com/support/documentation/sw_manuals/xilinx14_7/ug612.pdf ). More details on this constraint on page 316 of UG625 - https://www.xilinx.com/support/documentation/sw_manuals/xilinx14_7/cgd.pdf. Good Luck, Chris |
|
|
|
您必须了解ISE中的命名方式......
合成的结果是BEL的网表(Xilinx Basic ELements)。 这些BEL类似于LUT,FF,MUXF7,MUXF8,进位链以及其他时钟,I / O和RAM相关元素。 这些BEL中的每一个在合成期间都被赋予名称。 在MAP期间,这些BEL被打包成片 - 在一个SLICE中有4个LUT,8个FF,3个宽MUX和各种Carry元素。 工具链的所有其余部分都在切片网表(而不是BEL)上运行 - 这包括时序分析。 当BEL被打包到SLICE中时,需要命名切片。 打包者选择SLICE中包含的其中一个BEL的名称作为SLICE的名称。 因此,SLICE的名称可能无法准确反映其来源; 如果SLICE在打包期间从两个不同的分层模块获得BEL,那么从一个模块清楚地通过LUT的路径可以具有另一个模块的切片名称。 这看起来像无关模块的逻辑已合并,但实际情况并非如此。 这是由于“不相关的打包” - 这与任何资源共享和任何keep_hierarchy属性无关; 这些影响合成,而这种重命名是在映射时完成的。 而且它的东西有“错误”的名字,所以看起来它属于另一个模块。 Avrum 以上来自于谷歌翻译 以下为原文 You have to understand how things are named in ISE... The result of synthesis is a netlist of BELs (Xilinx Basic ELements). These BELs are things like LUTs, FFs, MUXF7, MUXF8, carry chains, and other clocking, I/O and RAM related elements. Each of these BELs is given a name during synthesis. During MAP, these BELs are packed into slices - there are 4 LUTs, 8 FFs, three wide MUXes and a variety of Carry elements in one SLICE. All the rest of the tool chain operates on a netlist of slices (not BELs) - this includes timing analysis. When the BELs are packed into SLICEs, the slice needs to be named. The packer chooses the name of one of the BELs that was packed into the SLICE for the name of the SLICE. As a result, the name of the SLICE may not be an accurate representation of where it came from; if a SLICE gets BELs from two different hierarchical modules during packing, then a path that is clearly through the LUT from one module may have the slice name of the other module. This looks like logic from unrelated modules has been merged, but isn't really the case. This is due to "unrelated packing" - this has nothing to do with any resource sharing nor any keep_hierarchy properties; these affect synthesis, whereas this renaming is done at mapping. And its jut that - stuff has the "wrong" name so that it looks like it belongs to another module. Avrum |
|
|
|
在我的例子中,寄存器组(inst_tmem_user)位于芯片的一端,ADC输入(fmc_raw_dat_dff_s)位于芯片的另一端。
我可以看到长路径正好在时序路径之间切换,我还可以看到当我检查FPGA编辑器中的时序报告中提到的网络时,路径会穿过芯片。 因此,如果确实是这种情况,MAP只是将不同的LUT打包到同一个切片中,我的问题就是“MAP”问题(因为MAP不应该将东西打包到位于芯片相对端的一个切片中)并且 我的问题将变成“我怎样才能阻止MAP将LUT打包成一个与逻辑相关的切片”。 但是,我也尝试在包含两个部分的实体上使用keep_hierarchy属性。 如果我添加keep_hierarchy属性,事情看起来会更好。 所以对我而言,问题似乎不是由“不相关的包装”引起的。 只是为了了解它:我可以以某种方式禁用“不相关的包装”吗? 以上来自于谷歌翻译 以下为原文 In my case the register bank (inst_tmem_user) is placed at one end of the chip and the ADC input (fmc_raw_dat_dff_s) is at the other end of the chip. I can see that long routes are exactly where the timing path switches between those and I can also see the routes going accross the chip when I check the nets mentioned in the timing report in FPGA Editor. So if it really is the case the MAP just packs the different LUTs in to the same slice, my Problem would be a "MAP" problem (because MAP should not pack things into one slice that are placed at oposite end of the chip) and my question would become "How can I prevent MAP from packing LUTs into one slice that are related to logic placed far apart from each other". However, I also tried playing with keep_hierarchy attributes on the entity that contains both parts. If I add the keep_hierarchy attribute, things look way better. So for me it looks like it the issue is not caused by "unrelated packing". Just for the sake of knowing it: Can I somehow disable "unrelated packing"? |
|
|
|
@chriszresolved我的问题。
使用他提到的约束允许我抑制包装。 以上来自于谷歌翻译 以下为原文 @chrisz resolved my question. Using the constraint he mentioned allows me suppressing the packing. |
|
|
|
只有小组成员才能发言,加入小组>>
2442 浏览 7 评论
2835 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2306 浏览 9 评论
3387 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
2482 浏览 15 评论
有输入,但是LVDS_25的FPGA内部接收不到数据,为什么?
1693浏览 1评论
请问vc707的电源线是如何连接的,我这边可能出现了缺失元件的情况导致无法供电
616浏览 1评论
求一块XILINX开发板KC705,VC707,KC105和KCU1500
479浏览 1评论
2030浏览 0评论
757浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-10 02:50 , Processed in 1.237696 second(s), Total 57, Slave 51 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号