Доброго времени суток.
Есть высокостабильный сигнал 1 Мгц.
Из него необходимо получить 100 кГц, 10 кГц, 1 Гц, 0.1 Гц.
Я так понимаю нужно сделать делитель на 10.
Данный сабж нужно сделать на ПЛИС Altera max3000.
Помогите, в ПЛИСах не силен.
Делитель на 10 на ПЛИС Altera
- Kodi
- Открыл глаза
- Сообщения: 51
- Зарегистрирован: Ср сен 12, 2007 15:43:47
- Откуда: Украина Днепропетровск
- Контактная информация:
foxit когда такое делать будешь следи за скважностью...
Однажды мне надо было получить сигнал на 100кГц. Кварца я такого не нашёл. Пришлось генератор на кварце 1МГц и поделил на 10 миктосхемой К155ИЕ1.
И скважность естественно поменялась. Так что советую следить за этим и отчётливо представлять какой скважности надо получить сигнал.
Однажды мне надо было получить сигнал на 100кГц. Кварца я такого не нашёл. Пришлось генератор на кварце 1МГц и поделил на 10 миктосхемой К155ИЕ1.
И скважность естественно поменялась. Так что советую следить за этим и отчётливо представлять какой скважности надо получить сигнал.
- HeoH
- Открыл глаза
- Сообщения: 75
- Зарегистрирован: Пт июл 20, 2007 12:49:45
- Откуда: Novosibirsk
- Контактная информация:
Код: Выделить всё
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 написал, если совсем не знакомы с ПЛИСами.
- Вложения
-
- divider.GIF
- (8.39 КБ) 632 скачивания
<o> ёшкин кот
- HeoH
- Открыл глаза
- Сообщения: 75
- Зарегистрирован: Пт июл 20, 2007 12:49:45
- Откуда: Novosibirsk
- Контактная информация:
А в D-триггере нет никаких задержек по установке на выходе единицы??? т.е. прям таки 0 пикосекунд???
На самом деле, такая задача разрешима применением ФАПЧа(PLL), но не факт что топикстартеру это надо...к примеру, в CycloneII аж 4 внутренних PLL, но на рассмотрение у нас МАХ3000, так что про внутренние PLL можно забыть...
Тем более я не сильно понимаю зачем плодить сущность, когда
lch.clk = CLK; --1MHz
lch.d = wr; --100kHz
out = lch.q;
На самом деле, такая задача разрешима применением ФАПЧа(PLL), но не факт что топикстартеру это надо...к примеру, в CycloneII аж 4 внутренних PLL, но на рассмотрение у нас МАХ3000, так что про внутренние PLL можно забыть...
Тем более я не сильно понимаю зачем плодить сущность, когда
lch.clk = CLK; --1MHz
lch.d = wr; --100kHz
out = lch.q;
<o> ёшкин кот