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

matynovdk

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

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

  • Посещение

Репутация

0 Обычный
  1. Так мне отчет и не нужен) Мне нужно решение программы по образцу, сам я такое написать не смогу, я далеко не профи.
  2. Вот похожий пример Вариант 5. ЦУ: двухтактный D-триггер с разрешением (рис.1). Таблица истинности D E C Q - 1 [01] (D) - 0 [01] N - - [1-] N - - [00] N Рис. 1 Двухтактный D-триггер с разрешением Обозначения в таблице функционирования триггера Через “-” обозначено любое из (0,1) значение сигнала; в квадратных скобках показывается изменение сигнала (обычно синхросигнала), например, через [01] обозначается передний фронт сигнала (сигнал меняется из 0 в 1); через [10] обозначается задний фронт сигнала (сигнал меняется из 1 в 0); символ N обозначает неизменяемое (предыдущее) значение сигнала; символ ^ является знаком инверсии (отрицания). Решение. library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity main is Port ( D : in STD_LOGIC; E : in STD_LOGIC; C : in STD_LOGIC; Q : out STD_LOGIC); end main; architecture Behavioral of main is begin process (E,C) begin if (E='1') then if (C'event and C='1') then -- если передний фронт то Q<=D; end if; end if; end process; end Behavioral; ТЕСТИРОВАНИЕ СОЗДАННОЙ ПРОГРАММЫ LIBRARY ieee; USE ieee.std_logic_1164.ALL; ENTITY test IS END test; ARCHITECTURE behavior OF test IS -- Component Declaration for the Unit Under Test (UUT) COMPONENT main PORT( D : IN std_logic; E : IN std_logic; C : IN std_logic; Q : OUT std_logic ); END COMPONENT; --Inputs signal D : std_logic := '0'; signal E : std_logic := '0'; signal C : std_logic := '0'; --Outputs signal Q : std_logic; -- No clocks detected in port list. Replace <clock> below with -- appropriate port name constant clock_period : time := 10 ns; BEGIN -- Instantiate the Unit Under Test (UUT) uut: main PORT MAP ( E => E, D => D, C => C, Q => Q ); -- Clock process definitions clock_process :process begin C <= '0'; wait for clock_period/2; C <= '1'; wait for clock_period/2; end process; -- Stimulus process stim_proc: process begin -- hold reset state for 50 ns. E<='1'; D<='1'; wait for 10 ns; E<='1'; D<='0'; wait for 10 ns; E<='0'; D<='1'; wait for 10 ns; E<='0'; D<='0'; wait for 10 ns; -- insert stimulus here wait; end process; END Мой вариант с таблицей функционирования и самим d триггером : двухступенчатый D-триггер со сбросом (рис. 1). Рис. 1. Двухступенчатый D-триггер со сбросом Таблица функционирования двухступенчатого D-триггера со сбросом R D C Q 1 - [--] 0 0 - [01] (D) 0 - [1-] N 0 - [00] N
  3. Необходимо решить две задачки ЦУ: двухступенчатый D-триггер со сбросом (рис. 1). Рис. 1. Двухступенчатый D-триггер со сбросом Таблица функционирования двухступенчатого D-триггера со сбросом Обозначения в таблице функционирования триггера Через “-” обозначено любое из (0,1) значение сигнала; в квадратных скобках показывается изменение сигнала (обычно синхросигнала), например, через [01] обозначается передний фронт сигнала (сигнал меняется из 0 в 1); через [10] обозначается задний фронт сигнала (сигнал меняется из 1 в 0); символ N обозначает неизменяемое (предыдущее) значение сигнала; символ ^ является знаком инверсии (отрицания). Вопрос 2. Что описывает следующий VHDL код? process(<clock>) begin if ( <clock>'event and <clock> ='1') then if ( <reset> = '1') then <output> <= "0000"; else case <input> is when "00" => <output> <= "0001"; when "01" => <output> <= "0010"; when "10" => <output> <= "0100"; when "11" => <output> <= "1000"; when others => <output> <= "0000"; end case; end if; end if; end process; а) Синхронный d-триггер б) Синхронный счетчик с направлением счета в) Сдвиговый регистр г) 4-х битный декодер ____________.doc
×
×
  • Создать...