|
LVDS DDR данные из АЦП в ПЛИС |
|
|
|
Jun 30 2014, 18:43
|
Частый гость
 
Группа: Участник
Сообщений: 91
Регистрация: 12-09-11
Пользователь №: 67 135

|
Что не так делаю? Почему вместо синуса вижу корявый меандр? Не реагирует на изменение амплитуды сигнала. С какой стороны младшие биты? (c D0 или с D6) Тактирую ПЛИС по CLK_OUT от АЦП АЦП ADS6145 http://www.ti.com/lit/ds/symlink/ads6145.pdfСпасибо. Код component IBUFGDS -- -- synopsys translate_off generic( DIFF_TERM : boolean := FALSE); -- -- synopsys translate_on port ( I : in std_logic; IB : in std_logic; O : out std_logic); end component; attribute IOSTANDARD of IBUFGDS : component is "DEFAULT"; attribute DIFF_TERM of IBUFGDS : component is "FALSE"; attribute BOX_TYPE of IBUFGDS : component is "BLACK_BOX"; component IBUFDS -- synopsys translate_off generic( DIFF_TERM : boolean := FALSE); -- synopsys translate_on port ( I : in std_logic; IB : in std_logic; O : out std_logic); end component; attribute IOSTANDARD of IBUFDS : component is "DEFAULT"; attribute DIFF_TERM of IBUFDS : component is "FALSE"; attribute BOX_TYPE of IBUFDS : component is "BLACK_BOX";
begin
data_out <= out13 & out12 & out11 & out10 & out9 & out8 & out7 & out6 & out5 & out4 & out3 & out2 & out1 & out0 ;
clk_out <= USER_CLK;
IBUFGDS_1 : IBUFGDS port map (I=>SMA_DIFF_CLK_IN_P, IB=>SMA_DIFF_CLK_IN_N, O=>USER_CLK);
IBUFDS_1 : IBUFDS port map (I=>HDR2_28_SM_11_P, IB=>HDR2_26_SM_11_N, O=>DDR_1); IBUFDS_2 : IBUFDS port map (I=>HDR2_32_DIFF_3_P, IB=>HDR2_30_DIFF_3_N, O=>DDR_2); ....
process(USER_CLK) begin
if (USER_CLK = '1') then out0 <= DDR_0; out2 <= DDR_1; out4 <= DDR_2; out6 <= DDR_3; out8 <= DDR_4; out10<= DDR_5; out12<= DDR_6;
elsif (USER_CLK = '0') then out1 <= DDR_0; out3 <= DDR_1; out5 <= DDR_2; out7 <= DDR_3; out9 <= DDR_4; out11 <= DDR_5; out13 <= DDR_6;
end if;
end process;
|
|
|
|
|
 |
Ответов
|
Jul 3 2014, 06:46
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
дополнительный код - старший бит определяет знак. Если он 1, то для получения модуля надо инвертировать число и прибавить 1, если он 0 то ничего делать не надо.
Но это нужно для получения модуля, для вывода синуса это все делать не надо. При выводе графика у вас нет координат -N, Вам надо преобразовать ваш сигнал из диапазона [-(N+1) : N] в диапазон [0 : 2N+1], как не сложно видеть это делается прибавлением (N+1) к каждому значению. Прелесть дополнительного двоичного кода в том что он прекрасно складывается и сам учитывает знак.
Ко всем значениям прибавляете N+1, и на графике в 0 у вас будет минимум -(N+1), в точке (N+1) у вас будет 0, а в точке 2N+1 у вас будет максимум N.
Хотя это и базовые знания программиста...
По передачи данных в память и вычитыванием их из памяти процом. Обращаю ваше внимание что 2 портовая память все же имеет коллизии, и всегда надо следить что вы не пишите и не читаете в одну область памяти. С другой стороны есть железные элементы FIFO, где с одной стороны пишет ваша АЦП, а с другой стороны читает ПРОЦ. Элементы FIFO как раз и созданы для сопряжения и выравнивания частоты чтения и записи. Эти элементы есть как стандартные IP корки на внутренней памяти, но могут быть созданы и ручками на внешней памяти, с них выходит единый сигнал что в FIFO есть данные, при этом можно настроить что сигнал появляется при достаточном пакете, чтобы вас не дергали каждый отсчет. Строго рекомендую обратить внимание на эти элементы прежде чем вы начнете делать свой автомат записи в двойной буфер. Ибо читая что вы имеете трудности с SPI, я представляю что у вас будет при работе с памятью и кучей флагов....
При этом я уверен что самым правильным решением будет АЦП - FIFO - ПРОЦ (если езернет ,будет успевать передавать даныне) или АЦП - FIFO - DMA - DDR - ПРОЦ (если все таки придется данные буфферизировать), Эти цепочки делаются из стандартных компонентов и не изобилуют кучей флагов и прерываний...
если же надо дать максимальную скорость то надо делать АЦП - FIFO - UDP (руками реализованный на железном уровне) При этом надо использовать свойства FIFO что битность входных и выходных данных может быть разная. То есть АЦП может передавать по 16 бит, а UDP забирать и отправлять по 128 или 256 бит, например (там не все сочетания возможны, но их много)
|
|
|
|
Сообщений в этой теме
Ar-han LVDS DDR данные из АЦП в ПЛИС Jun 30 2014, 18:43 VladimirB Цитата(Ar-han @ Jun 30 2014, 22:43) ... Jun 30 2014, 19:54 doom13 Цитата(VladimirB @ Jun 30 2014, 22:54) Ди... Jun 30 2014, 20:39  druzhin У меня есть рабочие проекты на Spartan-6 по приёму... Jul 4 2014, 18:42   Ar-han Цитата(druzhin @ Jul 4 2014, 22:42) У мен... Jul 4 2014, 22:35    doom13 Цитата(Ar-han @ Jul 5 2014, 01:35) О... Jul 5 2014, 06:58     Ar-han Цитата(doom13 @ Jul 5 2014, 10:58) Откуда... Jul 7 2014, 14:32      Ar-han Цитата(Ar-han @ Jul 7 2014, 18:32) с... Jul 8 2014, 07:07     Ar-han Цитата(doom13 @ Jul 5 2014, 10:58) в вари... Jul 9 2014, 05:45      doom13 Цитата(Ar-han @ Jul 9 2014, 08:45) П... Jul 9 2014, 06:38      doom13 Цитата(Ar-han @ Jul 9 2014, 08:45) Н... Jul 9 2014, 07:11      doom13 Цитата(Ar-han @ Jul 9 2014, 08:45) Т... Jul 9 2014, 07:52 Ar-han Цитата(VladimirB @ Jun 30 2014, 23:54) ПЛ... Jul 1 2014, 05:30  doom13 Цитата(Ar-han @ Jul 1 2014, 08:30) П... Jul 1 2014, 06:32  Ar-han Цитата(Ar-han @ Jul 1 2014, 09:30) X... Jul 1 2014, 10:00 Ar-han Цитата(Ar-han @ Jun 30 2014, 22:43) ... Jul 1 2014, 13:08 doom13 Долго же Вы понимали Jul 1 2014, 13:20  Ar-han Цитата(doom13 @ Jul 1 2014, 17:20) Долго ... Jul 1 2014, 13:59   doom13 Цитата(Ar-han @ Jul 1 2014, 16:59) И... Jul 1 2014, 14:11    Ar-han Цитата(doom13 @ Jul 1 2014, 18:11) Биты у... Jul 1 2014, 14:19 iosifk Цитата(Ar-han @ Jun 30 2014, 22:43) ... Jul 1 2014, 14:21 Ar-han Цитата(iosifk @ Jul 1 2014, 18:21) А симу... Jul 1 2014, 14:26 doom13 Могу предложить, но для этого Вам понадобиться нал... Jul 1 2014, 14:35 Ar-han Цитата(doom13 @ Jul 1 2014, 18:31) Могу п... Jul 1 2014, 14:39  doom13 Цитата(Ar-han @ Jul 1 2014, 17:39) Ж... Jul 1 2014, 14:53   Ar-han Цитата(doom13 @ Jul 1 2014, 18:53) Баг в ... Jul 1 2014, 17:53  Timmy А я посоветую сначала запустить SPI и перевести АЦ... Jul 1 2014, 16:08 Golikov A. А у вас не с АЦП проблемы? В ветке армов обсуждало... Jul 1 2014, 14:47 Golikov A. ЦитатаПозвольте спросить, Вы работали с АЦП с похо... Jul 1 2014, 16:22 doom13 Цитата(Golikov A. @ Jul 1 2014, 19:22) Ну... Jul 1 2014, 20:26  Ar-han Цитата(doom13 @ Jul 2 2014, 00:26) Но, во... Jul 2 2014, 07:37   doom13 Цитата(Ar-han @ Jul 2 2014, 10:37) П... Jul 2 2014, 09:44   doom13 Цитата(Ar-han @ Jul 2 2014, 10:37) И... Jul 2 2014, 10:28    Ar-han Цитата(doom13 @ Jul 2 2014, 14:28) Судя п... Jul 2 2014, 12:39     doom13 Цитата(Ar-han @ Jul 2 2014, 15:39) Д... Jul 2 2014, 12:50      Ar-han Цитата(doom13 @ Jul 2 2014, 16:50) Если х... Jul 3 2014, 04:43     doom13 Цитата(Ar-han @ Jul 2 2014, 15:39) Я... Jul 2 2014, 15:55      Ar-han Цитата(doom13 @ Jul 2 2014, 19:55) Чтение... Jul 2 2014, 18:52       doom13 Цитата(Ar-han @ Jul 2 2014, 21:52) С... Jul 2 2014, 20:11  Timmy Цитата(doom13 @ Jul 2 2014, 00:26) но инт... Jul 2 2014, 10:14 doom13 Цитата(Golikov A. @ Jul 3 2014, 09:46)
М... Jul 3 2014, 07:58 Ar-han Цитата(Golikov A. @ Jul 3 2014, 10:46) до... Jul 3 2014, 19:57 Golikov A. ЦитатаЭто, насколько я понимаю преобразование в пр... Jul 4 2014, 05:47 doom13 Цитата(Golikov A. @ Jul 4 2014, 08:47) Гл... Jul 4 2014, 07:50 Ar-han Цитата(Golikov A. @ Jul 4 2014, 09:47) не... Jul 4 2014, 09:19 Golikov A. Цитатано если использовать прерывание от GPIO, как... Jul 4 2014, 08:18 doom13 Цитата(Golikov A. @ Jul 4 2014, 11:18) Сн... Jul 4 2014, 16:37 Golikov A. а ну да... это я действительно тупанул. Инверсия с... Jul 4 2014, 10:39 Ar-han Цитата(Golikov A. @ Jul 4 2014, 14:39) Вы... Jul 4 2014, 11:32 Golikov A. ЦитатаПриведите пример подразумеваемого процессора... Jul 4 2014, 16:45 doom13 Цитата(Golikov A. @ Jul 4 2014, 19:45) LP... Jul 4 2014, 17:34 Golikov A. ЦитатаТут Вы не разобрались в предложенном вариант... Jul 4 2014, 18:33 doom13 Цитата(Golikov A. @ Jul 4 2014, 21:33) Я ... Jul 4 2014, 19:35 doom13 А что там с режимом SDR CMOS, можете джампер переб... Jul 7 2014, 20:09 Golikov A. ЦитатаПодвигать фазу PLL скорее всего не получится... Jul 7 2014, 20:22 doom13 Цитата(Golikov A. @ Jul 7 2014, 23:22) Ну... Jul 7 2014, 21:29 Golikov A. Перейдите уже на FIFO в конце концов...
Брать 2 ... Jul 9 2014, 07:03 Golikov A. ЦитатаУ меня есть пример констрейна для входного с... Jul 9 2014, 07:17 Golikov A. У меня нет времени и желания разбираться в предлож... Jul 9 2014, 09:05 doom13 Цитата(Golikov A. @ Jul 9 2014, 12:05) У ... Jul 9 2014, 10:01 Golikov A. FIFO
1. Размер отправляемого пакета - любой задает... Jul 9 2014, 10:15 doom13 Цитата(Golikov A. @ Jul 9 2014, 13:15) Не... Jul 9 2014, 10:52 doom13 Цитата(Golikov A. @ Jul 9 2014, 13:15) FI... Jul 9 2014, 11:55
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|