one_man_show 0 11 апреля, 2015 Опубликовано 11 апреля, 2015 · Жалоба Может блок-схему отобразите, чтобы пробегающие по теме понимали, что делается. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 1 12 апреля, 2015 Опубликовано 12 апреля, 2015 · Жалоба Схема 1. Концепт одного канала. В режиме логического пробника, на опорах постоянно поддерживается уровень "0" и "1" (например, 0.8 и 1.7В), получается 1.5-разрядный flash АЦП. В режиме аналогового пробника периодических сигналов, на одной опоре постоянно поддерживается требуемый уровень триггера (например, 1.5В), а на другой меняется с каждой "строкой", пробегая требуемый диапазон с нужным шагом (например, от 100мВ до 3100мВ с шагом 5мВ). Выход компаратора защелкивается в сдвиговом регистре (одной строки) с эквивалентной тактовой 2ГГц. Далее варианты, строки либо сразу выводятся (UART/VGA/...), либо пишутся во внутреннюю память ПЛИС для обработки ("цифровой фосфор" и тп). Опоры проще всего формировать RC цепочкой, недостаток - малое время хранения из-за больших утечек (2пина*30мкА/пин=60мкА по даташиту для CycloneV). Преимущество - простая пассивная обвязка позволяет сразу закладывать в дизайн скоп для отладки. Схема 2. Текущая для проверки концепта, навесной монтаж. Вход синхронизации отсутствует, тк тестовый сигнал генерируется внутри ПЛИС. Постоянный уровень сигнала задается потенциометром, мультиметром можно проконтролировать правильность отображения "нулевой" линии. Сейчас добавляю вход синхронизации, и меняю код - чтобы можно было смотреть сигналы с внешнего генератора. Исходники начну выкладывать, когда сделаю простой вывод на VGA. Но, у меня основная цель - практическая проверка своего "Си как HDL", а "скоп за 30 коп" - просто как одна из подходящих практических задачек для этого. Поэтому выкладывать буду только в том виде, каком использую для синтеза, те без ручного перевода в Верилог. Но тк это почти Си - алгоритм будет понятен. Модуль для захвата сигнала на 2Гвыб/сек с выдачей по 8бит на 250МГц написан на Верилоге, его сейчас выкладываю(как есть): module ser8 ( input clka, clkb, clkc, clkd, input din, output reg [7:0] q ); reg a, b, c, d, A, B, C, D, aa, ba, cb, dc, Ad, BA, CA, DC, aaa, baa, cba, dcb, Adc, BAc, CAc, DCA, DCAc; always@(posedge clka) a <= din; always@(posedge clkb) b <= din; always@(posedge clkc) c <= din; always@(posedge clkd) d <= din; always@(negedge clka) A <= din; always@(negedge clkb) B <= din; always@(negedge clkc) C <= din; always@(negedge clkd) D <= din; always@(posedge clka) aa <= a; always@(posedge clka) ba <= b; always@(posedge clkb) cb <= c; always@(posedge clkc) dc <= d; always@(posedge clkd) Ad <= A; always@(negedge clka) BA <= B; always@(negedge clka) CA <= C; always@(negedge clkc) DC <= D; always@(posedge clka) aaa <= aa; always@(posedge clka) baa <= ba; always@(posedge clka) cba <= cb; always@(posedge clkb) dcb <= dc; always@(posedge clkc) Adc <= Ad; always@(posedge clkc) BAc <= BA; always@(posedge clkc) CAc <= CA; always@(negedge clka) DCA <= DC; always@(posedge clkc) DCAc <= DCA; always@(posedge clka) q <= { DCAc, aaa, baa, cba, dcb, Adc, BAc, CAc }; endmodule Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VCucumber 0 13 апреля, 2015 Опубликовано 13 апреля, 2015 · Жалоба LEVERAGING FPGA AND CPLD DIGITAL LOGIC TO IMPLEMENT ANALOG TO DIGITAL CONVERTERS http://www.latticesemi.com/~/media/Documen...cument_id=36525 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 79 13 апреля, 2015 Опубликовано 13 апреля, 2015 · Жалоба http://www.latticesemi.com/~/media/Documen...cument_id=36525 ну да, только там предлагают сделать обычный SAR/сигма-дельту, когда "опорное напряжение" компаратора меняется сильно быстрее "постоянного" входного сигнала (ну и соответственно десяток кГц частота преобразования раз УВХ нет), а тут наоборот сигнал меняется сильно быстрее чем плавно изменяемое, постоянное по сравнению с периодом сигнала, "опорное напряжение" компаратора. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 1 16 апреля, 2015 Опубликовано 16 апреля, 2015 · Жалоба Получил первую "осциллограмму" на VGA (долго не мог найти дурацкую ошибку). Вроде как обозначилась основная проблема в "скопе за 30 коп" - Квартус плохо выравнивает пути от входного пина до триггеров, тактируемых от многофазного клока, и разбег зависит от дизайна в целом. В результате некоторые отсчеты "наползают" друг на друга. Так что "модуль захвата", надо как-то оптимизировать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 1 16 апреля, 2015 Опубликовано 16 апреля, 2015 · Жалоба Разбег путей виден, если анализировать данные, полученные по UART. На глаз это незаметно, если не растягивать картинку, и выглядит замечательно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Politeh 0 17 апреля, 2015 Опубликовано 17 апреля, 2015 · Жалоба Работаю на аналоговым входом. Пока показать нечего, но читаю, разбираюсь, думаю скоро подойду к моделированию. Буду делать те части осциллографа которые считаю по силам мне, т.е. аппаратная часть, пока что хотя бы на уровне концепта и кусков схем отдельных блоков. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 1 18 апреля, 2015 Опубликовано 18 апреля, 2015 (изменено) · Жалоба 0000000000000000 0000000000000000 0000000011000000 0000000011000000 0000000111000000 0000000101000000 0000001111000000 0000001001000000 0000011111000000 0000010001000000 0000111111000000 0000100001000000 0001111111000000 0001000001000000 1111111111111111 1110000000111111 1111111111111111 0000000000000000 Данные компаратора представляют собой "заливку" областей "выше" и "ниже" сигнала, см. левый рисунок. Нужно выделить линию. Реализованный алгоритм: обнуляются все "1", граничащие по ортогоналям только с "1" (диагональные соседи не учитываются), см правый рисунок. По такому алгоритму нужно хранить в буфере 3 видео-строки, что м/б накладно. Предложит кто другой алгоритм? По поводу полосы - судя по-всему, ограничена большими паразитными емкостями платы (Cyclone V GX Starter Kit), а не LVDS-приемниками, и померить не удастся. 62,5МГц меандр (получаю от независимого генератора 125МГц на плате) видится, как пила с острыми зубьями (вывожу 500*1000 точек на VGA@70Гц, выборки уменьшил до 1.2Гвыб/сек, чтобы проще было согласовать с 75МГц VGA). Если кто захочет поэкспериментировать со своей платой - выкладывайте qsf с пинами, попробую синтезировать (исходники выложу, но они не на Верилоге). Текущая схема: Изменено 18 апреля, 2015 пользователем Leka Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 79 18 апреля, 2015 Опубликовано 18 апреля, 2015 · Жалоба просто xor двух последовательных значений с компаратора будет работать не сильно хуже. только на совсем горизонтальных линиях не очень красиво, но можно и это убрать если гистерезис сделать меньше шумов или шумы больше гистерезиса :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
blackfin 32 19 апреля, 2015 Опубликовано 19 апреля, 2015 · Жалоба По поводу полосы - судя по-всему, ограничена большими паразитными емкостями платы.. AD9484 стОит 42$. В режиме стробоскопа может семплировать сигналы в полосе до 1 ГГц. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
smalcom 0 19 апреля, 2015 Опубликовано 19 апреля, 2015 · Жалоба Реализованный алгоритм: обнуляются все "1", граничащие по ортогоналям только с "1" (диагональные соседи не учитываются), см правый рисунок. 1. берём колонку 2. сдвиг вниз(по рисунку) 3. побитовая инверсия 4. побитовое-И с исходной колонкой --------------------- Также на рис. колонка размером в 9 бит, хотя разрешение сигнала <=4 бит. Может сразу паковать: хранить номер бита, в котором единица? А если использовать структуру, которая считает количество единиц, то она может выполнить обе, описанные выше операции. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 79 19 апреля, 2015 Опубликовано 19 апреля, 2015 · Жалоба AD9484 стОит 42$. В режиме стробоскопа может семплировать сигналы в полосе до 1 ГГц. за 50$ АЦП от hittite HMCAD15хх куда интереснее выглядит. а вот AD9609 - 5$, полоса при этом лишь немного меньше - 700МГц. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 1 19 апреля, 2015 Опубликовано 19 апреля, 2015 · Жалоба Такое пришло в голову: для рисования можно принять, что под "1" всегда "1" (хотя это не так для стробоскопа из-за шумов и сбоях синхронизации, когда за период уровень триггера пересекается несколько раз). В этом случае линию можно рисовать по 2 строкам, а не 3. Делать "классический" осциллограф не имеет никакого смысла, причины уже приводились в этой ветке, можно еще добавить. Имеет смысл делать простой "осциллограф" в рамках освоения новой технологии, например - ПЛИС. Имхо. Также на рис. колонка размером в 9 бит, хотя разрешение сигнала <=4 бит. Это только на рисунке, реально сигнал 9разрядный, и в колонке 512 отсчетов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 79 19 апреля, 2015 Опубликовано 19 апреля, 2015 · Жалоба Делать "классический" осциллограф не имеет никакого смысла, причины уже приводились в этой ветке, можно еще добавить. Имеет смысл делать простой "осциллограф" в рамках освоения новой технологии, например - ПЛИС. Имхо. а никто не говорит про классический осциллограф, но вот чем lvds компаратор в качестве АЦП лучше того же ad9609 для стробоскопа? "эффективная частота сэмплинга" даже у 2ГГц lvds компаратора для 8 бит, чтобы просканировать все 256 напряжений, получается заметно меньше, а полоса при этом вряд ли больше. с компаратором смысл имеет только если брать adcmp572 из-за 8ГГц входной полосы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 1 19 апреля, 2015 Опубликовано 19 апреля, 2015 · Жалоба 1). Чтобы АЦП использовать в режиме стробоскопа, нужна а) схема измерения временного сдвига отсчетов относительно момента синхронизации, б) схема добавления случайной фазы в клок. От точности этого измерения зависит максимальная эквивалентная частота выборок, а от скорости этого измерения - максимальная частота осциллограмм. Хороший клок, это сложно и дорого, а точное измерение временных интервалов, это медленно. 2). Чтобы по-максимуму использовать внешний компаратор, придется либо городить внешний клок на эквивалентную частоту выборок, и внешний десериализатор, либо добавлять все то-же самое, что и для АЦП (измерение времени + изменение фазы). В качестве примера, предлагаю продумать снятие осциллограммы для коротких повторяющихся(те постоянной формы), но непериодических(с большим джиттером) импульсов. Например, длительность импульсов 5нс, период повторения - 5мкс с джиттером 500нс. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться