完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
你好,
我试图通过修改自动生成的MIG XDC来制作XDC。 但是当我使用如下所示的set_property时,Vivado找不到具有该过滤器的单元格。 pcu是top模块下的一个intance。 从pcu到u_ddr_mc_phy,我用完整的层次结构实例名称描述了它。 set_property LOC OUT_FIFO_X1Y34 [get_cells -hier -filter {NAME =〜pcu.u_pcu_slice_top_0.u_d3p_top.u0_ddr_phy_top.u_ddr_mc_phy_wrapper.u_ddr_mc_phy / ddr_phy_4lanes_1.u_ddr_phy_4lanes / ddr_byte_lane_C.ddr_byte_lane_C / out_fifo}] 原始表达式如下所示,它由MIG生成。我根据我的设计层次对其进行了修改。我删除了“*”并添加了完整的层次结构,因为“*”似乎无法正常工作。 我不确切地知道我是否应该使用“。” 或“/”。似乎“/”用于由“生成”语法生成的单元格。 但我不确定。 set_property LOC OUT_FIFO_X1Y34 [get_cells -hier -filter {NAME =〜* / c0_u_memc_ui_top_std / * / ddr_phy_4lanes_1.u_ddr_phy_4lanes / ddr_byte_lane_C.ddr_byte_lane_C / out_fifo}] - “。”之间有什么区别。 和“/” - 如何用户“*”,用户“*”需要“/”? 在上述表达式中,所有“*”都用“/”包装。 所以我猜测“*”需要“/”左右两侧.-“=〜”旁边的第一层次应该是“*”? - 我看了一下Xilinx网站上的“Constraint”和“TCL”文档。 但是这些定义很难找到。请让我知道如何设置我的层次表达式以及我可以参考这项工作的文档。 谢谢。 以上来自于谷歌翻译 以下为原文 Hello, I am trying to make XDC by modifying automatically generated XDC of MIG. But Vivado don't find cells with that filter, when I use set_property like below. pcu is an intance under top module. And from pcu to u_ddr_mc_phy, I described it with full hierarchy instance names. set_property LOC OUT_FIFO_X1Y34 [get_cells -hier -filter {NAME =~ pcu.u_pcu_slice_top_0.u_d3p_top.u0_ddr_phy_top.u_ddr_mc_phy_wrapper.u_ddr_mc_phy/ddr_phy_4lanes_1.u_ddr_phy_4lanes/ddr_byte_lane_C.ddr_byte_lane_C/out_fifo}] The original expression was like below, It is generated by MIG. I modified it according to my design hierarchy. I removed "*" and added full hierarchy, because "*" seems not working properly. And I don't know exactly whether I should use "." or "/". It seems that "/" is used for cells which is generated by "generate" syntax. But I am not sure. set_property LOC OUT_FIFO_X1Y34 [get_cells -hier -filter {NAME =~ */c0_u_memc_ui_top_std/*/ddr_phy_4lanes_1.u_ddr_phy_4lanes/ddr_byte_lane_C.ddr_byte_lane_C/out_fifo}] - What's the difference between "." and "/" - How can I user "*", is "/" needed to user "*" ? In above expresion all "*" is wrapped by "/". So I guessed "*" needs "/" left and right side. - At first hierarchy next to "=~" should be "*" ? -I took a look at "Constraint" and "TCL" doc in Xilinx website. But those definition is hard to find. Please let me know how to set my hierarchical expression and what doc I can refer to for this work. Thanks. |
|
相关推荐
4个回答
|
|
了解层次结构在Vivado中的工作原理非常重要 - 如果不正确理解它,很难完成任何工作。
您正在使用的示例也是可怕的示例 - 它们是来自UCF的相当直接的翻译,并且不是在XDC中获取对象的推荐方式(并且,是的,我知道它们来自Xilinx IP ......)。 在XDC中,分层名称不仅仅是具有层次结构分隔字符的名称,而实际上是其他元素中其他元素中的元素...... 因此,获取实例化b_inst内部的单元c_inst的正确方法是实例化a_inst,该实例化是在设计的顶层实例化的。 get_cells a_inst / b_inst / c_inst -hier选项可以在任何地方查找单元格 get_cells -hier c_inst 还会找到c_inst 你做不到 get_cells * c_inst get_cells * / c_inst 这些通配符都不会与这种通配符相符 get_cells * / * / c_inst 会找到c_inst “。” 仅仅是一个角色。 确实,我们找到包含“。”的名称。 - 通常作为生成语句的结果,但是单元格 d_inst / e_inst / f_inst.g_inst 是实例化e_inst中的单元格“f_inst.g_inst”,它位于d_inst内 这只是冰山一角。 您还可以执行许多其他操作 - 例如使用filter命令。 但最好了解filter命令的作用; 根据其属性过滤对象。 当然,这导致了“什么是属性”和“存在什么样的属性”这个问题,以及“什么是'NAME'属性,以及你可以用它做什么......” 然后你会进入类似“范围”约束文件(MIG xdc文件所在的文件,这就是为什么你在顶层使用它们时遇到麻烦)...... Xilinx提供涵盖这些主题的课程 - 特别是本课程和本课程 除此之外,我确信(某处)所有这些都在手册中,但不是在一个地方...... Avrum 在原帖中查看解决方案 以上来自于谷歌翻译 以下为原文 It is pretty important to understand how hierarchy works in Vivado - its pretty hard to get anything done without properly understanding it. The examples you are using are also terrible examples - they are fairly literal translations from UCF, and are not the recommended way of getting objects in XDC (and, yes, I know they come from Xilinx IP...). In XDC, hierarchical names are not simply names that have hierarchy separation characters in them, but actually elements within other elements within other elements... So, the correct way to get a cell c_inst which is inside the instantiation b_inst, which is inside the instantiation a_inst which is instantiated at the top level of the design is get_cells a_inst/b_inst/c_inst The -hier option finds cells anywhere, so get_cells -hier c_inst will also find c_inst You cannot do get_cells *c_inst get_cells */c_inst neither of these wildcards will match the hierarhcy, althoug get_cells */*/c_inst will find c_inst The "." is merely a character. It is true that we find names that contain "." - often as the result of a generate statement, but the cell d_inst/e_inst/f_inst.g_inst is the cell "f_inst.g_inst" inside the instantiation e_inst, which is inside d_inst This is just the tip of the iceberg. There are many other things you can do - like using the filter command. But its best to understand what the filter command does; filter objects based on thier properties. This, of course, leads to the question "what are properties" and "what kind of properties exists", and "what is the 'NAME' property, and what can you do with it..." Then you get in to things like "scoped" constraint files (which the MIG xdc files are, which is why you are having trouble with them when using them at the top level)... Xilinx offers classes that cover these topics - particularly this one and this one Other than that, I am sure that (somewhere) all of this is in the manuals, but not in one single spot... Avrum View solution in original post |
|
|
|
了解层次结构在Vivado中的工作原理非常重要 - 如果不正确理解它,很难完成任何工作。
您正在使用的示例也是可怕的示例 - 它们是来自UCF的相当直接的翻译,并且不是在XDC中获取对象的推荐方式(并且,是的,我知道它们来自Xilinx IP ......)。 在XDC中,分层名称不仅仅是具有层次结构分隔字符的名称,而实际上是其他元素中其他元素中的元素...... 因此,获取实例化b_inst内部的单元c_inst的正确方法是实例化a_inst,该实例化是在设计的顶层实例化的。 get_cells a_inst / b_inst / c_inst -hier选项可以在任何地方查找单元格 get_cells -hier c_inst 还会找到c_inst 你做不到 get_cells * c_inst get_cells * / c_inst 这些通配符都不会与这种通配符相符 get_cells * / * / c_inst 会找到c_inst “。” 仅仅是一个角色。 确实,我们找到包含“。”的名称。 - 通常作为生成语句的结果,但是单元格 d_inst / e_inst / f_inst.g_inst 是实例化e_inst中的单元格“f_inst.g_inst”,它位于d_inst内 这只是冰山一角。 您还可以执行许多其他操作 - 例如使用filter命令。 但最好了解filter命令的作用; 根据其属性过滤对象。 当然,这导致了“什么是属性”和“存在什么样的属性”这个问题,以及“什么是'NAME'属性,以及你可以用它做什么......” 然后你会进入类似“范围”约束文件(MIG xdc文件所在的文件,这就是为什么你在顶层使用它们时遇到麻烦)...... Xilinx提供涵盖这些主题的课程 - 特别是本课程和本课程 除此之外,我确信(某处)所有这些都在手册中,但不是在一个地方...... Avrum 以上来自于谷歌翻译 以下为原文 It is pretty important to understand how hierarchy works in Vivado - its pretty hard to get anything done without properly understanding it. The examples you are using are also terrible examples - they are fairly literal translations from UCF, and are not the recommended way of getting objects in XDC (and, yes, I know they come from Xilinx IP...). In XDC, hierarchical names are not simply names that have hierarchy separation characters in them, but actually elements within other elements within other elements... So, the correct way to get a cell c_inst which is inside the instantiation b_inst, which is inside the instantiation a_inst which is instantiated at the top level of the design is get_cells a_inst/b_inst/c_inst The -hier option finds cells anywhere, so get_cells -hier c_inst will also find c_inst You cannot do get_cells *c_inst get_cells */c_inst neither of these wildcards will match the hierarhcy, althoug get_cells */*/c_inst will find c_inst The "." is merely a character. It is true that we find names that contain "." - often as the result of a generate statement, but the cell d_inst/e_inst/f_inst.g_inst is the cell "f_inst.g_inst" inside the instantiation e_inst, which is inside d_inst This is just the tip of the iceberg. There are many other things you can do - like using the filter command. But its best to understand what the filter command does; filter objects based on thier properties. This, of course, leads to the question "what are properties" and "what kind of properties exists", and "what is the 'NAME' property, and what can you do with it..." Then you get in to things like "scoped" constraint files (which the MIG xdc files are, which is why you are having trouble with them when using them at the top level)... Xilinx offers classes that cover these topics - particularly this one and this one Other than that, I am sure that (somewhere) all of this is in the manuals, but not in one single spot... Avrum |
|
|
|
嗨,
我试图通过修改自动生成的MIG XDC来制作XDC。 >>我可以问你为什么要修改MIG生成的XDC? 据我所知,当MIGis生成并添加到您的自定义设计中时,Vivado将在综合/实现期间检测并读取IPgenerated XDC,您可以在编译顺序报告中找到它。 您可以在example_top.xdc或您自己的xdc中添加其他constarints 如果XDC保持不变,您是否看到任何错误,您能分享我们的流量和错误日志/快照吗? 你使用哪个Vivado verison? 问候, Vanitha -------------------------------------------------- -------------------------------------------请在发布前进行谷歌搜索, 您可能会找到相关信息。请留下帖子 - “接受为解决方案”,如果提供的信息有用且回复,请给予赞誉 以上来自于谷歌翻译 以下为原文 Hi, I am trying to make XDC by modifying automatically generated XDC of MIG. >> Can I ask why do you want to modify MIG generated XDC? To my knowledge when MIG is generated and added to your custom design, Vivado will detect and read IP generated XDC during Synthesis/implementation, you can find it in compile order report. You can add your other constarints in example_top.xdc or your own xdc Did you see any error if the XDC is left as is, can you share us your flow and error log /snapshot? Which Vivado verison are you using? Regards, Vanitha --------------------------------------------------------------------------------------------- Please do google search before posting, you may find relavant information. Mark the post - "Accept as solution" and give kudos if information provided is helpful and reply oriented |
|
|
|
你好,
我评论了你的问题。 我试图通过修改自动生成的MIG XDC来制作XDC。 >>我可以问你为什么要修改MIG生成的XDC? 因为我使用MIG7 PHY定制控制器(非MIG控制器)。 层次结构与MIG生成的XDC的原始层次结构不同。 据我所知,当MIGis生成并添加到您的自定义设计中时,Vivado将在综合/实现期间检测并读取IPgenerated XDC,您可以在编译顺序报告中找到它。 您可以在example_top.xdc或您自己的xdc中添加其他constarints 如果XDC保持不变,您是否看到任何错误,您能分享我们的流量和错误日志/快照吗? 我想我解决了这个问题。 但我遇到了另外的错误消息,如下所示。 http://forums.xilinx.com/t5/MIG-Memory-Interface-Generator/MIG-PHY-P-amp-R-issue-Place-30-370-An-unconstrained-Phaser/td-p/484402 不知何故,vivado可能仍然没有找到分层细胞...... 你使用哪个Vivado verison? 2014.1 谢谢。 以上来自于谷歌翻译 以下为原文 Hello, I commented on your questions. I am trying to make XDC by modifying automatically generated XDC of MIG. >> Can I ask why do you want to modify MIG generated XDC? Because I am using customized controller(Not MIG controller) with MIG7 PHY. Hierarchy is different from original one of MIG generated XDC. To my knowledge when MIG is generated and added to your custom design, Vivado will detect and read IP generated XDC during Synthesis/implementation, you can find it in compile order report. You can add your other constarints in example_top.xdc or your own xdc Did you see any error if the XDC is left as is, can you share us your flow and error log /snapshot? I suppose I resolved this problem. but I met another error messages like below. http://forums.xilinx.com/t5/MIG-Memory-Interface-Generator/MIG-PHY-P-amp-R-issue-Place-30-370-An-unconstrained-Phaser/td-p/484402 somehow vivado might still not find hierachical cells... Which Vivado verison are you using? 2014.1 Thanks. |
|
|
|
只有小组成员才能发言,加入小组>>
2387 浏览 7 评论
2802 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2269 浏览 9 评论
3337 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
2437 浏览 15 评论
有输入,但是LVDS_25的FPGA内部接收不到数据,为什么?
765浏览 1评论
请问vc707的电源线是如何连接的,我这边可能出现了缺失元件的情况导致无法供电
549浏览 1评论
求一块XILINX开发板KC705,VC707,KC105和KCU1500
378浏览 1评论
1972浏览 0评论
689浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-27 05:07 , Processed in 1.337978 second(s), Total 82, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号