|
|
  |
Генератор на ПЛИС, забавный, без кварца и обвязки |
|
|
|
Jan 31 2005, 08:29
|

Администратор форума
     
Группа: Администраторы
Сообщений: 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ов - понижаем.  ) Работает  ) Генерит частоту где-то в районе 10ов мегагерц.
|
|
|
|
|
Jan 31 2005, 09:31
|
Местный
  
Группа: Свой
Сообщений: 234
Регистрация: 3-10-04
Из: Кукуево-Дальнее
Пользователь №: 767

|
Цитата(makc @ Jan 31 2005, 11:37) PPS: А некоторые ПЛИС (Spartan XL) имеют встроенный генератор на борту. Только его стабильность тоже оставляет желать лучшего. О как ... а в spartan3 нет? а то я уже стал задумываться, как done не отпускать и пользоваться TCK или BSCAN_SPARTAN3 ...
|
|
|
|
|
Jan 31 2005, 10:03
|

Гуру
     
Группа: Админы
Сообщений: 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. Т.е. качество этого генератора оставляет желать лучшего.  Цитата(Uuftc @ Jan 31 2005, 12:31) Цитата(makc @ Jan 31 2005, 11:37) PPS: А некоторые ПЛИС (Spartan XL) имеют встроенный генератор на борту. Только его стабильность тоже оставляет желать лучшего. О как ... а в spartan3 нет? В Spartan3, если я правильно понимаю, ничего такого нет. В нем есть встроенный генератор для загрузки прошивки в Master-режиме, но воспользоваться им, как я понимаю, в обычной работе не удастся. Да и не понятно, зачем это может понадобиться... Цитата а то я уже стал задумываться, как done не отпускать и пользоваться TCK или BSCAN_SPARTAN3 ... Не пойму зачем нужны такие сложности? Неужели нельзя поставить обыкновенный генератор?
--------------------
BR, Makc В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
|
|
|
|
|
Jan 31 2005, 10:10
|
Местный
  
Группа: Свой
Сообщений: 234
Регистрация: 3-10-04
Из: Кукуево-Дальнее
Пользователь №: 767

|
Цитата(makc @ Jan 31 2005, 13:05) Не пойму зачем нужны такие сложности? Неужели нельзя поставить обыкновенный генератор? В моей схеме Spartan3 питается clk от DDS. посторонний клок нужен лиш для того, чтоб запустить DDS - у нее видете-ли после ресета - 0 Hz частота
|
|
|
|
|
Jan 31 2005, 10:55
|
Участник

Группа: Свой
Сообщений: 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
|
|
|
|
|
Jan 31 2005, 11:59
|

Гуру
     
Группа: Админы
Сообщений: 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  Я так понял, что человеку нужен встроенный в кристалл генератор.
--------------------
BR, Makc В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
|
|
|
|
|
Jan 31 2005, 12:18
|
Участник

Группа: Свой
Сообщений: 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  Я так понял, что человеку нужен встроенный в кристалл генератор.  Генератор, описанный в статье, использует в качестве активных усилительных элементов внутренние ячейки 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 "
|
|
|
|
|
Jan 31 2005, 12:44
|

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

|
Цитата(Andy-P @ Jan 31 2005, 15:18) Генератор, описанный в статье, использует в качестве активных усилительных элементов внутренние ячейки FPGA, а времязадающие элементы – два резистора и конденсатор. Вот именно. Т.е. он требует внешних элементов, а значит не может считаться в полной мере внутренним. Скорее, комплексным.
--------------------
BR, Makc В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
|
|
|
|
|
Feb 1 2005, 15:51
|

Местный
  
Группа: Свой
Сообщений: 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); Работает  ) Генерит частоту где-то в районе 10ов мегагерц. Небольшое уточнение: если не сделать a = LCELL(LCELL(!b)); то частота будет постоянно срываться.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|