标签: vivado

运行文件夹中的所有TCL脚本

我有一个包含许多TCL文件的文件夹,我需要全部运行它们(在Vivado中).如何节省一次运行所有这些的时间?有没有这么简单:source [path /]*.tcl?

tcl vivado

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

将库添加到Vivado 2014.4

我是Vivado和VHDL的新手,我想就一个基本问题提供一些指导.

我猜我可以创建自己的库并在我的项目中使用它们,就像我使用默认库和基本库一样

例如:

library IEEE;
use IEEE.std_logic_1164.ALL;
use IEEE.std_logic_unsigned.ALL;
Run Code Online (Sandbox Code Playgroud)

现在,通过在网上浏览,我没有找到任何具体的答案,没有任何直接的方式来"添加库"(至少在我的Vivado版本中).

有没有办法构建VHDL代码,让我们说类型定义,并在任何你喜欢的文件中使用它们,例如在C中完成?

vhdl vivado

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

为什么我们在 FGPA/VHDL/VIVADO 中使用 REG?

我正在使用赛灵思的 vivado 进行 verilog 编程。

我想知道为什么我们使用某些输出 reg

例如,reg [3:0] encoder_output 我们使用它是因为我们的 16 到 4 编码器有 4 个输出,对吗?我假设我们使用reg在需要“存储一些东西”时使用

我的想法对吗??

verilog xilinx vivado

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

如何在 Vivado GUI tcl 控制台中将参数传递给 tcl 脚本

我正在尝试在 Vivado GUI Tcl 控制台中执行 tcl 脚本,我的脚本采用一个参数来决定必须配置哪种类型的运行(synth、impl、bitgen 等)。我知道,-tclargs如果脚本在 Vivado 命令行模式下执行,则使用它可以传递参数。就像是:

vivado -mode batch -source <filename> -tclargs <arguments>
Run Code Online (Sandbox Code Playgroud)

我在 Vivado gui 模式下尝试了相同的操作,但出现错误。

ERROR: [Common 17-170] Unknown option '-tclargs', please type 'source -help' for usage info.
Run Code Online (Sandbox Code Playgroud)

跑步'source -help'

Syntax: 
source  [-encoding <arg>] [-notrace] [-quiet] [-verbose] <file>

Usage: 
  Name         Description
  ------------------------
  [-encoding]  specify the encoding of the data stored in filename
  [-notrace]   disable tracing of sourced commands
  [-quiet]     Ignore command errors
  [-verbose]   Suspend message limits during command execution
  <file> …
Run Code Online (Sandbox Code Playgroud)

tcl vivado

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

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

错误"不允许对非注册结果进行程序性分配"

我收到了错误

[Synth 8-2576]不允许对非登记结果进行程序性分配["lpm_mult.v":29]

我究竟做错了什么?

module lpm_mult (
    dataa, datab,     // multiplicand,multiplier
    sum,              // partial sum 
    clock,            // pipeline clock
    clken,            // clock enable
    aclr,             // asynch clear
    result            // product
);

input  clock;
input  clken;
input  aclr;
input  [31:0] dataa;
input  [31:0] datab;
input  [63:0] sum;
output [63:0] result;

always @ (clken or posedge clock) begin
    if (1==clken) begin
        assign result = dataa * datab;
    end
end

endmodule
Run Code Online (Sandbox Code Playgroud)

verilog vivado

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

Vivado SDK无法识别#include"math.h"中的函数

我在Vivado SDK中编写了一个简单的项目,以测试我在Vivado中开发的HW平台.我的问题是SDK无法识别sin()函数.我已经包含了"math.h"库而没有任何错误,程序识别出包含sin()函数的库(我自己检查过它).

我得到了这个错误:

C:\PATH...\Debug/../src/helloworld.c: undefined reference to `sin' collect2.exe: error: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

我已经在这里阅读了答案,它太笼统,所以解决我的问题毫无用处.显然存在库的问题,但目前尚不清楚如何在Vivado SDK中专门解决它.

我正在使用:操作系统:Windows 7

Vivado:2016.1

Vivado SDK:2016.1

有什么办法吗

c++ math.h vivado vivado-hls

3
推荐指数
1
解决办法
3008
查看次数

将端口与bram接口相结合

我想写一个IP来使用BRAM存储/读取数据.

到目前为止,我使用(C)DMA从RAM读取存储器映射数据并获得AXIS.

然后我用VHDL创建了一个新的源文件,接受AXIS的一面就像魅力一样.另一方面,我想创建一个BRAM接口,但vivado不会为BRAM接口组合端口.

位于"vivado/data/ip/interfaces/bram_v1_0"文件夹中,存在文件"bram_rtl.xml".我试图使用xml文件中使用的端口.特别是带有"必需"标签的端口.

AXI BRAM控制器正在将它们组合在一起,所以我很确定我犯了一个错误.使用与AXI BRAM Controller相同的命名也不起作用.

我的VHDL看起来像这样:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity AXIS_TO_BRAM is
    generic (
        addr_size : integer range 1 to 12 := 10
    );
    Port (
        --axistream
        tdata : in std_logic_vector(31 downto 0);
        tkeep : in std_logic_vector(3 downto 0);
        tlast : in std_logic;
        tready : out std_logic;
        tvalid : in std_logic;
        aclk : in std_logic;    

        --BRAM
        en : out std_logic;
        dout : in std_logic_vector(31 downto 0);
        din : out std_logic_vector(31 downto 0);
        we : out std_logic; …
Run Code Online (Sandbox Code Playgroud)

vhdl xilinx vivado

3
推荐指数
1
解决办法
899
查看次数

Vivado:警告时序时钟 (TIMING-17) 未到达时钟引脚 x_reg.C

我正在尝试使用 Xilinx 的 Vivado 工具编译一些 FPGA 代码。但是,当我运行“综合”然后选择“报告方法”时......我得到以下不良实践列表:


TIMING-17
TIMING #1 Warning The clock pin last_anthony_reg.C is not reached by a timing clock 
TIMING #2 Warning The clock pin last_paul_reg.C is not reached by a timing clock 
TIMING #3 Warning The clock pin last_steven_reg.C is not reached by a timing clock 
Run Code Online (Sandbox Code Playgroud)

我想知道是什么导致了这个“警告”消息...我尝试查看原理图...但对我来说看起来不错...只看到 FDCE 和一些 LUTS,那里没有什么异常。

这是我的 FPGA 顶层 VHDL 实体:

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

entity example1 is
    port(
        clk           :in    std_logic;
        clear         :in    std_logic;

        richard       :out   std_logic;
        james         :in …
Run Code Online (Sandbox Code Playgroud)

fpga vhdl xilinx vivado

3
推荐指数
1
解决办法
7599
查看次数

在 Verilog 模块之间传递参数

我对 Verilog 还很陌生,正在学习入门知识。我有一些代码生成一个 8 位向上计数器(模块counter.v ),然后由顶部模块( top_module.v )调用。有一个模拟测试夹具(test_fixture.v)调用顶层模块进行测试。

我试图使用参数(参数COUNTER_WIDTH)定义计数器的宽度,但遇到困难。一位同事为我修复了代码,现在它确实可以工作,但我想了解一些事情,以便我能够了解实际发生的情况。

这是计数器模块的代码:

module counter
#(parameter COUNTER_WIDTH = 8)
(
    input wire CLK,
    input wire RST,
    input wire CE,
    output reg[COUNTER_WIDTH-1:0] out = {COUNTER_WIDTH{1'b0}}
    );


   always @(posedge CLK) begin
      if (RST == 1) begin
         out <= {COUNTER_WIDTH{1'b0}};
      end else begin
      if (CE == 1) begin
         out <= out + 1'b1;
      end
    end
  end
endmodule
Run Code Online (Sandbox Code Playgroud)

顶层模块:

module top_module
#(parameter COUNTER_WIDTH = 8)
(
    input wire CLK,
    input wire CE, …
Run Code Online (Sandbox Code Playgroud)

verilog parameter-passing vivado

3
推荐指数
1
解决办法
6783
查看次数

标签 统计

vivado ×10

verilog ×4

xilinx ×4

vhdl ×3

tcl ×2

c++ ×1

fpga ×1

math.h ×1

parameter-passing ×1

vivado-hls ×1

zynq ×1