Page 1 of 6

VG93 digital ФАПЧ by ZEK

PostPosted: 12 Sep 2011, 10:32
by CHRV
Интегрировал сабж. Огромное спасибо ZEK.
Всем кто пользуется ахтунг-дискетами особено 5.25 - тестирен нах!!!
vg93pll_zek3.zip
(39.95 KB) Downloaded 986 times

Re: VG93 digital ФАПЧ by ZEK

PostPosted: 12 Sep 2011, 11:13
by breeze
CHRV wrote:Интегрировал сабж.


В svn это уже есть? а то я собираю со своей конфигурацией клавы :smoke:

Re: VG93 digital ФАПЧ by ZEK

PostPosted: 12 Sep 2011, 12:27
by lvd
TS-Labs wrote:Было бы мегаинтересно глянуть в сорцы.

Насколько я знаю, сорцы были на говнофоруме. Как я понял, там основная фишка в том, что в момент прихождения импульса с дисковода счётчик не тупо ресетится на константу (как в пентагоне и изначально в пентеве), а к нему прибавляется половина фазовой разницы.

Re: VG93 digital ФАПЧ by ZEK

PostPosted: 12 Sep 2011, 16:29
by lvd
TS-Labs wrote:На АТМ-ах так же?

Как на атмах, читай у рюрикарюмика.

Re: VG93 digital ФАПЧ by ZEK

PostPosted: 12 Sep 2011, 18:52
by deathsoft
TS-Labs wrote:На АТМ-ах так же?

На АТМ2 автомат на озу (РУ2), там можно сделать как угодно.

Re: VG93 digital ФАПЧ by ZEK

PostPosted: 12 Sep 2011, 18:53
by deathsoft
lvd wrote:Как на атмах, читай у рюрикарюмика.

http://vtrdos.ru/book/DISKCONT.ZIP

Re: VG93 digital ФАПЧ by ZEK

PostPosted: 13 Sep 2011, 16:21
by ZEK
:applause:

Re: VG93 digital ФАПЧ by ZEK

PostPosted: 13 Sep 2011, 20:32
by lvd
ZEK. если не возражаешь, приступим к разбору говнокода :)

1.
Code: Select all
   reg [5:0] counter = 0;

Это не говнокод, но такая запись играет роль только при СИМУЛЯЦИИ (например, в моделсиме), означает, что регистр устанавливается в 0 ещё до нулевого момента времени и выполнения всех initial'ов. При синтезе квартусом игнорится.

2.
Code: Select all
   wire[5:0] inc   = rawr_sr[1:0] == 2'b10 ? shift : 1;
...
   vg_rawr <= !(rawr_sr[3] && !rawr_sr[0] ); // rawr 100ns

Вот это уже говнокод. Дело в том, что сигнал rdat_n полностью асинхронный относительно клока, и потому перед использованием должен пересинхронизироваться. Пересинхронизация делается путём пропускания сигнала через ДВА (или больше) триггера. У тебя он используется после пропускания только через один триггер.

Ещё непонятно, что означает "rawr_sr[3] && !rawr_sr[0]". Почему нельзя написать просто rawr_sr[3] && !rawr_sr[2] (выделение нужного фронта)? Но может тут я просто не догоняю глубинного смысла...

И ещё. Чем не устраивает предварительный фильтр на сигнал rdat (в моём коде со слов digital filter и до assign rdat = )? Он позволяет не реагировать схеме на импульсы-помехи длительностью менее 4 тактов 28мгц. Или такое не нужно?

Re: VG93 digital ФАПЧ by ZEK

PostPosted: 13 Sep 2011, 21:33
by CHRV
ZEK wrote:Посмотрел в svn, там инвертирован rdat_n в строке

Сорри, это я накосячил.
Вы это разберитесь с lVD, чую клево все будет :).

Re: VG93 digital ФАПЧ by ZEK

PostPosted: 13 Sep 2011, 23:31
by ZEK
:applause: