Перейти к содержанию
    

Мультиплексирование сигналов в generate

Имеется конструкция с generate

    gen_korrsign8 : 
    for i in 0 to 14 generate
    ukorrsign8 : korrsign8 
    port map (
        clk => clk, 
        clr => s_intr_rst,
        clr_cnt => s_clr_cnt,
        ctr_data => s_canceler,
        korr_in => s_korr_in_mt(i),
        divdat_wr_korr => s_divdat_wr_korr,
        divdat_rd_korr => s_divdat_rd_korr,
        divdat_wr_korr64 => s_divdat_wr_korr64,
        divdat_rd_korr64 => s_divdat_rd_korr64,
        moddata => s_moddata,
        cnl_korr    => s_cnl_korr,
        wr_korr => s_wr_korr,     
        rd_korr => s_rd_korr,     
        sin_mod => s_sin_mod,
        cos_mod => s_cos_mod,
        div_sum_out => s_accum(i),    
        korr_out    => s_sdata(i)
        );
    end generate gen_korrsign8;

 

Необходимо при i = 0 подать на cnl_korr не s_cnl_korr, а not s_cnl_korr

Скажите пожалуйста можно-ли это сделать в самой конструкции generate или придется ее разделить на две, где в первой не будет generate и будет cnl_korr => not s_cnl_korr, а вторая будет иметь generate и начинаться с 1 ( i in 1 to 14 generate)?

Изменено пользователем Acvarif

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

    gen_korrsign8 : 
           for i in 0 to 14 generate
           signal  cnl_korr : std_logic;
           begin
     
           k0: if i = 0 generate
                   cnl_korr <= not s_cnl_korr;
           end generate;
     
           k1: if i /= 0 generate
                   cnl_korr <= s_cnl_korr;
           end generate;
     
         ukorrsign8 : korrsign8 
           port map (
       
             cnl_korr    => cnl_korr,
       
             );
           end generate gen_korrsign8;

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 
     
           k0: if i = 0 generate
                   cnl_korr <= not s_cnl_korr;
           end generate;
     
           k1: if i /= 0 generate
                   cnl_korr <= s_cnl_korr;
           end generate;

А по-моему здесь можно проще:

 chl_korr <= s_chl_korr when i /= 0 else not s_chl_korr;

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...