|
|
  |
PCIe |
|
|
|
Feb 12 2010, 03:04
|

Гуру
     
Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230

|
Спрошу сразу. Можно ли достоверно промоделировать на моделсиме устройство на PCIe, ничего не покупая и не тратя на это все несколько месяцев? Хочется написать, убедится что BARы правильно прописаны, что PnP и прочая беда работает, прогнать симуляцию разных вариантов чтения/записи из PCIe, генерации прерываний, убедится что пашет DMA, Burstы, что все работает в 64 бита, поиграться включая/отключая lan-ы, посмотреть какая для этого нужна ПЛИСина, может быть и hotplug проверить итд. И уже потом решать вопросы с покупкой чего либо. И заодно, если покупать megaCore PCIe, то сколько это может стоить? (просто порядок цен)? Килобакс, мегабакс?
Если да, то что откуда качать?
|
|
|
|
|
Feb 12 2010, 07:40
|

Гуру
     
Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230

|
Цитата(DmitryR @ Feb 12 2010, 08:36)  Вопрос из серии "как получить все, не делая ничего". Попробуем ответить.
Начиная с конца: PCIe endpoint реализован аппаратно в большинстве современных FPGA, поэтому ничего не стоит.
Что же касается симуляции - devkits именно потому пользуются таким спросом, что дают возможность быстро и недорого проверить дизайн. Например Xilinx SP605 позволит вам за примерно $700 (цена двух недель работы инженера не считая налогов) не искать бесплатные модели PCIe хоста и потом разбираться с их глюками, а вставить ваш дизайн в живой компьютер, запустить с одной стороны PCIScope, с другой стороны ChipScope, и не тратя месяцы все отладить. Про devkit, понятно. А в моделсиме? Я в свое время отлаживал обмен с SDRAM, скачав ее вериложную модель, и подключив в проект. А сейчас чего-то не могу найти того же для PCIе.
|
|
|
|
|
Feb 12 2010, 11:51
|

Гуру
     
Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230

|
Цитата(DmitryR @ Feb 12 2010, 13:08)  Вы прежде, чем искать подумайте, как эта модель могла бы выглядеть. Особенно в части PnP: для этого туда пришлось бы половину винды переписать. Хорошо что в Альтере об этом не знают. Они не граматные. Код # Time: 0 Instance: artempcieee_chaining_testbench.ep.epmap.serdes.artempcieee_serdes_alt4gxb_bjea_c omponent.tx_pll0 # Note : CMU PLL is reset # Time: 0 Instance: artempcieee_chaining_testbench.ep.epmap.serdes.artempcieee_serdes_alt4gxb_bjea_c omponent.rx_cdr_pll0 # Note : Stratix GX PLL locked to incoming clock # Time: 40000 Instance: artempcieee_chaining_testbench.ep.epmap.refclk_to_250mhz.altpll_component.pll0 # Note : Stratix II PLL locked to incoming clock # Time: 48000 Instance: artempcieee_chaining_testbench.rp.rp.niilO0i.pll1 # Note : Stratix GX PLL locked to incoming clock # Time: 56000 Instance: artempcieee_chaining_testbench.ep.epmap.pll_250mhz_to_500mhz.altpll_component.pl l0 # INFO: 464 ns Completed initial configuration of Root Port. # INFO: Core Clk Frequency: 125.00 Mhz # INFO: 3660 ns RP LTSSM State: DETECT.ACTIVE # INFO: 3780 ns EP LTSSM State: DETECT.ACTIVE # INFO: 3828 ns EP LTSSM State: POLLING.ACTIVE # INFO: 6908 ns RP LTSSM State: POLLING.ACTIVE # INFO: 9036 ns RP LTSSM State: POLLING.CONFIG # INFO: 9364 ns EP LTSSM State: POLLING.CONFIG # INFO: 10516 ns EP LTSSM State: CONFIG.LINKWIDTH.START # INFO: 10636 ns RP LTSSM State: CONFIG.LINKWIDTH.START # INFO: 11284 ns EP LTSSM State: CONFIG.LINKWIDTH.ACCEPT # INFO: 11804 ns RP LTSSM State: CONFIG.LINKWIDTH.ACCEPT # INFO: 12124 ns RP LTSSM State: CONFIG.LANENUM.WAIT # INFO: 12756 ns EP LTSSM State: CONFIG.LANENUM.WAIT # INFO: 12948 ns EP LTSSM State: CONFIG.LANENUM.ACCEPT # INFO: 13084 ns RP LTSSM State: CONFIG.LANENUM.ACCEPT # INFO: 13404 ns RP LTSSM State: CONFIG.COMPLETE # INFO: 13860 ns EP LTSSM State: CONFIG.COMPLETE # INFO: 15012 ns EP LTSSM State: CONFIG.IDLE # INFO: 15132 ns RP LTSSM State: CONFIG.IDLE # INFO: 15244 ns RP LTSSM State: L0 # INFO: 15476 ns EP LTSSM State: L0 # INFO: 18264 ns # INFO: 18264 ns Configuring Bus 001, Device 001, Function 00 # INFO: 18264 ns EP Read Only Configuration Registers: # INFO: 18264 ns Vendor ID: 1172 # INFO: 18264 ns Device ID: 0004 # INFO: 18264 ns Revision ID: 01 # INFO: 18264 ns Class Code: FF0000 # INFO: 18264 ns Subsystem Vendor ID: 1172 # INFO: 18264 ns Subsystem ID: 0004 # INFO: 18264 ns Interrupt Pin: INTA# used # INFO: 18264 ns # INFO: 19272 ns PCI MSI Capability Register: # INFO: 19272 ns 64-Bit Address Capable: Supported # INFO: 19272 ns Messages Requested: 4 # INFO: 19272 ns # INFO: 24376 ns EP PCI Express Link Status Register (1011): # INFO: 24376 ns Negotiated Link Width: x1 # INFO: 24376 ns Slot Clock Config: System Reference Clock Used # INFO: 25540 ns RP LTSSM State: RECOVERY.RCVRLOCK # INFO: 25964 ns EP LTSSM State: RECOVERY.RCVRLOCK # INFO: 26492 ns EP LTSSM State: RECOVERY.RCVRCFG # INFO: 26660 ns RP LTSSM State: RECOVERY.RCVRCFG # INFO: 27812 ns RP LTSSM State: RECOVERY.IDLE # INFO: 28108 ns EP LTSSM State: RECOVERY.IDLE # INFO: 28188 ns EP LTSSM State: L0 # INFO: 28340 ns RP LTSSM State: L0 # INFO: 29344 ns Current Link Speed: 2.5GT/s # INFO: 29344 ns # INFO: 30368 ns EP PCI Express Link Control Register (0040): # INFO: 30368 ns Common Clock Config: System Reference Clock Used # INFO: 30368 ns # INFO: 31952 ns # INFO: 31952 ns EP PCI Express Capabilities Register (0001): # INFO: 31952 ns Capability Version: 1 # INFO: 31952 ns Port Type: Native Endpoint # INFO: 31952 ns # INFO: 31952 ns EP PCI Express Device Capabilities Register (00008000): # INFO: 31952 ns Max Payload Supported: 128 Bytes # INFO: 31952 ns Extended Tag: Not Supported # INFO: 31952 ns Acceptable L0s Latency: Less Than 64 ns # INFO: 31952 ns Acceptable L1 Latency: Less Than 1 us # INFO: 31952 ns Attention Button: Not Present # INFO: 31952 ns Attention Indicator: Not Present # INFO: 31952 ns Power Indicator: Not Present # INFO: 31952 ns # INFO: 31952 ns EP PCI Express Link Capabilities Register (0103F411): # INFO: 31952 ns Maximum Link Width: x1 # INFO: 31952 ns Supported Link Speed: 2.5GT/s # INFO: 31952 ns L0s Entry: Supported # INFO: 31952 ns L1 Entry: Not Supported # INFO: 31952 ns L0s Exit Latency: More than 4 us # INFO: 31952 ns L1 Exit Latency: More than 64 us # INFO: 31952 ns Port Number: 01 # INFO: 31952 ns Surprise Dwn Err Report: Not Supported # INFO: 31952 ns DLL Link Active Report: Not Supported # INFO: 31952 ns # INFO: 33136 ns # INFO: 33136 ns EP PCI Express Device Control Register (0010): # INFO: 33136 ns Error Reporting Enables: 0 # INFO: 33136 ns Relaxed Ordering: Enabled # INFO: 33136 ns Max Payload: 128 Bytes # INFO: 33136 ns Extended Tag: Disabled # INFO: 33136 ns Max Read Request: 128 Bytes # INFO: 33136 ns # INFO: 33136 ns EP PCI Express Device Status Register (0000): # INFO: 33136 ns # INFO: 34160 ns EP PCI Express Virtual Channel Capability: # INFO: 34160 ns Virtual Channel: 1 # INFO: 34160 ns Low Priority VC: 0 # INFO: 34160 ns # INFO: 39136 ns # INFO: 39136 ns BAR Address Assignments: # INFO: 39136 ns BAR Size Assigned Address Type # INFO: 39136 ns --- ---- ---------------- # INFO: 39136 ns BAR1:0 256 MBytes 00000001 00000000 Prefetchable # INFO: 39136 ns BAR2 Disabled # INFO: 39136 ns BAR3 Disabled # INFO: 39136 ns BAR4 Disabled # INFO: 39136 ns BAR5 Disabled # INFO: 39136 ns ExpROM Disabled # INFO: 41120 ns # INFO: 41120 ns Completed configuration of Endpoint BARs. # WARNING: 42288 ns Unable to find a 256B BAR to setup the chaining DMA DUT; skipping test. # INFO: 42288 ns --------- # INFO: 42288 ns TASK:downstream_loop # INFO: 43696 ns Passed: 0004 same bytes in BFM mem addr 0x00000040 and 0x00000840 # INFO: 45136 ns Passed: 0008 same bytes in BFM mem addr 0x00000040 and 0x00000840 # INFO: 46608 ns Passed: 0012 same bytes in BFM mem addr 0x00000040 and 0x00000840 # INFO: 48096 ns Passed: 0016 same bytes in BFM mem addr 0x00000040 and 0x00000840 # INFO: 49640 ns Passed: 0020 same bytes in BFM mem addr 0x00000040 and 0x00000840 # INFO: 51240 ns Passed: 0024 same bytes in BFM mem addr 0x00000040 and 0x00000840 # INFO: 52824 ns Passed: 0028 same bytes in BFM mem addr 0x00000040 and 0x00000840 # INFO: 54456 ns Passed: 0032 same bytes in BFM mem addr 0x00000040 and 0x00000840 # INFO: 56160 ns Passed: 0036 same bytes in BFM mem addr 0x00000040 and 0x00000840 # INFO: 57872 ns Passed: 0040 same bytes in BFM mem addr 0x00000040 and 0x00000840 # SUCCESS: Simulation stopped due to successful completion! # Break in Function ebfm_log_stop_sim at ../../common/testbench//altpcietb_bfm_log.v line 96 # Stopped at ../../common/testbench//altpcietb_bfm_log.v line 96 # quit Но к этому бы инструкцию по-подробнее.
Сообщение отредактировал Methane - Feb 12 2010, 11:56
|
|
|
|
|
Feb 12 2010, 14:02
|
Участник

Группа: Свой
Сообщений: 67
Регистрация: 16-03-06
Из: Днепропетровск
Пользователь №: 15 307

|
Для Xilinx ядро до х8 вроде бы бесплатное. Это было для Viretx-5 семейства. К старым версиям ПЛИС ядро было покупное.
|
|
|
|
|
Feb 15 2010, 11:25
|

Гуру
     
Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230

|
Цитата(des00 @ Feb 14 2010, 09:21)  Кстати у ментора в квесте есть готовый PCI-E чеккер, судя по описанию очень даже функциональный. Конечно это не драйвер PCI-E, а чеккер, но тем не менее. Так что думаю что модели должны быть %) Ментор кваста-сим? Блин, примере от альтеры, черт голову сломит! Не могли сделать один проект, где только PCI, и не мешать в него DDR2 и прочее. Вот бы чего такого почитать, типа RTL, но с пояснением, и чтобы PCI было в одной стороне а nCONFIG в другой.
|
|
|
|
|
Feb 15 2010, 11:46
|

Гуру
     
Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230

|
Цитата(disel @ Feb 15 2010, 13:42)  А к SMBus можно получить доступ в компе? А чего нет? LInux же вычитывает таким образом температуру процессора итд. Но SMBus не подходит по другим причинам. Цитата И зачем грузить ПЛИС таким образом? Чем джитаг не устраивает? Тем что хотелось, воткнули плату, загрузили в нее прошивку через SMBus, она определилась как PCIe и поехала работать. Захотели, сменили прошивку даже не перезагружая комп.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|