Страница 1 из 1

Делитель на 10 на ПЛИС Altera

Добавлено: Чт янв 29, 2009 23:49:16
foxit
Доброго времени суток.

Есть высокостабильный сигнал 1 Мгц.
Из него необходимо получить 100 кГц, 10 кГц, 1 Гц, 0.1 Гц.

Я так понимаю нужно сделать делитель на 10.
Данный сабж нужно сделать на ПЛИС Altera max3000.

Помогите, в ПЛИСах не силен.

Добавлено: Пт янв 30, 2009 01:46:26
Callous
на самом деле в макс+ или квартусе. счетчик из библиотеки поставить можна.......просто и сердито...через визард создайте. Ну или точнее столько счетчиков сколько частот. соответственно каждый со своим коэф. счета.
10
100
1000
10000
ну и потом зашить это всё в ваш девайс.

Добавлено: Вт фев 03, 2009 23:32:10
Kodi
foxit когда такое делать будешь следи за скважностью...
Однажды мне надо было получить сигнал на 100кГц. Кварца я такого не нашёл. Пришлось генератор на кварце 1МГц и поделил на 10 миктосхемой К155ИЕ1.
И скважность естественно поменялась. Так что советую следить за этим и отчётливо представлять какой скважности надо получить сигнал.

Добавлено: Ср фев 04, 2009 14:53:28
HeoH

Код: Выделить всё

TITLE "freq_div";

INCLUDE "lpm_counter.inc";

SUBDESIGN divd
(
 CLK : INPUT;
 OUT : OUTPUT;
)

VARIABLE

lch : DFF;
dv : lpm_counter WITH (LPM_WIDTH = 5);
wr : NODE;

BEGIN

dv.clock = CLK;
if dv.q[] < 5 then
wr = VCC;
else
wr = GND;
end if;

if dv.q[] < 9 then
dv.sclr = GND;
else
dv.sclr = VCC;
end if;


lch.clk = CLK;
lch.d = wr;
out = lch.q;

END;


Только если так делать, то получивш. 100 кГц импульсы будут не синхронизованы с 1 МГц...т.е. передний фронт 100 кГц будет смещен относительно 1 МГц примерно на 5 нс, хотя я даже не знаю как от этого избавиться=)) На 10, 1 и сколько душе угодно кГц делается подобным образом...думаю тут и 32 макроцелки хватит под всю железяку.. если что-то не понятно, объясню..

ну и ниже симул.вэйвформ получившийся...

чуть не забыл...это на AHDL написал, если совсем не знакомы с ПЛИСами.

Добавлено: Ср фев 04, 2009 16:28:24
МитяРа
А для синхронизации можно поставить на выходе D-триггер, например..
Поделённый сигнал - на вход D,
а 1 МГц на вход C...

Добавлено: Ср фев 04, 2009 17:01:56
HeoH
А в D-триггере нет никаких задержек по установке на выходе единицы??? т.е. прям таки 0 пикосекунд???

На самом деле, такая задача разрешима применением ФАПЧа(PLL), но не факт что топикстартеру это надо...к примеру, в CycloneII аж 4 внутренних PLL, но на рассмотрение у нас МАХ3000, так что про внутренние PLL можно забыть...

Тем более я не сильно понимаю зачем плодить сущность, когда
lch.clk = CLK; --1MHz
lch.d = wr; --100kHz
out = lch.q;