Перейти к содержанию
    

buggy

Новичок*
  • Постов

    4
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный
  1. Приветствую специалистов. Сделали мы с одногрупgником плату простого PCI контроллера (Разводка во вложенном файле в Gerber, ошибки в питании и подтяжках на ПЗУ устранены поверхностным монтажом :) ) в рамках курсового. 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: ? Не судите строго - это моя первая плата . Я наверное облажался, что не включил SPARTAN в цепь JTAG? Теперь для отладки есть только три диода (не 4 - вывод P3 теперь подключен к AD(27) -B23, проводом =)). Помогите советом, а я PCI core в GPL выложу =). pcb.zip
  2. А как лучше диоды вешать? через нагрузку? И что с питанием и землёй? Плохо - это как? Почему работать не будет? Питание и землю делали не полигонами т.к. видели четырёхканальную плату для захвата видео там практически всё дорожками 8 mil кое где 15. Вот архив с гербером (немножко другой, коннектор для кабеля поменяли). Посмотрите пожалуйста. pcb.rar
  3. Товарищи опытные специалисты, будьте добры выскажите своё мнение . Занимаемся разводкой впервые, а знакомого человека который может направить на путь истинный нет.
  4. Будьте добры, наведите критику. Скриншот разводки в файле. Делали в ручную в KiCAD. untitled.rar
×
×
  • Создать...