описані всі вхідні і вихідні сигнали даного продукту:
: in STD_LOGIC;: in STD_LOGIC;: in STD_LOGIC_VECTOR (8 downto 0);: out STD_Logic;: out STD_LOGIC.
Даний опис в даному розділі проекту відповідає його специфікації, тому для детальної інформації можна подивитися таблиці 4.1 та 4.2.
Далі йде з'єднання блоків:
m1: rg port map (Str => Str, DataRG => Data, DataOut_RG => Data_in, Reset => Reset);
m2: mod2 port map (Str => Str, Data_mod => Data_in, OK => OK);: GI port map (OK => OK, F => Clk) ; _k1 <= Data_in (7) & Data_in (6) & Data_in (5) & Data_in (4); _k2 <= Data_in (3) & Data_in (2) & Data_in (1) & Data_in (0);: Kod port map (Data_Kod => N_k1, K => D_K);: UDC port map (Clk_in => Clk, K_in => D_K, Clk_out => Clk_out);: Rasp_imp port map (Clk => Clk_out, Ready => Ready, DataOut_R => Data_n2);: BlockD port map (Data_B => Data_n2, DataOut_B => Data_m);: Kom_imp port map (Data_N => N_k2, Data_BD => Data_m, DataOut_K => OutData);
Сигнали N_k1 і N_k2 є проміжними, які набувають значення старших чотирьох біт інформації і молодших відповідно.
Приклад моделювання одного з наборів представлений на рис. 4.10. На вхід надходить такий набір - Str (строб введення), на який надходить сигнал тактової частоти 65 МГц, Reset (скидання) встановлює даний пристрій в початкове стану, коли він дорівнює 1 , а потім при встановленні в 0 даний пристрій починає свою роботу, і Data, які і є інформаційними даними, які заносяться в регістр, після якого дані присвоюються змінної Data_in. Інформаційні дані надходять на блок перевірки на непарність, і якщо вхідні дані є непарним числом, то сигнал ОК дорівнює 1 , інакше span> 0 . Цей сигнал дає старт для роботи генератора імпульсів clk з частотою 65 МГц. Імпульси з даної частотою надходять на керований дільник частоти. А паралельно з цим інформаційні дані поділяються на два полубіта N_k1 і N_k2.
N_k1 <= Data_in (7) & Data_in (6) & Data_in (5) & Data_in (4); _k2 <= Data_in (3) & Data_in (2) & ; Data_in (1) & Data_in (0);
За допомогою сигналу N_k1, який надходить на шифратор, визначається коефіцієнт розподілу частоти, D_K. Значення D_K надходить на керований дільник частоти, на виході якого маємо сигнал clk_out, який являє собою clk/D_K. Тепер з цього моменту синхроимпульсом для розподільника є clk_out. Після того, як сигнал Ready став дорівнює 1 , це означає те, що розподільник імпульсів готовий до формування сигналу Data_n2. Цей сигнал надходить на блок діз'юнкторов, де власне і формуються імпульсні послідовності, результатом його роботи є сигнал Data_m. Він надходить на комутатор імпульсів, де за допомогою сигналу N_k2 і визначається який імпульсної послідовності і дорівнюватиме вихідний сигнал OutData.
В
Малюнок 4.10 - Приклад моделювання
Дивлячись на малюнок 4.10 можна сказати, що даний пристрій працює правильно.
Повний текст (в тілі пояснювальної записки приводити повний текст не треба - його виносять у додатки).
BlackPack.vhdlIEEE; IEEE.std_logic_1164.all; osn is (Reset: in STD_LOGIC;: in STD_LOGIC;: in STD_LOGIC_VECTOR (8 downto 0);: out STD_Logic;: out STD_LOGIC); osn; osn of osn isMod2 is (Data_Mod: in STD_LOGIC_VECTOR (8 downto 0);: in std_logic;: out Std_logic;: out Std_logic); component Mod2; Kod is (_Kod: in STD_LOGIC_VECTOR (3 downto 0);: out STD_LOGIC_VECTOR (9 downto 0)); component Kod; UDC is (K_in: in std_logic_vector (9 downto 0); _in: in std_logic; _out: inout std_logic: = '0 '); component UDC; RG is (Reset: in std_logic;: in Std_logic;: in STD_LOGIC_VECTOR (8 downto 0); _RG: out STD_LOGIC_VECTOR (8 downto 0)); component RG; GI is (Ok: in Std_logic;: buffer Std_logic); component GI; Rasp_imp is (Clk: in STD_LOGIC;: out STD_LOGIC; _R: out STD_LOGIC_VECTOR (6 downto 0)); component Rasp_imp; BlockD is (Data_B: in STD_LOGIC_VECTOR (6 downto 0); _B: out STD_LOGIC_VECTOR (7 downto 0)); component BlockD; Kom_imp is (Data_N: in STD_LOGIC_VECTOR (3 downto 0 ); _BD: in STD_LOGIC_VECTOR (7 downto 0); _K: out STD_LOGIC); component Kom_imp; Clk, OK, Clk_out: std_logic; Data_in: std_logic_vector (8 downto 0); N_k1, N_k2: std_logic_vector (3 downto 0); Data_n2 : std_logic_vector (6 downto 0); Data_m: std_logic_vector (7 downto 0); D_K: STD_LOGIC_VECTOR (9 downto 0);: rg port map (Str => Str, DataRG => Data, DataOut_RG => Data_in, Reset => Reset);: mod2 port map (Str => Str, Data_mod => Data_in, OK => OK);: GI port map (OK => OK, F => Clk); _k1 < ; = Data_in (7) & Da...