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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Трансмиттер ALTGX выдаёт константу
mekashikuta
сообщение Aug 23 2011, 14:32
Сообщение #16





Группа: Участник
Сообщений: 14
Регистрация: 10-08-11
Пользователь №: 66 648



Насколько я понял из описания, правда у меня частный случай, а именно сата интерфейс, то там придется еще самому реализовывать автомат OOB состояний. никто с этим не сталкивался ? и в моем случае к сожалению даже на модели одним gxb_powerdown уж точно не обойтись. сейчас ситуация такая, что трансивер не выходит из состояния rx_locktorefclk по причине отсутсвия активного сигнала rx_signaldetect.

Причем основная головоломка в том, когда именно начинать разворачивать времянку OOB поледовательности. на данный момент самым логичным кажется вариант сразу после того как отпускается rx_analogreset.
Go to the top of the page
 
+Quote Post
Putnik
сообщение Aug 25 2011, 12:34
Сообщение #17


Местный
***

Группа: Свой
Сообщений: 214
Регистрация: 4-09-07
Из: Зеленоград
Пользователь №: 30 272



разгребаю DEMO SATA проект(приаттачен) c диска к SATA/SAS Daughter Card, насколько понимаю собран он из периферийных блоков для ниоса, но без ниоса. cranky.gif

но самое интересное, в файле nios_bts_port_core.v подцепляются конструкцией generate if относительно 2-х параметров (component_type && serial_channels) блоки altgx и altgx_reconfig
Но!!! параметры определены component_type = XCVRS и serial_channels = 6, а квартус цепляет другие блоки с параметрами (component_type == "S4GX_HSM_XCVR") && (serial_channels == 4). Почему так, хоть убейся не понятно, эти параметры больше нигде не используются smile3046.gif

nios_bts_port_core.v находится по маршруту \pld\bts\bts_com\lib\hw\ports\
Прикрепленные файлы
Прикрепленный файл  hsmc_loopback_dev_kit_refclk_s4gx230.zip ( 2.27 мегабайт ) Кол-во скачиваний: 23
 


--------------------
за Навального!
Go to the top of the page
 
+Quote Post
myq
сообщение Aug 25 2011, 13:28
Сообщение #18


Местный
***

Группа: Свой
Сообщений: 208
Регистрация: 11-05-04
Из: World wide
Пользователь №: 3



Цитата(mekashikuta @ Aug 23 2011, 18:32) *
Насколько я понял из описания, правда у меня частный случай, а именно сата интерфейс, то там придется еще самому реализовывать автомат OOB состояний. никто с этим не сталкивался ? и в моем случае к сожалению даже на модели одним gxb_powerdown уж точно не обойтись. сейчас ситуация такая, что трансивер не выходит из состояния rx_locktorefclk по причине отсутсвия активного сигнала rx_signaldetect.

Причем основная головоломка в том, когда именно начинать разворачивать времянку OOB поледовательности. на данный момент самым логичным кажется вариант сразу после того как отпускается rx_analogreset.


Я думаю, обмен начинается после rx_signaldetect.


--------------------
IPSA SCIENTIA POTESTAS EST
Go to the top of the page
 
+Quote Post
mekashikuta
сообщение Aug 31 2011, 10:37
Сообщение #19





Группа: Участник
Сообщений: 14
Регистрация: 10-08-11
Пользователь №: 66 648



Вот пока что не удается rx_signaldetect без реализации OOB заставить шевелится ((
Go to the top of the page
 
+Quote Post
mekashikuta
сообщение Sep 21 2011, 12:45
Сообщение #20





Группа: Участник
Сообщений: 14
Регистрация: 10-08-11
Пользователь №: 66 648



Кстати никто не знает что за патч такой version 10.1 Patch 0.63 for Windows (.exe) на официальном сайте не дает возможности его скачать, пишет что нет такой странички.
Go to the top of the page
 
+Quote Post
Shivers
сообщение Sep 21 2011, 16:11
Сообщение #21


Знающий
****

Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950



Может, ктонибудь знает, мне квартус 11.0 SP1 постоянно вываливает ошибки:
Critical Warning: GXB Central Management Unit (CMU) <Instance specific to your design> is not connected to a GXB reconfig logic block, but the RX offset cancellation feature requires that it must be
ошибка вроде как описана здесь сайт альтеры , но решение мне не помогает.

В кратце, моя ситуация: startixIV, пытаюсь вставить в проект мегафункцию altgx в режиме 4x. После прочтения солюшна догадался сконфигурить и добавить в проект мегафункцию altgxreconfig, в минимальной конфигурации (reconfig_to / from gxb и reconfig_clk), и подключил порты. Но, не помогает, выдает тот же критикал ворнинг.
Ошибки вываливаются в количестве 8 штук - на 4 ресивера и 4 трансивера


Upd: Нашел ошибку в подключении портов, вопрос снят.
Go to the top of the page
 
+Quote Post
myq
сообщение Sep 27 2011, 14:19
Сообщение #22


Местный
***

Группа: Свой
Сообщений: 208
Регистрация: 11-05-04
Из: World wide
Пользователь №: 3



Цитата(mekashikuta @ Sep 21 2011, 16:45) *
Кстати никто не знает что за патч такой version 10.1 Patch 0.63 for Windows (.exe) на официальном сайте не дает возможности его скачать, пишет что нет такой странички.


Где-то находился на оф.сайте, непомню где именно.


--------------------
IPSA SCIENTIA POTESTAS EST
Go to the top of the page
 
+Quote Post
mekashikuta
сообщение Oct 12 2011, 13:51
Сообщение #23





Группа: Участник
Сообщений: 14
Регистрация: 10-08-11
Пользователь №: 66 648



При компилировании проекта, когда начинает работать quartus_asm выдает такую инфу "Info: Command: quartus_asm --read_settings_files=off --write_settings_files=off PROJECT -c PROJECT
" . Складывается такое впечатление что квартус ассемблер не подчитывает установки в файле *.qsf, не подскажете возможно ли из оболочки включить какую нибудь настройку, чтобы команда выполнялась вот таким вот образом :"quartus_asm --read_settings_files=on --write_settings_files=off PROJECT-c PROJECT"? Заранее всем огромное спасибо.
Go to the top of the page
 
+Quote Post
spectr
сообщение Oct 18 2011, 10:24
Сообщение #24


Местный
***

Группа: Свой
Сообщений: 285
Регистрация: 10-12-04
Из: Earth
Пользователь №: 1 437



Пытаюсь смоделировать работу ALTGX в моделсиме.

Компилируется успешно, но при симуляции vsim почему-то выдает ошибку что не видит следующие порты:
Код
# ** Error: (vsim-3389) d:/projects/fpga/arria_gx/testbench/tb.v(73): Port 'rx_digitalreset' not found in the connected module (4th connection).
#         Region: /tb/transceiver
# ** Error: (vsim-3389) d:/projects/fpga/arria_gx/testbench/tb.v(73): Port 'rx_analogreset' not found in the connected module (5th connection).
#         Region: /tb/transceiver
# ** Error: (vsim-3389) d:/projects/fpga/arria_gx/testbench/tb.v(73): Port 'tx_digitalreset' not found in the connected module (6th connection).
#         Region: /tb/transceiver
# ** Error: (vsim-3389) d:/projects/fpga/arria_gx/testbench/tb.v(73): Port 'gxb_powerdown' not found in the connected module (7th connection).
#         Region: /tb/transceiver
# ** Error: (vsim-3389) d:/projects/fpga/arria_gx/testbench/tb.v(73): Port 'pll_powerdown' not found in the connected module (8th connection).
#         Region: /tb/transceiver
# ** Error: (vsim-3389) d:/projects/fpga/arria_gx/testbench/tb.v(73): Port 'pll_locked' not found in the connected module (14th connection).
#         Region: /tb/transceiver
# ** Error: (vsim-3389) d:/projects/fpga/arria_gx/testbench/tb.v(73): Port 'rx_pll_locked' not found in the connected module (15th connection).
#         Region: /tb/transceiver
# ** Error: (vsim-3389) d:/projects/fpga/arria_gx/testbench/tb.v(73): Port 'rx_freqlocked' not found in the connected module (16th connection).
#         Region: /tb/transceiver
# ** Fatal: (vsim-3365) d:/projects/fpga/arria_gx/testbench/tb.v(73): Too many port connections. Expected 11, found 19.


В мегавизарде, в сгенерированных им файлах все эти порты присутствуют, но симулятор их в упор не видит..... Что я делаю не так?
П.С.: до этого удавалось запустить симуляцию (но в тот раз перечисленные порты как раз были отключены в мегавизарде).

Все библиотеки и файлы обновляются - проверял, удалял, перегенерировал уже по сто раз.
Симуляцию запускаю вот так:
Код
vsim -L altera_mf -L lpm -L sgate -L arriaii_hssi lib/work.tb




Блин, стоило только написать пост как через минуту нашел досадную опечатку sm.gif Вопрос снят.

Сообщение отредактировал spectr - Oct 18 2011, 10:27
Go to the top of the page
 
+Quote Post
spectr
сообщение Oct 18 2011, 11:37
Сообщение #25


Местный
***

Группа: Свой
Сообщений: 285
Регистрация: 10-12-04
Из: Earth
Пользователь №: 1 437



Удалось все завести. Теперь такой вопрос - может ли ALTGX выдавать данные вперемешку с embedded-клоком? Пока на выходе (tx) что вижу только данные.....

То есть хотелось бы что-то вроде данных, обрамленных старт-стоповыми битами, являющимися emb-клоком... Он такое сумеет? Насколько я понял, нет и придется как-то делать это самому. Но могу ведь ошибаться )



Еще один вопрос вдогонку:
Приемник трансивера настроен на выделение клока из данных (CDR-mode). Каким образом надо подмешивать в данные этот клок? Старт-стоповые биты или как-то еще? Пока что не очень понятно как он выделит такт из потока данных...

Сообщение отредактировал spectr - Oct 18 2011, 12:22
Go to the top of the page
 
+Quote Post
spectr
сообщение Oct 19 2011, 14:23
Сообщение #26


Местный
***

Группа: Свой
Сообщений: 285
Регистрация: 10-12-04
Из: Earth
Пользователь №: 1 437



Кто работал с этой коркой, подскажите как можно красиво из положения:

На вход идут 12-битные данные (10 бит данные, обрамленные старт-стоповыми битами), однако ALTGX умеет принимать только 8, 10, 16 или 20 бит.
Сейчас пытаюсь сделать следующим образом: трансивер настроен на 16 бит и синхронизацию по определенному коду.
Внешним устройством перед началом передачи данных отсылается синхронизирующий код, после чего начинается передача данных.
Далее по идее достаточно из 16-битного выхода трансивера выковыривать нужные биты. Но проблема в том, что 12 битные данные "плывут" внутри 16-битного выхода, т.е. каждый раз нужно брать разные биты из этой шины. Как можно здесь поступить?

Сообщение отредактировал spectr - Oct 20 2011, 08:46
Go to the top of the page
 
+Quote Post
spectr
сообщение Oct 20 2011, 08:46
Сообщение #27


Местный
***

Группа: Свой
Сообщений: 285
Регистрация: 10-12-04
Из: Earth
Пользователь №: 1 437



Решил эту проблему следующим образом: накапливаю в буфер по 3 16-битных слова, после чего выдаю 40 бит данных. Этот принцип - следствие того, что 16*3=48 и 12*4=48. Такое соотношение позволяет передавать данные "фреймами" по 48 бит. Но т.к. в данных есть старт-стоповые биты (по 2 бита на каждые 12), то истинных данных в итоговом фрейме будет 40 бит.

Однако, обнаружилась следующая проблема: шина rx_dataout "плывет"... Пока не могу понять что является причиной этого поведения. Неверно настроено ядро, неверно формирую вход или же нужно дополнительно делать какую-то следящую за этим "уплывом"логику? У кого какие мысли? Картинку прилагаю. На ней красной линией показано направление сдвига данных... Собственно, сейчас только оно все портит...

Прикрепленное изображение
Go to the top of the page
 
+Quote Post
warrior-2001
сообщение Oct 20 2011, 09:51
Сообщение #28


Местный
***

Группа: Свой
Сообщений: 375
Регистрация: 9-10-08
Из: Таганрог, Ростовская обл.
Пользователь №: 40 792



Цитата(spectr @ Oct 20 2011, 12:46) *
...
Однако, обнаружилась следующая проблема: шина rx_dataout "плывет"...


Советую покурить доки. Помочь должны сигналы rx_patterndetect, а так же ключевые слова Word Aligner и Byte Ordering Block.


--------------------
Глупцы игнорируют сложность. Прагматики терпят ее. Некоторые могут избегать ее. Гении ее устраняют.
Go to the top of the page
 
+Quote Post
spectr
сообщение Oct 20 2011, 12:50
Сообщение #29


Местный
***

Группа: Свой
Сообщений: 285
Регистрация: 10-12-04
Из: Earth
Пользователь №: 1 437



Доки курю, но пока не все непонятно.

Упростил проект: перевел трансивер в 8-битный режим, оставил только тупой счетчик - та же фигня...
Что интересн, стробы syncstatus и patterndetect появляются, word aligner выравнивает данные как надо но через какое-то время данные все равно плывут (картинка аналогична приведенной постом выше).......
Я так понимаю, тут даже Byte Ordering не поможет, поскольку ему надо будет как-то следить за этим уплывом.....
Go to the top of the page
 
+Quote Post
spectr
сообщение Oct 21 2011, 11:43
Сообщение #30


Местный
***

Группа: Свой
Сообщений: 285
Регистрация: 10-12-04
Из: Earth
Пользователь №: 1 437



Удалось стабилизировать ситуацию следующим образом: в качестве генератора быстрого клока внешнего устройства использовал ALTPLL. Все заработало - ALTGX детектит нужный паттерн и замечательно синхрится.

Однако, меня мучает вопрос - почему же, когда я генерирую частоту самостоятельно (речь идет о тестбенче), то приемник трансивера, такое ощущение, что срывается. ALTPLL генерирует частоту более точно, чем я?

До ALTPLL данные выдавал так (эмуляция внешнего устройства):
Код
    parameter data_rate = 792; // Mbps
    parameter data_period = (1 / (data_rate * 1e6)) * 1e9;

    task send_word;
        input [15:0] data;
        begin
                            rx_datain = data[0];
            #data_period    rx_datain = data[1];
            #data_period    rx_datain = data[2];
            #data_period    rx_datain = data[3];
            #data_period    rx_datain = data[4];
            #data_period    rx_datain = data[5];
            #data_period    rx_datain = data[6];
            #data_period    rx_datain = data[7];
            #data_period;
        end
    endtask

    // send sync pattern
     send_word(8'h 6f);
     send_word(8'h 14);

    // send data
    forever begin
        send_word(cnt);
        cnt = cnt + 1;
    end



Сейчас же делаю так (эмуляция внешнего устройства):
Код
    always @(posedge rx_clkout) if(rx_syncstatus & rx_patterndetect) rx_enapatternalign <= 0;

    fastpll fastpll
        (
            .inclk0     (pll_inclk), // pll_inclk_freq = 79.2
            .c0         (fast_clk),  // pll_inclk * 10
            .locked     ()
        );

    always @(posedge pll_inclk) begin
        cnt <= cnt + 1;
    end

    always @(posedge fast_clk) begin
        fast_bit_cnt <= fast_bit_cnt + 1;
        fast_reg <= cnt[fast_bit_cnt];
    end


В чем тут принципиальная разница? Такое ощущение что раньше выход трансивера плыл, потому что медленно плыл поток сериализованных данных на входе трансивера. Но я пока не могу понять как мне увидеть где сидит эта разница между моим (очевидно косячным кодом) и ALTPLL?
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 17th June 2025 - 19:05
Рейтинг@Mail.ru


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