Мои Конспекты
Главная | Обратная связь


Автомобили
Астрономия
Биология
География
Дом и сад
Другие языки
Другое
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Металлургия
Механика
Образование
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Туризм
Физика
Философия
Финансы
Химия
Черчение
Экология
Экономика
Электроника

Тернопіль 2015



Міністерство освіти і науки України

Тернопільський національний економічний університет

Факультет комп’ютерних інформаційних технологій

 

Кафедра КІ

Лабораторна робота № 3

«Автоматизація проектування в КС»

 

 

Виконав:

студент групи КСМ-31

Рендзеняк Н.А.

 

Перевірила:

Дубчак Л.О.

Тернопіль 2015

 

Тема: Побудова цифрового автомата за допомогою FSM-редактора.

Мета: Засвоїти методику та отримати практичні навики роботи з редактором автоматів для створення VHDL-проектів.

Порядок виконання роботи

1 . Ознайомитись з викладеним вище теоретичним матеріалом.

2. Ознайомитись з наявною допоміжною документацією середовища Active-VHDL стосовно особливостей роботи з FSM-редактором.

3. Завантажити FSM-редактор.

4. Відповідно до індивідуального завдання побудувати автоматний граф проектованого цифрового вузла, чи пристрою.

5. Перевірити отриманий автомат на відсутність помилок.

6. Встановити задані викладачем параметри генерування VHDL коду.

7. Згенерувати VHDL код проектованого цифрового вузла, чи пристрою.

8. Проаналізувати отриманий VHDL код.

9. Провести функціональну симуляцію проектованого пристрою.

10. Дати відповідь на контрольні запитання.

11. Скласти звіт з виконання лабораторної роботи та захистити його до початку виконання наступної лабораторної роботи.

 

 

Завдання для роботи

6. Лічильник зворотного рахунку за модулем ЗО

 


Рис. 1 – ФСМ діаграма

Рис. 2 - Функціонально-логічна схема проектованого пристрою.

 

Код програми

-------------------------------------------------------------------------------

--

-- Title : No Title

-- Design : fsm

-- Author : nazik

-- Company : TNEU

--

-------------------------------------------------------------------------------

--

-- File : e:\My_Designs\FSM\fsm\compile\fsa.vhd

-- Generated : 04/02/15 21:07:37

-- From : e:\My_Designs\FSM\fsm\src\fsa.asf

-- By : FSM2VHDL ver. 5.0.7.2

--

-------------------------------------------------------------------------------

--

-- Description :

--

-------------------------------------------------------------------------------

 

library IEEE;

use IEEE.std_logic_1164.all;

use IEEE.std_logic_arith.all;

use IEEE.std_logic_unsigned.all;

 

entity fsa_diagram is

port (

CLK: in STD_ULOGIC;

reset: in STD_ULOGIC;

y: out STD_ULOGIC_VECTOR (0 to 4));

end fsa_diagram;

 

architecture arch of fsa_diagram is

 

-- SYMBOLIC ENCODED state machine: Sreg0

type Sreg0_type is (

S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13, S14, S15, S16, S17, S18, S19, S20, S21, S22, S23, S24, S25, S26, S27, S28,

S29, S0

);

-- attribute enum_encoding of Sreg0_type: type is ... -- enum_encoding attribute is not supported for symbolic encoding

 

signal Sreg0: Sreg0_type;

 

begin

 

 

----------------------------------------------------------------------

-- Machine: Sreg0

----------------------------------------------------------------------

Sreg0_machine: process (CLK)

begin

if CLK'event and CLK = '1' then

-- Set default values for outputs, signals and variables

-- ...

case Sreg0 is

when S1 =>

if CLK = '1' then

Sreg0 <= S2;

y <= "11100";

end if;

when S2 =>

if CLK='1' then

Sreg0 <= S3;

y <= "11011";

end if;

when S3 =>

if CLK='1' then

Sreg0 <= S4;

y <= "11010";

end if;

when S4 =>

if CLK='1' then

Sreg0 <= S5;

y <= "11001";

end if;

when S5 =>

if CLK='1' then

Sreg0 <= S6;

y <= "11000";

end if;

when S6 =>

if CLK='1' then

Sreg0 <= S7;

y <= "10111";

end if;

when S7 =>

if CLK='1' then

Sreg0 <= S8;

y <= "10110";

end if;

when S8 =>

if CLK='1' then

Sreg0 <= S9;

y <= "10101";

end if;

when S9 =>

if CLK='1' then

Sreg0 <= S10;

y <= "10100";

end if;

when S10 =>

if CLK='1' then

Sreg0 <= S11;

y <= "10011";

end if;

when S11 =>

if CLK='1' then

Sreg0 <= S12;

y <= "10010";

end if;

when S12 =>

if CLK='1' then

Sreg0 <= S13;

y <= "10001";

end if;

when S13 =>

if CLK='1' then

Sreg0 <= S14;

y <= "10000";

end if;

when S14 =>

if CLK='1' then

Sreg0 <= S15;

y <= "01111";

end if;

when S15 =>

if CLK='1' then

Sreg0 <= S16;

y <= "01110";

end if;

when S16 =>

if CLK='1' then

Sreg0 <= S17;

y <= "01101";

end if;

when S17 =>

if CLK='1' then

Sreg0 <= S18;

y <= "01100";

end if;

when S18 =>

if CLK='1' then

Sreg0 <= S19;

y <= "01011";

end if;

when S19 =>

if CLK='1' then

Sreg0 <= S20;

y <= "01010";

end if;

when S20 =>

if CLK='1' then

Sreg0 <= S21;

y <= "01001";

end if;

when S21 =>

if CLK='1' then

Sreg0 <= S22;

y <= "01000";

end if;

when S22 =>

if CLK='1' then

Sreg0 <= S23;

y <= "00111";

end if;

when S23 =>

if CLK='1' then

Sreg0 <= S24;

y <= "00110";

end if;

when S24 =>

if CLK='1' then

Sreg0 <= S25;

y <= "00101";

end if;

when S25 =>

if CLK='1' then

Sreg0 <= S26;

y <= "00100";

end if;

when S26 =>

if CLK='1' then

Sreg0 <= S27;

y <= "00011";

end if;

when S27 =>

if CLK='1' then

Sreg0 <= S28;

y <= "00010";

end if;

when S28 =>

if CLK='1' then

Sreg0 <= S29;

y <= "00001";

end if;

when S29 =>

if CLK='1' then

Sreg0 <= S0;

y <= "00000";

end if;

when S0 =>

if CLK='1' then

Sreg0 <= S1;

y <= "11101";

end if;

--vhdl_cover_off

when others =>

null;

--vhdl_cover_on

end case;

end if;

end process;

end arch;

Висновок:

На даній лабораторній роботі було засвоєно методику та отримано практичні навики створення та функціоновання верифікації проектованих пристроїв в системі проектування Active-HDL.




Поиск по сайту:







©2015-2020 mykonspekts.ru Все права принадлежат авторам размещенных материалов.