gpt4 book ai didi

vhdl - 将长 std_logic_vector 与零进行比较

转载 作者:行者123 更新时间:2023-12-04 01:56:55 24 4
gpt4 key购买 nike

在模拟中,这很完美。这是检查的最佳方式吗
可综合代码的零。会产生什么资源?

signal vector_slv : std_logic_vector(2048 downto 0);
...
if (vector_slv = (vector_slv'range => '0')) then
-- do something...

考虑到硬件映射(具有最佳资源利用率),是否还有其他最佳方法来实现此解决方案。

我会对了解所使用的资源更感兴趣。

最佳答案

没有办法或多或少地对合成有意义。编写最能表达您的意图的代码。

如果您正在比较所有零的向量,以下内容都应该产生相同的结果,或者您应该针对该工具提交一个严重的错误!

signal vector_slv : std_logic_vector(2048 downto 0);
constant zeros : std_logic_vector(vector_slv'range) := (others => '0');
...
if vector_slv = (vector_slv'range => '0') then
-- do something...
if vector_slv = zeros then
-- do something...
if unsigned(vector_slv) = to_unsigned(0, vector_slv'length) then
-- do something...

实际上对于适合整数的较短向量:
if intvar = 0 then

将与任何 32 位向量比较完全相同。

(顺便说一句,请注意在 if 条件周围不需要括号 - VHDL 不是 C :)

关于vhdl - 将长 std_logic_vector 与零进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19008707/

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