我有了一個通用的整型參數fs_in_khz
,可以是一個實體5,10或2:VHDL中可以有條件常量嗎?
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
從使用它的過程中分解出來?
創建一個帶有'enum'和函數的小包,完美工作,併爲分解其他硬件設置進行測試打下基礎。 – detly