Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vivado没有';无法识别Yosys生成的EDIF文件中的单元格_Yosys - Fatal编程技术网

Vivado没有';无法识别Yosys生成的EDIF文件中的单元格

Vivado没有';无法识别Yosys生成的EDIF文件中的单元格,yosys,Yosys,我试图使用Yosys生成一个edif文件,然后使用Vivado tcl脚本为Artix 7(xc7a15t)FPGA生成一个比特流。然而,Vivado似乎对edif文件中的一些单元格有问题 当我在Vivado中完全使用相同的verilog和constraints文件时,比特流创建得很好,当我将其加载到FPGA时,它会按照预期工作 我已经根据这个例子对我的工作流程进行了建模 具体来说,我使用以下shell脚本作为yosys和Vivado命令的前端: #!/bin/bash yosys run_yo

我试图使用Yosys生成一个edif文件,然后使用Vivado tcl脚本为Artix 7(xc7a15t)FPGA生成一个比特流。然而,Vivado似乎对edif文件中的一些单元格有问题

当我在Vivado中完全使用相同的verilog和constraints文件时,比特流创建得很好,当我将其加载到FPGA时,它会按照预期工作

我已经根据这个例子对我的工作流程进行了建模

具体来说,我使用以下shell脚本作为yosys和Vivado命令的前端:

#!/bin/bash
yosys run_yosys.ys
vivado -nolog -nojournal -mode batch -source run_vivado.tcl
run_yosys.ys:

read_verilog top.v
synth_xilinx -edif top.edif -top top
run_vivado.tcl

read_xdc top.xdc
read_edif top.edif
link_design -part xc7a15tftg256-1 -top top
opt_design
place_design
route_design
report_utilization
report_timing
write_bitstream -force top.bit
top.v(简单的闪烁示例):

Vivado tcl命令
opt_design
生成以下错误:

ERROR: [DRC INBB-3] Black Box Instances: Cell 'GND' of type 'GND/GND' has undefined contents and is considered a black box.  The contents of this cell must be defined for opt_design to complete successfully.
对于单元格
“VCC”
,我得到了相同的错误

我在调用
link\u design
时也会收到与此相关的警告:

CRITICAL WARNING: [Netlist 29-181] Cell 'GND' defined in file 'top.edif' has pin 'Y' which is not valid on primitive 'GND'.  Instance 'GND' will be treated as a black box, not an architecture primitive
我在这里用错Yosys了吗?正确的流程是什么?我是Yosys的新手,所以如果我错过了一些明显的东西,请原谅我

我使用的是Yosys 0.8+147和Vivado 2017.2,解决方案在中。Vivado正在抱怨“VCC”和“GND”单元,因此我们必须将
-nogndvcc
选项传递到
write\u edif
。如
-nogndvcc
选项说明中所述,为此,我们必须使用
hilomap
将VCC和GND与自定义驱动程序关联。完整的xilinx合成是通过以下方式实现的:

synth_xilinx -top top
hilomap -hicell VCC P -locell GND G
write_edif -nogndvcc top.edif
CRITICAL WARNING: [Netlist 29-181] Cell 'GND' defined in file 'top.edif' has pin 'Y' which is not valid on primitive 'GND'.  Instance 'GND' will be treated as a black box, not an architecture primitive
synth_xilinx -top top
hilomap -hicell VCC P -locell GND G
write_edif -nogndvcc top.edif