Jump to content

    

Recommended Posts

1 hour ago, andrew_su said:

да. я скачал pci32tlite. но вопрос проверенный он или нет. мне нужен 100% рабочий вариант.

Edited by jenya7

Share this post


Link to post
Share on other sites
1 hour ago, gosha said:

Работал с этим:

https://opencores.org/projects/pci

 

Монстрообразный, но проверенный, проблем не было.

Аппаратные компоненты SRAM староваты.

Там Verilog а я пишу в VHDL. Я посмотрел не так уж сложно реализовать PCI. В принципе выставлять сигальные линии на чтение-запись и выставлять адрес-данные на шине AD. Или я что то не понимаю?

Edited by jenya7

Share this post


Link to post
Share on other sites
14 часов назад, jenya7 сказал:

да. я скачал pci32tlite. но вопрос проверенный он или нет. мне нужен 100% рабочий вариант.

 

За 100% рабочий вариант надо заплатить денег. Очень и очень много денег. 

А все бесплатные ядра применять на свой страх и риск. На то они и бесплатные ядра.

Share this post


Link to post
Share on other sites
9 минут назад, jenya7 сказал:

Там Verilog а я пишу в VHDL. Я посмотрел не так уж сложно реализовать PCI. В принципе выставлять сигальные линии на чтение-запись и выставлять адрес-данные на шине AD. Или я что то не понимаю?

Смотря что Вам нужно. В самом первом приближении там действительно всё очень просто, см., например, https://www.fpga4fun.com/PCI.html

Сложности начинаются потом, если нужно передавать данные достаточно быстро. 

Share this post


Link to post
Share on other sites
1 hour ago, makc said:

Смотря что Вам нужно. В самом первом приближении там действительно всё очень просто, см., например, https://www.fpga4fun.com/PCI.html

Сложности начинаются потом, если нужно передавать данные достаточно быстро. 

мне нужен адаптер PCI - PC104. я думаю если адаптировать под свои требования все просто реализуется.

Share this post


Link to post
Share on other sites
30 минут назад, jenya7 сказал:

мне нужен адаптер PCI - PC104. я думаю если адаптировать под свои требования все просто реализуется.

 Нет, к сожалению просто не получится. Время транзакции (максимальное) на шине PCI задано стандартом и поскольку шина PC104 медленнее, то задатчику на шине PCI придётся долго ждать и скорее всего это время ожидания выйдет за пределы допустимого, хотя конечно это нужно посчитать. В общем же случае ваше ядро на время выполнения транзакции по шине PC104 должно сгененировать ответ типа Retry, чтобы инициатор попозже обратился за данными не занимая шину PCI и не нарушая протокола. В целом именно так и ведут себя мосты PCI<=>Local Bus/ISA. Приведенный выше пример работает не так, в нем полагается что Slave на шине PCI всегда готов (регистр) к чтению и записи, поэтому там эта часть работы по шине сильно упрощена.

Если не стоит цель разобраться с PCI, то я бы поискал готовое решение типа http://www.ite.com.tw/en/product/view?mid=71

Share this post


Link to post
Share on other sites
1 hour ago, makc said:

 Нет, к сожалению просто не получится. Время транзакции (максимальное) на шине PCI задано стандартом и поскольку шина PC104 медленнее, то задатчику на шине PCI придётся долго ждать и скорее всего это время ожидания выйдет за пределы допустимого, хотя конечно это нужно посчитать. В общем же случае ваше ядро на время выполнения транзакции по шине PC104 должно сгененировать ответ типа Retry, чтобы инициатор попозже обратился за данными не занимая шину PCI и не нарушая протокола. В целом именно так и ведут себя мосты PCI<=>Local Bus/ISA. Приведенный выше пример работает не так, в нем полагается что Slave на шине PCI всегда готов (регистр) к чтению и записи, поэтому там эта часть работы по шине сильно упрощена.

Если не стоит цель разобраться с PCI, то я бы поискал готовое решение типа http://www.ite.com.tw/en/product/view?mid=71

интересно. спасибо посмотрю.

Share this post


Link to post
Share on other sites
Just now, jenya7 said:

 

Использовал на Cyclone III альтеровское ядро pci_mt32, работает без замечаний много лет, ядро можно достать без затрат для этой ПЛИС. Но программировал на verilog, тогда это был QII 7.2 .... 

Share this post


Link to post
Share on other sites
1 hour ago, Serhiy_UA said:

Использовал на Cyclone III альтеровское ядро pci_mt32, работает без замечаний много лет, ядро можно достать без затрат.  

у меня в Quartus его нет.

 

вроде нашел. спасибо.

Edited by jenya7

Share this post


Link to post
Share on other sites
1 час назад, andrew_su сказал:

Да, тоже кстати вариант. Мы их давным давно применяли и вполне успешно, правда потом отказались по причине перехода на свое ядро PCI в ПЛИС, что в итоге получилось гибче и дешевле.

Share this post


Link to post
Share on other sites
On 6/22/2021 at 8:30 AM, jenya7 said:

Там Verilog а я пишу в VHDL. Я посмотрел не так уж сложно реализовать PCI. В принципе выставлять сигальные линии на чтение-запись и выставлять адрес-данные на шине AD. Или я что то не понимаю?

 

Сложно, если разные клоковые домены: "Метастабильность":  Все через FIFO.

Поставьте какую- нибудь  готовую м/сх PCI<-> ISA, и не мучайтесь

http://www.ite.com.tw/uploads/product_download/IT8888F_V0.9_05192005.pdf

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this