Применение FPGA в системах подвижной радиосвязи
-
- Сообщения: 7
- Зарегистрирован: 15 мар 2012, 12:18
Re: Применение FPGA в системах подвижной радиосвязи
Выложил отчет на Omoled. Получился достаточно поверхностным, но думаю из него можно понять, что уже сделанно и что остается сделать. Хотелось бы получить комментарии по проделанной работе.
Re: Применение FPGA в системах подвижной радиосвязи
Прочитал: предпринята попытка некоторого обобщения достигнутого - неплохо.
Не хватает более четкого отражения достигнутых на текущий момент результатов - к примеру, верификации байтовых массивов, получаемых при FFT примитивных сигналов, о схеме эксперимента, о формировании локально в ПЛИС таких сигналов и т.п. Для стороннего читателя проблематика, данная в конце сообщения, будет непонятна.
Радует то, что есть вполне четкое понимание цели работы и имеется движение вперед.
Удачи.
P.S. Завтра на встрече планирую также обсудить с Вами материал проекта - потребуется Ваше мнение.
Не хватает более четкого отражения достигнутых на текущий момент результатов - к примеру, верификации байтовых массивов, получаемых при FFT примитивных сигналов, о схеме эксперимента, о формировании локально в ПЛИС таких сигналов и т.п. Для стороннего читателя проблематика, данная в конце сообщения, будет непонятна.
Радует то, что есть вполне четкое понимание цели работы и имеется движение вперед.
Удачи.
P.S. Завтра на встрече планирую также обсудить с Вами материал проекта - потребуется Ваше мнение.
electronix.ru: Реализация БПФ на ПЛИС
Павел, есть обсуждение, которое может быть Вам полезно:
Реализация БПФ на ПЛИС: трудности, встречаемые при реализации
Реализация БПФ на ПЛИС: трудности, встречаемые при реализации
-
- Сообщения: 7
- Зарегистрирован: 15 мар 2012, 12:18
Re: Применение FPGA в системах подвижной радиосвязи
Андрей Васильевич, здравствуйте.
Так и не смог на форуме найти ту книгу, о которой вы говорили. Не могли бы вы кинуть ссылку на нее.
Нашел хорошую программу по реализации 8 точечного БПФ http://vhdlguru.blogspot.com/2011/06/no ... point.html. Понятная и легкая к восприятию. Только не синтезируема. Вот возник вопрос, можно ли ее использовать, как разбор программы в пояснительной записке, или все таки нужна синтезируемая программа?
Так и не смог на форуме найти ту книгу, о которой вы говорили. Не могли бы вы кинуть ссылку на нее.
Нашел хорошую программу по реализации 8 точечного БПФ http://vhdlguru.blogspot.com/2011/06/no ... point.html. Понятная и легкая к восприятию. Только не синтезируема. Вот возник вопрос, можно ли ее использовать, как разбор программы в пояснительной записке, или все таки нужна синтезируемая программа?
-
- Сообщения: 7
- Зарегистрирован: 15 мар 2012, 12:18
Re: Применение FPGA в системах подвижной радиосвязи
Здравствуйте, Андрей Васильевич.
Все никак не могу найти конкретную ошибку в работе БПФ на ПЛИС. Т.к. в данном случае, у меня вызывал сомнения драйвер USB, то решил в нем досконально разобраться. Вот текст с некоторыми комментариями:
В общем как я понял режим работы следующий:
1.проверка пустоты и заполненности буферов EP4 и EP2
2. запись данных в порт С и сразу же их чтение из порта B. В этом и есть загвоздка, т.к. данные он должен читать, когда буффер EP2 заполнится. При этом первые результаты в симуляции появляются через некоторое, всегда разное, время. После подачи сигнала старт(подается внутренне) проходит 839 тактов и появляется сигнал готовности RDY и происходит ожидание входных данных, При этом учитывая, что сигнал CLK подается с USB, нужно подать достаточное количество данных, что бы получить первые результаты(Хотя и при большом количестве поданых данных результат(даже не правильный) появляется не всегда). У меня была идея подавать CLK внутренне, но тогда встает вопрос о синхронности работы ПЛИС и USB и все равно придется править драйвер и host программу.
При этом хочется отметить, что когда нужно подавать данные и сразу их читать, вся система работает отлично(для проверки написал маленькую программу, которая к входным данным прибавляет 1 и сразу выдает результат).
Так же еще вызывает небольшие сомнения правильность работы программы на кристале, хотя в симуляции все работает нормально. Так что скорее всего проблема в драйвере и host программе.
Если есть какие нибудь соображения по тому как исправить драйвер, поделитесь пожалуйста.))
Я вижу правильную работу драйвера так:
- подается сигнал(допустим гармонический).
- при этом ожидается появление результата на выходе.
- после появления результата переходим в режим работы лрайвера, по которому он работает сейчас, т.е. подаем данные на вход и сразу читаем результат(т.к. программа БПФ на каждый цикл читает 1 байт входных данных и выдает 1 результат).
Продолжу экспериментировать дальше, надеюсь, что заработает.
Все никак не могу найти конкретную ошибку в работе БПФ на ПЛИС. Т.к. в данном случае, у меня вызывал сомнения драйвер USB, то решил в нем досконально разобраться. Вот текст с некоторыми комментариями:
Код: Выделить всё
#include[ztex-conf.h] // Loads the configuration macros, see ztex-conf.h for the available macros
#include[ztex-utils.h] // include basic functions
// configure endpoints 2 and 4, both belong to interface 0 (in/out are from the point of view of the host)
EP_CONFIG(2,0,BULK,IN,512,2);
EP_CONFIG(4,0,BULK,OUT,512,2);
// select ZTEX USB FPGA Module 1.11 as target (required for FPGA configuration)
IDENTITY_UFM_1_11(10.12.0.0,0);
// this product string is also used for identification by the host software
#define[PRODUCT_STRING]["ucecho example for UFM 1.11"]
// this is called automatically after FPGA configuration
#define[POST_FPGA_CONFIG][POST_FPGA_CONFIG
OEC = 255;
]
// include the main part of the firmware kit, define the descriptors, ...
#include[ztex.h]
void main(void)
{
WORD i,size;
// init everything
init_USB();
EP2CS &= ~bmBIT0; // stall = 0 CS- регистр контроля и статуса
SYNCDELAY;
EP4CS &= ~bmBIT0; // stall = 0
SYNCDELAY; // first two packages are waste
EP4BCL = 0x80; // skip package, (re)arm EP4
SYNCDELAY;
EP4BCL = 0x80; // skip package, (re)arm EP4
FIFORESET = 0x80; // reset FIFO
SYNCDELAY;
FIFORESET = 2;
SYNCDELAY;
FIFORESET = 0x00; // восстанавливает нормальный режим работы
SYNCDELAY;
while (1) {
if ( !(EP4CS & bmBIT2) ) { // EP4 не пуст
size = (EP4BCH << 8) | EP4BCL; // BCH и BCL старшие и младшие биты
if ( size>0 && size<=512 && !(EP2CS & bmBIT3)) { // EP2 не полон
for ( i=0; i<size; i++ ) {
IOC = EP4FIFOBUF[i]; // данные из EP4 записываются в FPGA...
EP2FIFOBUF[i] = IOB; // ... и читаются обратно в буффер EP2
}
EP2BCH = size >> 8;
SYNCDELAY;
EP2BCL = size & 255; // arm EP2
}
SYNCDELAY;
EP4BCL = 0x80; // (re)arm EP4
}
}
}
В общем как я понял режим работы следующий:
1.проверка пустоты и заполненности буферов EP4 и EP2
2. запись данных в порт С и сразу же их чтение из порта B. В этом и есть загвоздка, т.к. данные он должен читать, когда буффер EP2 заполнится. При этом первые результаты в симуляции появляются через некоторое, всегда разное, время. После подачи сигнала старт(подается внутренне) проходит 839 тактов и появляется сигнал готовности RDY и происходит ожидание входных данных, При этом учитывая, что сигнал CLK подается с USB, нужно подать достаточное количество данных, что бы получить первые результаты(Хотя и при большом количестве поданых данных результат(даже не правильный) появляется не всегда). У меня была идея подавать CLK внутренне, но тогда встает вопрос о синхронности работы ПЛИС и USB и все равно придется править драйвер и host программу.
При этом хочется отметить, что когда нужно подавать данные и сразу их читать, вся система работает отлично(для проверки написал маленькую программу, которая к входным данным прибавляет 1 и сразу выдает результат).
Так же еще вызывает небольшие сомнения правильность работы программы на кристале, хотя в симуляции все работает нормально. Так что скорее всего проблема в драйвере и host программе.
Если есть какие нибудь соображения по тому как исправить драйвер, поделитесь пожалуйста.))
Я вижу правильную работу драйвера так:
- подается сигнал(допустим гармонический).
- при этом ожидается появление результата на выходе.
- после появления результата переходим в режим работы лрайвера, по которому он работает сейчас, т.е. подаем данные на вход и сразу читаем результат(т.к. программа БПФ на каждый цикл читает 1 байт входных данных и выдает 1 результат).
Продолжу экспериментировать дальше, надеюсь, что заработает.
Re: Применение FPGA в системах подвижной радиосвязи
Павел, здравствуйте.
Как Вы помните, вопрос синхронной работы меня интересовал в первую очередь.
В силу отсутствия опыта в этой области не могу посоветовать абсолютно верное решение.
Могу предложить следующее: когда модуль FFT будет готов выдавать данные, в буфер записывается стартовая последовательность (маркер), к примеру 2F2F2F...2F. Host-модуль постоянно "слушает" буфер и по появлению маркера обнаруживает требуемые данные. Размер буфера, естественно, дожен быть больше размерности FFT - чтобы в нем гарантированно оказался результат с маркером.
Перекомпиляция драйвера возможна, но я пока не знаю, как это осуществить практически, т.к. синтаксис ПО не подходит для его компиляции в MVS. Может проблема и пустяковая, но она имеет место быть.
Как Вы помните, вопрос синхронной работы меня интересовал в первую очередь.
В силу отсутствия опыта в этой области не могу посоветовать абсолютно верное решение.
Могу предложить следующее: когда модуль FFT будет готов выдавать данные, в буфер записывается стартовая последовательность (маркер), к примеру 2F2F2F...2F. Host-модуль постоянно "слушает" буфер и по появлению маркера обнаруживает требуемые данные. Размер буфера, естественно, дожен быть больше размерности FFT - чтобы в нем гарантированно оказался результат с маркером.
Перекомпиляция драйвера возможна, но я пока не знаю, как это осуществить практически, т.к. синтаксис ПО не подходит для его компиляции в MVS. Может проблема и пустяковая, но она имеет место быть.
-
- Сообщения: 7
- Зарегистрирован: 15 мар 2012, 12:18
Re: Применение FPGA в системах подвижной радиосвязи
Выкладываю теоретическую часть по первой главе: "Обзор функциональных возможностей и типовых задач в цифровой обработке сигналов". Хотелось бы, что бы вы указали на ошибки и недочеты, которые нужно исправить.
- Вложения
-
- ОБЗОР ФУНКЦИОНАЛЬНЫХ ВОЗМОЖНОСТЕЙ И ТИПОВЫХ ЗАДАЧ В ЦИФРОВОЙ ОБРАБОТКЕ СИГНАЛОВ.doc
- (144 КБ) 696 скачиваний
Re: Применение FPGA в системах подвижной радиосвязи
Ознакомился, ответил подправленным документом почтой.
Основное:
1. Отсутствует список литературы и, естественно, ссылки на литературу.
2. Целесообразно начинать вести раздел "Список условных сокращений и аббревиатур", в котором будут раскрываться и расшифровываться используемые по тексту сокращения/аббревиатуры.
3. Явно не хватает некоторого обобщающего рисунка, отражающего место FPGA в структуре модуля ЦОС.
Основное:
1. Отсутствует список литературы и, естественно, ссылки на литературу.
2. Целесообразно начинать вести раздел "Список условных сокращений и аббревиатур", в котором будут раскрываться и расшифровываться используемые по тексту сокращения/аббревиатуры.
3. Явно не хватает некоторого обобщающего рисунка, отражающего место FPGA в структуре модуля ЦОС.
Отзыв на проект
Павел, предлагаю следующий вариант отзыва.
Проверяйте на точное соответствие темы, на отсутствие опечаток.
Проверяйте на точное соответствие темы, на отсутствие опечаток.
- Вложения
-
- ОТЗЫВ (Желтов Павел Викторович).pdf
- (55.13 КБ) 556 скачиваний
Вернуться в «Дипломное проектирование»
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя