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

 
 
 
Reply to this topicStart new topic
> Hello world и Vivado Clocking Wizard
cheebeez
сообщение May 20 2018, 07:14
Сообщение #1





Группа: Новичок
Сообщений: 4
Регистрация: 20-05-18
Пользователь №: 104 459



Доброго времени суток.
Решил усложнить "hello world" и умножить входящую частоту 12МГц с отладочной платы до 24МГц с помощью mmcm.
Вопрос: какие нужно сделать манипуляции, что бы использовать эту частоту c clk_out1_0 в конструкции rising_edge.

Сейчас это выглядит так:
Код
    process(CLK12MHZ)
    begin
        if rising_edge(CLK12MHZ) then
            count <= count + 1;
        end if;
    end process;


Цель:
Код
    process(CLK24MHZ)
    begin
        if rising_edge(CLK24MHZ) then
            count <= count + 1;
        end if;
    end process;




Сообщение отредактировал cheebeez - May 20 2018, 07:17
Go to the top of the page
 
+Quote Post
andrew_b
сообщение May 20 2018, 09:41
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 959
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(cheebeez @ May 20 2018, 10:14) *
Доброго времени суток.
Интересно, когда народ перестанет использовать эту несуразную фразу? Простое "Здравствуйте" содержит меньше букв.

Цитата
Решил усложнить "hello world" и умножить входящую частоту 12МГц с отладочной платы до 24МГц с помощью mmcm.
Вопрос: какие нужно сделать манипуляции, что бы использовать эту частоту c clk_out1_0 в конструкции rising_edge.

Сейчас это выглядит так:
Код
    process(CLK12MHZ)
     begin
         if rising_edge(CLK12MHZ) then
             count <= count + 1;
         end if;
     end process;


Цель:
Код
    process(CLK24MHZ)
     begin
         if rising_edge(CLK24MHZ) then
             count <= count + 1;
         end if;
     end process;


И в чём у вас проблемы?
Go to the top of the page
 
+Quote Post
cheebeez
сообщение May 20 2018, 13:59
Сообщение #3





Группа: Новичок
Сообщений: 4
Регистрация: 20-05-18
Пользователь №: 104 459



Цитата(andrew_b @ May 20 2018, 10:41) *
Интересно, когда народ перестанет использовать эту несуразную фразу? Простое "Здравствуйте" содержит меньше букв.



И в чём у вас проблемы?

Хай! VHDL не дает читать из out.
Это с одной стороны логично, с другой стороны я пока не понимаю как "взять" эту частоту для использования в process/rising_edge.
Спс.
Go to the top of the page
 
+Quote Post
Amurak
сообщение May 20 2018, 14:07
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 211
Регистрация: 18-11-12
Пользователь №: 74 459



Цитата(cheebeez @ May 20 2018, 16:59) *
Хай! VHDL не дает читать из out.
Это с одной стороны логично, с другой стороны я пока не понимаю как "взять" эту частоту для использования в process/rising_edge.
Спс.

Чтобы "читать из out", объявляете еще один сигнал. Выдаете его на out и его же можно спокойно использовать внутри entity.
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение May 20 2018, 15:40
Сообщение #5


В поисках себя...
****

Группа: Свой
Сообщений: 698
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140



Цитата(Amurak @ May 20 2018, 17:07) *
Чтобы "читать из out", объявляете еще один сигнал. Выдаете его на out и его же можно спокойно использовать внутри entity.

Или используйте стандарт VHDL2008 wink.gif
P.S. Правда поддержка этого какая-то кривая.
То САПР ругается, то нет....
Go to the top of the page
 
+Quote Post
cheebeez
сообщение May 20 2018, 16:06
Сообщение #6





Группа: Новичок
Сообщений: 4
Регистрация: 20-05-18
Пользователь №: 104 459



Цитата(Amurak @ May 20 2018, 15:07) *
Чтобы "читать из out", объявляете еще один сигнал. Выдаете его на out и его же можно спокойно использовать внутри entity.

Спасибо. Не подскажете как это будет выглядеть в контексте этого кода:

Код
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;

entity blinky is
    port(
        CLK12MHZ : in std_logic;
        CLK24MHZ : buffer std_logic;
        led      : out std_logic_vector(3 downto 0)
    );
end entity blinky;

architecture behavioral of blinky is
    signal count : std_logic_vector(27 downto 0);

    component design_1_wrapper is
        port (
            sys_clock : in STD_LOGIC;
            clk_out1_0 : out STD_LOGIC
        );
    end component design_1_wrapper;

begin

    newfreq: design_1_wrapper
        port map (
            clk_out1_0 => CLK24MHZ,
            sys_clock => CLK12MHZ
        );

    process(CLK24MHZ)
    begin
        if rising_edge(CLK24MHZ) then
            count <= count + 1;
        end if;
    end process;

    led(0) <= count(24);
    led(1) <= count(25);
    led(2) <= count(26);
    led(3) <= count(27);

end architecture behavioral;

В данном случае Vivado ругается, что CLK24MHZ не назначен пин в constraints.

Цитата(Flip-fl0p @ May 20 2018, 16:40) *
Или используйте стандарт VHDL2008 wink.gif
P.S. Правда поддержка этого какая-то кривая.
То САПР ругается, то нет....

Угу, код во врапере начинает подсвечивается красным в рандомных местах, пока решил не связываться с VHDL2008.
Go to the top of the page
 
+Quote Post
cheebeez
сообщение May 20 2018, 17:48
Сообщение #7





Группа: Новичок
Сообщений: 4
Регистрация: 20-05-18
Пользователь №: 104 459



Цитата(cheebeez @ May 20 2018, 17:06) *
Спасибо. Не подскажете как это будет выглядеть в контексте этого кода:

Разобрался. На 2 уровня ниже, в файле design_1.vhd есть нужный сигнал:

Код
signal clk_wiz_0_clk_out1 : STD_LOGIC;
clk_out1_0 <= clk_wiz_0_clk_out1;


Всем спасибо. Надеюсь эта тема пригодится слоупокам типо меня.
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение May 21 2018, 04:16
Сообщение #8


В поисках себя...
****

Группа: Свой
Сообщений: 698
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140



Цитата
Всем спасибо. Надеюсь эта тема пригодится слоупокам типо меня.

Самое главное - это сделать вывод о том, что проектирование на FPGA начинается не с написания HDL - а с карандаша и бумаги, где все блок схемы, структура устройства описываются и продумываются заранее.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 20th August 2018 - 12:17
Рейтинг@Mail.ru


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