Есть ли разница в этих кодах? - PullRequest
0 голосов
/ 26 апреля 2019

Я пытаюсь сделать новый дизайн.Я проектирую это с двумя процессами, которые являются синхронными и асинхронными.Я вообще даю перезагрузку в асинхронном процессе, который показан первым фрагментом кода.Однако кто-то только что сказал мне, что это ошибка.Насколько мне известно, я должен дать заявление об перезагрузке в синхронном процессе.Я также проверил схему для первой и увидел, что она правильно подключена к сбросам триггера.

sync_proc : process(clk_i)
    begin
        if(rising_edge(clk_i)) then
            do smt..      
        end if;
    end process sync_proc;
async_proc : process(some signals) 
    begin
       if(reset_i = '1') then
            reset smt..
        else
            do smt..
        end if;
    end process sync_proc;

Выше мой код, а ниже то, что она предложила.

sync_proc : process(clk_i)
    begin
        if(reset_i = '1') then
            reset smt..
        else(rising_edge(clk_i)) then
            do smt..      
        end if;
    end process sync_proc;

Мне интересно, есть ли различия между этими состояниями?Если да, то каковы они?

1 Ответ

0 голосов
/ 26 апреля 2019

Воспринимайте VHDL process как немного программного обеспечения, которое моделирует немного оборудования .При вашем подходе у вас есть два маленьких аппаратных элемента, которые передают один и тот же сигнал, то есть короткое замыкание.При ее (правильном) подходе у вас есть один аппаратный элемент (триггер), управляющий одним сигналом.

...