作者:mobiledu2502874643 | 来源:互联网 | 2023-05-27 13:30
如果我声明一个整数范围为0到6的信号整数,那么对于声明std_logic_vector(2 downto 0)执行完全相同的工作,它会更好还是更坏.我指的是设计成本,以便我可以决定是否使用整数具有小范围或具有向量的单热表示.
明确地说,为0到n的整数范围保留多少空间?
1> Morten Zilme..:
如果综合工具使用最小资源实现范围为0到N的整数,则其大小为:
integer range 0 to N : std_logic_vector(ceil(log2(N + 1)) - 1 downto 0)
所以你的integer range 0 to 6
意志将是一个std_logic_vector(2 downto 0)
.
但VHDL语言本身对于不同的数据结构没有成本函数,因为成本取决于实现.仿真工具以一种方式实现数据结构,而综合工具以不同方式实现.
例如,FPGA中的大小取决于综合工具的工作效果.综合工具必须实现一个实现,其中结果设计的操作等同于VHDL规范,但综合工具可以自由地进行大于所需的实现,例如通过实现所有整数32位std_logic_vector.
找出实际大小的最佳方法是使用综合工具进行小型实验,您还将学习很多有关综合工具和VHDL实现的知识.