В старой конструкции VHDL, компонент имеет общий порт:Как вывести имя переменной в блок для создания?
component adc_model is
generic( RADC_TYPE : adc_type);
port(clk : std_logic;
....
и парень ранее сделал он назвал несколько десятков постоянная:
constant CH0_RADC_TYPE : adc_type := I2C_ADC;
constant CH1_RADC_TYPE : adc_type := deltasigma_ADC;
constant CH2_RADC_TYPE : adc_type := SPI_ADC;
......
так, что он может экземпляр множественного единица компонент.
Но теперь я хочу сделать это с помощью для генерировать заявление:
for i in 0 to 7 generate
begin
i_adc_model: adc_model
generic map(
RADC_TYPE => CHX_RADC_TYPE(i),
....
теперь я должен делать:
CHX_RADC_TYPE(00) <= CH0_RADC_TYPE;
CHX_RADC_TYPE(01) <= CH1_RADC_TYPE;
CHX_RADC_TYPE(02) <= CH2_RADC_TYPE;
.............
Мой вопрос, есть ли разумный способ сделать это ?
Не переменная - константа , Обобщенное предложение объявляет константу интерфейса, тип интерфейса, объявление подпрограммы интерфейса или объявление пакета интерфейса (элементы общего списка интерфейсов). См. IEEE Std 1076-2008 6.5.2 Объявления объектов интерфейса para 1 «generics», 6.5.3. Объявление типа интерфейса, параграф 1, 6.5.4. Объявление подпрограмм интерфейса, параграф 1 и 6.5.5. Декларации пакета интерфейса, параграф 1. Они описывают семантические ограничения, а не найденных в BNF. Старые генераторы VHDL будут только интерфейсом (например, IEEE Std 1076-1993 4.3.2. Декларации интерфейса, параграф 1). – user1155120