реклама на сайте
подробности

 
 
> Parralel to differential: моделирование потока данных с АЦП
sqrt(2)
сообщение Jul 24 2017, 07:48
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 74
Регистрация: 20-07-16
Пользователь №: 92 633



Здравствуйте.

Есть некоторый проект для ПЛИС, полностью отлаженый. Однако отладка проводилась без обвязки АЦП. Добавил обвязку АЦП. Проблема в том, что до этого я моделировал данные с АЦП в виде шин с нужной разрядностью, но в моем случае данные с АЦП поступают на ПЛИС в дифф. виде (LVDS) и мне надо отдельно собирать их в шины. Как собирать - я разобрался, осталось только промоделировать. И вот тут я не совсем понимаю, как это моделировать.

До этого у меня была такая система - я в Матлабе генерировал нужный сигнал, записывал его в файл, в тестбенче его читал и гонял по шинам. Подскажите пожалуйста, как такие потоки параллельных данных превращать в потоки последовательных? Может стоит использовать какие-то примитивы от производителя ПЛИС, для упрощения (использую Xilinx 7й серии)?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sqrt(2)
сообщение Jul 24 2017, 09:09
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 74
Регистрация: 20-07-16
Пользователь №: 92 633



Например, считываю из файла в виде вектора x из 14 бит. Сигнал с АЦП - два провода, data_P, data_N.

Беру бит за битом вектор x: data_bit <= x(i), где i - номер текущего читаемого бита.

Правильно я понимаю, что в итоге должно получаться так: data_P <= data_bit, data_N <= not data_bit ?
Go to the top of the page
 
+Quote Post
iosifk
сообщение Jul 24 2017, 11:24
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(sqrt(2) @ Jul 24 2017, 12:09) *
Например, считываю из файла в виде вектора x из 14 бит. Сигнал с АЦП - два провода, data_P, data_N.

Беру бит за битом вектор x: data_bit <= x(i), где i - номер текущего читаемого бита.

Правильно я понимаю, что в итоге должно получаться так: data_P <= data_bit, data_N <= not data_bit ?


Расклад такой. Если данные идут только по одной lvds паре, то Вы в проекте должны сделать преобразователь послед->паралл. И к нему на самом входе только добавить примитив "lvds-буфер". При этом весь проект делайте, как FPGA_core и к нему на самом верхнем уровне добавляйте "lvds-буфер". А для RTL симуляции берите только FPGA_core.
В старом тестбенче, xlt у Вас данные вычитываются байтами, сделайте преобразователь "парр->послед". И этого достаточно.
Если хотите подробнее, могу рассказать по скайпу.
Удачи!


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
sqrt(2)
сообщение Jul 24 2017, 11:38
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 74
Регистрация: 20-07-16
Пользователь №: 92 633



Цитата(iosifk @ Jul 24 2017, 14:24) *
Расклад такой. Если данные идут только по одной lvds паре, то Вы в проекте должны сделать преобразователь послед->паралл. И к нему на самом входе только добавить примитив "lvds-буфер". При этом весь проект делайте, как FPGA_core и к нему на самом верхнем уровне добавляйте "lvds-буфер". А для RTL симуляции берите только FPGA_core.
В старом тестбенче, xlt у Вас данные вычитываются байтами, сделайте преобразователь "парр->послед". И этого достаточно.
Если хотите подробнее, могу рассказать по скайпу.
Удачи!

Спасибо.

Приём таких данных в ПЛИС - ситуация типовая и всё расписано самим Xilinx, и в этом я разобрался.

У меня было некоторое непонимание, как грамотно создать такой поток данных для моделирования.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 31st July 2025 - 23:40
Рейтинг@Mail.ru


Страница сгенерированна за 0.0137 секунд с 7
ELECTRONIX ©2004-2016