Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОПИС_ЛАБ РАБ ПЛИС ISE_2015.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
4 Мб
Скачать
☆

Вариант описания уу зу как автомата

Если временную диаграмму сигналов управления отображать более детально, чем это сделано в данном студенческом проекте УУ на микросхемах 1533 серии, то надо повысить тактовую частоту генератора. Например, период тактового генератора УУ можно взять равным 20 нс.( 50 мгц). Весь цикл работы УУ ПЗУ (180-220 нс) тогда уложится в 9-11 тактов (см. рис. 2). При реализации проекта на СИС КР1533 это нельзя было сделать в силу больших задержек элементов.

Сигнал приема адреса можно вырабатывать через такт после того, как придет комбинация (MS and not МR ), и держать его два такта, а сигнал разрешения выдачи OE устанавливать в «0» после 8 тактов и держать его 3 такта.

АВТОМАТ МИЛИ

Ниже приведено функциональное описание УУ как автомата (черного ящика) на языке VHDL. Выбран автомат МИЛИ, т.е. выходные сигналы зависят от состояния автомата и входных сигналов. В связи с таким решением на выходах возможны риски сбоев. При дальнейшем усовершенствовании этого проекта во избежание помех из-за гонок можно выходные сигналы УУ фиксировать на триггерах или строить описание УУ как автомата МУРА. Приведенный ниже вариант УУ оценивается при синтезе на ПЛИС Spartan-3 с опцией САПР «позиционное кодирование состояний автомата-one hot» по оборудованию в 11 триггеров, 9 слайсов, и его максимальная рабочая частота составляет 380 МГц. Тот же автомат, но синтезированный с опцией «кодирование состояний кодом грея», содержит 4 триггера , 8 слайсов с рабочей частотой до 243 МГц. Т.е при желании идеальную временную диаграмму управления ПЗУ можно представить еще точнее ─цикл работы не в 10, а в 20 тактах!). Напоминаем, что САПР ISE и MODELSIM не любят кириллицу и русский текст приведенных ниже комментариев лучше заменить английским.

Entity control_unit is—используется двоичный алфавит сигналов

port(CLK,RST,MS,MR:in bit; ecs,ewr,oe:out bit);

end;

architecture avtomat of control_unit is

type state_type is (S0,S1,S2,S3,S4,S5,S6,S7,S8,S9,S10);

signal State,NextState:state_type:=S0; -- сигналы блока

signal RESET_N :bit;

begin

--процесс переключения состояний автомата (D-триггера c

--cинхронным сбросом)

RESET_N <= RST AND MS;--сброс при RST=0 или MS=0

MEMORY:process (CLK)

begin

if CLK'event and clk='1' then

if RESET_N='0' or MS=’0’ then state<=S0;

else State<=NextState;

end if;

end if;

end process;

--комбинационная часть автомата

process (State,MS,MR)

begin

OE<='1';ecs<='1';ewr<='0'; NextState<=State;

If MS=’1’ then

case State is

when S0 => if MR='0' then NextState<=S1;end if;

when S1 => if MR='0' then NextState<=S2;ewr<='1';end if;

when S2 => if MS='1' then NextState<=S3; ewr<='1'; end if;

when S3 => if MS='1' then NextState<=S4; end if;

when S4 => if MR='1' then NextState<=S5; ecs<='0';end if;

when S5 => if MR='1' then NextState<=S6;ecs<='0';end if;

when S6 => if MR='1' then NextState<=S7;ecs<='0';end if;

when S7 => if MR='1' then NextState<=S8;ecs<='0'; end if;

when S8 => if MR='1' then

NextState<=S9;Oe<='0';ecs<='0';end if;

when S9 => if MR='1' then NextState<=S10;

Oe<='0'; ecs<='0'; end if;

when S10 =>if MR='1' then NextState<=S0;Oe<='0'; ecs<='0';

end if;

end case;

else NextState<=S0; Oe<='0'; ecs<='0';

end if;

end process;

end;

При описании автомата обратите внимание на соблюдение соответствия временной диаграммы полученной при моделировании , диаграмме , заданной в задании на курсовой проект. Например начало очередного цикла в данном случае можно сделать по нулевому значению MS – тогда сигнал reset излишний или как на диаграмме .представленной ниже -после установки MS в 1 далее все управляется сигналом MR,что является отступлением от диаграммы задания рис.2.

Временная диаграмма работы устройства управления ЗУ, описанного на VHDL как автомат, представлена ниже на рис. 5.

Рис.5. Временная диаграмма УУ ПЗУ, представленного как автомат МИЛИ

Однако в описании автомата не учитываются задержки сигналов в элементах.

Поэтому, если преподаватель разрешит ПРИ ПРОВЕРКЕ РАБОТОСПОСОБНОСТИ ЗУ В ЦЕЛОМ , вместо функциональной схемы УУ, выполненной на элементах среднего уровня интеграции(СИС) серии 1533-54-F72, в составе модели всего проекта ЗУ использовать модель УУ как автомата, следует внести в автоматную модель УУ задержки, рассчитанные исходя из задержек схемы на микросхемах СИС.

Например, если предполагается использование в модели ЗУ описание модели УУ как автомата и задержка сигнала ewr в УУ на микросхемах СИС была 25 нс, то в автоматной модели УУ строка кода в описании автомата управления

when S1 => if MR='0' then NextState<=S2;ewr<='1';end if;

заменяется на

when S1 => if MR='0' then NextState<=S2;ewr<='1'after 25 ns;

end if;

АВТОМАТ МУРА

Ниже приведен вариант описания УУ ПЗУ как автомата МУРА в форме из трех процессов-процесс память, процесс комбинационная схема определения будущего состояния и процесс выработки выходных сигналов как функции состояния автомата. Алфавит- std_logic.Сигнал rst отсутствует.

library ieee;

use IEEE.std_logic_1164.all;

Entity control_unit_3 is

port(CLK,MS,MR:in std_logic; ecs,ewr,oe:out std_logic);

end;

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

architecture moore_avtomat of control_unit_3 is

type state_type is (S0,S1,S2,S3,S4,S5,S6,S7,S8,S9,S10);

signal State,NextState:state_type:=S0; -- сигналы блока

begin

-- память автомата

--процесс переключения состояния автомата (D-триггера c

--cинхронным сбросом)

MEMORY:process (CLK)

begin

if CLK'event and clk='1' then

if MS='0' then state<=S0;

else State<=NextState;

end if;

end if;

end process;

--комбинационная часть автомата

process (State,MS,MR)

begin

NextState<=State;

If MS='1' then

case State is

when S0 => if MR='0' then NextState<=S1;end if;

when S1 => if MR='0' then NextState<=S2; end if;

when S2 => if MS='1' then NextState<=S3; end if;

when S3 => if MS='1' then NextState<=S4; end if;

when S4 => if MR='1' then NextState<=S5; end if;

when S5 => if MR='1' then NextState<=S6; end if;

when S6 => if MR='1' then NextState<=S7; end if;

when S7 => if MR='1' then NextState<=S8; end if;

when S8 => if MR='1' then NextState<=S9; end if;

when S9 => if MR='1' then NextState<=S10;end if;

when S10 =>

end case;

else NextState<=S0;

end if;

end process;

--выходные сигналы

process (State)

begin

OE<='1';ecs<='1';ewr<='0';

case State is

when S0 =>

when S1 => ewr<='1';

when S2 => ewr<='1';

when S3 =>

when S4 => ecs<='0';

when S5 => ecs<='0';

when S6 => ecs<='0';

when S7 => ecs<='0';

when S8 => Oe<='0';ecs<='0';

when S9 => Oe<='0'; ecs<='0';

when S10 => Oe<='0'; ecs<='0';

end case;

end process;

end;

Временная диаграмма поведенческого моделирования этого варианта устройства управления ниже:( автомат МУРА, нет специального сигнала rst сброса и начала нового цикла обращения к ПЗУ- им является сигнал MS=0,смена входных сигналов идет по срезу тактового сигнала, автомат останавливается в состоянии 10 до прихода сигнала начала нового цикла и сигнал выдачи данных OE =0 продолжается все это время).

Ниже посттрассировочная диаграмма