VG93 digital ФАПЧ by ZEK

ZX evolution software and hardware

Postby CHRV » 12 Sep 2011, 10:32

Интегрировал сабж. Огромное спасибо ZEK.
Всем кто пользуется ахтунг-дискетами особено 5.25 - тестирен нах!!!
vg93pll_zek3.zip
(39.95 KB) Downloaded 151 times
Last edited by CHRV on 16 Sep 2011, 16:23, edited 2 times in total.
Многое есть здесь: www.nedopc.com
User avatar
CHRV
Желесяка
 
Posts: 923
Joined: 15 Apr 2007, 22:52
Group: Registered users

Postby breeze » 12 Sep 2011, 11:13

CHRV wrote:Интегрировал сабж.


В svn это уже есть? а то я собираю со своей конфигурацией клавы :smoke:
User avatar
breeze
 
Posts: 761
Joined: 07 Feb 2009, 17:19
Location: Оттуда
Group: Registered users

Postby lvd » 12 Sep 2011, 12:27

TS-Labs wrote:Было бы мегаинтересно глянуть в сорцы.

Насколько я знаю, сорцы были на говнофоруме. Как я понял, там основная фишка в том, что в момент прихождения импульса с дисковода счётчик не тупо ресетится на константу (как в пентагоне и изначально в пентеве), а к нему прибавляется половина фазовой разницы.
Многого нет здесь: http://lvd.nedopc.com
Image
User avatar
lvd
 
Posts: 1637
Joined: 07 Apr 2007, 22:28
Group: Registered users

Postby lvd » 12 Sep 2011, 16:29

TS-Labs wrote:На АТМ-ах так же?

Как на атмах, читай у рюрикарюмика.
Многого нет здесь: http://lvd.nedopc.com
Image
User avatar
lvd
 
Posts: 1637
Joined: 07 Apr 2007, 22:28
Group: Registered users

Postby deathsoft » 12 Sep 2011, 18:52

TS-Labs wrote:На АТМ-ах так же?

На АТМ2 автомат на озу (РУ2), там можно сделать как угодно.
User avatar
deathsoft
 
Posts: 357
Joined: 07 Apr 2007, 01:58
Group: Registered users

Postby deathsoft » 12 Sep 2011, 18:53

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

http://vtrdos.ru/book/DISKCONT.ZIP
User avatar
deathsoft
 
Posts: 357
Joined: 07 Apr 2007, 01:58
Group: Registered users

Postby ZEK » 13 Sep 2011, 16:21

CHRV wrote:Интегрировал сабж.

Посмотрел в svn, там инвертирован rdat_n в строке
rawr_sr <= { rawr_sr[2:0], ~rdat_n };
у меня порты модуля по каралечному названы, суффиксы отрицательности сигнала не ставил
в общем модуль ожидает что rdat_n это отрицательные импульсы (какими приходят с дисковода), глянул в схему вроде полярность сигнала не меняется
инверсия лишняя и должно быть
[vg39.v:314]
rawr_sr <= { rawr_sr[2:0], rdat_n };
ZEK
 
Posts: 11
Joined: 13 Sep 2011, 07:16
Group: Registered users

Postby lvd » 13 Sep 2011, 20:32

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мгц. Или такое не нужно?
Многого нет здесь: http://lvd.nedopc.com
Image
User avatar
lvd
 
Posts: 1637
Joined: 07 Apr 2007, 22:28
Group: Registered users

Postby CHRV » 13 Sep 2011, 21:33

ZEK wrote:Посмотрел в svn, там инвертирован rdat_n в строке

Сорри, это я накосячил.
Вы это разберитесь с lVD, чую клево все будет :).
Многое есть здесь: www.nedopc.com
User avatar
CHRV
Желесяка
 
Posts: 923
Joined: 15 Apr 2007, 22:52
Group: Registered users

Postby ZEK » 13 Sep 2011, 23:31

CHRV wrote: чую клево все будет

мелочи, 10 строк кода можно обсуждать 2 недели, особенно когда в одной синтаксической конструкции по несколько вложенных смыслов.
lvd wrote:Это не говнокод, но такая запись играет роль только при СИМУЛЯЦИИ (например, в моделсиме)

ну так я не спорю, у меня эвы нет я в Active-HDL на тестбенче (в котором кода раз в 30 больше чем в модуле) гонял.
lvd wrote:пересинхронизация делается путём пропускания сигнала через ДВА (или больше) триггера.

ога, первый триггер вгоняет в клоковый домен остальные просто задерживают, я сигнал делаю синхронным и заодно двигаю по сдвиговому регистру, а гистересизы и прочая лабуда в данном конкретном месте вообще ни на что не влияет, да и клоковый домен в по цепи прохождения сигнала только один. Хотя положа руку на сердце скажу что можно в сдвиговый регистр добавить еще пару бит, что бы в самых тяжелых случаях отодвинуть rawr от rclk больше чем на 40нс (так хочет wd1793 по даташиту)

это говнокнструкция в которую вложено пару смысловых нагрузок (синхронизация, выделение фрона)

lvd wrote:что означает "rawr_sr[3] && !rawr_sr[0]". Почему нельзя написать просто rawr_sr[3] && !rawr_sr[2] (выделение нужного фронта)?

а это очень просто
смотри по времени на сдвиговый регистр в момент прихода rddat (каждая строка новый клок 28мгц), регистр двигается влево
rawr_sr = 4'b1111; rawr_sr[3] && !rawr_sr[0] = 0
rawr_sr= 4'b1110; rawr_sr[3] && !rawr_sr[0] = 1
rawr_sr = 4'b1100; rawr_sr[3] && !rawr_sr[0] = 1
rawr_sr= 4'b1000; rawr_sr[3] && !rawr_sr[0] = 1
rawr_sr= 4'b0000; rawr_sr[3] && !rawr_sr[0] = 0
....
rawr_sr= 4'b0001; rawr_sr[3] && !rawr_sr[0] = 0

получаем получем из сдвигового регистра 3 смысловую нагрузку, формирователь rawr длительность 3 такта 28Мгц, что чуть больше 100нс

lvd wrote:Чем не устраивает предварительный фильтр на сигнал rdat

ни чем не неустраиват, я его нигде не выкусывал
lvd wrote:длительностью менее 4 тактов 28мгц.
,
а вот 4 такта мне кажется много, по дисководам разброс rdat от 100нс до 1.5мкс 2(мож даже 3) такта 28мгц самый раз (хотя лично сам даташиты на дисководы не перебирал, мож рюмику или атаривскому сайту сильно доверился)

как то так
ZEK
 
Posts: 11
Joined: 13 Sep 2011, 07:16
Group: Registered users

Next

Return to Пентева - софт и железо

Who is online

Users browsing this forum: No registered users and 4 guests

cron