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

 
 
 
Reply to this topicStart new topic
> Генератор на ПЛИС, забавный, без кварца и обвязки
admin
сообщение Jan 31 2005, 08:29
Сообщение #1


Администратор форума
******

Группа: Администраторы
Сообщений: 3 118
Регистрация: 11-05-04
Пользователь №: 2



Оказывается генератор на ПЛИС (делали на Altera APEX)
делается довольно просто:

Код
a : node;
b : node;
c : node;

a = LCELL( not b);
b = LCELL( not c);
c = LCELL( not a);


частота - с любого nod'а - a, b, или c.

LCELL-ами можно подбирать частоту, т.е. добавляем LCELLов - понижаем.
smile.gif)
Работает smile.gif) Генерит частоту где-то в районе 10ов мегагерц.
Go to the top of the page
 
+Quote Post
makc
сообщение Jan 31 2005, 08:37
Сообщение #2


Гуру
******

Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904



Так подобные фокусы делали еще на микросхемах 155 серии. smile.gif

Только вот есть одна проблема у этого генератора - стабильность частоты. И из-за нестабильности этой частоты область применения подобного решения очень ограничена.

PS: На подобном принципе основана и схема удвоения частоты входного сигнала без использования PLL и DLL.

PPS: А некоторые ПЛИС (Spartan XL) имеют встроенный генератор на борту. Только его стабильность тоже оставляет желать лучшего.


--------------------
BR, Makc
В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
Go to the top of the page
 
+Quote Post
pergunt
сообщение Jan 31 2005, 09:22
Сообщение #3


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

Группа: Свой
Сообщений: 165
Регистрация: 21-10-04
Пользователь №: 936



А что за элемент в SPARTAN XL - является генератором и какая частота?
(Что-то в библиотеке и даташите не увидел)?
Go to the top of the page
 
+Quote Post
Uuftc
сообщение Jan 31 2005, 09:31
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 234
Регистрация: 3-10-04
Из: Кукуево-Дальнее
Пользователь №: 767



Цитата(makc @ Jan 31 2005, 11:37)
PPS: А некоторые ПЛИС (Spartan XL) имеют встроенный генератор на борту. Только его стабильность тоже оставляет желать лучшего.
*


О как ...
а в spartan3 нет?
а то я уже стал задумываться, как done не отпускать и пользоваться TCK
или BSCAN_SPARTAN3 ...
Go to the top of the page
 
+Quote Post
makc
сообщение Jan 31 2005, 10:03
Сообщение #5


Гуру
******

Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904



Цитата(pergunt @ Jan 31 2005, 12:22)
А что за элемент в SPARTAN XL  - является генератором и какая частота?
(Что-то в библиотеке и даташите не увидел)?
*


Есть он в даташите, и в библиотеке он тоже есть, только пользоваться им я не рекомендую. А называется он в библиотеке OSC4. По поводу частоты в даташите написано следующее:
Цитата
On-Chip Oscillator
Spartan Series devices include an internal oscillator. This
oscillator is used to clock the power-on time-out, for configuration
memory clearing, and as the source of CCLK in
Master configuration mode. The oscillator runs at a nominal
8 MHz frequency that varies with process, Vcc, and temperature.
The output frequency falls between 4 MHz and
10 MHz.


Т.е. качество этого генератора оставляет желать лучшего. sad.gif

Цитата(Uuftc @ Jan 31 2005, 12:31)
Цитата(makc @ Jan 31 2005, 11:37)

PPS: А некоторые ПЛИС (Spartan XL) имеют встроенный генератор на борту. Только его стабильность тоже оставляет желать лучшего.
*


О как ...
а в spartan3 нет?
*



В Spartan3, если я правильно понимаю, ничего такого нет. В нем есть встроенный генератор для загрузки прошивки в Master-режиме, но воспользоваться им, как я понимаю, в обычной работе не удастся. Да и не понятно, зачем это может понадобиться...

Цитата
а то я уже стал задумываться, как done не отпускать и пользоваться TCK
или BSCAN_SPARTAN3 ...


Не пойму зачем нужны такие сложности? Неужели нельзя поставить обыкновенный генератор?


--------------------
BR, Makc
В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
Go to the top of the page
 
+Quote Post
Uuftc
сообщение Jan 31 2005, 10:10
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 234
Регистрация: 3-10-04
Из: Кукуево-Дальнее
Пользователь №: 767



Цитата(makc @ Jan 31 2005, 13:05)
Не пойму зачем нужны такие сложности? Неужели нельзя поставить обыкновенный генератор?
*


В моей схеме Spartan3 питается clk от DDS. посторонний клок нужен лиш для того, чтоб запустить DDS - у нее видете-ли после ресета - 0 Hz частота blush.gif
Go to the top of the page
 
+Quote Post
Andy-P
сообщение Jan 31 2005, 10:55
Сообщение #7


Участник
*

Группа: Свой
Сообщений: 56
Регистрация: 21-10-04
Пользователь №: 943



На сайте Xilinx есть статья: Six Easy Pieces (Non-Synchronous Circuit Tricks) 04/02/2003 By Peter Alfke Director, Applications Engineering,
где описана реализация Stable RC Oscillator w00t.gif
Go to the top of the page
 
+Quote Post
makc
сообщение Jan 31 2005, 11:59
Сообщение #8


Гуру
******

Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904



А еще можно сделать нечто подобное. На Spartan-2 со Speedgrade 5 должно давать период около 15 нс:

Код
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity clk_gen is    
   Port (  en    : in std_logic;
     clk : out std_logic
    );
end clk_gen;

architecture RTL of clk_gen is
signal a: std_logic_vector( 2 downto 0 ) := (others => '0');
attribute keep : string;
attribute keep of a: signal is "true";
signal c: std_logic := '0';
begin

clk <= c;

OSCLoopback:      
    a(2) <= not a(1);
    a(1) <= not a(0);
    a(0) <= not a(2) and en;

Synchroniser:
    process( a(0) )
    begin
 if rising_edge(a(0)) then
     c <= not c;
 end if;
    end process;
end RTL;


Цитата(Andy-P @ Jan 31 2005, 13:55)
На сайте Xilinx есть статья: Six Easy Pieces (Non-Synchronous Circuit Tricks) 04/02/2003 By Peter Alfke Director, Applications Engineering,
где описана реализация Stable RC Oscillator w00t.gif
*


Я так понял, что человеку нужен встроенный в кристалл генератор. smile.gif


--------------------
BR, Makc
В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
Go to the top of the page
 
+Quote Post
Andy-P
сообщение Jan 31 2005, 12:18
Сообщение #9


Участник
*

Группа: Свой
Сообщений: 56
Регистрация: 21-10-04
Пользователь №: 943



Цитата(makc @ Jan 31 2005, 15:00)
Цитата(Andy-P @ Jan 31 2005, 13:55)
На сайте Xilinx есть статья: Six Easy Pieces (Non-Synchronous Circuit Tricks) 04/02/2003 By Peter Alfke Director, Applications Engineering,
где описана реализация Stable RC Oscillator w00t.gif
*


Я так понял, что человеку нужен встроенный в кристалл генератор. smile.gif
*



Генератор, описанный в статье, использует в качестве активных усилительных элементов внутренние ячейки FPGA, а времязадающие элементы – два резистора и конденсатор.

"This RC oscillator is, to a first-order, insensitive to variations in Vcc, input threshold, and thus temperature. The oscillator starts and runs under any combination of external conditions -- it cannot stop. The internal latch prevents fast double-pulses while the input slowly passes through the input threshold. The only drawback is the need for three dedicated device pins.
This circuit was tested with R = 470 kilohm and C = 0.01 microfarad (10,000 pF). Over a wide temperature range of -40 to +100 degrees C, the frequency varied between 93.9 and 108.1 Hz, with a duty cycle between 48.1 % and 48.7 % (!). Some of the frequency variation may be due to the temperature coefficient of the external components.
These experimental results suggest that f = 0.47 / RC "
Go to the top of the page
 
+Quote Post
makc
сообщение Jan 31 2005, 12:44
Сообщение #10


Гуру
******

Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904



Цитата(Andy-P @ Jan 31 2005, 15:18)
Генератор, описанный в статье, использует в качестве активных усилительных элементов внутренние ячейки FPGA, а времязадающие элементы – два резистора и конденсатор.
*


Вот именно. Т.е. он требует внешних элементов, а значит не может считаться в полной мере внутренним. Скорее, комплексным. smile.gif


--------------------
BR, Makc
В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
Go to the top of the page
 
+Quote Post
sK0T
сообщение Feb 1 2005, 15:51
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 241
Регистрация: 22-12-04
Пользователь №: 1 610



Цитата(udofun @ Jan 31 2005, 12:29)
Код
a : node;
b : node;
c : node;

a = LCELL( not b);
b = LCELL( not c);
c = LCELL( not a);

Работает smile.gif) Генерит частоту где-то в районе 10ов мегагерц.


Небольшое уточнение: если не сделать a = LCELL(LCELL(!b)); то частота будет постоянно срываться.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 14:19
Рейтинг@Mail.ru


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