admin 0 31 января, 2005 Опубликовано 31 января, 2005 · Жалоба Оказывается генератор на ПЛИС (делали на 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ов мегагерц. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 190 31 января, 2005 Опубликовано 31 января, 2005 · Жалоба Так подобные фокусы делали еще на микросхемах 155 серии. :) Только вот есть одна проблема у этого генератора - стабильность частоты. И из-за нестабильности этой частоты область применения подобного решения очень ограничена. PS: На подобном принципе основана и схема удвоения частоты входного сигнала без использования PLL и DLL. PPS: А некоторые ПЛИС (Spartan XL) имеют встроенный генератор на борту. Только его стабильность тоже оставляет желать лучшего. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
pergunt 0 31 января, 2005 Опубликовано 31 января, 2005 · Жалоба А что за элемент в SPARTAN XL - является генератором и какая частота? (Что-то в библиотеке и даташите не увидел)? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Uuftc 0 31 января, 2005 Опубликовано 31 января, 2005 · Жалоба PPS: А некоторые ПЛИС (Spartan XL) имеют встроенный генератор на борту. Только его стабильность тоже оставляет желать лучшего. <{POST_SNAPBACK}> О как ... а в spartan3 нет? а то я уже стал задумываться, как done не отпускать и пользоваться TCK или BSCAN_SPARTAN3 ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 190 31 января, 2005 Опубликовано 31 января, 2005 · Жалоба А что за элемент в SPARTAN XL - является генератором и какая частота? (Что-то в библиотеке и даташите не увидел)? <{POST_SNAPBACK}> Есть он в даташите, и в библиотеке он тоже есть, только пользоваться им я не рекомендую. А называется он в библиотеке 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. Т.е. качество этого генератора оставляет желать лучшего. :( PPS: А некоторые ПЛИС (Spartan XL) имеют встроенный генератор на борту. Только его стабильность тоже оставляет желать лучшего. <{POST_SNAPBACK}> О как ... а в spartan3 нет? <{POST_SNAPBACK}> В Spartan3, если я правильно понимаю, ничего такого нет. В нем есть встроенный генератор для загрузки прошивки в Master-режиме, но воспользоваться им, как я понимаю, в обычной работе не удастся. Да и не понятно, зачем это может понадобиться... а то я уже стал задумываться, как done не отпускать и пользоваться TCK или BSCAN_SPARTAN3 ... Не пойму зачем нужны такие сложности? Неужели нельзя поставить обыкновенный генератор? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Uuftc 0 31 января, 2005 Опубликовано 31 января, 2005 · Жалоба Не пойму зачем нужны такие сложности? Неужели нельзя поставить обыкновенный генератор? <{POST_SNAPBACK}> В моей схеме Spartan3 питается clk от DDS. посторонний клок нужен лиш для того, чтоб запустить DDS - у нее видете-ли после ресета - 0 Hz частота Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Andy-P 0 31 января, 2005 Опубликовано 31 января, 2005 · Жалоба На сайте Xilinx есть статья: Six Easy Pieces (Non-Synchronous Circuit Tricks) 04/02/2003 By Peter Alfke Director, Applications Engineering, где описана реализация Stable RC Oscillator :w00t: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 190 31 января, 2005 Опубликовано 31 января, 2005 · Жалоба А еще можно сделать нечто подобное. На 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; На сайте Xilinx есть статья: Six Easy Pieces (Non-Synchronous Circuit Tricks) 04/02/2003 By Peter Alfke Director, Applications Engineering, где описана реализация Stable RC Oscillator :w00t: <{POST_SNAPBACK}> Я так понял, что человеку нужен встроенный в кристалл генератор. :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Andy-P 0 31 января, 2005 Опубликовано 31 января, 2005 · Жалоба На сайте Xilinx есть статья: Six Easy Pieces (Non-Synchronous Circuit Tricks) 04/02/2003 By Peter Alfke Director, Applications Engineering, где описана реализация Stable RC Oscillator :w00t: <{POST_SNAPBACK}> Я так понял, что человеку нужен встроенный в кристалл генератор. :) <{POST_SNAPBACK}> Генератор, описанный в статье, использует в качестве активных усилительных элементов внутренние ячейки 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 " Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 190 31 января, 2005 Опубликовано 31 января, 2005 · Жалоба Генератор, описанный в статье, использует в качестве активных усилительных элементов внутренние ячейки FPGA, а времязадающие элементы – два резистора и конденсатор. <{POST_SNAPBACK}> Вот именно. Т.е. он требует внешних элементов, а значит не может считаться в полной мере внутренним. Скорее, комплексным. :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sK0T 0 1 февраля, 2005 Опубликовано 1 февраля, 2005 · Жалоба a : node; b : node; c : node; a = LCELL( not b); b = LCELL( not c); c = LCELL( not a); Работает :)) Генерит частоту где-то в районе 10ов мегагерц. Небольшое уточнение: если не сделать a = LCELL(LCELL(!b)); то частота будет постоянно срываться. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться