xxdd 发表于 2020-8-8 10:19:55

XC7A35T只用了一半资源编译都要40分钟,正常吗?

芯片资源占用和电脑配置如下,工程里面有一个DDR3控制器,其他的就是一些简单的数据处理,编译下来要40分钟,这个编译速度正常吗?感觉好慢
跨时钟的路径也都约束了伪路径


ahfong2006 发表于 2020-8-8 10:35:36

正常,换台多核高频电脑吧

liwei_jlu 发表于 2020-8-8 10:40:28

ahfong2006 发表于 2020-8-8 10:35
正常,换台多核高频电脑吧

很多步骤只有一个核在工作,cpu占用率很低,其他核都在围观。感觉有几个步骤不支持多核
ise14.7

prow 发表于 2020-8-8 10:41:53

liwei_jlu 发表于 2020-8-8 10:40
很多步骤只有一个核在工作,cpu占用率很低,其他核都在围观。感觉有几个步骤不支持多核
ise14.7 ...

ISE开多线程需要手动开一个选项,默认是不开启多线程的

xxdd 发表于 2020-8-8 11:01:57

liwei_jlu 发表于 2020-8-8 10:40
很多步骤只有一个核在工作,cpu占用率很低,其他核都在围观。感觉有几个步骤不支持多核
ise14.7 ...

我用的是vivado 2018.3,说是支持多核的,我设置了8核,但编译过程中cpu占用也是很低

xxdd 发表于 2020-8-8 11:04:28

ahfong2006 发表于 2020-8-8 10:35
正常,换台多核高频电脑吧

i7 6700k 4g 8核,这个配置不算低吧
我是担心是不是代码或约束有问题

asj1989 发表于 2020-8-8 11:43:10

6代cpu已经过时了,听说最近新的按摩店的cpu编译起来很快

ocam-vesta 发表于 2020-8-8 11:44:22

xxdd 发表于 2020-8-8 11:04
i7 6700k 4g 8核,这个配置不算低吧
我是担心是不是代码或约束有问题

有时钟用了但是没有声明吧。这问题把综合后的时钟报告打开看看就知道了

advantech 发表于 2020-8-8 12:16:27

本来准备换自己的老电脑的,看来不用了,因为和老电脑的速度没有太大差别.{:lol:}

prow 发表于 2020-8-8 12:24:12

xxdd 发表于 2020-8-8 11:01
我用的是vivado 2018.3,说是支持多核的,我设置了8核,但编译过程中cpu占用也是很低 ...

vivado默认是开多线程编译的,但是只有2个线程,需要输入额外的命令才能多开一些。不过效果也有限,能提升20%左右吧

prow 发表于 2020-8-8 12:28:12

xxdd 发表于 2020-8-8 11:01
我用的是vivado 2018.3,说是支持多核的,我设置了8核,但编译过程中cpu占用也是很低 ...

你编译的时候会弹出来一个对话框,让你选使用几个线程
但这个选项其实并不是多线程编译,而是同时编译多个任务时最多使用几个线程,对我们常用的只编译一个工程的情况没有任何帮助
开启多线程编译必须打命令开启,上网一搜就能搜到

wye11083 发表于 2020-8-8 12:48:54

prow 发表于 2020-8-8 12:28
你编译的时候会弹出来一个对话框,让你选使用几个线程
但这个选项其实并不是多线程编译,而是同时编译多 ...

跟多线程没太大关系。lz的模块优化太烂了,跑不起来罢了。比如乘法器级联而不加流水线,或者大量的组合逻辑长路径。通常这种应尽量小,或者也流水线化,即要么空间换时间,要么延迟换速度。前者在fpga里一般行不通,因为布线资源实在不多。后者也不是无限提升的,芯片越满,流水线反而会消耗更多资源。

实话实说,芯片半满不好解决,只能查时序深度优化模块,芯片用了一大半(80%)这时卡住的主要是布线资源了,没别的办法,此时优化是靠不住的,只能改map的seed然后暴力硬怼。我用s6 lx25,这货的slice在芯片上部是不均匀的,布线很吃力,因此通常一次开16个或32个ise,seed从1到32穷举。3950x直接热到冒烟,大概半个钟头总有几个时序能过的。当然我的模块全部是深度优化过的,穷举seed只是为了过时序。lz这种无解。

prow 发表于 2020-8-8 13:07:59

wye11083 发表于 2020-8-8 12:48
跟多线程没太大关系。lz的模块优化太烂了,跑不起来罢了。比如乘法器级联而不加流水线,或者大量的组合逻 ...

布线失败vivado是不是就是报告route_design error?vivado里map也能选seed么?
同事有个工程也是经常编译不通过,也没什么提示,只能同时编译几个工程,然后挑能通过的那个用

boyiee 发表于 2020-8-8 21:42:33

ISE和vivado对多核的支持非常差~~~~~~ 高主频的intel处理器效果稍好,以前测试过。

wye11083 发表于 2020-8-8 23:46:06

prow 发表于 2020-8-8 13:07
布线失败vivado是不是就是报告route_design error?vivado里map也能选seed么?
同事有个工程也是经常编译 ...

如果你的逻辑刚好卡着边界(比如pll生成的两个不同频时钟,且没有加tig约束,则pr会按照最短上升沿时间差计算约束),那么pr会花费巨量的时间来试图优化。seed肯定能选的,毕竟xilinx的pr是用的最小生成树算法。我一堆工程都是挑的,因为现在都快被我塞爆了。前两周刚花费巨量时间把lut减了2000,一下子又被一个模块吃了1000+。

Alpha_Lee 发表于 2020-8-9 02:18:26

vivado合成时间的长短跟你的设计和约束也有很大的关系
页: [1]
查看完整版本: XC7A35T只用了一半资源编译都要40分钟,正常吗?