|
Трансмиттер ALTGX выдаёт константу |
|
|
|
Aug 23 2011, 14:32
|
Группа: Участник
Сообщений: 14
Регистрация: 10-08-11
Пользователь №: 66 648

|
Насколько я понял из описания, правда у меня частный случай, а именно сата интерфейс, то там придется еще самому реализовывать автомат OOB состояний. никто с этим не сталкивался ? и в моем случае к сожалению даже на модели одним gxb_powerdown уж точно не обойтись. сейчас ситуация такая, что трансивер не выходит из состояния rx_locktorefclk по причине отсутсвия активного сигнала rx_signaldetect.
Причем основная головоломка в том, когда именно начинать разворачивать времянку OOB поледовательности. на данный момент самым логичным кажется вариант сразу после того как отпускается rx_analogreset.
|
|
|
|
|
Aug 25 2011, 12:34
|
Местный
  
Группа: Свой
Сообщений: 214
Регистрация: 4-09-07
Из: Зеленоград
Пользователь №: 30 272

|
разгребаю DEMO SATA проект(приаттачен) c диска к SATA/SAS Daughter Card, насколько понимаю собран он из периферийных блоков для ниоса, но без ниоса. но самое интересное, в файле 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). Почему так, хоть убейся не понятно, эти параметры больше нигде не используются nios_bts_port_core.v находится по маршруту \pld\bts\bts_com\lib\hw\ports\
--------------------
за Навального!
|
|
|
|
|
Aug 25 2011, 13:28
|

Местный
  
Группа: Свой
Сообщений: 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
|
|
|
|
|
Aug 31 2011, 10:37
|
Группа: Участник
Сообщений: 14
Регистрация: 10-08-11
Пользователь №: 66 648

|
Вот пока что не удается rx_signaldetect без реализации OOB заставить шевелится ((
|
|
|
|
|
Sep 21 2011, 12:45
|
Группа: Участник
Сообщений: 14
Регистрация: 10-08-11
Пользователь №: 66 648

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

Знающий
   
Группа: Свой
Сообщений: 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: Нашел ошибку в подключении портов, вопрос снят.
|
|
|
|
|
Sep 27 2011, 14:19
|

Местный
  
Группа: Свой
Сообщений: 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
|
|
|
|
|
Oct 12 2011, 13:51
|
Группа: Участник
Сообщений: 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"? Заранее всем огромное спасибо.
|
|
|
|
|
Oct 18 2011, 10: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 Блин, стоило только написать пост как через минуту нашел досадную опечатку  Вопрос снят.
Сообщение отредактировал spectr - Oct 18 2011, 10:27
|
|
|
|
|
Oct 19 2011, 14:23
|

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

|
Кто работал с этой коркой, подскажите как можно красиво из положения:
На вход идут 12-битные данные (10 бит данные, обрамленные старт-стоповыми битами), однако ALTGX умеет принимать только 8, 10, 16 или 20 бит. Сейчас пытаюсь сделать следующим образом: трансивер настроен на 16 бит и синхронизацию по определенному коду. Внешним устройством перед началом передачи данных отсылается синхронизирующий код, после чего начинается передача данных. Далее по идее достаточно из 16-битного выхода трансивера выковыривать нужные биты. Но проблема в том, что 12 битные данные "плывут" внутри 16-битного выхода, т.е. каждый раз нужно брать разные биты из этой шины. Как можно здесь поступить?
Сообщение отредактировал spectr - Oct 20 2011, 08:46
|
|
|
|
|
Oct 20 2011, 09:51
|
Местный
  
Группа: Свой
Сообщений: 375
Регистрация: 9-10-08
Из: Таганрог, Ростовская обл.
Пользователь №: 40 792

|
Цитата(spectr @ Oct 20 2011, 12:46)  ... Однако, обнаружилась следующая проблема: шина rx_dataout "плывет"... Советую покурить доки. Помочь должны сигналы rx_patterndetect, а так же ключевые слова Word Aligner и Byte Ordering Block.
--------------------
Глупцы игнорируют сложность. Прагматики терпят ее. Некоторые могут избегать ее. Гении ее устраняют.
|
|
|
|
|
Oct 21 2011, 11:43
|

Местный
  
Группа: Свой
Сообщений: 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?
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|