Рис. 45. УГО узла, использующего VHDL-модель. |
Отметим, что название элемента не соответствует требованию ГОСТ. Это сделано, чтобы одновременно смоделировать работу узла со схемой замещения и узла с VHDL-моделью.
Временные диаграммы работы проектируемого узла приведены выше, на рис.35 - 43.
Рис. 46. УГО проектируемого элемента в пакете Active HDL. |
На условном графическом изображении отсутствует символ выхода с тремя состояниями, т.к. не удалось красиво расположить этот символ на УГО, вследствие невозможности уменьшения масштаба шага рисования символа и привязки к сетке. Также пришлось изменить названия информационных входов и выходов в угоду требованиям программы.
Рис. 47. Схема замещения элемента К555КП17 в пакете ActiveHDL. |
Рис. 48. Схема верификации узла в пакете ActiveHDL. |
Как и в двух предыдущих САПР, на схеме верификации присутствуют как элемент со схемой замещения, так и узел с VHDL-моделью.
library IEEE; use IEEE.STD_LOGIC_1164.all; entity K555KP17_V is generic ( TPLHD : time := 11 ns ; TPHLD : time := 13 ns ; TPLHS : time := 20 ns ; TPHLS : time := 21 ns ; TPZH : time := 11 ns ; TPZL : time := 15 ns ; TPHZ : time := 27 ns ; TPLZ : time := 12 ns ); port( E00 : in STD_LOGIC; E01 : in STD_LOGIC; A1 : in STD_LOGIC; A2 : in STD_LOGIC; D00 : in STD_LOGIC; D01 : in STD_LOGIC; D02 : in STD_LOGIC; D03 : in STD_LOGIC; D10 : in STD_LOGIC; D11 : in STD_LOGIC; D12 : in STD_LOGIC; D13 : in STD_LOGIC; Y0 : out STD_LOGIC; Y1 : out STD_LOGIC ); end K555KP17_V; architecture K555KP17_V of K555KP17_V is signal out_0: std_logic; signal out_1: std_logic; begin process(E00,E01,D00,D01,D02,D03,D10,D11,D12,D13,A1,A2) variable multipl_0: std_logic; variable multipl_1: std_logic; begin multipl_0 := not((not(A2)and not(A1) and D00)or(not(A2)and A1 and D01)or(A2 and not(A1) and D02)or(A2 and A1 and D03)); if out_0'DELAYED = '0' then if (E00='1') then out_0<= 'Z' after TPLZ; elsif (A1'event or A2'event) then out_0 <=(multipl_0) after TPLHS; elsif (D00'event or D01'event or D02'event or D03'event) then out_0 <=(multipl_0) after TPLHD; end if; else if (E00='1') then out_0<= 'Z' after TPHZ; elsif (E00'event AND E00='0') then if (multipl_0 = '0') then out_0<= '0' after TPZL; elsif (multipl_0 = '1') then out_0<= '1' after TPZH; end if; elsif (D00'event or D01'event or D02'event or D03'event) then out_0 <=multipl_0 after TPHLD; elsif (A1'event or A2'event) then out_0 <=multipl_0 after TPHLS; end if; end if; ------------------------------------------------------------------------------ multipl_1 := not((not(A2)and not(A1) and D10)or(not(A2)and A1 and D11)or(A2 and not(A1) and D12)or(A2 and A1 and D13)); if out_1'DELAYED = '0' then if (E01='1') then out_1<= 'Z' after TPLZ; elsif (A1'event or A2'event) then out_1 <=(multipl_1) after TPLHS; elsif (D10'event or D11'event or D12'event or D13'event) then out_1 <=(multipl_1) after TPLHD; end if; else if (E01='1') then out_1<= 'Z' after TPHZ; elsif (E01'event AND E01='0') then if (multipl_1 = '0') then out_1<= '0' after TPZL; elsif (multipl_1 = '1') then out_1<= '1' after TPZH; end if; elsif (A1'event or A2'event) then out_1 <=multipl_1 after TPHLS; elsif (D10'event or D11'event or D12'event or D13'event) then out_1 <=multipl_1 after TPHLD; end if; end if; end process; Y0 <= out_0; Y1 <= out_1; end K555KP17_V; |
Рис. 49. Поведенческая VHDL-модель узла в пакете ActiveHDL. |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.