Vivado报错:[Runs 36-527] DCP does not exist_烦恼诗集#的博客-CSDN博客
先参考这个文档解决,
问题描述:综合工程时,某个IP文件被标红,出现[Runs 36-527] DCP does not exist...... 的报错
解决办法:如果是在windows系统上用Vivado打开工程,当工程路径过长时,可能会出现这样的问题。比如:
D:\BaiduNetdiskDownload\FPGA\DBF\fpga-filter-implementation-master\fpga-filter-implementation-master\LMS_Simulation\LMS_Adaptive_Filter.runs\clk_wiz_0_synth_1
只要把工程转移到短一点的路径,再打开综合就行了。
但我的工程路径很简单,根本就不长,所以和我的问题不一致,后来又查了一个解决方法解决了我的问题
编译后清除操作,generate Output Products MIG ddr3 IP核后报错DCP问题解决,Vivado工具–综合流程中的基础知识_nature_forest的博客-CSDN博客
在tcl窗口输入reset_project,然后重新编译,就通过了。下面是解释。
参考链接:http://www.360doc.com/content/16/0406/19/18252487_548393946.shtml
当我们提到'Implementation'时,我们通常都知道它是由以下几个步骤组成的:
- opt_design
- place_design
- route_design
- (and a number of others)
在工具中,每一个步骤都有其特定的功能,并且提供众多选项,用户可以控制。
而在我们的感觉中,“synthesis”好像是一个步骤,但实际上并非如此,它也是由好几个独立的步骤顺序组合而成的:
- elaborate the design
- apply constraints to the design
- do high level optimizations of the design
- technology map the design
- do low level optimizations of the design
其中第一个步骤“elaboration”,很多人从字面上无法理解其准确含义。其实它是指读取rtl源代码,并且把代码翻译成硬件实现,就是所谓的“generic technology cells”,是一些硬件库单元的抽象描述,比如:寄存器,加法器,比较器,选择器,等等。
这个步骤非常有必要,因为接下来的high/lowlevel optimization是timing driving的,所以会需要constrains,但是约束不能被添加到rtl代码上,因为代码是text格式的,约束只能添加到网表netlist上,所以“elaboration”就做了这一步翻译工作,把rtl代码翻译成“generictechnology cells”。
在常规流程中,通常我们会把elaborate作为综合的一部分而忽略它(虽然在综合的log文件里有打印),但是我们其实可以告诉综合工具在elaborate后停止,并且给我们一个generictechnology cells格式的netlist这么做有2个原因(或者说好处):
1. 确认综合工具正确理解了rtl代码。通过generictechnology cells格式的网表,我们可以查看层次关系,检查悬空的输入或者输出,确认是否正确识别代码中的RAM描述,等。
2. 创建并检查约束constrains。
先明白下框架,后续再补充
补充1:参考:http://xilinx.eetrend.com/d6-xilinx/article/2018-11/13908.html
如何清理编译后的vivado工程
在tcl窗口输入reset_project
清理/压缩工程
实际使用vivado的过程中,由于vivado会自动产生一系列文件,有些是不必要时刻保存的中间文件,有些是加快效率的文件(比如编译IP核后产生的文件)。但是在上传svn或者自己做备份的时候希望备份占用尽量少的空间。然而由于vivado不会自动清理,所以这时候就需要我们做手动清理了,很多人采用的方法是根据经验删除没用的文件和文件夹,这种对于不熟悉的人很容易犯下不可挽回的错误。也有人写好了批处理文件可以直接帮助删除的,但是这都不太适合初学者。其实vivado是有tcl命令可以帮助清理的。
reset_project是vivado一个tcl命令,输入后会发现所有的IP全部清掉了编译后的文件,工程的综合和实现也被清理掉了,所以会减少空间。复位后是什么效果呢?其实复位就是把里面的综合和实现清空,包括ooc下面的IP核等都清掉,这样就只保留了最必要的文件,从而压缩了占用 空间。但是这样也带来一个问题,如果要重新产生一个可用的版本,需要的时间会更长,这个操作实际上也就是用空间换取了时间,所以大家使用前要衡量下,不要随便用,比较大的工程了跑一次可能一天就没了。
我这里之所以选择清除的原因是,vivado用的不熟,以为block design设计完成后要点击左边的generate block design 结果就报如下错误:
[Runs 36-527] DCP does not exist: c:/...../pcie_system_mig_7series_0_1.dcp
原始那句找不到了,大概就是找不到DDR控制器IP的dcp文件
我报的错和这位的基本一致。我是右键blockdesign 选择了generate block design
这里找到了原因 ,vivado暂时不支持MIG IP 所以无法生成。但做了以后就一直报错无法编译通过。所以只能清除重新来
在tcl 中敲入命令:reset_project 就清除了,然后重新编译综合就好了。
补充2:validate_bd_design 在tcl 控制台输入这个命令
IP integrator might auto-compute certain configuration values when validating or generating the design. To check whether the values do change, see the description of the parameter in this chapter. To view the parameter value you can run the
validate_bd_design command in the Tcl Console