gpt4 book ai didi

integer - 什么时候应该使用 std_logic_vector,什么时候应该使用其他数据类型?

转载 作者:行者123 更新时间:2023-12-01 15:48:27 24 4
gpt4 key购买 nike

我是 VHDL 新手,无法确定哪些数据类型适合在哪里使用。如果我理解正确,对于综合来说,所有顶级实体端口都应该声明为 std_logic_vector 或 std_logic ,而不是任何其他类型。

但是 std_logic_vector 不支持算术,那么我应该如何处理呢?

我的直觉告诉我,我应该简单地在顶层使用 std_logic_vector,然后在将其传递给其他实体时将其与整数数据类型相互转换。它是否正确?

应该在哪里使用什么整数数据类型(整数、无符号、有符号)?我了解有符号和无符号之间的区别,但我应该什么时候使用整数?

最佳答案

使用最适合您的建模目的的数据类型,包括端口。综合要求您只应将 std_logic 或 std_logic_vector 用于端口,这根本不正确。不要相信那些告诉你的人。

如果您需要具有算术支持的位向量,请考虑来自 ieee.numeric_std 的有符号/无符号。 (在 VHDL 2008 中,有一个标准包为 std_logic_vector 添加了算术支持,但我认为这是邪恶的。)

当您想要模拟合成的网表时,可能只有在合成后的最顶层存在问题。该网表的端口类型可能与您的顶级 RTL 接口(interface)不匹配。但是,在实例化门级时,您可以通过在那个时候进行适当的转换来轻松解决这个问题。这是处理此类低级问题的适当时机——它们不应影响您的 RTL 建模风格。

关于integer - 什么时候应该使用 std_logic_vector,什么时候应该使用其他数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6155675/

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