Цитата(T00T @ Jun 1 2015, 20:27)

И вот это можно по подробнее????
Констрейны - это, если говорить просто, правила (ограничения) в дизайне FPGA, которые накладывает разработчик на синтезатор/маппер, чтобы он не раскидал дизайн по матрице, как ему "вздумается", а соблюдал определенные условия. Например, нужный сигнал выводил на нужную ножку, а не на любую свободную.
Я имел в виду временные ограничения. Чтобы определенные сигналы задерживались внутри матрицы не более, чем на какое-то время. Это побудит маппер потрудиться, и расположить ячейки с учетом заданных временных правил (ну или выдать ошибку, если это невозможно). Подробнее в
Xilinx Constraints GuideЕсли сложно сразу понять - найдите готовые констрейны для любой PCI корки, как правило, это файл с расширением .ucf в дизайне.
Цитата(T00T @ Jun 1 2015, 21:40)

Почему тогда биос виснет???????
Виснет комп при работе с PCI в таком случае - если устройство распознало свой адрес (DEVSEL# = 0), но так и не завершило транзакцию с помощью TRDY#.
Цитата(T00T @ Jun 2 2015, 00:08)

...
пока писал придумал сам ответ на этот вопрос - анализируя запросы можно сказать что к 00 адресу биос обращается несколько раз подряд, и не факт что он читает этот регистр в первой посылке, может это уже вторая по счёту посылка, а устройство видит её как первую.
ну тогда всё встаёт на свои места.
А современные биосы могут запрашивать допустим 1 раз и как раз пропуск!! - типа устройства нет. И поэтому нет обращений.
Может ли устройство пропускать именно первую посылку в пакете, а последующие нет, с чем это может быть связанно?
Если речь о PCI Target, то никаких пакетов там нет, все просто и тупо - при FRAME#=0 задается тип транзакции, потом адрес, потом данные. Научитесь пользоваться ChipScope, вытащите в него все PCI сигналы и всё будет видно как на ладони, я именно так и делал в свое время, отлаживая PCI Target.
"... часами я мог наблюдать, как люди работают." (М. Горький)