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

darkniisiis

Участник
  • Постов

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

  • Посещение

Репутация

0 Обычный

Информация о darkniisiis

  • Звание
    Частый гость
    Частый гость
  1. Вот такой случай,есть шина 16-разрядная шина ISA через которую происходит запись и чтение по всем 16-разрядам.Назовём шину данных d,шину адреса а,источник сигнала с которого происходит чтение данных обозначим как reg. Описать считывание данных в шину по адресу "00000001" из источника reg1,где IOR сигнал разрешения чтения шины можно следующим образом d<=reg1 when a="00000001" and IOR='0' else "ZZZZZZZZZZZZZZZZ"; А вот если необходимо производить чтение сигнала,разделённое по времени и адресу из 2-х источников,например reg1 и reg2, то как это можно правильно организовать?Испробовал несколько конструкций,всегда получаю multi-source в шине,нужен совет.
  2. Подскажите пожалуйста, как организовать событие по спаду импульса(по заднему фронту). Если по переднему фронту, например if clk'event and clk='1' ,то как организовать подобное по спаду фронта?
  3. гук не скачивается,у него в названии русские буквы,скорее всего глюк из-за этого. Я просто думал что SBHE изменяется в зависимости от того какой байт передаётся,0-старший,1-младший.
  4. Вот засада,ещё и макет перегрелся,и почему на PCM не ставят активного охлаждения...Вот если так сделать,как думаете-пойдёт?У меня почему-то сомнения по этому поводу. library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity test_PC104 is Port ( d : inout STD_LOGIC_VECTOR (15 downto 0); a : in STD_LOGIC_VECTOR (15 downto 0); prog_clk : out STD_LOGIC_VECTOR (15 downto 0); IO_CS16 : out STD_LOGIC; SBHE : in STD_LOGIC; aen : in STD_LOGIC; ior : in STD_LOGIC; iow : in STD_LOGIC); end test_PC104; architecture Behavioral of test_PC104 is signal pr_clk : STD_LOGIC; begin pr_clk<='1' when conv_integer(a) = 63493 and aen='0' else '0'; IO_CS16<='0' when pr_clk='1' else '1'; process(SHBE) begin if SHBE='1' then if iow='0' then if pr_clk='1' then prog_clk(7 downto 0)<=d(7 downto 0); end if; end if; elsif SHBE='0' then if iow='0' then if pr_clk='1' then prog_clk(15 downto 8)<=d(15 downto 8); end if; end if; end if; end process; end Behavioral;
  5. К сожелению нет. Кстати,не подскажете сигнал SBHE приходит после установки адреса порта,а в какое значение он первоначально устанавливается 0 или 1 ,т.е. какой байт будет передоваться в данный момент старший или младший?
  6. Просто попробовал писать по чётному адресу,на выходе получаю только младший байт,в старшем все нули.Видимо что то с одним циклом не срослось.Придётся наверно повозиться немного с SBHE.
  7. Получается тогда теряется старший байт
  8. К сожелению письмо c проектом не дошло,повтори ,пожалуйста,на адрес [email protected] пока не совсем понял,как же мне всё-таки добиться AL AH Если не сложно так в тех задании написано :)
  9. Не могу понять,но при записи в порт 16-ричного слова,содержимое старших разрядов копирует содержимое младших разрядов,помогите разобраться в чём проблема. library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity test_PC104 is Port ( d : inout STD_LOGIC_VECTOR (15 downto 0); a : in STD_LOGIC_VECTOR (15 downto 0); prog_clk : out STD_LOGIC_VECTOR (15 downto 0); IO_CS16 : out STD_LOGIC; aen : in STD_LOGIC; ior : in STD_LOGIC; iow : in STD_LOGIC); end test_PC104; architecture Behavioral of test_PC104 is signal pr_clk : STD_LOGIC; begin pr_clk<='1' when conv_integer(a) = 63493 and aen='0' else '0'; IO_CS16<='0' when pr_clk='1' else '1'; process begin wait UNTIL iow'event AND iow='1'; if pr_clk='1' then prog_clk<=d; end if; end process; end Behavioral;
  10. сигнал set_clk является сигналом запуска системы и приходит после сигнала сброса reset_clk и во время работы системы всегда стоит в лог 1.
  11. Этот блок выдран из большой системы,я просто дыры кое-какие подлатал. 1.коэффициент деления 2.Start_timer 3.да,так и задумывалась
  12. Вот вроде обыкновенный делитель частоты,в модельсиме на post&route норм моделируется, а в железе стоит, в чём может быть проблема? Частота клока 40 МГц. library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity divider is Port( clk : in STD_LOGIC; reset_clk : in STD_LOGIC; set_clk : in STD_LOGIC; start_timer: out STD_LOGIC); end divider; architecture Behavioral of divider is signal st_divCLK : STD_LOGIC_VECTOR (15 downto 0); begin process(clk) begin if (clk='1' and clk'event) then if reset_clk = '1' then st_divCLK <= "0000000000000001"; start_timer<='0'; elsif set_clk = '1' then if st_divCLK = "0000000000000001" then st_divCLK <= "1001110001000000"; else st_divCLK <= st_divCLK - 1; end if; if st_divCLK="0000000000000001" then start_timer<='1'; else start_timer<='0'; end if; end if; end if; end process; end Behavioral;
  13. Проблема была в том что по умолчанию ко входам GPIO MM подсоединены подтягивающие резисторы +5В.Получается на входах всегда были логические 1.Нужно всго навсего было переставить перемычку.
  14. Смотря что вы подразумеваете под словами "точно сконфигурирован", гружу mcs файл в EEPROM.Проект пока выложить не могу.
×
×
  • Создать...