- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将我们的大型 FPGA 构建移动到 Jenkins CI 环境中,但是当在 Jenkins 生成的 Docker 容器中运行时,构建会在综合结束时挂起。
我试图复制 Jenkins 正在创建的环境,但是当我自己生成一个 Docker 容器时,构建没有问题。
我试过了:
-nolog -nojournal
vivado 上的选项agent {
docker {
image "vivado:2017.4"
args """
-v <MOUNT XILINX LICENSE FILE>
--dns <DNS_ADDRESS>
--mac-address <MAC_ADDRESS>
"""
}
}
steps {
sh "chmod -R 777 ."
dir(path: "${params.root_dir}") {
timeout(time: 15, unit: 'MINUTES') {
// Create HLS IP for use in Vivado project
sh './run_hls.sh'
}
timeout(time: 20, unit: 'MINUTES') {
// Create vivado project, add sources, constraints, HLS IP, generated IP
sh 'source source_vivado.sh && vivado -mode batch -source tcl/setup_proj.tcl'
}
timeout(time: 20, unit: 'MINUTES') {
// Create block designs from TCL scripts
sh 'source source_vivado.sh && vivado -mode batch -source tcl/run_bd.tcl'
}
timeout(time: 1, unit: 'HOURS') {
// Synthesize complete project
sh 'source source_vivado.sh && vivado -mode batch -source tcl/run_synth.tcl'
}
}
}
[2019-04-17T00:30:06.131Z] Finished Writing Synthesis Report : Time (s): cpu = 00:01:53 ; elapsed = 00:03:03 . Memory (MB): peak = 3288.852 ; gain = 1750.379 ; free physical = 332 ; free virtual = 28594
[2019-04-17T00:30:06.131Z] ---------------------------------------------------------------------------------
[2019-04-17T00:30:06.131Z] Synthesis finished with 0 errors, 0 critical warnings and 671 warnings.
[2019-04-17T08:38:37.742Z] Sending interrupt signal to process
[2019-04-17T08:38:43.013Z] Terminated
[2019-04-17T08:38:43.013Z]
[2019-04-17T08:38:43.013Z] Session terminated, killing shell... ...killed.
[2019-04-17T08:38:43.013Z] script returned exit code 143
timeout
Jenkins 步骤似乎没有刷新打开的缓冲区,因为我的
post:unsuccesful
打印出所有日志文件的步骤未找到
synth_1
,尽管我不希望与 Jenkins 的捕获有任何不同。
wait_on_runs
run_synth.tcl
中使用的命令,但现在我在实现过程中遇到了同样的挂起行为。
最佳答案
问题在于 vivado 处理(或不处理...)其 fork 进程的方式。具体来说,我认为这适用于并行合成。这也许就是为什么您只在某些项目中看到它的原因。在您上面描述的状态下(在“合成完成”之后卡住)我注意到几个废弃的 vivado 僵尸进程。据我了解,这些是结束的子进程,但 parent 在结束自己之前没有收集状态。使用 strace
进行跟踪甚至显示 vivado 试图杀死这些进程:
restart_syscall(<... resuming interrupted nanosleep ...>) = 0
kill(319, SIG_0) = 0
kill(370, SIG_0) = 0
kill(422, SIG_0) = 0
kill(474, SIG_0) = 0
nanosleep({tv_sec=5, tv_nsec=0}, 0x7f86edcf4dd0) = 0
kill(319, SIG_0) = 0
kill(370, SIG_0) = 0
kill(422, SIG_0) = 0
kill(474, SIG_0) = 0
nanosleep({tv_sec=5, tv_nsec=0}, <detached ...>
cat
没有输入来保持它的活力。这边
cat
变为 pid 1 并带走 vivado 的弃子。 cat 当然不知道如何处理它们并忽略它们(真的是悲剧)。
cat,1
|-(sh,16)
|-sh,30 -c ...
| |-sh,31 -c ...
| | `-sleep,5913 3
| `-sh,32 -xe /home/user/.jenkins/workspace...
| `-sh,35 -xe /home/user/.jenkins/workspace...
| `-vivado,36 /opt/Xilinx/Vivado/2019.2/bin/vivado -mode tcl ...
| `-loader,60 /opt/Xilinx/Vivado/2019.2/bin/loader -exec vivado -mode tcl ...
| `-vivado,82 -mode tcl ...
| |-{vivado},84
| |-{vivado},85
| |-{vivado},111
| |-{vivado},118
| `-{vivado},564
|-(vivado,319)
|-(vivado,370)
|-(vivado,422)
`-(vivado,474)
--init
docker run
的参数为我解决了这个问题。
agent {
docker {
image 'vivado:2019.2'
args '--init'
}
}
关于docker - Vivado Synthesis 卡在 Jenkins 生成的 Docker 容器中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55733058/
我想知道如何直接从命令行启动“Xilinx SDK Eclipse GUI”(XSDK)? 目前,我通过首先启动“vivado”来启动 XSDK,然后转到“文件 -> 启动 SDK”菜单。但是,总是先
通过Stack Overflow中的整体搜索。我得到一个提示:对于使用 memcpy 的二进制数据 for (int i=0; i > 0) ^ (lfsr >> 2) ^ (lfsr >> 3) ^
就 Vivado 而言,如何验证一般矩阵乘法场景的设计。如果没有目标 FPGA 板,那么如何比较 vivado 与其他软件(例如 Matlab)的计算速度。我如何确定 C 实现比 Matlab 实现运
使用 Vivado 2015.1,我尝试使用分层名称来访问我设计的顶层模块上的对象。模拟运行良好,但我收到以下综合错误: [Synth 8-660] unable to resolve 'top' [
在实现cordic 算法时,我的非阻塞赋值立即分配变量,而不是在一个时钟周期后。我不知道为什么。我的代码或 Vivado 设计套件有问题吗? 在我的代码中,我需要分配 z[0]与 z[0] >>i;
我编写了 C++ 程序来对两个数字求和。在模拟过程中,我得到了正确的结果,但在 synthesis.Solution1/.autopilot/db/Adder.pragma.1.cpp:1 中,出现错
不,对我来说它不起作用。它在综合过程中显示错误:顶部函数 Adder 没有输出。可能的原因有: 输出参数按值传递 从未写入预期输出(参数或全局变量) 头文件 #ifndef ADDERS_H_ #de
在模拟过程中,我收到此错误代码:“csim_design”失败:非零返回值&&“端口没有 Fanin 或 fanout,并且悬空。请检查我的代码,TOP FUNCTION名称:Trail_NTB,如果
只是想问一下,在 AXI 总线事务方面,安全事务和非安全事务有什么区别? 任一事务的性能影响是什么? 最佳答案 可信交易是 ARM 的 TrustZone 政策的一部分。它需要一个额外的引脚来指示安全
因此,我试图在Vivado中为ZYBO FPGA板设计一个“自动售货机”时序电路。但是,每次我尝试超过实现阶段时,都会遇到很多错误,主要是 [Place 30-58] IO placement is
作为我描述的一部分,在一个包装器组件中,我生成了 N 个 rom 组件。这些 rom 是从包含 rom 图像的文本文件中初始化的。我将希望用来初始化每个组件的文件的名称作为通用参数传递。 描述的充分摘
我正在使用 xlininx 的 vivado xls 创建一个 top 函数。在我的项目中有 5 个文件: P434.c util.c sidh.c fpx.c crypt.c 当我运行 C Synt
我对 Vivado 和 VHDL 还是很陌生,我想就一个基本问题提供一些指导。 我猜我可以创建自己的库并在我的项目中使用它们,就像我使用默认库和基本库一样 例如: library IEEE; use
我有一个问题想问那些熟悉 Xilinx Zynq 和相关设计工具的人...... 是否可以为 Zynq 7010 (Zybo dev board) 编译和运行 C 代码,不使用 Xilinx 工具链
我正在尝试使用 vivado 设计 AXI_master 外设。我使用了vivado菜单中的axi外设生成器并修改了生成的vhdl代码。 在 vhdl 代码中,有一个函数 clogb2 使用以下代码声
我正在迁移到使用 Vivado 并希望将中断生成添加到我的自定义 AXI perph。在 ISE 中,我之前通过使用 AR 记录 (http://www.xilinx.com/support/answ
在 Vivado 中对 VHDL 进行语法检查而无需运行完整综合的最简单方法是什么? 有时我会同时编写许多相互关联的模块,并且希望快速找到命名错误、缺少分号、端口遗漏等。我读到的建议是运行综合,但这需
我正在 Vivado 中构 build 计,想知道是否可以在我的 HDL 中使用框图时钟频率。 我想将框图知道的 FREQ_HZ 作为 DRC 的一部分传播,并将其输入到我的自定义 IP block
我正在使用赛灵思的 vivado 进行 verilog 编程。 我想知道为什么对于某些输出我们使用 reg 例如 reg [3:0] encoder_output我们使用它是因为我们的 16 到 4
我需要有人检查我的代码并给我一个健全性检查。这是用 VHDL 编写的。 Vivado 不断提示错误: [Synth 8-493] no such design unit 'onesevenseg' 但
我是一名优秀的程序员,十分优秀!