标签: xilinx

明确定义Xilinx XST工具中LUT和Slice的使用方式?

我正在尝试实现LUT和切片的一些非常具体的行为,用VHDL编写,用于使用XST工具合成的Xilinx Virtex 5 FPGA.我不知道是否可以通过让工具推断出我的意思来实现我的行为,那么我该如何明确指出这种情况呢?

我在谈论在Virtex5上使用6输入LUT,其中有4个在CLB中.

我想明确说明: - 在一个CLB切片中输入4个LUT中的每一个 - 从4个XORCY路由"S"输出 - 指定"第一个"MUXCY(C0)的输入 - "第4个"MUXCY的路由输出(Cn) - 能够以特定的顺序指定CLB的每个LUT的输入,因为它们显然是级联的.

理想情况下,我喜欢用VHDL实例化一个带有所有输入和输出的'CLB',并且能够映射这些......

我对文档进行了大量研究,并没有找到任何真正的东西

fpga vhdl xilinx

5
推荐指数
2
解决办法
6064
查看次数

尝试使用 python 脚本在 Xilinx 中自动化 fpga 构建过程

我想自动化在 xilinx 中创建 ngs、bit 和 mcs 文件的整个过程,并让这些文件自动与 svn 存储库中的某些文件夹关联。我需要知道的是,是否有一个在 Xilinx gui 后端创建的日志文件,它记录了我运行的所有命令,例如打开项目、加载文件、合成等。

另外我还没有找到的是一个日志文件,它记录了综合、映射、布局和布线以及生成编程文件的整个过程。特别记录该工具在这些过程中遇到的任何错误。

如果你们中的任何人都可以向我指出此类文件(如果存在),那就太好了。我没有从我的搜索中得到太多,但也许我看的还不够。

谢谢!

python xilinx

5
推荐指数
1
解决办法
4170
查看次数

如何在 zynq 7020 上使用 C/C++ 实现 FPGA 协处理?

我在学习vivadoHLS,教程u871已经介绍了HLS的使用方法,优化我的C/C++代码。但我想知道如何将它们加载到我的 zynq 7020 板上,让它在板上运行。

我要实现的是:主机(板载CPU)调用PL(FPGA)进行计算,并将参数发送给PL,PL再将结果返回给CPU。

例如,C 中的一个函数:add(int* a, int* b),它将分别添加 a[i] 和 b[i] 并返回一个数组int* 结果。, 通过HLS,我可以展开for循环,那么计算会更快。CPU将a和b的地址发送给PL,PL进行计算,并将结果地址发送回CPU。

在本教程中,它只介绍了如何使用 HLS,没有解释如何与 PL 和 CPU 通信,或者如何将其加载到板上以便它可以在板上运行。

请推荐教程或告诉我在哪里学习,非常感谢!!

fpga xilinx vivado zynq

5
推荐指数
1
解决办法
3524
查看次数

Xilinx TCL Shell在哪里发出结果?

我正在尝试围绕Xilinx ISE TCL Shell开发基于Python的包装器xtclsh.exe。如果可行,我将添加对其他Shell的支持,例如PlanAhead或Vivado ...

那么,总体情况如何?我有一个构成IP核心的VHDL源文件列表。我想打开一个现有的ISE项目,搜索丢失的VHDL文件,并在必要时添加它们。由于IP内核具有重叠的文件依赖关系,所以项目可能已经包含一些文件,因此我只在寻找丢失的文件。

示例用户Python 3.x和subprocess管道。将xtclsh.exe启动,并将命令逐行发送到外壳。监视输出结果。为了简化示例,我将STDERR重定向到STDOUT。虚拟输出POC_BOUNDARY插入命令流中,以指示已完成的命令。

可以通过设置示例ISE项目(包含一些VHDL源文件)来测试随附的示例代码。

我的问题是显示了INFO,WARNING和ERROR消息,但是脚本无法读取TCL命令的结果。

search *.vhdl -type file在xtclsh.exe中手动执行会导致:

% search *.vhdl -type file
D:/git/PoC/src/common/config.vhdl
D:/git/PoC/src/common/utils.vhdl
D:/git/PoC/src/common/vectors.vhdl
Run Code Online (Sandbox Code Playgroud)

执行脚本会导致:

....
press ENTER for the next step
sending 'search *.vhdl -type file'
stdoutLine='POC_BOUNDARY
'
output consumed until boundary string
....
Run Code Online (Sandbox Code Playgroud)

问题:

  • xtclsh写入哪里?
  • 如何从TCL命令读取结果?

顺便说一句:提示符号%对我的脚本也不可见。


Python代码重现此行为:

import subprocess

class XilinxTCLShellProcess(object):
  # executable = "sortnet_BitonicSort_tb.exe"
  executable = r"C:\Xilinx\14.7\ISE_DS\ISE\bin\nt64\xtclsh.exe"
  boundarString = "POC_BOUNDARY"
  boundarCommand = bytearray("puts {0}\n".format(boundarString), "ascii")

  def create(self, …
Run Code Online (Sandbox Code Playgroud)

python shell subprocess xilinx xilinx-ise

5
推荐指数
1
解决办法
797
查看次数

Linux 4.5 GPIO 中断通过 Xilinx Zynq 平台上的 Devicetree

我正在使用带有 Zynq XC72010 的定制开发板,用于运行 Linux 4.5 内核。我正在为我们正在内部测试的芯片开发设备驱动程序,我在尝试将 GPIO 线绑定到软件 IRQ 时遇到了很多问题。到目前为止,我已经尝试了几种方法并用尽了我能想到的任何谷歌搜索。我的设备树配置的相关部分:

/ {
    compatible = "xlnx,zynq-7000";

    amba {
        compatible = "simple-bus";
        #address-cells = <1>;
        #size-cells = <1>;
        interrupt-parent = <&intc>;
        ranges;

        intc: interrupt-controller@f8f01000 {
            compatible = "arm,cortex-a9-gic";
            #interrupt-cells = <3>;
            interrupt-controller;
            reg = <0xF8F01000 0x1000>,
                  <0xF8F00100 0x100>;
        };

        i2c0: i2c@e0004000 {
            compatible = "cdns,i2c-r1p10";
            status = "disabled";
            clocks = <&clkc 38>;
            interrupt-parent = <&intc>;
            interrupts = <0 25 4>;
            reg = <0xe0004000 0x1000>;
            #address-cells = <1>;
            #size-cells = <0>;

            // …
Run Code Online (Sandbox Code Playgroud)

c linux linux-device-driver xilinx device-tree

5
推荐指数
1
解决办法
3869
查看次数

如何在 Vivado 中对 VHDL 进行语法检查而无需完全综合

在 Vivado 中对 VHDL 进行语法检查而无需运行完整综合的最简单方法是什么?

有时我会同时编写许多相互关联的模块,并且希望快速找到命名错误、缺少分号、端口遗漏等。我读到的建议是运行综合,但这比我只需要更长的时间语法检查。我观察到语法错误通常会导致综合在第一分钟左右中止,因此我的解决方法是运行综合并在大约一分钟后手动中止它。

syntax-checking vhdl xilinx vivado

5
推荐指数
1
解决办法
3629
查看次数

Vivado 项目文件中的哪些文件要签入 git?

我有一个 vivado 项目目录,我想将其签入 git。我的所有 VHDL 源文件都位于“../hdl/”下“vivado 项目”目录的上一级目录中。

我的猜测是我只需要签入:

git add ./hdl/*.vhd
git add ./hdl/*.xdc
git add ./vivado_project/vivado_project.xpr
git add ./vivado_project/vivado_project.srcs/
Run Code Online (Sandbox Code Playgroud)

vivado 进行编译生成的文件的重置是输出垃圾,可以通过在签入的 git 文件上运行编译来再次重新创建吗?

它是否正确???

这基本上意味着以下 vivado 目录是可以丢弃和删除的输出垃圾,因为从 git checkout 重新编译时将再次重新创建它们:

所以基本上“rm -rf”和“.gitignore”以下vivado项目文件:

 *.cache/
 *.runs/
 *.sim/
 *.hw/
 *.ip_user_files/    
 *.jou
 *.log
 *.str
Run Code Online (Sandbox Code Playgroud)

xilinx vivado

5
推荐指数
1
解决办法
4438
查看次数

在 Ubuntu 20.04 上安装 Xilinx Petalinux 时出现 python 错误

我尝试在 Ubuntu 20.04 上安装 Xilinx Petalinux 时遇到此错误

dpkg-query: package 'python' is not installed and no information is available 使用 dpkg --info (= dpkg-deb --info) 检查存档文件错误:您的工具不符合版本要求:-检测到 python版本低于预期 2.7.3

我重新安装了python几次,都没有用。

python xilinx petalinux

5
推荐指数
1
解决办法
1761
查看次数

为什么在 Xilinx SDK 中找不到标头?

我正在学习 Ultra96v2 板的“ Xilinx SoC 深度学习简介技术培训课程”课程,并达到了 5 号实验室。

我能够一直跟进,直到我应该在 SDK 中构建项目为止。它失败并告诉我这样的错误:

15:49:06 **** Incremental Build of configuration Debug for project mnist_file_io ****
make all 
Building file: ../src/mnist_file_io.cc
Invoking: ARM v8 Linux g++ compiler
aarch64-linux-gnu-g++ -Wall -O0 -g3 -I/media/user/6b04b610-ff80-4702-a575-b0b1a78fbafb/training/AvnetTTC/DPU/U96AI_student_20200115/U96AI/2018_3/work/lab5/workspace/ExtraIncludes -I/usr/include -c -fmessage-length=0 -MT"src/mnist_file_io.o" --sysroot=YSROOT -MMD -MP -MF"src/mnist_file_io.d" -MT"src/mnist_file_io.o" -o "src/mnist_file_io.o" "../src/mnist_file_io.cc"
In file included from ../src/mnist_file_io.cc:9:0:
/tools/Xilinx/SDK/2018.3/gnu/aarch64/lin/aarch64-linux/aarch64-linux-gnu/include/c++/7.3.1/cmath:45:15: fatal error: math.h: No such file or directory
 #include_next <math.h>
               ^~~~~~~~
compilation terminated.
src/subdir.mk:21: recipe for target 'src/mnist_file_io.o' failed
make: *** [src/mnist_file_io.o] Error …
Run Code Online (Sandbox Code Playgroud)

c++ linux eclipse-cdt xilinx zynq-ultrascale+

5
推荐指数
0
解决办法
1353
查看次数

Vivado 推断到我的模块的 AXI 总线的 FREQ_HZ 不正确

我正在 Vivado 中进行设计。我的顶层设计是一个框图。该框图包含 IP 块和我的 Verilog RTL 模块。每当我更改主模块并且 Verilog 更新框图时,它总是错误地推断出我的模块的时钟频率。我怎样才能解决这个问题?

这个问题令人气愤,问它破坏了我的设计。设计中的所有其他 AXI 总线都正确使用 10MHz,但每当我更改main并更新框图时,Vivado 都会决定mainAXI 总线为 100MHz。只要时钟不匹配,我就无法构建。我可以手动更新框图中块的属性中的频率,但每次更新时这些更改都会被擦除main(这很频繁,因为它是我的模块)。

我尝试为每个 AXI 总线添加专用时钟和重置(即使它们都连接到同一网络)。我已经搞乱了X_INTERFACE_PARAMETER(这在任何地方都有记录吗?)。一切都无济于事。

此外,M_AXIS_CMD是一个主 AXI 接口,应该位于main. 不知道这是怎么回事。但与时钟相比,这是一个相当小的问题。

来源: https: //gitlab.com/tessera/pcd8544-tests

框图

模块接口:

module main #(
        CLK_FREQ = 50000000// : CLK_FREQ > 0 // clock frequency
    )(
        (* X_INTERFACE_PARAMETER = "XIL_INTERFACENAME core_clk, ASSOCIATED_RESET core_rst, FREQ_HZ 10000000" *)
        (* X_INTERFACE_INFO = "xilinx.com:signal:clock:1.0 core_clk CLK" *)
        input clk,
        (* X_INTERFACE_PARAMETER = "XIL_INTERFACENAME …
Run Code Online (Sandbox Code Playgroud)

verilog xilinx vivado zynq

4
推荐指数
1
解决办法
8533
查看次数