Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Hello world и Vivado Clocking Wizard
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Языки проектирования на ПЛИС (FPGA)
cheebeez
Доброго времени суток.
Решил усложнить "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;


andrew_b
Цитата(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;


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



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

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

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

Или используйте стандарт VHDL2008 wink.gif
P.S. Правда поддержка этого какая-то кривая.
То САПР ругается, то нет....
cheebeez
Цитата(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.
cheebeez
Цитата(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;


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

Самое главное - это сделать вывод о том, что проектирование на FPGA начинается не с написания HDL - а с карандаша и бумаги, где все блок схемы, структура устройства описываются и продумываются заранее.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.