|
Удвоение клока задержками логики, Да, не здоровое решение, но нужно |
|
|
|
May 5 2008, 13:00
|
Знающий
   
Группа: Свой
Сообщений: 921
Регистрация: 6-04-07
Из: Israel
Пользователь №: 26 822

|
Пытаюсь удвоить клок задержками логики: задержать клок на входе на четверть периода, затем подать входной и задержанный на XOR и получить удвоенный клок с примерно 50% duty cycle. Ессно, решение кривое, но что-то более серьезное сейчас нет возможности делать (есть на то причины), нужно срочно как временное решение. Вот код: Код library ieee; use ieee.std_logic_1164.all;
entity OLED_interface is port ( CLK_IN: in std_logic; and1_sig_out, and2_sig_out: out std_logic; CLK_OUT: out std_logic ); end entity;
architecture OLED_interface_arch of OLED_interface is attribute syn_keep: boolean; signal and1_sig, and2_sig, CLK_OUT_sig: std_logic; attribute syn_keep of and1_sig, and1_sig_out, and2_sig, and2_sig_out, CLK_OUT_sig: signal is true;
begin and1_sig <= CLK_IN and '1'; and1_sig_out <= and1_sig; and2_sig <= and1_sig and '1'; and2_sig_out <= and2_sig; CLK_OUT_sig <= and2_sig xor CLK_IN; CLK_OUT <= CLK_OUT_sig; end; первый and1_sig_out в timing simulation дает сдвиг клока, второй (and2_sig_out) не дает относительно первого - т.е. повторяет and1_sig_out в плане timingа. Это то что показывает ModelSim. Кроме того, CLK_OUТ заткнут в нуле, XORа не делает с and2_sig... Подскажите, в чем лажа ? (или может кто предложит более нормальное решение удвоения клока без PLLей при сохранении 40-60% duty cycle ?)
|
|
|
|
|
 |
Ответов
|
May 5 2008, 15:15
|
Знающий
   
Группа: Свой
Сообщений: 921
Регистрация: 6-04-07
Из: Israel
Пользователь №: 26 822

|
Цитата(sazh @ May 5 2008, 17:47)  Поставьте внешний генератор и не партесь. Даже на эдементах средней степени интеграции от такого умножителя были одни неприятности. Солнышко пригреет и все в разнос идет. неужели в кристалле pll нет Да, вы правы, факторы типа температуры могут вполне повлиять...  . PLL в чипе есть, но он начинате работать с 25MHz а у меня 13 MHz клок. Внешний генератор ? Проблема в том что борд-то уже готов, частично работает, борд очень плотный, сложная разводка и т.д. и т.п. Кроме того, если делать внешним генератором то он должен быть закрыт на фазу исходного клока (т.е. внешний PLL ?) ибо он клок данных и видео синхронизации. Да и скорее всего к нему физически не подобраться (к сигналу) ибо источник (CPU) и приемник (CPLD) - оба BGA и расположены на плане один над другим (component side - print side), на самом сигнале - никакого резистора, он проходит от донго чипа к другому под ними....
|
|
|
|
|
May 5 2008, 17:06
|
участник
   
Группа: Свой
Сообщений: 573
Регистрация: 16-02-06
Пользователь №: 14 402

|
Цитата(Саша Z @ May 5 2008, 18:15)  Да, вы правы, факторы типа температуры могут вполне повлиять...  . PLL в чипе есть, но он начинате работать с 25MHz а у меня 13 MHz клок. Внешний генератор ? Проблема в том что борд-то уже готов, частично работает, борд очень плотный, сложная разводка и т.д. и т.п. Кроме того, если делать внешним генератором то он должен быть закрыт на фазу исходного клока (т.е. внешний PLL ?) ибо он клок данных и видео синхронизации. Да и скорее всего к нему физически не подобраться (к сигналу) ибо источник (CPU) и приемник (CPLD) - оба BGA и расположены на плане один над другим (component side - print side), на самом сигнале - никакого резистора, он проходит от донго чипа к другому под ними.... А может стоит попробывать более правильное железо(пока еще не поздно)? Например возьмите Spartan StarterKit S3E от Xilinx, на кристалле PLL работает от 5 MHz, есть разъем на свободные ноги плис. Можно быстро сделать несложную двусторонюю платку - переходник на вашу панель, вообщем это недорого то и стоит, преимущества очевидны: не надо извращаться в коде, все можно сделать правильно, этот борд как раз хорошо подходит для таких задач. Ну а после того как отладите алгоритм, не фокус будет спроектировать и сделать suitable hardware. ps я бы советовал не извращаться(все выше и ниже описанное) с clk для видеосигнала, потому как фаза clk не должна "плавать", лучше сделать правильно и надежно через PLL.
|
|
|
|
Сообщений в этой теме
Саша Z Удвоение клока задержками логики May 5 2008, 13:00 MrYuran возможно оптимизатор выкидывает ваши задержки, так... May 5 2008, 13:46 Саша Z Цитата(MrYuran @ May 5 2008, 16:46) возмо... May 5 2008, 14:25 sazh Цитата(Саша Z @ May 5 2008, 17:00) Пытаюс... May 5 2008, 14:16 Boris_TS Есть еще один вариант задержки, он для системы опт... May 5 2008, 16:24 chds 2 Саша Z
Если Вы делаете проект, который должен ра... May 5 2008, 16:53 Boris_TS С chds полностью согласел, встречался даже, что в ... May 5 2008, 17:07 Andr2I В принципе, делал такое на MAX3000. Все нормально ... May 5 2008, 17:08 chds Вот что нарылось, взял ОТСЮДА:
Цитата# Как удвоить... May 5 2008, 17:35 Джеймс Вот вариант сотрудника Xilinx (Peter Alfke). См. #... May 5 2008, 18:47 Саша Z Спасибо всем.
Теперь по порядку:
Boris_TS: работаю... May 5 2008, 19:56 alexadmin Цитата(Саша Z @ May 5 2008, 23:56) Спасиб... May 6 2008, 08:56 r_dot Цитата(Саша Z @ May 5 2008, 23:56) ... те... May 7 2008, 15:44  Саша Z Цитата(r_dot @ May 7 2008, 19:44) Ещё вар... May 8 2008, 15:00   r_dot Цитата(Саша Z @ May 8 2008, 19:00) ... на... May 10 2008, 04:10    Саша Z Цитата(r_dot @ May 10 2008, 08:10) Да, но... May 10 2008, 15:46   Саша Z Цитата(Саша Z @ May 8 2008, 18:00) Данный... May 31 2008, 18:11
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|