问题标签 [synthesis]

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.

0 投票
1 回答
1504 浏览

vhdl - 当我使用 to_integer 访问常量数组时,Synplify 会修剪我的寄存器。(VHDL)

DataBuffer 是一个 121 位常量 std_logic_vector。sda 是一个输出端口

代码合成良好。但我收到警告 Pruning Register IntSda, (CL169) 和警告 Optimizing register bit IntSda to a constant 0 (Cl190)

出于某种原因,综合工具解释说 IntSda 将始终为 0。注意 IntReset 是一个输入。AddrReg 是计数器的输出,它在 SCl 的时钟上升沿改变值。计数器合成良好,我在 FPGA 上对其进行了测试,并使用逻辑分析仪查看了输出。我不知道为什么会这样。我可以保留保留,但我认为这是一种权宜之计,不能替代了解根本原因。

0 投票
1 回答
2325 浏览

vhdl - 在网表 VHDL 中初始化内存

使用 Synopsis DC 工具综合处理器代码后

现在我想使用 .mem 文件初始化此设计中 2 个组件中包含的 2 个 ram

我如何使用我拥有的网表文件来实现这一点 - 合成的输出 - 因为我想通过在处理器上再次测试相同的代码来测试合成是否正确

在没有合成之前,只需将 .mem 文件加载到这些 ram 中然后对其进行测试就更容易了

任何帮助

0 投票
1 回答
550 浏览

vhdl - modelsim 中的后门级仿真

我正在尝试为流水线处理器进行后门级模拟。我有 vhdl 格式的网络列表,我现在需要再次模拟它以确保功能在合成之后正确。问题是我有 2 个 RAM,一个用于指令,另一个用于数据,在后门级模拟中,我无法查看内存列表视图并将指令和数据加载到我的 2 个 RAM 中。当它们被翻译成触发器和多路复用器时,如何将我的数据插入到 RAM 中?

提前致谢。

0 投票
1 回答
542 浏览

vhdl - 在合成后仿真中得到错误的结果

我正在用 VHDL 编写矩阵转置代码我在每个时钟周期以行主要和一个矩阵元素输入,然后我以列主要格式存储数据,然后我每个时钟一个元素一个元素地以列主要格式发送数据循环到输出。代码如下所示,它可以正确模拟,但后期合成结果不正确,任何人都可以帮助如何合成代码以获得正确的结果

谢谢并恭祝安康

光辉

0 投票
2 回答
1796 浏览

vhdl - 警告:设计包含 1 个高扇出网络。扇出数 1000 将用于涉及这些网络的延迟计算。(TIM-134)

我在同步时收到此警告。带有 synopsys 设计编译器的 vhdl 代码。我怎样才能消除这个警告?

0 投票
1 回答
571 浏览

warnings - Verilog中将值分配给二维寄存器数组中的字节时出错。错误

嗨,当我写这段代码时:

我收到以下警告,使代码无法合成

WARNING:Xst:1780 -从未使用或分配信号mem<2> 。这个未连接的信号将在优化过程中被修剪。WARNING:Xst:653 - 使用信号mem<1>但从未分配。此无源信号将自动连接到值 1000。警告:Xst:1780 - 信号 >从未使用或分配。这个未连接的信号将在优化过程中被修剪。

为什么我会收到这些警告?我没有分配 mem[0] ,mem[1] 和 mem[2] 的值吗!??谢谢你的帮助!

0 投票
2 回答
140 浏览

verilog - 非常混乱的错误,没有提及原因

有人可以告诉我为什么我会收到这个错误吗?我对 Verilog 还是很陌生,所以请原谅任何明显的缺陷。谢谢!

:ERROR:Xst:917 - 未声明的信号 <>。FATAL_ERROR:Xst:Portability/export/Port_Main.h:127:1.13 - 此应用程序发现了无法恢复的异常情况。进程将终止。

谢谢你的时间!

0 投票
1 回答
2096 浏览

initialization - vhdl 中的变量初始化

我正在使用 Xilinx Isim 进行 vhdl 仿真。我已经初始化了一个变量,例如(signal q: std_logic_vector(15 downto 0):="0000000000000000";). 但是当涉及到模拟时,特定的值没有被初始化。它的显示undefined('U')。我必须在反馈中使用该值。所以取决于它的值也是undefined('U')。还有一件事,如果初始化信号是合成的?当我将它转储到 FPGA 时会发生什么?请告诉我解决方案

0 投票
1 回答
1375 浏览

verilog - Verilog 综合在包含两个变量的 if 语句上失败

我遇到了一个综合问题,如果我在 if 语句中有两个变量,综合将失败(带有非常误导和无益的错误消息)。

鉴于下面的代码片段

在综合过程中,我在Xilinx ISE中遇到错误:

该错误声称 next_state 不正确,但是如果我取出payload_length 并为其分配一个静态值,它就可以正常工作。由于 packet_size 和 payload_length 都是整数类型,它们的大小相同,这不是问题。因此,我认为它与无法在硬件中实现的 for 循环类似的问题,除非它是具有定义结束的静态循环。但是 If 语句应该可以工作,因为它只是 2 个二进制值之间的比较器。

我在这里尝试做的是,当我的模块接收到一个字节时,它将被添加到 RAM 中,直到达到整个有效负载(我从早期的数据包数据中获得)的大小,然后更改为不同的状态处理校验和。由于数据一次只输入 1 个字节,我多次回忆这个状态,直到计数器达到限制,然后我将下一个状态设置为其他状态。

那么我的问题是,如何实现调用状态的相同结果并重复直到计数器达到有效负载的长度而不出现错误?

编辑: 根据评论中的要求,如何声明 packet_size 和 payload_length 的片段

rx_byte_buffer是我的模块接收的 8 位宽的输入数据的寄存器,同时packet_size在您在上面看到的机器的各种其他状态中递增。

我通过切换 if 语句条件来解决错误,但仍然想了解为什么这会改变任何事情。

0 投票
2 回答
713 浏览

vhdl - 找不到这些实际值的函数

我的编译器给了我这些错误:

# 错误:COMP96_0305: SUBONE_MODULE_VHDL.vhd : (93, 23): 找不到这些实际值的函数“TO_INTEGER”。

# Error: COMP96_0138: SUBONE_MODULE_VHDL.vhd : (93, 23): 数组对象引用中的索引类型与其范围类型不兼容。**