VHDL Не волнует нестандартный тип - PullRequest
1 голос
/ 12 марта 2019

Итак, я работал на простом компьютере в VHDL и создал свой ALU, используя нестандартный тип управляющего сигнала, чтобы дать синтезатору свободу выбора конкретной схемы кодирования, которая упрощает логику ALU. Отлично.

Затем я пошел писать блок управления, и для некоторых операций ALU не используется. В идеале для этих циклов я бы указывал условие «Не волнуйся» для управляющих сигналов АЛУ, чтобы избежать потенциальной необходимости дополнительной логики, чтобы перевести его в одно конкретное состояние, которое я мог бы выбрать плохо. Тем не менее, я не могу найти что-либо о том, как или если вообще возможно указать не волнующее условие для сигнала пользовательского типа. Замена сигнала alu_op на std_logic_vector устраняет проблему с блоком управления, но затем требует, чтобы я вручную указал кодировки в ALU. Можно ли как-нибудь получить лучшее из обоих миров (позволить синтезатору выбрать кодировку ALU, а также сгенерировать логику с Don't Care в блоке управления)?

Мой пользовательский тип определен в файле пакета как

type ALU_op is (PASS_A, PASS_B, ADD, SUB);

Тогда АЛУ выглядит так:

entity ALU is 
    GENERIC(N : integer := 8);
    PORT(
        A, B : IN unsigned(N-1 downto 0);
        OP : IN ALU_op;
        R : OUT unsigned(N-1 downto 0)
    );
end ALU;

architecture arch of ALU is
    signal result : unsigned(N-1 downto 0);
begin
    with OP select
    R <= 
        A when PASS_A,
        B when PASS_B,
        A+B when ADD,
        A-B when SUB;
end arch;

А потом в блоке управления (между прочим) я не хочу делать что-то вроде:

process(state)
begin
    case state is
        when S1 => alu_op <= PASS_A;
        when S2 => alu_op <= ADD;
        when S3 => alu_op <= ???; --Don't Care, currently have to pick an arbitrary value
        ... (etc)
    end case;
end process;

Я понимаю, что для этого небольшого примера это не будет иметь большого значения, но это казалось чем-то, что должно быть возможным и может быть очень полезным в более сложной системе. Спасибо!

...