Перейти к содержанию
    

кольцевой генератор

Здравствуйте. Я хотел повторить ШИМ, который представлен на рисунке, но столкнулся с проблемой. При попытке моделирования кольцевого генератора (выполненного на 4-х триггерах) Quartus 9.1  выдает ошибку "нельзя выход крайнего триггера объединять с тактовым сигналом" т.е. не разрешает замкнуть кольцо генератора. Скажите в каком направлении мне искать выход из данной ситуации? Частота импульсов System clock = 8MHz.

1.png2.png

Проект Quartus 9.1 DPWM.rar

Изменено пользователем AndreiF

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

17 минут назад, AndreiF сказал:

Частота импульсов System clock = 8MHz

Опечатались? Должно быть 8 ГГц.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ошибки нет. Выдержка из статьи "DPWM работает на частоте переключения fs = 1 MHz.  Кольцо колеблется при  8 MHz. Этот сигнал 8 МГц используется в качестве тактового импульса для всего чипа-прототипа. "3.thumb.png.646b0d9fae011bc58a5082a194eb933f.png

 

Полный текст статьи: 

01_Impact of Digital Control in Power Electronics.pdf

Изменено пользователем AndreiF

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

59 minutes ago, AndreiF said:

Quartus 9.1  выдает ошибку "нельзя выход крайнего триггера объединять с тактовым сигналом" т.е. не разрешает замкнуть кольцо генератора. Скажите в каком направлении мне искать выход из данной ситуации?

 

Первое, что приходит в голову: выход последнего флопа вывести наружу на внешний пин, а потом завести на дедикетед клоковый вход плис, и с него тактировать схему.

 

p.s.

Частота здесь будет зависеть от задержки петли, котрая складывается из задержки переключения каждого из 4х флопов, задержки интерконнекта между ними, и - если сделаете по моему совету - задержки выходного и входного пинов. Если между пинами подпаяете емкость и переменный резистор - сможете регулировать частоту.

p.p.s.

Но лучше не связываться с асинхронщиной, и переделать генератор на 4х флопах:  я советую все их подключить к одному генератору, и через пины D и Q замкнуть в кольцо. По сбросу грузить в них код 1000. Тогда во время работы на выходах будет бежать единица: 1000-0100-0010-0001- и т.д, - как раз то, что вам нужно.

Изменено пользователем Aleх

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 минуты назад, Aleх сказал:

Первое, что приходит в голову: выход последнего флопа вывести наружу на внешний пин, а потом завести на дедикетед клоковый вход плис, и с него тактировать схему.

Спасибо, Aleх, за идею. Стоит попробовать. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Распределителем тактов является сдвигающий регистр, выход последнего разряда которого подсоединен к входу первого разряда. В данном регистре все триггеры, кроме первого, устанавливаются в нулевое состояние, а в первый записывается логическая единица.  По каждому такту логическая единица, переписывается в следующий регистр, а из последнего регистра в первый.

image.png.316afade231ea28b25c66abc4c28e22f.png

ниже приведено описание на vhdl

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity Generator is
port ( 
clk, rst : std_logic;
Dout : out std_logic_vector(7 downto 0) );
end Generator; 

architecture behav of Generator is 

signal S: std_logic_vector(7 downto 0); 

begin 

Process (clk,rst)
begin
if rst = '0' then
	S<="00000001";  
elsif clk='1' and clk'event then 
	for i in 0 to 6 loop
		S(i)<=S(i+1);
		S(7)<=S(0);
	end loop; 
end if; 
end process;

Dout<=S; 

End behav;

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

16 минут назад, AndreiF сказал:

Ошибки нет. Выдержка из статьи

Там ни слова про ПЛИС, в которых асинхронные задержки на цепочках ЛЭ — да, делают, но генераторы, т.е замыкая их,— нет. И для т.н. "цифровых БП" не требуется запредельная разрядность ШИМ.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приветствую!

1 minute ago, Plain said:

Ошибки нет. Выдержка из статьи

Любую статью надо проверять  - по проведений схеме генератор не будет работать так как триггера переключаются по положительному фронту, а начальное состояние у всех == 0.  и ресеты для всех в 0. Так с какого перепугу им возбуждаться и что то генерировать? :unknw:  

Удачи! Rob.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Конечно будет писать ошибку. Вы соединили 2 входа в одной точке. В лучшем случае у Вас выгорят только присоединённые порты. В худшем... В общем плохо будет.

2.png.26f98de6bf9ac4e33c177f10bdc8c8b8.thumb.png.804c794e0873bc15c73039813b09d972.png

Да и нельзя в новых ПЛИС делать такие мутки. Если очень хочется, соедините 2 входа через логический элемент (например через ИЛИ). Ну либо извращаться  как-то по-другому.

з.ы. И да, как сказали чуть выше - установка всех триггеров в 1 не даст никакого толка. Сделайте хотя-бы один в ресете и остальные в установке.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

26 минут назад, Nick_K сказал:

соединили 2 входа в одной точке

У автора асинхронный кольцевой генератор и sys_clk является выходом схемы, т.е. автор спрашивает, как ему эту мысль втолковать компилятору.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

30 minutes ago, Nick_K said:

2 входа в одной точке

входа выхода

а в нескольких точках можно? :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 minute ago, Plain said:

У автора асинхронный кольцевой генератор и sys_clk является выходом схемы, т.е. автор спрашивает, как ему эту мысль втолковать компилятору.

Как выше заметил Nick_K, автор system_clock сделал как INPUT, а должен бал сделать его как OUTPUT.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопрос наверное в том, разрешает ли САПР ПЛИС создать и использовать внутренний тактовый генератор.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...