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

 
 
> разработка PCI target\master CORE для SPARTAN, Проблемы с которыми сталкнулся
buggy
сообщение Jan 9 2007, 23:36
Сообщение #1





Группа: Новичок
Сообщений: 4
Регистрация: 31-10-06
Пользователь №: 21 823



Приветствую специалистов.

Сделали мы с одногрупgником плату простого PCI контроллера (Разводка во вложенном файле в Gerber, ошибки в питании и подтяжках на ПЗУ устранены поверхностным монтажом smile.gif ) в рамках курсового. SPARTAN конфигурится и работает. Стали подымать PCI и зашили мы в неё следующее для пробы:

entity pci_interface is
port(
AD: inout std_logic_vector(31 downto 0);
CBE: in std_logic_vector(3 downto 0);
clk: in std_logic;
frame: in std_logic;
irdy: inout std_logic;
devsel, interrupt: out std_logic;
trdy: inout std_logic;
par, serr, stop, perr, req, gnt, lock: inout std_logic;
rst, idsel: in std_logic;
led1,led2,led3: out std_logic
);
end pci_interface;

architecture Behavioral of pci_interface is
signal adr_ok, read, write, cfg1, cfg2, cfg3, cfg4, cfg5,cfg6,cfg7:std_logic;

signal dout, din: std_logic_vector(31 downto 0);

signal DATA:std_logic_vector(31 downto 0);

signal state:std_logic_vector(2 downto 0);

signal cfg_reg00:std_logic_vector(31 downto 0);
signal cfg_reg04:std_logic_vector(31 downto 0);
signal cfg_reg08:std_logic_vector(31 downto 0);
signal cfg_reg10:std_logic_vector(31 downto 0);

signal reg_adress:std_logic_vector(5 downto 0);

signal answer:std_logic;


begin

--U1:
--IBUF port map (I=>rst, O=>irst);

par<='Z';
serr<='Z';
stop<='Z';
perr<='Z';
req<='Z';
gnt<='Z';
lock<='Z';
interrupt<='Z';
--led2_sig<='0';
---devsel<='Z';

process(clk)

begin

if clk'event and clk='1' then

if cfg1='1' then
state<="001";
DATA<="10011011110110111001101111011011";
end if;

if cfg2='1' then
state<="010";
DATA<="00000000000000000000000000000001";
end if;

if cfg3='1' then
state<="011";
DATA<="11111111000000000000000000000001";
end if;

if cfg4='1' then
state<="100";
DATA<="11111111111111111111111111111001";
end if;

if cfg5='1' and cfg1='0' and cfg2='0' and cfg3='0'and cfg4='0' then
state<="101";
DATA<="00000000000000000000000000000000";
end if;

if cfg6='1' or cfg7='1' then
state<="110";
write<='1';
end if;

if irdy='0' then
answer<='1';
else
answer<='0';
write<='0';
end if;

if write='1' and answer='1' then
DATA<=AD;
state<="111";
end if;
--if rst='0' then
--state<="000";
---cfg_reg00<="10011011110110111001101111011011";
--cfg_reg04<="00000000000000000000000000000001";
--cfg_reg08<="11111111000000000000000000000001";
--cfg_reg10<="11111111111111111111111111111001";
--adr_ok<='0';
--read<='0';
--write<='0';
--cfg<='0';
--else


--end if;
---end if;

--if irst'event and irst='0' then

--reset<=irst;

--end if;

---if irst'event and irst='1' then

end if;

end process;

--ad<=din when adr_ok<='1' and irdy='0' and read='1' else "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ";

--devsel<='0' when read='1' or write='1' else 'Z';
--trdy<='0' when read='1' or write='1' else 'Z';

cfg1<='1' when idsel='1' and frame='0' and CBE="1010" and AD(7 downto 2)="000000" else '0';
cfg2<='1' when idsel='1' and frame='0' and CBE="1010" and AD(7 downto 2)="000100" else '0';
cfg3<='1' when idsel='1' and frame='0' and CBE="1010" and AD(7 downto 2)="001000" else '0';
cfg4<='1' when idsel='1' and frame='0' and CBE="1010" and AD(7 downto 2)="010000" else '0';
cfg5<='1' when idsel='1' and frame='0' and CBE="1010" else '0';
cfg6<='1' when idsel='1' and frame='0' and CBE="1011" and AD(7 downto 2)="010000" else '0';
cfg7<='1' when idsel='1' and frame='0' and CBE="1011" else '0';

devsel<='0' when answer='1' else 'Z';
trdy<='0' when answer='1' else 'Z';
AD<=DATA when answer='1' and write='0' else "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ";

led1<=state(2);
led2<=state(1);
led3<=state(0);
end Behavioral;


Плата вроди бы как конфигурится, но после последней транзакции CFG_WRITE комп висит мёртво и материнка не пищит о том что в ней не стоит VGA. Мы делали разводку с расчётом на то что будем делать Master и подключили выводы ПЛИС к par, serr, stop, perr, req, gnt, lock разъема PCI. Если я на данный момент не использую эти выводы то если при конфигурации ПЛИС указать что неиспользуемые выводы оставить FLOAT они будут в состоянии 'Z'? ИЛИ сразу надо писать весь CORE целиком cranky.gif ? Не судите строго - это моя первая платаbiggrin.gif . Я наверное облажался, что не включил SPARTAN в цепь JTAG? Теперь для отладки есть только три диода (не 4 - вывод P3 теперь подключен к AD(27) -B23, проводом =)). Помогите советом, а я PCI core в GPL выложу =).
Прикрепленные файлы
Прикрепленный файл  pcb.zip ( 24.25 килобайт ) Кол-во скачиваний: 44
 
Go to the top of the page
 
+Quote Post



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

 


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


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