gpt4 book ai didi

generics - 泛型中的 VHDL 常量

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

entity blabla is
generic(
register_width : integer := 32;
--Assuming register_width > 4
constant AVAILABLE_FOR_USER : integer := register_width - 4 --allowed in 2008
);
port (
clk : in std_logic;
rst : in std_logic;
reg : out std_logic_vector(AVAILABLE_FOR_USER-1 downto 0)
);
end blabla;

如果实例可以覆盖它,那么在通用 block 中使用常量的原因是什么?

有没有办法基于实例化期间无法覆盖的泛型创建常量?

或者我上面的例子,我可以在每次我想使用常量时替换计算,但这似乎并不优雅,如果我的条件发生变化,它可能会导致大量返工和可能的错误,代码会增长

最佳答案

我无法回答为什么会这样,但可能是语言演变的结果。

但处理这个问题的一种方法是将内部常量命名为 PRIVATE_... ,并告诉用户不要映射这些;如果用户真的想破坏功能,那么有很多选择,所以如果给出合理的指导,用户将正确地实例化它可能是一个合理的设计标准。

但是如果你想确定私有(private)常量没有被修改,那么断言是一种选择;即使它重复计算:

architecture syn of blabla is
begin
assert register_width - 4 = AVAILABLE_FOR_USER;
end architecture;

关于generics - 泛型中的 VHDL 常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36330302/

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