Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

По технологии изготовления различают пять видов.

Поиск

1. FUSE или ANTIFUSE

2. EPROM – программируемые элементы допускают УФ стирание.

3. EEPROM – программируемые элементы допускают электрическое стирание.

4. FLASH – более надежная по сравнению с EEPROM.

5. SRAM – обеспечивает возможность неограниченных циклов перезаписи, а так же изменить конфигурацию без выключения. Однако при выключении питания конфигурация пропадает, микросхема теряет конфигурацию. Поэтому при включении питания данная микросхема должна быть заново сконфигурирована с помощью небольшой ПЗУ.

Язык описания аппаратуры AHDL

(Бродин Б.В., Калинин А.В. Системы на микроконтроллерах и СБИС программируемой логики. М.: Изд. ЭКОМ, 2002г., 2000с.)

 

В России широкое распространение получили программируемые логические схемы

 

3.2.1.

Оператор оценивает значение выражения и по нему выбирает режим работы схемы в соответствии со списком.

Рассмотрим реализацию логики оператора if на AHDL. В качестве примера возьмем кодировщик приоритета, который преобразует уровень самого приоритетного активного входа в его значение.

SUBDESIGN priority

{low, middle, high: INPUT;

highest_level [1..0]: OUTPUT;

}

BEGIN

IF high THEN

highest_level [ ]=3;

ELSIF middle THEN

highest_level [ ]=2;

ELSIF low THEN

highest_level [ ]=1;

ELSE

highest_level [ ]=0;

END IF

END.

На выходе схемы получается код, соответствующий приоритету того входа, на который подана логическая единица. Если ни один вход не равен 1, то схема выдает 0.

Логическая операция CASE.

Рассмотрим пример, реализующий функцию дешифратора, преобразующего код из двухразрядного в четырехразрядный.

SUBDESIGN decoder

{code[1..0]: INPUT;

out[3..0]:OUTPUT;

}

BEGIN

CASE code [ ] IS

WHEN 0 => OUT[ ]=B”0001”;

WHEN 1 => OUT[ ]=B”0010”;

WHEN 2 => OUT[ ]=B”0100”;

WHEN 3 => OUT[ ]=B”1000”;

END CASE

END.

С помощью операторов IF и CASE можно проектировать дешифраторы. Однако схема сгенерирования компилятором устройства получается весьма сложной. Поэтому в AHDL введены специальные функции, описывающие дешифратор. Для описания дешифраторов используется объявление таблиц истинности TABLE.

Рассмотрим пример, реализующий дешифратор двоичного кода в сигнал семисегментного индикатора.

SUBDESIGN 7segment

{i[3..0]: INPUT;

A,b,c,d,e,f,g: OUTPUT

}

BEGIN

TABLE

i[3..0]=> a,b,c,d,e,f,g;

H”0”=>1,1,1,1,1,1,0;

H”1”=>0,1,1,0,0,0,0;

H”2”=>1,1,0,1,1,0,1;

H”3”=>1,1,1,1,0,0,1;

H”4”=>0,1,1,0,0,1,1;

H”5”=>1,0,1,1,0,1,1;

H”6”=>1,0,1,1,1,1,1;

H”7”=>1,1,1,0,0,0,0;

H”8”=>1,1,1,1,1,1,1;

H”9”=>1,1,1,1,0,1,1;

H”A”=>1,1,1,0,1,1,1;

H”B”=>0,0,1,1,1,1,1;

H”C”=>1,0,0,1,1,1,0;

H”D”=>0,1,1,1,1,0,1;

H”E”=>1,0,0,1,1,1,1;

H”F”=>1,0,0,0,1,1,1.

END TABLE;

END.

В этом примере в таблице перечислены все возможные шестнадцатеричные цифры и соответствующие им состояния выводов. Если необходимо реализовать дешифратор, учитывающий «не все» состояния входов т.е. с повторяющимися (несущественными) состояниями, то такие состояния обозначают символом Х. например рассмотрим дешифратор, реализующий определение области памяти, к которой обращается микропроцессор. Т.е. всю память разделим на несколько участков:

1. ПЗУ (имеющие адреса, начинающиеся с 00)

2. ФЗУ (имеющие адреса, начинающиеся с 100)

А так же 3 устройства, имеющие конкретные адреса.

SUBDESIGN decode3

{ Addr [15..0], m.io: INPUT;

ROM, RAM, PRINT, SP [2..1]: OUTPUT

}

BEGIN

TABLE

m_io, addr [15..0] => ROM, RAM, PRINT, SP [];

1, B “00xxxxxxxxxxxxx” => 1, 0, 0, B “00”;

1, B “100xxxxxxxxxxxx” => 0, 1, 0, B “00”;

0, B “0000010101100000” => 0, 0, 1, B “00”;

0, B “0001010110101100” => 0, 0, 0, B “10”;

0, B “0000110111010011” => 0, 0, 0, B “01”;

END TABLE;

END.

m_io предназначен для выбора к чему обращается микропроцессор. Если m_io = 1, то микропроцессор обращается к памяти. Если m_io = 0, то микропроцессор обращается к устройству ввода и вывода.

Использование для переданных значений по умолчанию на языке AHDL.

Можно определить значение по умолчанию для узла или группы, которые будут автоматически использоваться для них, если в файле их значения не будут заданы. Язык AHDL позволяет присваивать значения узлу или группе неоднократно и, если произойдет конфликт, система автоматически будет использовать значение по умолчанию. Если значения по умолчанию не были заданы, то узлам и группам автоматически присваивается значение GND или все 0. Значение по умолчанию можно использовать и в условных операторах IF и CASE.

Рассмотрим пример:

Пусть на вход системы подается шестнадцатеричный одноразрядный код. На выходе системы должен появиться соответствующий ASCII код. А если одновременно поданы сигналы на несколько входов, то устройство должно выдавать «?».

SUBDESIGN Default 1

{ i [3..0]: INPUT;

ASCII_CODE OUTPUT;}

BEGIN

DEFAULTS

ASCII_CODE [] = b “01111111”; % “?”

END DEFAULTS

TABLE

I [3..0] => ASCII_CODE;

B “1000” => B “01100001”; % “a”

B “0100” => B “01100010”; % “b”

B “0010” => B “01100011”; % “c”

B “0001” => B “01100100”; % “d”

END TABLE;

END.

Реализация двунаправленных выводов.

Порты программируемых микросхем в устройствах могут быть заданы как двунаправленные (BIDIR). Порты микросхемы (ножки микросхемы) так и обозначаются BIDIR, а подключение к ним осуществляется с помощью устройств, построенных на примитиве TRI (тристабильный вывод).

Рассмотрим триггер, который делает выборку значения, найденного на шине с тремя состояниями, а так же может передать обратно на шину хранимое значение.

SUBDESIGN BUS_REG

{ CLIK, OF: INPUT;

IO: BIDIR

}

BEGIN

IO = TRI (DFF (IO, CLK,,), OE)

END.

Двунаправленный сигнал IO запускается примитивом TRI, используется в качестве входа для D -триггера. Запятые в конце списка параметров определяют места для сигналов триггера SET и RESET. По умолчанию они установлены в неактивный уровень.

Последовательная логика.

Логическая схема называется последовательной, если выходы в заданный момент времени являются функцией входов не только в этот момент времени, но и вовремя предыдущего момента времени. Основными последовательностными элементами являются регистры и триггеры. Для описания триггеров используются примитивы Dff D -триггер, DFFE, D -триггер с выходом разрешения работы, TFF, JKFF и т.д.

Объявление регистров на языке AHDL.

Рассмотрим пример, в котором регистр из 8 бит фиксирует значения на выходах данных D по фронту синхроимпулься при условии, что на вход разрешение работы LOAD подана единица.

SUBDESIGN r8

{ CLK, LOAD, d [7..0]: INPUT

Q [7..0]: OUTPUT}

VARIABLE

ff [7..0]: DFFE

BEGIN

ff [] CLK = CLK;

ff [] ENA = LOAD;

ff[] d = d[]

q [] = ff [Q]

END.

Создание счетчиков.

Счетчиками называются последовательностные логические схемы для счета тактовых импульсов. В некоторых счетчиках реализуется вычитание, в некоторых – сложение. В счетчики можно загружать данные, а также обнулить их. Рассмотрим пример, реализующий шестнадцатиразрядный вычитающий загружаемый счетчик с выходом сброса.


SUBDESIGN Schet

{ CLK, LOAD, CLR, d [15..0] ENA: INPUT;

q [15..0]: OUTPUT}

VARIABLE

COUNT [15..0]: OFF;

BEGIN

COUNT f [ ]: CLK = CLK;

COUNT [ ] CLRN = CLR;

IF LOAD THEN

COUNT [ ] = d[ ];

ELSIF ENA THEN

COUNT [ ] d = COUNT [ ] q-1;

ELSE

COUNT [ ] d = COUNT [ ] q;

END IF

q [ ] = COUNT [ ];

END

Назначение входов счетчика:

CLK – вход счетных импульсов.

LOAD – вход параллельной загрузки начального значения импульса.

ENA – вход разрешения счета.

CLR – вход сброса. При подаче 1 все триггеры асинхронно сбрасываются.

 

Микропроцессорная техника

Современная элементная база - сверхбольшие интегральные схемы (СБИС), характеризуется большим числом транзисторов на кристалле и относительно малым числом выводов у корпуса. Поэтому БИС адекват­ны построению логически законченных устройств.

Различные выполняемые функции и сферы применения обусловили спе­циализацию СБИС. Достаточно условно их можно разделить на следую­щие классы:

1. СБИС с аппаратной реализацией алгоритмов обработки данных:
микропроцессоры универсальные и сигнальные, а также микрокон­-
троллеры, включая интерфейсные схемы для образования мульти­
процессорных систем;

2. Микросхемы памяти: статические и динамические;

3. Программируемые логические интегральные схемы (ПЛИС).

Общая структура микроЭВМ.

МикроЭВМ состоит из:

1. ЦП - центральный процессор или микропроцессор. Микропроцессор-это функционально законченное программно-управляемое устройство, осуществляющее процесс обработки цифровой информации и управления им, построенной на одной или нескольких БИС.

Микроконтроллер выполняет, в основном, функции логического анализа и управления.

2. ОЗУ - оперативно запоминающее устройство (состоит из регистров и мультиплексоров и предназначено для временного хранения программ и данных).

3. ПЗУ - постоянно запоминающее устройство (Служит для хранения программ BIOS).

4. КПУ - контроллеры периферийных устройств (например, USB, контроллер жесткого диска и др.).

Рисунок ___ Общая структура микроЭВМ.

Все устройства соединены между собой с помощью трех шин: шина адреса ША (АВ), шина данных ШД (DB), шина управления ШУ (СВ).

ША - это многоразрядная шина, управляемая микропроцессором. Каждое внешнее устройство и ячейка памяти имеет свой адрес.

ШД - многоразрядная двунаправленная шина, предназначенная для передачи команд и данных (принстонская архитектура).

ШУ - многоразрядная шина, предназначенная для синхронизации работы микропроцессора и внешних устройств.

Совокупность микропроцессорных и других БИС (ЗУ обмена информацией, устройства прерывания, управления и.т.д.) совместимых по конструктивно-технологическому исполнению и предназначенных для совместного применения при построении микропроцессоров, контроллеров, называют микропроцессорным комплектом (МПК).

 



Поделиться:


Последнее изменение этой страницы: 2016-06-28; просмотров: 281; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.224.38.170 (0.011 с.)