Jump to content

    

Mar_K

Участник
  • Content Count

    45
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Mar_K

  • Rank
    Участник
  1. Возможно. Напремер, легаси контроллер диска. Набор ATA регистров - 8 байт, альтернативный статус 1 - 4 байт.
  2. Главное для чего мне нужны исходники -- поправить минимальный размер BAR. Если существует бесплатная корка у которой можно выставить размер BAR до 1 байта, то пускай она будет без исходников -- это не страшно.
  3. Может быть... А где его исходники взять?
  4. Вы имеете ввиду Endpoint for PCI Express 3.7? у него исходников вроде как нет. Это нужно для того чтобы полностью прикинуться legacy девайсом, у которого размеры некоторых BAR равены 1 байту.
  5. Добрый день! Стоит задача заменить HW ядро на SW в уже готовом проекте на spartan 6. Пытаюсь найти opensource ядро pci express 1 lane аналог Integrated Block у Xilinx (то есть только до transaction layer без блока dma, но с поддержкой 6 BAR-ов, и legacy msi). Есть ли таковые и откуда можно скачать?
  6. Камень spartan6 150T. Кит от avnet. Ситуация такова, что набор дисков от Сигейта дружат с моим контроллером, а также некий SSD (производителя не помню, брал у коллеги потестить). Но диск от Вестерна отказывается дружить (WD1200BEVT). Разумеется, он работает с материнкой. Смотрел чипскопом. Не приходит COMWAKE от диска, вместо него приходит COMINIT. Предположил, что диск не видит OOB посылки от моего контроллера. Погуглил и нашел case на сайте xilinx, там человеку помогло изменение параметра differential voltage swing, попробовал поменять в своем контроллере (стояло дефолтное значение 000). Выставил все единицы. Теперь тренировка проходит на 1-й скорости, но на второй -- не алё. Однако, проходит не больше 50 мс и натренированный на 1-й диск почему-то снова высылает COMINIT, что, естественно, сбрасывает соединение и тренировка начинается снова. Какие только параметры я не крутил у трансивера (из доступных в визарде)-- бесполезно. Вобщем, как быть?
  7. 5) Все 8 бит нулями или только бит nIEN ? Нужно только его.
  8. По поводу 2 -- вы себя накрутили. У меня ридер фифиошки как раз этими флагами управляется, а синхронизируется только сигнал разрешения работы этого ридера. Я еще не настолько псих чтобы дизайнить как вы написали, и не вижу в теме моего поста с описанием того, что у меня именно так сделано.
  9. Все именно так. Дело не в констреинтах. Вобщем я был наивен, когда полагал что без синхронизации пока для небольшого теста можно обойтись, хотя до этого всегда делал сразу по нормальному, а потом и вовсе забыл про синхронизацию сигнала разрешения чтения FIFO специальным блоком в 200 МГц домене. Как результат 1.5 недели наблюдения эпических глюков и бессонных ночей с обтеканием потом, который вытирался полотенцем из UCF. Не забивайте на синхронизацию, люди.
  10. Нет не использую. Вчера до поздней ночи игрался с констрейнтами и пришел к выводу, что я просто не понимаю как их описать правильно. Если эти сигналы не появляются в отчете об ошибках, то схема работает на 200 МГц стабильно, но при этом в других местах в отчете появляются ошибки, там где они раньше не вылезали. В проекте до недавнего времени было 2 тактовых домена (62.5 и 75 МГц) и все разводилось и роботало четко. Но после добавления третьего (200 МГц) начались такие вот странности. Причем схема, которая тактируется от 200 МГц отдельно укладывается в плис без ошибок.
  11. Понизил частоту с 200 до 160 МГц. Работает стабильно. А на 200 нет. Может джитер адский? К сожалению нет возможности посмотреть так как нет хорошего осцила в наличии. У меня кит от Avnet.
  12. Понял. Значит можно просто забить на это, а проблема остается в неправильной обработке.
  13. Тоже больше склоняюсь к этому варианту. Делал diff с рабочей версией по svn, но пока принципиальной разницы не нашел..
  14. Клоки генерятся разными PLL и подключены через bufg естественно. Про 5 наносекунд, они не были никак вычислены, а просто взяты от балды. Род глюков таков, что если всего в фифо записывается 64 слова, то прочитается, например, 63.
  15. Проект на spartan6 -3 grade. Два тактовых домена 75 и 200 МГц. Передаю данные между ними с использованием FIFO (fifo generator 9.1), разрядность которого 64 бита чтение и запись. Тайминг аналайзер пишет, что все констрейyты выполнены, однако, в секции "Unconstrained" есть проваленные по hold time именно внутри самого FIFO (грейкаунтер похоже: U0/xst_fifo_generator/gconvfifo.rf/grf.rf/gntv_or_sync_fifo.gcx.clkx/wr_pntr_gc_4 to U0/xst_fifo_generator/gconvfifo.rf/grf.rf/gntv_or_sync_fifo.gcx.clkx/gsync_stage[1].rd_stg_inst/Q_4). Соответственно проект глючит. У меня несколько вопросов: 1) Реально ли получить работающий FIFO с такими параметрами в данном кристале? 2) Как правильно написать ограничения? По поводу второго вопроса читал DS317, но там для 16 разрядного случая. Еще задавал timespec на оба клока и устанавливал maxdelay datapathonly на передачу данных между ними равную 5ns. После чего из секции unconstrained эти пути пропадали и ошибок вообще не наблюдалось в аналайзере, но в работающем железе по прежнему глюки. Если вместо 200 МГц запустить, на, скажем, 150 МГц то все гут.