问题标签 [vivado]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
tcl - TCL 批处理模式下的行为模拟
我有一个行为模拟,它在模拟后将所有需要的信息存储在 .txt 文件中。我需要使用不同的参数运行这个模拟大约 8000 次以上,这些参数是在 MATLAB 中生成的。我想运行具有不同参数的 TCL 脚本。到目前为止我所拥有的:
在 MATLAB 中,我使用以下参数以批处理模式调用 Vivado:
TCL 脚本如下所示:
但是,Vivado 似乎没有更改这些值。它始终运行 1000 ns 的仿真(默认设置)并使用默认设置在 .vhd 文件中的通用参数。我还尝试通过 GUI 设置通用参数,如下所示http://www.xilinx.com/support/answers/64118.html(这是我从中获得 TCL 命令的地方),但仿真参数没有改变。可能是什么原因?我的脚本和在批处理模式下进行模拟的方法是否正确?
vhdl - 将数据存储到 zynq 设备上的 ram
我目前在将Zynq的 PS 部分生成的图像存储到板的 DDR3 中时遇到一些问题,然后将该图像读入板的 PL 侧,以便在那里创建的 VGA 驱动程序可以
PS 创建一个 640x480 的图像,理想情况下我想将其存储在 Dram 中。到目前为止,我一直使用 DMA 来回传输数据并以某种方式(不存储所有像素)将其存储到我系统的块 RAM 中。但这不是一个理想的解决方案,我也知道..
所以我的问题是如何访问我的 zynq 板的 DDR ram,我知道它位于 PS 端,但似乎找不到任何解释它应该如何接口的文档等等..
verilog - 在 if else 条件下使用 Verilog 参数
考虑以下 Verilog 代码。
由于 C_SUB_WIDTH、C_SUB_HEIGHT 和 BIT_DEPTH 都是参数,这是否会使 single_block_width 也成为参数?
如果没有,那么我怎样才能使 single_block_width 成为参数并根据上述参数设置它的值?
我正在使用 Xilinx Vivado 来合成上述代码。(它必须能够合成)
谢谢你。
c - 访问寄存器
我正在使用软核 Cortex-M0、Keil uvision 5、vivado 14.4 我用我的 ARM 架构连接了一个加速器,
当我这样做时,在 Vivado 模拟器中一切正常
但是当我尝试这个时
模拟不起作用,无法访问寄存器:0x59000000
verilog - 不同频率的 LED 计数器程序 (0 - 15)
我想在 Zybo 板上用 4 个 LED 制作一个计数器,从 0 到 15 计数。此外,我希望板上的 4 个按钮对应于 LED 变化的不同频率(0.5Hz、1Hz、2Hz、 4赫兹)。我已经实现了具有固定频率的简单计数器,但没有实现按钮频率变化的第二部分。
在块设计中,我有一个 Zynq 处理系统、一个读取按钮数据的 AXI GPIO 和一个用作 LED 驱动器、时钟分频器和频率转换器的自定义 IP。
自定义 IP
时钟分频器模块代码。
寄存器 constantNumber 取相应的值以改变时钟频率。
其余的自定义 IP 逻辑。
按钮数据被发送到自定义 IP (slv_reg0) 的第一个寄存器,后者又将它们发送到 Clock_Divider 模块中的 reg0。
主 C 程序
我可以确认 AXI GPIO 正确读取了按钮数据,因为当按下它们时,终端中会打印正确的行。但是当我按下按钮时,频率并没有改变。此外,它以非常慢的频率运行,比默认的 1Hz 慢得多,即使按钮数据没有发送到自定义 IP。
问题必须存在于自定义 IP 中的 reg0 案例逻辑或将按钮数据从 cpu 发送到自定义 IP 的寄存器的某个地方。
encryption - 如何使用 Vivado 为 Modelsim 加密文件
供应商正在使用将一些代码编译成原始 VHDL 的工具。他们不希望我看到原始代码,而是希望加密输出文件。目前,他们使用 Vivado 将其加密到 EDIF 网表中。
这在实现设计时很好;我把它当作一个黑匣子,使用 i/o 的包装器并写入比特流。他们确保我的黑匣子设计有效。我确实看到我的资源使用量达到了我的预期,但是我想模拟和验证他们的结果。
当试图用modelsim模拟它时,它当然不知道如何解密这些文件。如果将网表写入 VHDL,则会收到错误消息:
我要求他们在加密这些文件时包含 modelsim 的加密密钥,但他们不知道如何去做。
我了解他们使用 .tcl 的粗略工作流程是:
所以我的问题是,当他们使用 Vivado 生成 EDIF 文件时,他们如何包含 modelsim 加密密钥?
vhdl - VHDL写入文件什么都不做
我写了一段 VHDL 代码的图像处理。为了测试,我用 Matlab 和一个相对简单的测试台创建了一个像素值文件(它只是将值从文件填充到输入)。我想将结果写入一个新文件,以便我可以处理它们并查看生成的图像。
代码编译并运行测试台,我看到我输入的所有报告以检查它是否在任何地方停止,但带有结果的文件仍然是空的。print 和 writeline 似乎都没有做任何事情。该文件存在并添加到 Vivado 中的项目中,因此我不必编写整个路径。模拟器输出中没有警告或错误。
我从这里和这里获得了写入文件的代码,并将其扩展了一点,以便每个时钟写入文件并在顶部添加一个标题。
color_out(0) 是一段输出。color_out_v 输出有效。
有任何想法吗?我错过了什么?
verilog - 仿真结果与综合原理图不匹配
我有一个非常简单的电路来更新我的 IP 内核中的寄存器。
这里的目标是ruleCount
在第一个周期start
被断言时注册(其他一些转换也依赖于此)。所以,我注册start
到lastStart
,等待条件,然后采取适当的行动。
我正在使用 Vivado 2015.4 和vSim XSim,以及 Kintex Ultrascale 060。经过精心/综合后,我得到以下电路原理图:
我的功能/RTL 模拟符合我的预期。但是,由于该设计在电路板上无法正常运行,我选择尝试综合后仿真,并得到以下结果:
如图所示,start
由我的测试台提出,并且 Vivado 插入的 IBUF 的输出产生相同的值. 但是,由于未知原因,lastStart
无法在两个时钟沿中的任何一个start
为高电平时捕获值(t=35ns,t=45ns)。此外,尽管start&&!lastStart
很高,ruleCountReg
但也不会更新。
为了比较,这里是功能 RTL 模拟: 这是 Vivado 中的错误吗?Verilog 是微不足道的,它似乎正在为电路生成正确的原理图,但它会创建一个不正确的网表吗?综合不会产生任何与这些信号相关的警告。
编辑:似乎 xSim 在模拟的前 100ns 期间没有更新任何寄存器。
vhdl - Vivado 不承认测试台文件的更改
我需要一些有关 Vivado 2015.4 的帮助。高密度脂蛋白
我在我的项目中添加了一个测试台文件,其中有一些错误。在我修改了这些错误之后,但是当我重新运行模拟时,由于之前存在相同的错误,它无法正常工作。
所以这些变化没有得到承认。由于某种原因,我失踪了。
我保存了文件,我还尝试通过在层次结构中向上移动来更改编译顺序,但没有更改。我在这里想念什么?那里一定有我没有设置的设置,因为即使重新启动 Vivado 也无济于事。
vhdl - 使用无符号的 VHDL 中的多个添加
我正在尝试编写一种奇怪的 VHDL 位,它接受 4 个值,并且根据一个输入的值,将使用几种不同的方法创建两个平均值,并输出该特定方法的 8 个最高有效位。
我正在使用 Xilinx Vivado 和 XSim。
在我使用整数的较早、不太复杂的修订版中,我的代码运行良好。但是,由于项目的要求,我被告知必须使用 std_logic_vectors 输出。
当我尝试在一次分配中进行多次添加时会出现我的问题,我不确定这是不可能的,或者我只是做错了。
这是我的代码:
我的测试台:
如果我使用 MODE =“00”,它试图将所有 4 个加在一起,模拟将停止,我得到的错误是
4 个 13 位数字的加法应该是 15 位,所以我不确定这里有什么问题。任何人都可以分享一些对此的见解吗?是否不能多次添加未签名的?如果您需要更多信息,请告诉我。
谢谢