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

Эквивалентны ли два модуля?

В 31.01.2020 в 18:34, MaratZuev сказал:

"Причесал" исходный код насколько возможно согласно воззрениям большинства:


    always_ff @(posedge clk_cmp or posedge RST_cmp)
        if (RST_cmp) 
            count_echo_cmp <= 2'h0;
        else if (end_frame_cmp)
                if (TSR_cmp) 
                    count_echo_cmp <= 2'h0;
                else if (count_echo_cmp <= 2'd2) 
                         count_echo_cmp <= count_echo_cmp + 2'd1;
             else count_echo_cmp <= count_echo_cmp;

И RTL-Viewer показал то, что требовалось:

Clipboard02.thumb.png.9170b9d60979b578f4aefb68c872c6a2.png

Но вот вопрос: если у меня не код, а два чёрных ящика: как мне понять, эквивалентны ли они или нет?

Я бы написал так

wire ce = end_frame_cmp & (TSR_cmp | count_echo_cmp < 3'd2);
always_ff @(posedge clk_cmp or posedge RST_cmp)
        if (RST_cmp) 
            count_echo_cmp <= 2'h0;
        else if (ce)
                if (TSR_cmp) count_echo_cmp <= 2'h0;
                else         count_echo_cmp <= count_echo_cmp + 2'd1;

 

 

 

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


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

1 hour ago, vt313 said:

Я бы написал так wire ce = end_frame_cmp & (TSR_cmp | count_echo_cmp < 3'd2); always_ff @(posedge clk_cmp or posedge RST_cmp) if (RST_cmp) count_echo_cmp <= 2'h0; else if (ce) if (TSR_cmp) count_echo_cmp <= 2'h0; else count_echo_cmp <= count_echo_cmp + 2'd1;

1 Используйте блоки кода - как видите, цитирование плывёт

2 count_echo_cmp < 3'd2 - здесь, наверное, не 3 как размерность, а 2?

3 Где закрывающий else для if (ce)?

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


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

10 минут назад, MaratZuev сказал:

1 Используйте блоки кода - как видите, цитирование плывёт

2 count_echo_cmp < 3'd2 - здесь, наверное, не 3 как размерность, а 2?

3 Где закрывающий else для if (ce)?

Да, конечно count_echo_cmp < 3, не убрал.

Так не нужен else. Это разрешение записи. Нужно описать как разрешение записи. Не стоит полагаться на синтезатор. 

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


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

3 hours ago, vt313 said:

Нужно описать как разрешение записи.

Последние четыре предложения звучат непоследовательно:

"Не нужен. Является. Нужно. Не стоит."

Как, всё-таки, правильно?

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


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

12 часов назад, MaratZuev сказал:

Последние четыре предложения звучат непоследовательно:

"Не нужен. Является. Нужно. Не стоит."

Как, всё-таки, правильно?

Да по всякому правильно. Я написал свой вариант. 

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


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

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

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

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

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

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

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

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

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

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