реклама на сайте
подробности

 
 
> Как посмотреть диаграмму работы при больших задержках от начала работы?, Значение счетчика тактов больше тысячи
Гвоздик
сообщение May 23 2006, 13:19
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 153
Регистрация: 2-12-04
Из: Чебоксары
Пользователь №: 1 289



Хочу посмотреть на диаграмме работы значения сигналов, а значения счетчика тактов при этом довольно большие, отсчитывая от начального нуля (подачи питания) - на экране не помещаются такие значения. Что вы делаете в таком случае?
Привожу отрывок кода, чтобы было понятней:
Код
process(reset,clk_counter)
    begin
        if (reset = '0') then
            lcd_rs_sig <= '0';
            lcd_rw_sig <= '0';
            lcd_e_sig <= '0';
            lcd_data_sig <= X"00";
        else
            case clk_counter(31 downto 0) is
            -- clear screen command (3 times sequentially)
            -- 15 ms is gone after reset
                when X"000F1B30" =>
                    lcd_rs_sig <= '0';
                    lcd_rw_sig <= '0';
                    lcd_e_sig <= '0';
                    lcd_data_sig <= X"30";
            -- 1 us is gone after data setting                    
                when X"000F1B72" =>
                    lcd_rs_sig <= '0';
                    lcd_rw_sig <= '0';
                    lcd_e_sig <= '1';
                    lcd_data_sig <= X"30";
            -- 2 us for data latching
                when X"000F1BF6" =>
                    lcd_rs_sig <= '0';
                    lcd_rw_sig <= '0';
                    lcd_e_sig <= '0';
                    lcd_data_sig <= X"30";
            -- 5 ms delay after each clear screen command
                when X"00142506" =>
                    lcd_rs_sig <= '0';
                    lcd_rw_sig <= '0';
                    lcd_e_sig <= '1';
                    lcd_data_sig <= X"30";
            end case;    
        end if;
    end process;
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Гвоздик
сообщение May 25 2006, 17:24
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 153
Регистрация: 2-12-04
Из: Чебоксары
Пользователь №: 1 289



Спасибо, это я посмотрел, все в порядке. Однако, меня интересует другое: в первом (начиная сверху) процессе по фронту клока увеличивается счетчик, и во втором процессе мы тоже по фронту клока смотрим значение этого-же счетчика. Весь вопрос-то в том, что получается, что в один и тотже момент времени (фронт клока) мы приращаем и читаем счетчик. Не может ли так получиться, что мы будем читать его именно в момент его приращения (либо до или после)?

Код
architecture behavioural of lcd_controller is
signal lcd_rs_sig, lcd_rw_sig, lcd_e_sig : std_logic;
signal lcd_data_sig : std_logic_vector(7 downto 0);
signal clk_counter : std_logic_vector(31 downto 0) := X"00000000";
constant lcd_state_0 : std_logic_vector(31 downto 0) := X"00000000";
constant lcd_state_1 : std_logic_vector(31 downto 0) := X"0007A120";

begin
    process(reset, clk)
    begin
        if (reset = '0') then
            clk_counter <= X"00000000";
        else
            if (clk'event and clk = '1') then
                clk_counter <= clk_counter + X"00000001";
            end if;
        end if;
    end process;
    
    process(clk, clk_counter)
    begin
        if (clk'event and clk = '1') then
            case clk_counter(31 downto 0) is
                when lcd_state_0 =>                
                when lcd_state_1 =>                
                when others =>
            end case;
        end if;
    end process;
    
    lcd_rs <= lcd_rs_sig;
    lcd_rw <= lcd_rw_sig;
    lcd_e <= lcd_e_sig;
    lcd_data(7 downto 0) <= lcd_data_sig(7 downto 0);
end architecture behavioural;
Go to the top of the page
 
+Quote Post
ishergin
сообщение May 25 2006, 19:00
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 130
Регистрация: 16-06-05
Из: Оренбург
Пользователь №: 6 039



Цитата(Гвоздик @ May 25 2006, 23:24) *
Спасибо, это я посмотрел, все в порядке. Однако, меня интересует другое: в первом (начиная сверху) процессе по фронту клока увеличивается счетчик, и во втором процессе мы тоже по фронту клока смотрим значение этого-же счетчика. Весь вопрос-то в том, что получается, что в один и тотже момент времени (фронт клока) мы приращаем и читаем счетчик. Не может ли так получиться, что мы будем читать его именно в момент его приращения (либо до или после)?

Код
architecture behavioural of lcd_controller is
signal lcd_rs_sig, lcd_rw_sig, lcd_e_sig : std_logic;
signal lcd_data_sig : std_logic_vector(7 downto 0);
signal clk_counter : std_logic_vector(31 downto 0) := X"00000000";
constant lcd_state_0 : std_logic_vector(31 downto 0) := X"00000000";
constant lcd_state_1 : std_logic_vector(31 downto 0) := X"0007A120";

begin
    process(reset, clk)
    begin
        if (reset = '0') then
            clk_counter <= X"00000000";
        else
            if (clk'event and clk = '1') then
                clk_counter <= clk_counter + X"00000001";
            end if;
        end if;
    end process;
    
    process(clk, clk_counter)
    begin
        if (clk'event and clk = '1') then
            case clk_counter(31 downto 0) is
                when lcd_state_0 =>                
                when lcd_state_1 =>                
                when others =>
            end case;
        end if;
    end process;
    
    lcd_rs <= lcd_rs_sig;
    lcd_rw <= lcd_rw_sig;
    lcd_e <= lcd_e_sig;
    lcd_data(7 downto 0) <= lcd_data_sig(7 downto 0);
end architecture behavioural;


Насколько я понимаю такие действия должны конвейеризироваться (тьфу, выговорить не могу huh.gif ), тоесть для второго процесса значение счетчика будет запаздывать на один такт CLK

Сообщение отредактировал ishergin - May 25 2006, 19:01


--------------------
Программа выполнила невыполнимое и допустила недопустимое
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Гвоздик   Как посмотреть диаграмму работы при больших задержках от начала работы?   May 23 2006, 13:19
- - iosifk   Цитата(Гвоздик @ May 23 2006, 17:19) Хочу...   May 23 2006, 13:28
- - des00   Самопроверяющийся тест бенч, спасет отца руской де...   May 23 2006, 13:32
- - TailWind   ЦитатаХочу посмотреть на диаграмме работы значения...   May 23 2006, 13:35
- - Гвоздик   Возможно я ввел кого-то в заблуждение, никакой тес...   May 23 2006, 15:20
|- - ishergin   Цитата(Гвоздик @ May 23 2006, 21:20) Возм...   May 23 2006, 17:29
- - bsp   Тоже использую очень длинные последовательности пр...   May 23 2006, 18:38
|- - dxp   Цитата(bsp @ May 24 2006, 01:38) Тоже исп...   May 24 2006, 04:37
- - sazh   Все правильно. Только не надо обижать Квартус. Это...   May 24 2006, 06:24
- - Гвоздик   To bsp: Спасибо огромное, стало моделироваться, хо...   May 24 2006, 10:56
|- - Jools   Цитата(Гвоздик @ May 24 2006, 14:56) зака...   May 24 2006, 11:07
|- - ishergin   Цитата(Гвоздик @ May 24 2006, 16:56) To b...   May 24 2006, 15:24
- - Гвоздик   Тогда еще с компилятором-синтезатором непонятное д...   May 24 2006, 12:03
- - vetal   1. Ввести перед case(...) clk'event and clk =...   May 24 2006, 12:19
|- - Гвоздик   Ух-ты, действительно предупреждения исчезли! В...   May 25 2006, 08:01
- - vetal   ЦитатаА вдруг он еще не успеет измениться, а я уже...   May 25 2006, 08:16
- - vetal   ЦитатаНасколько я понимаю такие действия должны ко...   May 25 2006, 20:07
|- - ishergin   Цитата(vetal @ May 26 2006, 02:07) Цитата...   May 25 2006, 20:22
- - Гвоздик   Спасибо всем большое за науку, теперь все стало яс...   May 29 2006, 16:46


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 23:05
Рейтинг@Mail.ru


Страница сгенерированна за 0.02242 секунд с 7
ELECTRONIX ©2004-2016