Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Генератор клока на самой ПЛИС
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
maharaj
Можно ли сделать (делал ли кто-то) генератор клока на самой ПЛИС?

Примерно так, как на приложенной схеме - типовая схема на двух инверторах. X, Y, Z входы/выходы ПЛИС и на них R и C, задающие частоту.

S - внутренний сигнал. Первый элемент сделан AND, чтобы компилятор не мог просто соединить X и Z; кроме того, в моей задаче нужно, чтобы клок можно было отключать. Частота клока требуется очень небольшая (единицы КГц), и не хочется городить внешний генератор.

Тип ПЛИС - один из младших MAX7000S (питание 5 В).
SM
Цитата(maharaj @ May 15 2009, 13:42) *
Можно ли сделать (делал ли кто-то) генератор клока на самой ПЛИС?

По такой схеме нельзя (схема работает за счет того, что лог. элемент является, в общем, аналоговым усилителем, а пути внутри ПЛИС намного сложнее). А вот добавив снаружи одногейтовый триггер шмитта, или используя ПЛИС, у которой есть входы с ТШ - другое дело. И еще вариант - реализация ТШ на ПЛИС при помощи двух резисторов, сопротивлением значительно выше зарядно-разрядного резистора. Тоже работает.
vv_gulyaev
Если не требуется высокая точность и стабильность по частоте, то в altera генератор можно сделать на основе LCELL

Код
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_signed.all;
LIBRARY altera_mf;
USE altera_mf.altera_mf_components.all;

entity clk_gen is
    port(
        ena            : in STD_LOGIC;
        clk            : out STD_LOGIC
        );
end clk_gen;

architecture a of clk_gen is
    COMPONENT LCELL
        PORT (a_in : IN STD_LOGIC;
            a_out : OUT STD_LOGIC);
    END COMPONENT;

    signal out_reg : STD_LOGIC_VECTOR(3 downto 0) := (others => '0');

begin

    out_reg(0) <= ena and out_reg(3);

    LCELL1 : LCELL
        PORT MAP(
            a_in => out_reg(0),
            a_out=> out_reg(1)
            );
    
    LCELL2 : LCELL
        PORT MAP(
            a_in => out_reg(1),
            a_out=> out_reg(2)
            );
    
    out_reg(3) <= not(out_reg(2));

    clk <= out_reg(2);
end a;
maharaj
Спасибо всем, кто отликнулся. Вопрос прояснился. ОК.


Цитата(vv_gulyaev)
Если не требуется высокая точность и стабильность по частоте, то в altera генератор можно сделать на основе LCELL

Тут две LCELL используются просто как линия задержки, так что генерить будет на частоте, соответствующей быстродействию ячеек, верно? Получится сколько-то МГц, мне же надо КГц-ы, придется делить - если останутся триггеры на это дело, то можно, иначе все равно придется делать на RC. Пока проект не сделан, непонятно, влезем ли в минимальную (7032), потому не знаю, есть ли запас по триггерам. В любом случае спасибо за код - может, пригодится.smile.gif
vv_gulyaev
Цитата(maharaj @ May 15 2009, 16:30) *
Тут две LCELL используются просто как линия задержки, так что генерить будет на частоте, соответствующей быстродействию ячеек, верно? Получится сколько-то МГц

Да, частота будет сколько-то МГц.
tvcam
Микросхемы EPM7032 и EPM7032S снимаются с производства
http://www.altera.ru/#19022009_2
des00
Цитата(maharaj @ May 15 2009, 04:42) *
Можно ли сделать (делал ли кто-то) генератор клока на самой ПЛИС?


дешевле и спокойнее поставить внешний генератор
maugli
А вот решение от XILINX для Virtex-5 с применением примитива IODELAY - Creating a Controllable Oscillator Using the Virtex-5 FPGA IODELAY Primitive XAPP872
moonrock
можно
http://electronix.ru/forum/index.php?showt...24324&st=15
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.