gpt4 book ai didi

comparison -/= 如何转换为 vhdl 中的实际硬件

转载 作者:行者123 更新时间:2023-12-02 06:31:32 25 4
gpt4 key购买 nike

我是 VHDL/FPGA 编程的初学者。我想比较两个 32 位 std_logic_vector。我目前正在使用:

      if ( RX_FRAME(to_integer(s_data_counter)).Data /= REF_FRAME(to_integer(s_data_counter)).Data ) then
s_bad_frame <= '1';
state <= DONE;
end if;

这里的RX_FRAMEREF_FRAME是2个std_logic_vector(31 downto 0)的数组

我想知道综合工具是如何将/=翻译成硬件的。建议使用这个吗?或者我应该对相关向量执行 XOR 并检查结果向量是否为零?如果我执行 XOR 并检查是否为零,这不会增加所需的硬件数量吗?我使用的是 Vivado Design Suite 2015.3。

最佳答案

您应该与 /= 进行比较真正受益于像 VHDL 这样的语言和像 Xilinx Vivado 这样的高级综合工具。

然后,综合工具将使用 FPGA 中的内部 LUT 来实现这一点,可能具有类似于可变参数的 XOR 门的功能,或者如果其中一个参数的计算结果为常量,则具有类似于 AND/NOT 门的功能。查看实际实现的最佳方式是在显示已实现设计的工具中调出 GUI View 。

但是开始通过自己执行 XOR 门来双重猜测工具通常不是一个好主意,因为该工具通常可以更好地确定最佳实现。但是,如果您遇到该工具无法识别特定构造并选择有效实现的情况,那么使用更多接近编码风格的实现来指导该工具可能是个好主意,但对于像 /= 这样的比较。这种情况很少见。

关于comparison -/= 如何转换为 vhdl 中的实际硬件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34895390/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com