标签: vivado

如何在Verilog中初始化推断的Block RAM(BRAM)的内容

我无法在Verilog中初始化推断的ram的内容.ram的代码如下:

module ram(
        input clock, // System clock
        input we, // When high RAM sets data in input lines to given address
        input [13:0] data_in, // Data lines to write to memory
        input [10:0] addr_in, // Address lines for saving data to memory
        input [10:0] addr_out, // Address for reading from ram
        output reg data_out // Data out
);

reg [13:0] ram[2047:0];

// Initialize RAM from file
// WHAT SHOULD GO HERE?

always @(posedge clock) begin
    // Save data to …
Run Code Online (Sandbox Code Playgroud)

verilog fpga xilinx vivado

8
推荐指数
2
解决办法
1万
查看次数

Vivado Synthesis 挂在 Jenkins 生成的 Docker 容器中

我正在尝试将我们的大型 FPGA 构建移动到 Jenkins CI 环境中,但是当在 Jenkins 产生的 Docker 容器中运行时,构建在综合结束时挂起。

我试图复制 Jenkins 创建的环境,但是当我自己生成 Docker 容器时,构建没有问题。

我试过了:

  • 减少 Vivado 使用的作业(又名线程)数量,认为可能在写出日志文件时发生了一些线程冲突
  • 同样,使用-nolog -nojournalvivado 命令上的选项来删除任何日志文件冲突
  • 控制克隆/检出的项目并在 Docker 容器中以本地用户身份运行命令

我还有一个非常小的构建,它可以在 Jenkins 的整个构建过程中毫无问题地完成,所以我认为我的 Docker 容器没有根本性的缺陷。

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: …
Run Code Online (Sandbox Code Playgroud)

xilinx jenkins docker vivado

8
推荐指数
1
解决办法
942
查看次数

VHDL中的类型转换:实数到整数 - 是否指定了舍入模式?

在调试Vivado中用户定义的物理类型的处理时(更多内容),我发现了从真实到整数的类型转换的不同行为.

这是我的示例代码:

library IEEE;
use     IEEE.STD_LOGIC_1164.ALL;
--use     IEEE.MATH_REAL.all;

entity Top_PhysicalTest_Simple is
  port (
    Clock : in STD_LOGIC;
    Input : in STD_LOGIC;
    Output : out STD_LOGIC
  );
end;

architecture top of Top_PhysicalTest_Simple is
  constant int_1     : INTEGER  := natural(0.5);
  constant int_2     : INTEGER  := integer(-0.5);
--  constant int_2     : INTEGER  := natural(-0.5);
begin
  assert FALSE report "16 - int_1 (natural(0.5)):  " & INTEGER'image(int_1) severity note;
  assert FALSE report "17 - int_2 (natural(-0.5)): " & INTEGER'image(int_2) severity note;

  Output <= …
Run Code Online (Sandbox Code Playgroud)

type-conversion vhdl xilinx xilinx-ise vivado

6
推荐指数
1
解决办法
1万
查看次数

我可以在 VHDL 中使用 Vivado 模块设计时钟频率吗?

我正在 Vivado 中构建一个设计,想知道是否可以在 HDL 中使用框图时钟频率。

我想采用框图了解并作为 DRC 的一部分传播的 FREQ_HZ,并将其输入到我的自定义 IP 块中(使用 VHDL 通用)。这样我就可以执行诸如设置内部计数以生成微秒延迟、波特率等操作。

我可以使用手动自定义参数来完成此操作,但这需要手动维护并且容易出错。

fpga vhdl vivado

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

如何在 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
查看次数

使用 BASYS 3 上的时钟

我想在我的项目中使用 BASYS 3 的时钟。当我搜索项目的约束时,我发现了以下代码:

set_property PACKAGE_PIN W5 [get_ports clk] 
set_property IOSTANDARD LVCMOS33 [get_ports clk] 
create_clock -add -name sys_clk_pin -period 10.00 -waveform {0 5} [get_ports clk]
Run Code Online (Sandbox Code Playgroud)

有人可以向我解释一下吗?我知道clk是时钟的输入,但在最后一行我应该做什么?我应该改变什么吗?还有 10:00 是什么时期waveform{0 5}?请你帮助我好吗?

clock vhdl vivado

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

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

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

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

syntax-checking vhdl xilinx vivado

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

AXI协议,安全和非安全交易之间的区别

只是想问一下,在AXI总线交易方面,安全和非安全交易有什么区别?

这两种交易的性能影响是什么?

vivado zynq axi4

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

Vivado,Zynq,BRAM控制器,窄AXI突发选项

考虑一个带有PS(处理器系统)的简单系统,该系统具有启用的AXI3主机,连接到AXI4互连,连接到可访问BRAM存储器的BRAM控制器.

系统框图

AXI Narrow Bursts是什么意思?我如何定义或考虑什么是窄爆?我可以控制是否需要窄脉冲?

BRAM控制器选项

xilinx vivado zynq axi4

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

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
查看次数