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

 
 
> pci интерфейс по шагам
sergey sva
сообщение Aug 30 2011, 18:59
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Возникла необходимость изучить интерфейс pci и vhdl, прочитал спецификацию несколько раз, набрал исходников, но логические цепочки в моем мозгу не собираются. Информации много не знай с чего начать. Одна голова хорошо а много лучше, пословица старая и мудрая.
Прошу помочь в этом деле, если тема пойдет может будет еще кому полезна решившего освоить pci.
Цель сделать счетчик 64 разряда, интерфейс pci target 32 бита,плата с spartan3e есть,
выведенные пины ad0-32;c/be0-3;par;serr;perr;stop;devsel;trdy;irdy;frame;idsel;req;gnt;clk;rst;inta
устройство должно считать импульсы на входе плис по переднему фронту, а программа через драйвер должна читать и обнулить это значение.
Прошу просто руководить банкетом по шагам sm.gif буду делать как скажите и выкладывать код.
Первые шаги сделал, установил xilinx ISE настроил кабель связь есть, прочитал несколько раз спецификацию sm.gif , создал проект и добавил
VHDL module в нем описал интерфейс
Код
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

-- Uncomment the following library declaration if using
-- arithmetic functions with Signed or Unsigned values
--use IEEE.NUMERIC_STD.ALL;

-- Uncomment the following library declaration if instantiating
-- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;
--*******************************************************************************
entity PciInterf  is
    port (
      RST          : in    std_logic;                      -- Reset    
      CLK          : in    std_logic;                      -- Clock    
      AD           : inout std_logic_vector(31 downto 0);  -- Address/Data Bus
      CBE          : in std_logic_vector(3 downto 0);      -- Command/Byte Enable
      PAR          : inout std_logic;                      -- Parity
      FRAME        : in std_logic;                            -- Transaction Frame
      IRDY         : in std_logic;                            -- Initiator Ready
      TRDY         : inout std_logic;                        -- Target Ready
      DEVSEL       : inout std_logic;                      -- Device Select
      STOP         : inout std_logic;                        -- Stop transaction
      IDSEL        : in    std_logic;                      -- Chip Select
      PERR         : inout std_logic;                        -- Parity Error (s/t/s)
      SERR         : inout std_logic;                        -- System Error (o/d)
      INTA         : inout std_logic;                      -- Interrupt pin (o/d)
        
        COUNTPIN     : in std_logic                          --

    );
end PciInterf;
--*******************************************************************************
architecture Behavioral of PciInterf is

begin


end Behavioral;
--*******************************************************************************

В ucf файле связал интерфейс с пинам на микросхеме
Код
NET "AD<0>"     LOC = "P50"  | IOSTANDARD = PCI33_3;
NET "AD<10>"    LOC = "P34"  | IOSTANDARD = PCI33_3;
NET "AD<11>"    LOC = "P33"  | IOSTANDARD = PCI33_3;
NET "AD<12>"    LOC = "P31"  | IOSTANDARD = PCI33_3;
NET "AD<13>"    LOC = "P30"  | IOSTANDARD = PCI33_3;
NET "AD<14>"    LOC = "P29"  | IOSTANDARD = PCI33_3;
NET "AD<15>"    LOC = "P28"  | IOSTANDARD = PCI33_3;
NET "AD<16>"    LOC = "P25"  | IOSTANDARD = PCI33_3;
NET "AD<17>"    LOC = "P24"  | IOSTANDARD = PCI33_3;
NET "AD<18>"    LOC = "P23"  | IOSTANDARD = PCI33_3;
NET "AD<19>"    LOC = "P22"  | IOSTANDARD = PCI33_3;
NET "AD<1>"     LOC = "P49"  | IOSTANDARD = PCI33_3;
NET "AD<20>"    LOC = "P19"  | IOSTANDARD = PCI33_3;
NET "AD<21>"    LOC = "P18"  | IOSTANDARD = PCI33_3;
NET "AD<22>"    LOC = "P16"  | IOSTANDARD = PCI33_3;
NET "AD<23>"    LOC = "P15"  | IOSTANDARD = PCI33_3;
NET "AD<24>"    LOC = "P12"  | IOSTANDARD = PCI33_3;
NET "AD<25>"    LOC = "P11"  | IOSTANDARD = PCI33_3;
NET "AD<26>"    LOC = "P9"   | IOSTANDARD = PCI33_3;
NET "AD<27>"    LOC = "P8"   | IOSTANDARD = PCI33_3;
NET "AD<28>"    LOC = "P5"   | IOSTANDARD = PCI33_3;
NET "AD<29>"    LOC = "P4"   | IOSTANDARD = PCI33_3;
NET "AD<2>"     LOC = "P48"  | IOSTANDARD = PCI33_3;
NET "AD<30>"    LOC = "P3"   | IOSTANDARD = PCI33_3;
NET "AD<31>"    LOC = "P2"   | IOSTANDARD = PCI33_3;
NET "AD<3>"     LOC = "P47"  | IOSTANDARD = PCI33_3;
NET "AD<4>"     LOC = "P42"  | IOSTANDARD = PCI33_3;
NET "AD<5>"     LOC = "P41"  | IOSTANDARD = PCI33_3;
NET "AD<6>"     LOC = "P40"  | IOSTANDARD = PCI33_3;
NET "AD<7>"     LOC = "P39"  | IOSTANDARD = PCI33_3;
NET "AD<8>"     LOC = "P36"  | IOSTANDARD = PCI33_3;
NET "AD<9>"     LOC = "P35"  | IOSTANDARD = PCI33_3;

NET "CBE<0>"    LOC = "P60"  | IOSTANDARD = PCI33_3;
NET "CBE<1>"    LOC = "P62"  | IOSTANDARD = PCI33_3;
NET "CBE<2>"    LOC = "P202" | IOSTANDARD = PCI33_3;
NET "CBE<3>"    LOC = "P199" | IOSTANDARD = PCI33_3;

NET "CLK"       LOC = "P186" | IOSTANDARD = PCI33_3;
NET "DEVSEL"    LOC = "P68"  | IOSTANDARD = PCI33_3;
NET "FRAME"     LOC = "P203" | IOSTANDARD = PCI33_3;
NET "IDSEL"     LOC = "P14"  | IOSTANDARD = PCI33_3;
NET "INTA"      LOC = "P193" | IOSTANDARD = PCI33_3;
NET "IRDY"      LOC = "P200" | IOSTANDARD = PCI33_3;

NET "PAR"       LOC = "P45"  | IOSTANDARD = PCI33_3;
NET "PERR"      LOC = "P64"  | IOSTANDARD = PCI33_3;
NET "RST"       LOC = "P194" | IOSTANDARD = PCI33_3;
NET "SERR"      LOC = "P63"  | IOSTANDARD = PCI33_3;
NET "STOP"      LOC = "P65"  | IOSTANDARD = PCI33_3;
NET "TRDY"      LOC = "P205" | IOSTANDARD = PCI33_3;


NET "COUNTPIN"  LOC = "P20"  | IOSTANDARD = PCI33_3;

Что дальше сделать подскажите ?

Сообщение отредактировал sergey sva - Aug 30 2011, 19:04
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
gosu-art
сообщение Nov 23 2011, 09:55
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 555
Регистрация: 14-10-09
Пользователь №: 52 939



sergey sva
Ну как, у Вас заработал pci32tlite_oc_R03? Вы его делали, если я не ошибаюсь, на Spartan 3E?
У меня вот такой вопрос...
Мне нужно сделать сейчас CompactPCI (замена CY7C09449), где будет стоять еще 16ть модулей. Прокачают ли такую нагрузку ноги Спартана? Или шинники лучше добавить?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- sergey sva   pci интерфейс по шагам   Aug 30 2011, 18:59
- - vitan   Счетчик отдельно, а PCI отдельно. Напишите уж снач...   Aug 30 2011, 19:18
- - XVR   Если вы хотите, что бы ваше устройство увидела ОС,...   Aug 31 2011, 04:29
- - sergey sva   ЦитатаЯ когда то писал PCI Target, но он так и ост...   Aug 31 2011, 06:26
- - iosifk   Цитата(sergey sva @ Aug 30 2011, 22:59) В...   Aug 31 2011, 06:36
- - sergey sva   Можно миллион книг прочитать и толку будет мало. Ц...   Aug 31 2011, 06:50
|- - iosifk   Цитата(sergey sva @ Aug 31 2011, 10:50) М...   Aug 31 2011, 08:32
|- - iosifk   Цитата(sergey sva @ Aug 31 2011, 10:50) ....   Aug 31 2011, 09:03
- - sergey sva   спасибо, Петрова не читал сейчас поищу.   Aug 31 2011, 08:51
- - XVR   Обещанные сорцы (хотя они вряд ли помогут - комент...   Aug 31 2011, 17:00
- - sergey sva   ЦитатаОбещанные сорцы (хотя они вряд ли помогут - ...   Aug 31 2011, 18:30
- - tAmega   Вот две корки и небольшая статья. Корки рабочие, о...   Sep 1 2011, 02:13
- - sergey sva   спасибо, сейчас посмотрю. Как можно проверить в ка...   Sep 1 2011, 04:30
|- - iosifk   Цитата(sergey sva @ Sep 1 2011, 08:30) сп...   Sep 1 2011, 04:40
- - sergey sva   С vhdl еще не освоился простой вопрос в папке pci...   Sep 1 2011, 05:37
- - sergey sva   С этим разобрался, например в одном файле Кодpacka...   Sep 1 2011, 07:38
- - sergey sva   До этого немного разбирался с квартусом там после ...   Sep 1 2011, 08:55
- - Kuzmi4   2 sergey sva определять так же как и в квартусе ...   Sep 1 2011, 09:01
- - sergey sva   ЦитатаSet us Top Module если он сам не догадался ...   Sep 1 2011, 09:13
- - tAmega   Файл главный pci_app.vhd Определяется просто, кажд...   Sep 1 2011, 11:14
- - sergey sva   Понятно так и думал)). Есть разница в протоколе ...   Sep 1 2011, 11:49
- - sergey sva   Еще проблема не могу настроить P14 (xc3s250) на вх...   Sep 1 2011, 17:34
- - sergey sva   С пустым проектом (схема вход через инвертор на вы...   Sep 1 2011, 18:58
- - tAmega   Не собирал проект pci_target, поэтому показать сво...   Sep 2 2011, 02:55
- - sergey sva   Вход P14 в документации написано не имеет не диодо...   Sep 2 2011, 04:28
- - tAmega   Воспользуйтесь другим входом. Он вообще поддержива...   Sep 2 2011, 09:22
- - sergey sva   Пробовал на всякие настраивать lvcmos pci..., все ...   Sep 2 2011, 11:42
|- - vitan   Цитата(sergey sva @ Sep 2 2011, 15:42) ес...   Sep 2 2011, 12:30
- - sergey sva   Порты IP, для чего они обычно используются? вызыва...   Sep 2 2011, 15:55
- - sergey sva   Взял пример c opencores pci32tlite_oc_R03 все собр...   Sep 4 2011, 17:59


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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 09:16
Рейтинг@Mail.ru


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