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

 
 
 
Reply to this topicStart new topic
> PCIe x4, xc5vfx30t, Не работает, подскажите, в чем может быть дело
StrangerX
сообщение Aug 1 2013, 06:04
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 7-08-09
Пользователь №: 51 787



Доброго времени суток.

Имеется плата собственного изготовления.
На борту xc5vfx30t, PCIe x4

Прикрепленное изображение

На MGT заведен клок от внутреннего генератора 100.000MHz.
Прикрепленное изображение

(FC пока не интересует)
Создан endpoint block plus с помощью core-генератора. Скопированы полученные файлы практически без изменений. Структура проекта:

Код
--xilinx_pci_exp_ep.v
    --pci_exp_64b_app.v
        --PIO.v
            --PIO_EP.v
                --PIO_EP_MEM_ACCESS.v
                    --EP_MEM.v
                --PIO_64_RX_ENGINE.v
                --PIO_64_TX_ENGINE.v
    --ep_pcie.v
        --pcie_ep.v
            --pcie_top.v
                --pcie_reset_logic.v
                --pcie_clocking.v
                --prod_fixes.v
                --pcie_mim_wrapper.v
                    --bram_common.v x3
                --pcie_gt_wrapper_top.v
                    --pcie_gt_wrapper.v x2
                        --tx_sync.v
            --pcie_blk_if.v
                --pcie_blk_ll.v
                    --pcie_blk_plus_ll_tx.v
                        --pcie_blk_ll_tx_arb.v
                        --pcie_blk_ll_tx.v
                    --pcie_blk_plus_ll_rx.v
                        --tlm_rx_data_snk.v
                            --tlm_rx_data_snk_mal.v
                            --tlm_rx_data_snk_pwr_mgmt.v
                            --tlm_rx_data_snk_bar.v
                        --cmm_decoder.v
                        --pcie_blk_ll_oqbqfifo.v
                            --sync_fifo.v x2
                        --pcie_blk_ll_arb.v
                    --pcie_blk_ll_credit.v
                        my_SRL16E x17
                --pcie_blk_cf.v
                    --pcie_blk_cf_mgmt.v
                    --pcie_blk_cf_err.v
                        --cmm_errman_cor.v x2
                        --cmm_errman_cnt_en.v x5
                        --cmm_errman_ftl.v
                        --cmm_errman_cpl.v x2
                        --cmm_errman_ram4x26.v
                        --cmm_errman_ram8x26.v
                    --pcie_blk_cf_arb.v
                    --pcie_blk_cf_pwr.v
                    --pcie_soft_int.v
                        --cmm_intr.v
            --extend_clk.v
--xilinx_pci_exp_blk_plus_4_lane_ep_xc5vfx30t-ff665-1.ucf


Привожу ucf:
Код
CONFIG PART = xc5vfx30t-ff665-1;
NET "sys_clk_p" LOC = K4;
NET "sys_clk_n" LOC = K3;
NET "sys_clk_n" DIFF_TERM = "TRUE";
NET "sys_clk_p" DIFF_TERM = "TRUE";
# PCIe Lanes 0, 1
INST "ep/pcie_ep0/pcie_blk/SIO/.pcie_gt_wrapper_i/GTD[0].GT_i" LOC = GTX_DUAL_X0Y3;
# PCIe Lanes 2, 3
INST "ep/pcie_ep0/pcie_blk/SIO/.pcie_gt_wrapper_i/GTD[2].GT_i" LOC = GTX_DUAL_X0Y2;
INST "ep/pcie_ep0/pcie_blk/pcie_ep" LOC = PCIE_X0Y0;
# BlockRAM placement
INST "ep/pcie_ep0/pcie_blk/pcie_mim_wrapper_i/bram_retry/generate_sdp.ram_sdp_inst" LOC = RAMB36_X4Y4;
INST "ep/pcie_ep0/pcie_blk/pcie_mim_wrapper_i/bram_tl_tx/generate_tdp2[1].ram_tdp2_inst" LOC = RAMB36_X4Y3;
INST "ep/pcie_ep0/pcie_blk/pcie_mim_wrapper_i/bram_tl_rx/generate_tdp2[1].ram_tdp2_inst" LOC = RAMB36_X4Y2;
INST "ep/pcie_ep0/pcie_blk/pcie_mim_wrapper_i/bram_tl_tx/generate_tdp2[0].ram_tdp2_inst" LOC = RAMB36_X4Y1;
INST "ep/pcie_ep0/pcie_blk/pcie_mim_wrapper_i/bram_tl_rx/generate_tdp2[0].ram_tdp2_inst" LOC = RAMB36_X4Y0;
NET "sys_clk_c" PERIOD = 10 ns;
NET "ep/pcie_ep0/pcie_blk/SIO/.pcie_gt_wrapper_i/gt_refclk_out[0]" TNM_NET = "MGTCLK";
TIMESPEC TS_MGTCLK = PERIOD "MGTCLK" 100 MHz HIGH 50 %;
NET "pci_exp_rxp[0]" LOC = C1;
NET "pci_exp_rxp[2]" LOC = J1;
NET "prsnt" LOC = G15;

Прошиваю, жду, что компьютер проведет энумекрацию, или хотя бы что-то, ничего не происходит.
Попробовал warm reset, как xilinx советует, ничего.
Полез глубже.
trn_reset_n - 0
(RESET_DONE 1) - pll залочена.
trn_lnk_up_n - в единице, что с этим делать не знаю.

Помогите, пожалуйста, добрые люди. Весь измучился.
Go to the top of the page
 
+Quote Post
crono
сообщение Aug 1 2013, 10:27
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 94
Регистрация: 28-11-12
Из: Москва
Пользователь №: 74 605



А моделировать пробовали?
Go to the top of the page
 
+Quote Post
Bad0512
сообщение Aug 1 2013, 12:01
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 802
Регистрация: 11-05-07
Из: Томск
Пользователь №: 27 650



Цитата(StrangerX @ Aug 1 2013, 13:04) *
Доброго времени суток.

Имеется плата собственного изготовления.
На борту xc5vfx30t, PCIe x4

Имхо в такой конфигурации ваша плата должна "видеться" БИОСом как x1 устройство вставленное в слот x4 x8 или x16 (зависит от вашей материнской платы). Ваше ядро поддерживает такой режим работы?
Сдаётся мне что малость намудрили вы с сигналами PRSNT1 PRSNT2 на разъёме. Посмотрите как это сделано в ML605 например.

Go to the top of the page
 
+Quote Post
StrangerX
сообщение Aug 1 2013, 13:47
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 7-08-09
Пользователь №: 51 787



Спасибо за быстрые ответы.
Цитата
А моделировать пробовали?

Да, соделировал с той обвязкой, что предоставлена xilinx - работает.
Цитата
Имхо в такой конфигурации ваша плата должна "видеться" БИОСом как x1 устройство вставленное в слот x4 x8 или x16 (зависит от вашей материнской платы). Ваше ядро поддерживает такой режим работы?
Сдаётся мне что малость намудрили вы с сигналами PRSNT1 PRSNT2 на разъёме. Посмотрите как это сделано в ML605 например.

Вставляю в порт x16. Bios не видит.
Объясните, пожалуйста, почему должен видеть как x1?

Почему Вы считаете, что мой вариант использовать буфер DD1 хуже, чем вариант с резистивным делителем в ML605?
Go to the top of the page
 
+Quote Post
crono
сообщение Aug 1 2013, 14:32
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 94
Регистрация: 28-11-12
Из: Москва
Пользователь №: 74 605



Прошивка в ПЛИС откуда грузится? Может, время загрузки превышает допустимое? BitStream Compression включен?
Go to the top of the page
 
+Quote Post
StrangerX
сообщение Aug 1 2013, 16:04
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 7-08-09
Пользователь №: 51 787



Цитата(crono @ Aug 1 2013, 18:32) *
Прошивка в ПЛИС откуда грузится? Может, время загрузки превышает допустимое? BitStream Compression включен?

Прошивка грузится из XCF16. Сжатие отключено. Если бы было в этом дело, думаю помогла бы программная перезагрузка. Пробовал. Где-то я накосячил... Не может быть дело в том, что клок 100MHz у меня не синхронный?
Go to the top of the page
 
+Quote Post
krux
сообщение Aug 1 2013, 17:14
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596



судя по trn_lnk_up_n == 1 физический линк у вас не поднялся. Ессесно не могло быть никакой речи об энумерации и прочем.
Первым делом проверьте, выключен ли в биосе spread spectrum для PCIe.
Второе - заведите для начала x1 линк.
Надо ещё покопаться в документации - я не уверен в правильности выбора конкретных GTX_DUAL и разводки. Не получилось ли у вас ненароком некая недопустимая комбинация с Lane reversal?

Цитата
На MGT заведен клок от внутреннего генератора 100.000MHz.

а на схеме я его не вижу в упор.


--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
Go to the top of the page
 
+Quote Post
StrangerX
сообщение Aug 2 2013, 05:44
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 7-08-09
Пользователь №: 51 787



Цитата(krux @ Aug 1 2013, 21:14) *
судя по trn_lnk_up_n == 1 физический линк у вас не поднялся. Ессесно не могло быть никакой речи об энумерации и прочем.
Первым делом проверьте, выключен ли в биосе spread spectrum для PCIe.
Второе - заведите для начала x1 линк.
Надо ещё покопаться в документации - я не уверен в правильности выбора конкретных GTX_DUAL и разводки. Не получилось ли у вас ненароком некая недопустимая комбинация с Lane reversal?


а на схеме я его не вижу в упор.


Про комбинацию не знаю, делал по даташиту, мог где-нибудь напутать, конечно, но проверял уже много раз.
Я потому и написал про линк, что его нет и биос тут уже не причем.
spread spectrum настройки в моем биосе нет.

А про то, что не видно на схеме, я же не могу все 9 страниц выложить, ни у кого терпения не хватит читать. Клоки:
Прикрепленное изображение

Вместо 125МГц стоит генератор на 100.

Странно, что меня никто не спросил, почему на второй схеме 125МГц стоит, а не 100.

Сообщение отредактировал StrangerX - Aug 2 2013, 05:46
Go to the top of the page
 
+Quote Post
krux
сообщение Aug 2 2013, 08:22
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596



Если на вашей материнке spread spectrum включен, а на PCIe плате клок для интерфейса идёт от отдельного генератора - то интерфейс работать не будет. Попробуйте с другой материнкой, либо ставьте честный буфер от клока с разъема.
Всю схему приводить - это понятно что смысла нет. По картинкам 1 и 2 и названиям цепей я понял только что подвода 100 МГц к ПЛИС в нужном месте у вас нет, о чем собственно и написал.

теперь вот вижу что есть.


--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
Go to the top of the page
 
+Quote Post
StrangerX
сообщение Aug 30 2013, 11:04
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 7-08-09
Пользователь №: 51 787



Цитата(krux @ Aug 2 2013, 12:22) *
Если на вашей материнке spread spectrum включен, а на PCIe плате клок для интерфейса идёт от отдельного генератора - то интерфейс работать не будет. Попробуйте с другой материнкой, либо ставьте честный буфер от клока с разъема.
Всю схему приводить - это понятно что смысла нет. По картинкам 1 и 2 и названиям цепей я понял только что подвода 100 МГц к ПЛИС в нужном месте у вас нет, о чем собственно и написал.

теперь вот вижу что есть.

Проверил с другой материнкой. Там есть spread spectrum. Tak же не хочет работать.
Провел ещё раз моделирование на всякий случай морделируется. Ничего...
Go to the top of the page
 
+Quote Post
ivanoffer
сообщение Aug 30 2013, 18:50
Сообщение #11


Частый гость
**

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



Цитата(StrangerX @ Aug 30 2013, 15:04) *
Проверил с другой материнкой. Там есть spread spectrum. Tak же не хочет работать.
Провел ещё раз моделирование на всякий случай морделируется. Ничего...


Ваша история напоминает мою. Не все материнские платы дружат с PCIe устройствами,
имеющими свой опорный такт 100МГц какой бы стабильный он не был. Этому есть ряд причин,
вдаваться не буду. Могу посоветовать сначала подать на опорный тактовый вход клок с
ламелей PCIe разъема, например, лакированными скрученными проводами. Припаять можно,
проверял (естественно через разделительные емкости).
Go to the top of the page
 
+Quote Post
Flood
сообщение Aug 30 2013, 20:04
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 702
Регистрация: 8-06-06
Пользователь №: 17 871



Цитата(StrangerX @ Aug 1 2013, 10:04) *
Доброго времени суток.

Имеется плата собственного изготовления.
На борту xc5vfx30t, PCIe x4

Прикрепленное изображение


Что-то я не пойму, как у вас символ разъема нарисован. То ли RX c TX перепутаны, то ли стороны разъема. Где физически находится пин A1 на ножевом разъеме реальной платы?
Если символ нарисован так, будто бы фаска ножевого разъема смотрит на зрителя, то похоже на перепутку RX / TX.
И еще ,имхо, PERST# зря не использован. Ну а про пользу применения тактового сигнала с разъема тут уже говорили.
Go to the top of the page
 
+Quote Post
FLTI
сообщение Sep 1 2013, 17:57
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 399
Регистрация: 8-06-05
Пользователь №: 5 832



Цитата(ivanoffer @ Aug 30 2013, 22:50) *
Могу посоветовать сначала подать на опорный тактовый вход клок с
ламелей PCIe разъема, например, лакированными скрученными проводами. Припаять можно,
проверял (естественно через разделительные емкости).

Немого офф. Стоит ли ставить clock cleaner на клок с PCIe?
Разумеется не при навесном монтаже, а на плате.
Go to the top of the page
 
+Quote Post
StrangerX
сообщение Sep 12 2013, 13:37
Сообщение #14


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 7-08-09
Пользователь №: 51 787



Посмотрел ltssm_state с помощью chipscope - останавливается на значении 2 - polling. Подскажите кто-нибудь, пожалуйста, что это может значить.
Go to the top of the page
 
+Quote Post
Flood
сообщение Sep 13 2013, 17:43
Сообщение #15


Знающий
****

Группа: Свой
Сообщений: 702
Регистрация: 8-06-06
Пользователь №: 17 871



Цитата(StrangerX @ Sep 12 2013, 17:37) *
Посмотрел ltssm_state с помощью chipscope - останавливается на значении 2 - polling. Подскажите кто-нибудь, пожалуйста, что это может значить.

Я выше писал насчет возможной перепутки TX / RX - это проверили?
Go to the top of the page
 
+Quote Post

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

 


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


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