Я пытаюсь правильно сгенерировать цикл для 32 различных возможностей.Это структурный код VHDL, поэтому я использую операторы generate для создания сущностей.Из 32 возможностей я буду использовать только 16 из этих 32 возможностей в коде, и из этих 16 возможностей каждый набор из 4 будет представлять собой одну и ту же конструкцию объекта.
Другими словами, я хочу построить сущность для возможностей от 0 до 3, от 8 до 11, от 16 до 19 и от 24 до 27 из всего 32 цикла.
В настоящее время я пытался использовать операторы generate, которые просто работают в установленном диапазоне.
g1: for i in 0 to 3 generate
a1 : entity work.single_dft(structural)
....
end generate g1;
g2: for i in 8 to 11 generate
....
end generate g2;
g3: for i in 16 to 19 generate
....
end generate g3;
g4: for i in 24 to 27 generate
....
end generate g4;
Я ожидаю, что смогу обозначить «i» как цифру от 0 до 3 от g1, «i» как цифру от 8 до 11 от g2, «i» как цифру между16-19 из g3, и "i" как цифра между 24 и 27 из g4.
РЕДАКТИРОВАТЬ: немного предыстория, это подход, который я использую в моей цели, чтобы построить свой собственный32-битное БПФ с использованием алгоритма Radix 2 DIF.По сути, сущность, которую я вызываю с каждым циклом генерации, является сущностью, которая выполняет кросс (сложение, суб, умножение) при условии правильных входных данных.