Здравствуйте, гость ( Вход | Регистрация )

Форум » Сайт и форум » Разработки и Статьи на сайте » Все вопросы касающиеся Neil Scope (Ваши замечания, предложения и т.д.)
Все вопросы касающиеся Neil Scope
LeftRadio Пятница, 26.03.2010, 21:41 | Сообщение # 1
Совсем живу сдесь...
Группа: Администраторы
Сообщений: 2045
Статус: Offline
Шапка темы.

--
NEIL SCOPE 2



--------------------------------------------------------------------------------------

--
NEIL SCOPE 3

Схема ревизия 3.2 - NS_3.0_rev_3.2.pdf
Схема соединения ЖК с 16-ти битной шиной(только для ревизий ниже 3.2, в 3.2 HC573 уже есть на основной плате) - NS_3.0_HC573.pdf
BOM(список компонентов) - BOM_NS3_rev3_2.htm

-------------------------------------------------------------------

-------------------------------------------------------------------

Прошивка ПЛИС --- 19/05/15

MCU Bootloader (загрузчик МК) --- 17/10/13
Прошивка МК (ЖК с 8бит, 65к цветов) --- 2015_17_15
Прошивка МК (ЖК с 8 бит, 262к цветов) --- 2015_17_15
Прошивка МК для (ЖК с 16бит, HC573, 262к цветов) --- 2015_12_17

Исходники ПЛИС (github) --- 11_12_13
Исходники МК (github) --- 12/02/15
Архивные прошивки МК

Краткое описание осциллографа
Протокол обмена NeilScope3 с ПК

//----------------------------------------------------------------------------------------------------------
Прошивальщик МК (автор Ильдар) - NSFlashLoader2.
Утилита для перепрошивки СР2102 VID/PID под NeilScope3 (автор Ильдар) - NSCP2102Utilite2.rar.
Использование данных VID/PID для перепрошивки СР2102 под другие устройства категорически запрещено, они были получены по запросу у Silicon Laboratories Inc. и предназначены для использования только с NeilScope3 или другими версиями NeilScope.

Утилита для теста осциллографа - ns_test_util.
Для запуска нужно скачать и установить Python 3.4 и PyQt5, при установке добавляем переменные окружения. Распаковать архив куда нибудь и набрать из этой папки в консоли - "python main.py"

Драйвера для NeilScope3 (под перепрошитые VID/PID) - NeilScopeDriver.zip

Процедура прошивки МК(обновлено 23.08.2015) - FirmwareManual.pdf

Для последующих обновлений просто запускаем NSFlashLoader, и обновляемся. Джампер при этом трогать уже не нужно.

//----------------------------------------------------------------------------------------------------------
.
.
.
Важные замечания по сборке

На плате не указана перемычка с 10-го вывода(INTRL) 74НС4052(U15) на вывод SWDIO МК, можно и просто подпаять пока на +3.3В в любое удобное переходное отверстие.

//----------------------------------------------------------------------------------------------------------

Фото платы ревизии 3:



Демо видео работы осциллографа, ревизия 1.9

----------------------------------------------------------------------------------------
Схема и плата ByteBlusterMV для программирования EPM570, оригинал здесь. Эту плату делал сам, проверена, работает.
.
.
//----------------------------------------------------------------------------------------------------------

Любое коммерческое использование данного проекта категорически запрещено. По всем вопросам обращаться wladkam(гав)mail.com
Прикрепления: 5561811.jpg (244.1 Kb) · 2201731.jpg (212.8 Kb)


---

Нет войне!


Сообщение отредактировал LeftRadio - Четверг, 17.12.2015, 04:59  
 
volk0203 Пятница, 02.03.2012, 18:27 | Сообщение # 2481
Завсегдатай Профессионал
Группа: Проверенные
Сообщений: 695
Статус: Offline
Quote
Спешил, поставил как пример, по корпусам вроде совместимы с 24LC.

Я так и понял, просто уточнил. Да, корпуса один в один

Добавлено (02.03.2012, 18:27)
---------------------------------------------
В новой схеме, входной делитель, при номиналах, показанных на схеме, обеспечивает коэфициент деления 1:100, для 1:10 верхний должен быть 900к, нижний 100к... Или надо 1:100? Обозначено как 1:10... :(

 
Arpad Пятница, 02.03.2012, 19:38 | Сообщение # 2482
Частый посетитель
Группа: Проверенные
Сообщений: 58
Статус: Offline
quote
Информация к размышлению : серия AD8330_AD833(0-3) некоторые на форуме знают о них , но молчок.
AD8330ARQZ-R7 AD 78,53 UAH
FEATURES:
Fully differential signal path, also used with single-sided signals
Inputs from 0.3 mV to 1 V rms, rail-to-rail outputs
Differential RIN = 1 kOhm; ROUT (each output) 75 Ohm;
Automatic offset compensation (optional)
Linear-in-dB and linear-in-magnitude gain modes
0 dB to 50 dB, for 0 V < VDBS < 1.5 V (30 mV/dB)
Inverted gain mode: 50 dB to 0 dB at -30 mV/dB
x0.03 to x10 nominal gain for 15 mV < VMAG < 5 V
Constant bandwidth: 150 MHz at all gains
Low noise: 5 nV/sqrHz typical at maximum gain
Low distortion: < - 62 dBc typical
Low power: 20 mA typical at VS of 2.7 V to 6 V

APPLICATIONS
Pre-ADC signal conditioning
75 Ohm cable driving adjust
 
kison Пятница, 02.03.2012, 22:51 | Сообщение # 2483
Завсегдатай
Группа: Друзья
Сообщений: 275
Статус: Offline
Quote (Arpad)
Информация к размышлению : серия AD8330_AD833(0-3) некоторые на форуме знают о них , но молчок.

Да наверно все знают. Но такие штуки для более серьезных приборов. Где нужна полоса 50 мегагерц и выше. Чтоб использовать AD8330 нужно сдвинуть уровень на входе с помощью AD8129/30/31/32/38, потом собственно VGA. Итого две микры вместо одного усилителя. Кроме того это лишнее потребление и приличная, опять таки -лишняя, цена. А параметры в общем то и не улучшатся. ИМХО AD8330 для карманного прибора - это гаубица для стрельбы в воробья.
 
LazyCat Суббота, 03.03.2012, 00:01 | Сообщение # 2484
Завсегдатай
Группа: Проверенные
Сообщений: 329
Статус: Offline
Quote (kison)
Фантазии больного мозга малоинтересны.

Да, Вы уже писали о том, что приболели. Поэтому прекратим наше общение до полного Вашего выздоровления.

Quote (LeftRadio)
Ну и мне показалось что с двумя уровнями будет проще и вполне достаточно.

Может и достаточно. Но почему-то потенциальные пользователи этого прибора молчат на этот счет :(

А с вопросом про входной делитель меня уже волк опередил ;)
 
LeftRadio Суббота, 03.03.2012, 14:32 | Сообщение # 2485
Совсем живу сдесь...
Группа: Администраторы
Сообщений: 2045
Статус: Offline
Quote (volk0203)
Или надо 1:100?

Да, так и надо, с делителями 1:1 и 1:100 получаем коэффициенты 1:1(10х,5х,2х,1х,1/2х,1/5х), 1:100(1/10х, 1/20х,1/50х, 1/100х, 1/200х, 1/500х). Единственное это 1/200х и 1/500х будут практически бесполезными.

----------------------------------------------------------------------------------------------
Обновил схему/плату в шапке.


---

Нет войне!
 
volk0203 Суббота, 03.03.2012, 14:51 | Сообщение # 2486
Завсегдатай Профессионал
Группа: Проверенные
Сообщений: 695
Статус: Offline
Очень рекомендую программку Resistor optimizer. Удобно подбирать резисторы нестандартных номиналов...

Добавлено (03.03.2012, 14:51)
---------------------------------------------
990К=240К+750К
990К=430К+560К
Такие проще найти...

 
Dante_strelok Суббота, 03.03.2012, 14:57 | Сообщение # 2487
Новичок
Группа: Проверенные
Сообщений: 22
Статус: Offline
Переменные конденсаторы
http://hag.com.ua/catalog.php?r=1&s=&k1=2&k2=10

Добавлено (03.03.2012, 14:57)
---------------------------------------------
TZR1Z040A001B00 -Murata ( SMD Trimmer Cap 1,5 pF~4,0 pF 25 Vdc NP0±500ppm/°C Qmin=300 @ 1 MHz ) 4.75 На складе
TZ03Z2R3F169B00 -Murata ( Trimmer Cap 1,25 pF~2,3 pF 100 Vdc NP0±200ppm/°C Qmin=300 @ 1 MHz ) 2.95 На складе
TZB4Z060BB10R00 - Murata ( Trimmer Cap. SMD 2,0pF...6,0pF NP0±200ppm/°C 100 Vdc Qmin=500 ) 4.93 На складе
CTZ2E-05C-W2-P -AVX ( TRIMMER-CTZ 2,5 pF~5 pF 25 V NP0 ) 5.83 На складе
CTZ2E-10A-W2-P -AVX ( TRIMMER-CTZ 3 pF~10 pF 25 V NP0 ) 5.13 На складе
TZB4Z100AB10R00 -Murata ( Trimmer Cap. SMD 3,0pF...10pF NP0±300ppm/°C 100 Vdc Qmin=500 ) 4.01 На складе
TZB4Z250AB10R00 -Murata ( Trimmer Cap. SMD 4,0pF...25pF NP0±300ppm/°C 50 Vdc Qmin=300 ) 6.06 На складе
TZB4Z250AA10B00 -Murata ( Trimmer Cap. SMD 4,0pF...25pF NP0±300ppm/°C 50 Vdc Qmin=300 ) 8.49 На складе
TZB4R200AB10R00 -Murata ( Trimmer Cap. SMD 4,5pF...20pF N750±300ppm/°C 100 Vdc Qmin=500 ) 4.01 На складе
CTZ3E-20С-W1-PF -AVX ( TRIMMER-CTZ3 5 pF~20 pF 25 V N750±500 ) 5.30 На складе
TZY2R200A001B00 -Murata ( Trimmer cap. 4,5 pF-20,0 pF 25 V N750±500 Q=500 at 1 MHz, Cmax ) 5.02 На складе
CTZ2E-20С-W2-P -AVX ( TRIMMER-CTZ 5,5 pF~20 pF 25 V N750±500 ) 5.40 На складе
TZC03P300A110T00 -Murata ( TRIMMER-TZC03 6,5 pF~30 pF 100 V N1200 ) 4.16 На складе

 
LeftRadio Суббота, 03.03.2012, 15:56 | Сообщение # 2488
Совсем живу сдесь...
Группа: Администраторы
Сообщений: 2045
Статус: Offline
to volk0203, ну можно такие, какая разница :) За программку спасибо.

Quote (Dante_strelok)
Переменные конденсаторы

Спасибо, но пускай уже будут такие какие есть, они есть наверно у всех и найти их вроде несложно.

Промелькнула еще одна шальная мысль :) А может поставим вместо генератора DS1086? Стоит не намного дороже, даст возможность, просто и энерго-эффективно, понижать тактовую для самописца.


---

Нет войне!


Сообщение отредактировал LeftRadio - Суббота, 03.03.2012, 21:24  
 
volk0203 Суббота, 03.03.2012, 21:34 | Сообщение # 2489
Завсегдатай Профессионал
Группа: Проверенные
Сообщений: 695
Статус: Offline
Идея неплохая, но DS1086 питается от 5 вольт....
 
LeftRadio Суббота, 03.03.2012, 22:05 | Сообщение # 2490
Совсем живу сдесь...
Группа: Администраторы
Сообщений: 2045
Статус: Offline
Там же по ссылке DS1086LU:
Описание : IC ECONOSILL 3.3V SS 8-USOP

-----------------------------------------------------------------------------------
Это я предлагаю так сказать последний "штрих" :D , сейчас заканчиваю тестировать и "допиливать" дизайн в ПЛИС, можно сказать что на этом с изменениями все :) Остается только ЛА, но это ни схемы, ни платы не затронет.


---

Нет войне!


Сообщение отредактировал LeftRadio - Суббота, 03.03.2012, 22:10  
 
volk0203 Суббота, 03.03.2012, 22:20 | Сообщение # 2491
Завсегдатай Профессионал
Группа: Проверенные
Сообщений: 695
Статус: Offline
Quote
Там же по ссылке DS1086LU:
Описание : IC ECONOSILL 3.3V SS 8-USOP

Да, не усмотрел. Жаль до 100 Мгц не дотягивает, как 5-ти вольтовая версия, тоже на всякий случай... ;)

Добавлено (03.03.2012, 22:20)
---------------------------------------------
Отверстия под стойки экрана не получится сделать, как обговаривали?

 
LazyCat Суббота, 03.03.2012, 23:45 | Сообщение # 2492
Завсегдатай
Группа: Проверенные
Сообщений: 329
Статус: Offline
Quote (LeftRadio)
Остается только ЛА, но это ни схемы, ни платы не затронет.

Вот, как и обещал, эскиз ЛА. Извините за задержку, совсем не было времени, да и пришлось все вспоминать, т.к. ранние наброски уничтожились форматированием винта :(
Квартуса у меня нет, поэтому в симуляторе не прогонял. Но есть нерешенная проблема - чтение буфера накопленных данных ЛА в ОЗУ. Т.к. обычно буфер большой и данные лежат в сжатом виде, то читать нужно в том же порядке, в каком они записывались, а это полностью отличается от режима осциллографа :( Я не придумал как это сделать простыми средствами :'( Тем более, что нужно знать оставшиеся ресурсы ПЛИС.

P.S. Для задания режимов цифровой синхронизации используются те же регистры, что и для осциллографа, хотя можно использовать и отдельные регистры, если позволят ресурсы.

P.P.S. Если мы окончательно отказываемся от интерлива, то можно смело ставить DS1086LU.
Прикрепления: 1767210.png (936.6 Kb)
 
kison Воскресенье, 04.03.2012, 10:18 | Сообщение # 2493
Завсегдатай
Группа: Друзья
Сообщений: 275
Статус: Offline
Quote (LeftRadio)
Стоит не намного дороже, даст возможность, просто и энерго-эффективно, понижать тактовую для самописца.

Не даст. Самописец это очень низкая дискретизация. А у АЦП имеется минимальная дискретизация, куда более высокая. Для 9288 - 1 мегасэмпл. Ниже начнут емкости в УВХ успевать разряжаться.
Quote (LazyCat)
Поэтому прекратим наше общение до полного Вашего выздоровления.

Прекратим. Пока Вы хотя бы школьный курс математики не освоите. :D И не научитесь аргументировать свое мнение - фактами, цифрами. А не своими ощущениями.

Добавлено (04.03.2012, 10:18)
---------------------------------------------
И вообще - DS1086 это хрень какая то. Для использования в измерительных приборах она принципиально непригодна. Точность частоты +-0,5%, от температуры -2/+0,75%, от питания +-0,75%. В общем вместо 50 мегагерц он может выдать 48. Как верить прибору, у которого опорный параметр, относительно которого он все измеряет гуляет как хочет?

 
LeftRadio Воскресенье, 04.03.2012, 11:47 | Сообщение # 2494
Совсем живу сдесь...
Группа: Администраторы
Сообщений: 2045
Статус: Offline
Quote (LazyCat)
Вот, как и обещал, эскиз ЛА.

Спасибо, буду пробовать :)

Quote (LazyCat)
хотя можно использовать и отдельные регистры, если позволят ресурсы.

Посмотрим.

Quote (LazyCat)
Я не придумал как это сделать простыми средствами :'(

И это посмотрим :)

Quote (kison)
Для 9288 - 1 мегасэмпл.

Ну так и не предполагал ниже 1Msps использовать :)

Quote (kison)
Точность частоты +-0,5%, от температуры -2/+0,75%, от питания +-0,75%.

Вот это более веский аргумент против, хотя в NS2 я не смог от DS-ки "добиться" большей временной погрешности чем в 1%, а это какой класс точности? :D


---

Нет войне!
 
kison Воскресенье, 04.03.2012, 12:28 | Сообщение # 2495
Завсегдатай
Группа: Друзья
Сообщений: 275
Статус: Offline
Quote (LeftRadio)
хотя в NS2 я не смог от DS-ки "добиться" большей временной погрешности чем в 1%, а это какой класс точности?

Фиг знает. У дешевых китайских мультиметров напряжение измеряется с погрешностью 0,25%. 1% это "всего лишь" в 200 раз хуже, чем у генератора. Причем
Quote (LeftRadio)
я не смог от DS-ки "добиться" большей временной погрешности

как я понимаю стрессов типа охладить до 0С не проводилось? Или подогреть до 40С. Генератор же обещает +-50ppm в диапазоне от -20С до +70С. В комнатных условиях будет раза в два-три меньше.
Quote (LeftRadio)
Ну так и не предполагал ниже 1Msps использовать

На 50 такт можно легко поделить прямо в плис. Вообще забесплатно. Думаю 6LE на счетчик найдется? :D
Кстати - чем отличается SRAM_CLK от SRAM_CE? И как вообще должна читаться ОЗУ? Я что то в логику не въезжаю.
Про анализатор - надо не забывать про метастабильность. Это в чистом виде асинхронные сигналы. И анализатор это не просто пишем изменения. Во первых для медленных сигналов растяжки памяти в 256 раз не хватит. А такие сигналы тоже надо иногда писать. Пример UART на скорости 9600. На каждый битовый интервал придется 40 одинаковых записей в ОЗУ. А если скорость 4800? 80 записей. Дальше - синхронизация. Нельзя просто тупо писать поток по изменениям. Надо знать когда начать это делать. Как ни странно, но в анализаторе тоже есть триггер. :D И он не больше-меньше как в осциллографе. Он работает с битами по отдельности. Например бывает режим по значению. Типа стартуем если 3, 5 и 7 биты = 1, а 2-ой = 0. Кроме того не вся шина бывает интересна. Например только младшие 4 бита интересуют. А на старшем значение непрерывно меняется. Если делать тупо в лоб, как тут предложено, то будет только зря расходоваться память. Любое изменение в любом разряде может как быть условием триггера, так и не быть. Вообще ЛА надо сначала продумать. Дважды или трижды - что же хочется получить. Чисто хотелками, без деталей реализации. А иначе получится малофункциональный примитив, да еще и нерабочий, ну как выше предложено. Ну там простительно - его автор думать не умеет, увы. :D
 
LeftRadio Воскресенье, 04.03.2012, 13:14 | Сообщение # 2496
Совсем живу сдесь...
Группа: Администраторы
Сообщений: 2045
Статус: Offline
Quote (kison)
Или подогреть до 40С.

"Подогревал" :) , ну да бог с ним.

Quote (kison)
На 50 такт можно легко поделить прямо в плис. Вообще забесплатно. Думаю 6LE на счетчик найдется? :D

А генератор разве денег не стоит? Как будто генератор за "бесплатно" а DS-ка за "платно" :)

Quote (kison)
Кстати - чем отличается SRAM_CLK от SRAM_CE? И как вообще должна читаться ОЗУ? Я что то в логику не въезжаю.

SRAM_CLK теперь идет на BLE и BHE - Write Cycle No. 2

Quote (kison)
Про анализатор - надо не забывать про метастабильность. Это в чистом виде асинхронные сигналы.

Я пока не вникал, сказать ничего не могу.

Quote (kison)
Ну там простительно - его автор думать не умеет, увы. :D

Люди ну хватит вам ругаться :)

-------------------------------------------------------------------------------------------
У мну вопрос по верилогу :) почему не работает вот эта извращенная конструкция? :D Причем в sync_state еденица загружается, а вот условие (Sync_OUT_WIN ^ sync_state) == 1 ни под каким соусом не хочет, почему не пойму... И как мне сделать DATA_SYNC не регистром а просто "проводом"?



---

Нет войне!


Сообщение отредактировал LeftRadio - Воскресенье, 04.03.2012, 13:18  
 
kison Воскресенье, 04.03.2012, 14:04 | Сообщение # 2497
Завсегдатай
Группа: Друзья
Сообщений: 275
Статус: Offline
Quote (LeftRadio)
Как будто генератор за "бесплатно" а DS-ка за "платно"

Ну значит вместо бесплатно - за меньшие деньги. Причем с куда лучшей стабильностью и точностью.
Quote (LeftRadio)
SRAM_CLK теперь идет на BLE и BHE - Write Cycle No. 2

Какой то чересчур мудрый способ. Эти два сигнала и в цикле чтения используются. Хотя на диаграммах их и нет, но в примечании написано, что они должны быть = 0. А тут во всех режимах на них 50МГц будет. И в чем смысл? Что изменилось по сравнению с предыдущим вариантом? В чем улучшения? Вот ухудшения я вижу. А плюсы - нет.
Quote (LeftRadio)
Я пока не вникал, сказать ничего не могу.

Тут и не надо вникать. Сигналы на анализатор приходят с внешней схемы и к внутреннему такту никак не привязаны. Это тот самый случай, когда надо прогонять через цепочку из двух триггеров.

Quote (LeftRadio)
Люди ну хватит вам ругаться

Я только начал :D
Quote (LeftRadio)
Причем в sync_state еденица загружается, а вот условие (Sync_OUT_WIN ^ sync_state) == 1 ни под каким соусом не хочет, почему не пойму...

Я понятия не имею. Sync_OUT_WIN задается где то в другом месте. Видимо синтезатор считает, что это невозможно. Вообще так на верилоге не пишут. Это не Си.
Не связанные между собой части можно разносить по разным always блокам. Например обработку ACLR. Это кстати уже не асинхронный сброс.
Правильно примерно так, если сброс нужен асинхронный:
Code

always @(posedge clk or negedge ACLR) begin  

  if(ACLR == 0)
  begin  
         first_event <= 0;  
         last_event <= 0;  
  end
else
begin
// тут все остальное

Quote (LeftRadio)
И как мне сделать DATA_SYNC не регистром а просто "проводом"?

Вынести из always в любое место модуля.
Code

wire [7:0] DATA_SYNC = (SYNC_A_B == 0) ? DATA_IN_A : DATA_IN_B;

Добавлено (04.03.2012, 14:04)
---------------------------------------------
А так как сейчас - собирается?
Просто в начале блока в last_event пишется 0, а потом еще что то. Присваивания неблокирующие, т.е. выполняются все разом при выходе из блока. Может оказаться, что не смотря на ACLR в last_event что нибудь запишется.

 
LeftRadio Воскресенье, 04.03.2012, 14:09 | Сообщение # 2498
Совсем живу сдесь...
Группа: Администраторы
Сообщений: 2045
Статус: Offline
Quote (kison)
А тут во всех режимах на них 50МГц будет. И в чем смысл? Что изменилось по сравнению с предыдущим вариантом? В чем улучшения?

50 не будет, после окончания записи будет 0, так как было с CS, только теперь после окончания чтения или записи СS автоматом установится в 1, тот самый энергосберегающий режим, отсутсвие которого критиковалось :)

Quote (kison)
Sync_OUT_WIN задается где то в другом месте.

Внешний сигнал.

Quote (kison)
Правильно примерно так, если сброс нужен асинхронный:

Спасибо, а не будет ли "все остальное" изменять свое состояние из-за negedge ACLR?

Quote (kison)
Вынести из always в любое место модуля.

Ух ты :) , не знал что так можно, но я вообще по нему мало что знаю :D , то тут то там подчерпну, у Вас ветку про верилог прочитал почти до конца, но таких примеров к сожалению не видел.


---

Нет войне!
 
LeftRadio Воскресенье, 04.03.2012, 14:12 | Сообщение # 2499
Совсем живу сдесь...
Группа: Администраторы
Сообщений: 2045
Статус: Offline
Про negedge ACLR снимаю вопрос, сам допер :D

----------------------------------------------------------------
На до бы вопросы по верилогу куда нибудь перенести что бы тут не захломлять...


---

Нет войне!


Сообщение отредактировал LeftRadio - Воскресенье, 04.03.2012, 14:13  
 
kison Воскресенье, 04.03.2012, 14:33 | Сообщение # 2500
Завсегдатай
Группа: Друзья
Сообщений: 275
Статус: Offline
Quote (LeftRadio)
50 не будет, после окончания записи будет 0, так как было с CS

А почему? Там вообще то такт просто выведен.
Quote (LeftRadio)
Внешний сигнал.

Ну а в симуляции если на график вытащить Sync_OUT_WIN и sync_state? Должно быть видно кто из них не такой как нужно. И нужно очень внимательно имена цепей набирать. Опечатка в букве и создастся новая цепь! Ее состояние будет неизвестным и синтезатор может выкинуть все выражения, где она участвует.
Quote (LeftRadio)
Спасибо, а не будет ли "все остальное" изменять свое состояние из-за negedge ACLR?

Нет, там же условный блок. По перепаду или по низкому ACLR уровню он выполняется. А если не выполняется - выполняется то, что под else. Можно убрать negedge ACLR из условия и тогда сброс станет синхронным. Это лучше. Вообще как считают опытные люди от всей асинхронщины надо бежать как от чумы. Сейчас в схеме ее очень много.
Quote (LeftRadio)
у Вас ветку про верилог прочитал почти до конца, но таких примеров к сожалению не видел.

А он там таки есть :D - http://open-electronics.ru/forum/viewtopic.php?p=36117#p36117
 
LeftRadio Воскресенье, 04.03.2012, 14:46 | Сообщение # 2501
Совсем живу сдесь...
Группа: Администраторы
Сообщений: 2045
Статус: Offline
Quote (kison)
А почему? Там вообще то такт просто выведен.

Внешним резистором. Ген. уходит в сон и резистор подтягивает к земле, уход в сон то же сделаю автоматом.

Quote (kison)
Опечатка в букве и создастся новая цепь!

Именно это и произошло :D , хотя бодания продолжаются...

Quote (kison)
А он там таки есть :D

И правда есть :) Я "до туда" самую малость не дочитал :D


---

Нет войне!


Сообщение отредактировал LeftRadio - Воскресенье, 04.03.2012, 14:47  
 
kison Воскресенье, 04.03.2012, 14:51 | Сообщение # 2502
Завсегдатай
Группа: Друзья
Сообщений: 275
Статус: Offline
Quote (LeftRadio)
Внешним резистором. Ген. уходит в сон и резистор подтягивает к земле, уход в сон то же сделаю автоматом.

Тогда не будет читаться память. Нет такта - не меняются адреса.
Quote (LeftRadio)
хотя бодания продолжаются...

С квартусом? Моделсимом? Или в икарусе?
 
LeftRadio Воскресенье, 04.03.2012, 14:55 | Сообщение # 2503
Совсем живу сдесь...
Группа: Администраторы
Сообщений: 2045
Статус: Offline
Quote (kison)
Тогда не будет читаться память. Нет такта - не меняются адреса.

Будут, чтение ассинхронно к записи :D, да и зачем между ними синхронность не понимаю...

Quote (kison)
С квартусом?

Вот именно с ним, нужно ставит икарус для функц. симуляции :) ибо тормоза за...ли :(


---

Нет войне!
 
kison Воскресенье, 04.03.2012, 14:59 | Сообщение # 2504
Завсегдатай
Группа: Друзья
Сообщений: 275
Статус: Offline
Quote (LeftRadio)
Будут, чтение ассинхронно к записи :D, да и зачем между ними синхронность не понимаю...

А при чем тут синхронность чтения и записи? Синхронность должна быть одна - с тактом. Сейчас адрес идет с буфера, на который приходит адрес записи или чтения через мультиплексор. Буфер тактируется тактом. Нет такта - нет адреса.
Quote (LeftRadio)
ибо тормоза за...ли

Тормоза это фигня. Вот формы входных сигналов рисовать это жесть.
 
LeftRadio Воскресенье, 04.03.2012, 15:07 | Сообщение # 2505
Совсем живу сдесь...
Группа: Администраторы
Сообщений: 2045
Статус: Offline
И правда прошляпил, придется убирать буфер и возвращать как было.

Quote (kison)
Тормоза это фигня. Вот формы входных сигналов рисовать это жесть.

Ну как там у Вас в подписи, что программист сделает за два часа... Так вот тут я как пользователь, все лень сделать как программист и разобраться с тестбенчами, вот и приходится каждый раз по пол часа :D

-------------------------------------------------------------------
Вроде заставил верилог слушатся :D , вот что получилось:


---

Нет войне!


Сообщение отредактировал LeftRadio - Воскресенье, 04.03.2012, 15:17  
 
kison Воскресенье, 04.03.2012, 15:20 | Сообщение # 2506
Завсегдатай
Группа: Друзья
Сообщений: 275
Статус: Offline
Quote (LeftRadio)
И правда прошляпил, придется убирать буфер

Я бы побоялся. Глитчи на адресе во время записи - страшная вещь. А счетчики у альтеры кривые. Асинхронщина сплошная.
http://forum.ixbt.com/topic.cgi?id=48:9544-36#1083
Quote (LeftRadio)
разобраться с тестбенчами, вот и приходится каждый раз по пол часа

Мне чтоб оттестировать начинку в разных режимах нужно было бы несколько сотен изменений на временной диаграмме набивать. А режимов - несколько. Причем я тестирую все оптом - задаю режимы, имитирую АЦП, даже ОЗУ-шку и ту имитирую. Т.е. пишу туда и читаю. И все в икарусе. Очень удобный инструмент.
 
LeftRadio Воскресенье, 04.03.2012, 15:25 | Сообщение # 2507
Совсем живу сдесь...
Группа: Администраторы
Сообщений: 2045
Статус: Offline
Quote (kison)
Я бы побоялся. Глитчи на адресе во время записи - страшная вещь. А счетчики у альтеры кривые.

Ну вроде в прошлом дизайне проблем не было, этим я не утверждаю что глитчи это не зло.

Quote (kison)
Причем я тестирую все оптом - задаю режимы, имитирую АЦП, даже ОЗУ-шку и ту имитирую. Т.е. пишу туда и читаю.

Я то же все это делал, сначала помодульно потом "оптом", конфигурирую регистры в ПЛИС, пишу, читаю, проверяю не будет ли сбоев при записи если МК поведет себя "не так", долго, нудно, но можно :) Не все же биты вручную, там и копипаста работает и последовательность задавать можно.


---

Нет войне!


Сообщение отредактировал LeftRadio - Воскресенье, 04.03.2012, 15:26  
 
kison Воскресенье, 04.03.2012, 15:26 | Сообщение # 2508
Завсегдатай
Группа: Друзья
Сообщений: 275
Статус: Offline
Quote (LeftRadio)
Вроде заставил верилог слушатся , вот что получилось:

Я думаю там ошибка. Это типа триггер?
Тогда вопрос. Зачем делать это:
wire [7:0] DATA_SYNC = (SYNC_A_B == 0)? DATA_IN_A : DATA_IN_B;
Если потом:
wire sync_state = (Trg_Lv_UP > DATA_IN_A) & (Trg_Lv_DOWN < DATA_IN_A)? Sync_OUT_WIN ^ 1 : Sync_OUT_WIN ^ 0;
 
LeftRadio Воскресенье, 04.03.2012, 15:29 | Сообщение # 2509
Совсем живу сдесь...
Группа: Администраторы
Сообщений: 2045
Статус: Offline
А как сделать в нем по другому что бы условие сравнения (Trg_Lv_UP > DATA_IN_A) & (Trg_Lv_DOWN < DATA_IN_A) происходило для разных каналов по выбору внешнего сигнала DATA_SYNC? И в чем ошибка?

---

Нет войне!
 
kison Воскресенье, 04.03.2012, 15:38 | Сообщение # 2510
Завсегдатай
Группа: Друзья
Сообщений: 275
Статус: Offline
Quote (LeftRadio)
И в чем ошибка?

Я так понимаю сначала идет выбор канала. Т.е. мультиплексор. Получаем DATA_SYNC - сигнал по которому должен работать триггер.
А потом зачем то работаем с каналом А. Я выделил места, где вместо DATA_IN_A по логике должно быть уже DATA_SYNC. Так как сейчас - триггер будет независимо от SYNC_A_B работать всегда с каналом А.

Добавлено (04.03.2012, 15:38)
---------------------------------------------
Вместо Sync_OUT_WIN ^ 1 : Sync_OUT_WIN ^ 0; проще ~Sync_OUT_WIN : Sync_OUT_WIN;

 
LeftRadio Воскресенье, 04.03.2012, 15:44 | Сообщение # 2511
Совсем живу сдесь...
Группа: Администраторы
Сообщений: 2045
Статус: Offline
Quote (kison)
Я выделил места, где вместо DATA_IN_A

Угу, это ж надо даже выделенным не заметил :)

Quote (kison)
Вместо Sync_OUT_WIN ^ 1 : Sync_OUT_WIN ^ 0; проще ~Sync_OUT_WIN : Sync_OUT_WIN;

Эт понятно, оно было в условиях и по логике работы мне так было понятней :)


---

Нет войне!
 
kison Воскресенье, 04.03.2012, 15:53 | Сообщение # 2512
Завсегдатай
Группа: Друзья
Сообщений: 275
Статус: Offline
Quote (LeftRadio)
Ну вроде в прошлом дизайне проблем не было

Там кстати был точно такой же буфер. :D И как оно работало? Либо надо было всегда дергать start_WR.
 
LeftRadio Воскресенье, 04.03.2012, 16:11 | Сообщение # 2513
Совсем живу сдесь...
Группа: Администраторы
Сообщений: 2045
Статус: Offline
Был, но перед мультиплексором и мультиплексор мог переключить выхода адреса на счетчик чтения, то есть все работало без "основного" такта, плюс в этом есть - генератор все время вычитки и обработки/вывода спит и "ничего" не потребляет :p
start_WR кстати нужно дергать только для начала следующего цикла записи.


---

Нет войне!
 
kison Воскресенье, 04.03.2012, 16:32 | Сообщение # 2514
Завсегдатай
Группа: Друзья
Сообщений: 275
Статус: Offline
Quote (LeftRadio)
Был, но перед мультиплексором и мультиплексор мог переключить выхода адреса на счетчик чтения

Странно. На том проекте, что выкладывался в виде проекта в квартусе - буфер был. И был он после мультиплексора.
Прикрепления: 2870323.gif (12.6 Kb)
 
LeftRadio Воскресенье, 04.03.2012, 16:35 | Сообщение # 2515
Совсем живу сдесь...
Группа: Администраторы
Сообщений: 2045
Статус: Offline
Ну там по разному было, в конце оставил так как Вы привели на картинке, там же асинхронная загрузка есть, удерживаем start_WR на время чтения и все неудобства, а все преимущества остаются :) Точнее и "удерживать" не надо, для запуска записи переводим start_WR в 1, мультиплексор переключается, асинхронная загрузка отключается, после окончания записи переводим start_WR в 0, это то в любом случае делать надо что бы следующий цикл записи запустить, ну и все собственно :)

---

Нет войне!


Сообщение отредактировал LeftRadio - Воскресенье, 04.03.2012, 16:38  
 
kison Воскресенье, 04.03.2012, 16:46 | Сообщение # 2516
Завсегдатай
Группа: Друзья
Сообщений: 275
Статус: Offline
Quote (LeftRadio)
там же асинхронная загрузка есть, удерживаем start_WR на время чтения и все неудобства, а все преимущества остаются

Ну возможно. Если читать не быстро, то глитчи не повлияют. Преимущества то все же не все. Я себе сделал чтение самой плисиной. Меняю адрес дергая ножкой и автоматом читается ОЗУ. ОЗУ выходит в активный режим на 1 период такта и потом опять в спящий. Все само, ничего дергать кроме такта адреса не надо.
 
LeftRadio Воскресенье, 04.03.2012, 16:57 | Сообщение # 2517
Совсем живу сдесь...
Группа: Администраторы
Сообщений: 2045
Статус: Offline
Quote (kison)
Если читать не быстро, то глитчи не повлияют.

Читается на всю скорость 103-го, это 72МГц тактовой, хотя конечно читается намного медленней, икаких ошибок при чтении не было.

Quote (kison)
Все само, ничего дергать кроме такта адреса не надо.

Ну либо в ПЛИС, либо в МК пару "лишних" строчек кода, разницы как по мне нет, а аккум экономит выключая генератор.


---

Нет войне!
 
LazyCat Воскресенье, 04.03.2012, 23:42 | Сообщение # 2518
Завсегдатай
Группа: Проверенные
Сообщений: 329
Статус: Offline
Влад, вот внес небольшие изменения, чтобы лучше были понятны проблемы, о которых я писал(см. работу счетчика чтения). Предлагаю читать не взад, а вперед, во всех режимах, но нужно доработать защелку адреса так, как Вам будет удобно, если согласитесь на этот вариант.
Прикрепления: 1420965.png (956.2 Kb)


Сообщение отредактировал LazyCat - Воскресенье, 04.03.2012, 23:52  
 
LeftRadio Понедельник, 05.03.2012, 10:50 | Сообщение # 2519
Совсем живу сдесь...
Группа: Администраторы
Сообщений: 2045
Статус: Offline
Спасибо, поразбираюсь, Правда у самого времени не хватает.

---

Нет войне!
 
kison Понедельник, 05.03.2012, 12:36 | Сообщение # 2520
Завсегдатай
Группа: Друзья
Сообщений: 275
Статус: Offline
Quote (LeftRadio)
Правда у самого времени не хватает.

Помочь поразбираться? Я люблю в бредовых схемах копаться.
Начнем помаленьку. Типа сам ЛА

Что мы тут видим? Например регистр и компаратор. Компаратор сравнивает данные на входе регистра и то, что записано в регистре. И если они равны :D - разрешает запись. Это мощный подход, тут как ни старайся, но содержимое регистра величина постоянная. Да, именно она и будет дальше писаться в память. 128 тысяч одинаковых значений - это отличный анализатор! :D
Теперь о типа "триггере". В правом верхнем углу красным цветом нарисована пародия на триггер. Сначала о верхней части, где 8*2И и потом ИЛИ с результатами. Эта хрень позволяет задать интересующий бит ( шиной Trigger_Level_B) и получить на выходе 1 если хоть один из заданных найдется. К примеру если по Trigger_Level_B приходит 0xFF, то единицу на выходе получим при любом значении на выходе регистра отличном от нуля. Если приходит 0x0F - при значении в регистре 0x01-0x0F.
Очень полезный режим? :D
Нижняя половина еще интересней. Это где 8*2ИЛИ и потом И результатам. Эта часть уже ищет единицы оптом. Т.е. в тех разрядах, в которых Trigger_Level_B содержит 0. Это, в отличии от первого варианта уже даже на практике применить можно, но это частный случай триггера по значению. Т.е. всего один из нескольких вариантов. Но тут он единственный. В общем весь этот узел ( что на картинке) - неработоспособная хрень.
Сейчас еще одну "доработку" опишу. Она куда веселее! Мне вот интересно - на хрена бредовые картинки рисовать? Желание помочь - похвально. Остается один шаг - скачать таки квартус и проверять свои идеи перед тем, как их выкладывать. Ладно сейчас - траблы в схеме очевидны и без симуляций. А иногда ошибку найти сложнее, чем с нуля все нарисовать.
to be continue...
Прикрепления: 4979886.gif (21.6 Kb)
 
Форум » Сайт и форум » Разработки и Статьи на сайте » Все вопросы касающиеся Neil Scope (Ваши замечания, предложения и т.д.)
Поиск:
uTmpl.ru Сайт создан в системе uCoz Сейчас: 26.04.2024, 01:48