我有一个实体,它有一个fs_in_khz
可以是 5、10 或 2 的通用整数参数:
entity test_control_source is
generic(
-- This should only be 5, 10 or 20
fs_in_khz : integer := 20
);
如果我可以利用 VHDL 的特性并简单地将类型限制为这些值,那就太好了,也许使用类似的东西:
type control_source_freq is (F5_KHZ, F10_KHZ, F20_KHZ);
...
entity test_control_source is
generic(
-- This should only be 5, 10 or 20
fs_in_khz : control_source_freq := F20_KHZ
);
然而,后来在这个实体的架构中,我有
architecture source_behaviour of test_control_source is
constant cs_period : integer := 5000 * clock_rate / fs_in_khz;
begin
...
我更喜欢在使用它的进程之外计算这个参数,而不是在需要的地方重复计算。我可以限制我的fs_in_khz
通用参数的允许值并将我的常量cs_period
排除在使用它的过程之外吗?