Научная статья на тему 'Технология разработки алгоритмически сложных цифровых систем с помощью автоматического синтеза микропрограммных автоматов'

Технология разработки алгоритмически сложных цифровых систем с помощью автоматического синтеза микропрограммных автоматов Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
154
35
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Толкачев Алексей, Литвинов Вячеслав, Ермолаев Игорь, Коршунов Игорь, Долинский Михаил

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Толкачев Алексей, Литвинов Вячеслав, Ермолаев Игорь, Коршунов Игорь, Долинский Михаил

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Технология разработки алгоритмически сложных цифровых систем с помощью автоматического синтеза микропрограммных автоматов»

Компоненты и технологии, № 9'2003 Софт

Окончание. Начало в № 8'2003

Технология разработки алгоритмически сложных цифровых систем

с помощью автоматического синтеза микропрограммных автоматов

Михаил Долинский, Игорь Коршунов, Алексей Толкачев, Игорь Ермолаев, Вячеслав Литвинов

4. Примеры применения

В процессе отладки и апробации разработанной системы синтеза микропрограммных автоматов были написаны микропрограммы и синтезированы схемы для большого количества устройств, некоторые из них коротко описаны ниже. Отметим, что после генерации схемы всегда осуществлялась ее симуляция в HLCCAD/IEESD, генерация синтезируемого VHDL-описания микропрограммного автомата и загрузка его в ПЛИС фирмы Altera. На всех этапах использовались тесты, подготовленные еще для микропрограммы.

4.1. Устройство для кодирования-декодирования кодов Хэмминга

Постановка задачи

Помехоустойчивый код — двоичный код, позволяющий обнаруживать и корректировать ошибки при передаче данных. Код Хэмминга обнаруживает ошибки в двух битах и позволяет корректировать один бит. Контрольные разряды занимают позиции с номерами i = 2j (j = 0, 1, 2, ...). Значения контрольных разрядов равны сумме разрядов, номера которых больше номера контрольного разряда и таких, что двоичное представление номера содержит единицу в разряде j, начиная с младших разрядов: B2 = B3 + B6 + B7 + B10 + B11 (если длина исходного слова 7 бит).

Если слово, полученное после подстановки контрольных разрядов, передано правильно, то выражение, полученное в результате сложения контрольных разрядов и суммы, вычисленной по вышеуказанному правилу, будет равно 0: S2 = B2 + B3 + B6 + + B7 + B10 + B11 (длина исходного слова 7 бит).

Если какой-то разряд исказился, некоторые значения выражений будут равны 1. Пусть исказился Bi, тогда первое значение (S1) станет равно 1, если двоичное представление i содержит 1 в младшем разряде. Второе значение (S2), если во втором и т. д. Величина ..., S3, S2, S1 — номер искаженного разряда.

Необходимо спроектировать устройство, которое осуществляет кодирование и декодирование кодов Хэмминга в случае слов длиной 7 бит.

Решение задачи

Описание интерфейса проектируемого устройства:

1с — вход для кодирования (7 бит);

И — вход для декодирования (11 бит);

Ос — закодированное слово 1с (11 бит);

Od — декодированное слово И (7 бит).

В случае длины слов 7 бит имеем следующие формулы для вычисления значений контрольных разрядов:

В1 = В3 + В5 + В7 + В9 + В11;

В2 = В3 + В6 + В7 + В10+ В11;

В4 = В5 + В6 + В7;

В8 = В9 + В10+ В11.

Так как процессы кодирования и декодирования должны выполняться параллельно и независимо друг от друга, то целесообразно реализовать эти процессы в виде двух МПА.

Микропрограмма для процесса кодирования:

Ic ContIn 7 Oc ContOut 11

; Запись информационных разрядов шоу Ос[2], 1с[0]

шоу Ос[4]:3, 1с[1]:3

шоу Ос[8]:3, 1с[4]:3

; Вычисление контрольного разряда 1 и запись в 0с[0]

; В1 = В3 + В5 + В7 + В9 + В11

хог 0с[2], 0с[4], $

хог $, 0с[6]

хог $, 0с[8]

хог $, 0с[10], 0с[0]

; Вычисление контрольного разряда 2 и запись в 0с[1]

; В2 = В3 + В6 + В7 + В10+ В11

хог 0с[2], 0с[5], $

хог $, 0с[6]

хог $, 0с[9]

хог $, 0с[10], 0с[1]

; Вычисление контрольного разряда 4 и запись в 0с[3] ; В4 = В5 + В6 + В7 хог 0с[4], 0с[5], $ хог $, 0с[6], 0с[3]

; Вычисление контрольного разряда 8 и запись в 0с[7] ; В8 = В9 + В10+ В11 хог 0с[8], 0с[9], $ хог $, 0с[10], 0с[7]

О

jmp start

Компоненты и технологии, № 9'2003

Микропрограмма для процесса декодирования:

Id ContIn 11 Od ContOut 7

tmp reg 7

s flag s1 flag s2 flag s3 flag s4 flag

;Сброс сигналов об ошибках

clr s1

clr s2

clr s3

clr s4

;Проверка контрольного разряда 1

; S = B2 + B3 + B5 + B7 + B9 + B11

xor Id[0], Id[2], s

xor s, Id[4]

xor s, Id[6]

xor s, Id[8]

je s, Id[10], E1

;Установка сигнала о ошибке

set s1

;Проверка контрольного разряда 2 E1: ; S = B2 + B3 + B6 + B7 + B10+ B11

xor Id[1], Id[2], s xor s, Id[5] xor s, Id[6] xor s, Id[9] je s, Id[10], E2 ;Установка сигнала о ошибке set s2

;Проверка контрольного разряда 4 E2: ; S = B4 + B5 + B6 + B7

xor Id[3], Id[4], s xor s, Id[5] je s, Id[6], E4

;Установка сигнала о ошибке set s3

;Проверка контрольного разряда 8 E4: ; S = B8 + B9 + B10+ B11

mov s, Id[7] xor Id[7], Id[8], s xor s, Id[9] je s, Id[10], E8 ;Установка сигнала о ошибке set s4

формирование декодированного слова E8: mov tmp[0], Id[2]

mov tmp[1]:3, Id[4]:3

mov tmp[4]:3, Id[8]:3

;Поиск разряда в котором произошла ошибка jnz s4, m1

jnz s3, m01

jnz s2, m001

jmp finish ;нет ошибок m001: jz s1, finish ;ошибка контрольного разряда

; Ошибка в разряде 0011 (бит 0) not tmp[0] ;инверсия ошибочного разряда jmp finish m01: jz s2, m010

jz s1, m0110

; Ошибка в разряде 0111 (бит 3) not tmp[3] ;инверсия ошибочного разряда jmp finish

m0110: ; Ошибка в разряде 0110 (бит 2)

not tmp[2] ;инверсия ошибочного разряда jmp finish

m010: jz s1, finish ;ошибка контрольного разряда ; Ошибка в разряде 0101 (бит 1) not tmp[1] ;инверсия ошибочного разряда jmp finish m1: jz s2, m100

jz s1, m1010

; Ошибка в разряде 1011 (бит 6) not tmp[6] ;инверсия ошибочного разряда jmp finish m1010: ; Ошибка в разряде 1010 (бит 5)

not tmp[5] ;инверсия ошибочного разряда jmp finish

m100: jz s1, finish ;ошибка контрольного разряда ; Ошибка в разряде 1001 (бит 4) not tmp[4] ;инверсия ошибочного разряда

;Вывод декодированного слова на выходные контакты

finish:

mov Od, tmp jmp start

4.2. Устройство для распознавания кода Морзе

Постановка задачи

Необходимо спроектировать устройство, декодирующее текстовую информацию из сигналов азбуки Морзе. Каждая буква представляется в виде последовательности из точек и тире:

A .- J .--- S ...

B -... K -.- T -

C -.-. L .-.. U ..-

D -.. M -- V ...-

E . N -. W .--

F ..-. O --- X -..-

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

G --. P .--. Y -.--

H Q --.- Z --..

I .. R .-.

Характеристики сигналов:

Сигналы в виде «точек» и «тире» поступают на вход DI. Значение сигнала DI считывается по переднему фронту сигнала Clk. Сигналы «точка» и «тире» разделяются паузами.

Сигнал «точка» соответствует одной «1» между двумя паузами.

Сигнал «тире» соответствует трем «1» между двумя паузами.

Пауза соответствует значению «0» на входе DI. Сигналы одной и той же буквы разделяются одной паузой.

Между двумя буквами три паузы. На выходе Code необходимо устанавливать порядковый номер символа («А» = 0, «B» = 1, т. д.) в промежутке между межбуквенными паузами.

DI — сигналы азбуки Морзе.

Clk — синхронизирующий сигнал (DI). Reset — асинхронный вход инициализации («1»).

Code — код декодированного символа. Ready — признак готовности символа («0» — готов, «1» — нет).

Решение задачи Микропрограмма:

DI ContIn 1 dClk ContIn 1 oCode ContOut 5 Ready ContOut 1

ax flag pause reg 2

init:

start:

rep:

clr Ready

je pause, 3, rep

clr Ready

jz ax, Get0

call GetInfo

jeq pause, 3, OUT_T

jz ax, Get10

call GetInfo

jeq pause, 3, OUT_M

jnz ax, OUT_O

call GetInfo

jeq pause, 3, OUT_G

jz ax, OUT_Z

jmp OUT_Q

call GetInfo

jeq pause, 3, OUT_N

jz ax, Get100

call GetInfo jeq pause, 3, OUT_K jz ax, OUT_C jmp OUT_Y

Get100:

call GetInfo

jeq pause, 3, OUT_D

jz ax, OUT_B

jmp OUT_X

Get0:

call GetInfo

jeq pause, 3, OUT_E

jz ax, Get00

call GetInfo

jeq pause, 3, OUT_A

jz ax, Get010

call GetInfo

jeq pause, 3, OUT_W

jz ax, OUT_P

jmp OUT_J

Get010:

call GetInfo

jeq pause, 3, OUT_R

jz ax, OUT_L

jmp finish

Get00:

call GetInfo

jeq pause, 3, OUT_I

jz ax, Get000

call GetInfo

jeq pause, 3, OUT_U

jz ax, OUT_F

jmp finish

Get000:

call GetInfo

jeq pause, 3, OUT_S

jz ax, OUT_H

jmp OUT_V

OUT_A:

mov oCode, 0

jmp finish

OUT_B:

mov oCode, 1

jmp finish

OUT_C:

mov oCode, 2

jmp finish

OUT_D:

mov oCode, 3

jmp finish

OUT_E:

mov oCode, 4

jmp finish

OUT_F:

mov oCode, 5

jmp finish

OUT_G:

mov oCode, 6

jmp finish

OUT_H:

mov oCode, 7

jmp finish

OUT_I:

mov oCode, 8

jmp finish

OUT_J:

mov oCode, 9

jmp finish

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

OUT_K:

mov oCode, 10

jmp finish

OUT_L:

mov oCode, 11

jmp finish

OUT_M:

mov oCode, 12

jmp finish

OUT_N:

mov oCode, 13

jmp finish

OUT_O:

mov oCode, 14

jmp finish

OUT_P:

mov oCode, 15

jmp finish

OUT_Q:

mov oCode, 16

jmp finish

OUT_R:

mov oCode, 17

jmp finish

OUT_S:

mov oCode, 18

jmp finish

OUT_T:

mov oCode, 19

jmp finish

call GetInfo

Get10:

Компоненты и технологии, № 9'2003

0UT_U:

mov oCode, 20

jmp finish

0UT_V:

mov oCode, 21

jmp finish

0UT_W:

mov oCode, 22

jmp finish

0UT_X:

mov oCode, 23

jmp finish

0UT_Y:

mov oCode, 24

jmp finish

0UT_Z:

mov oCode, 25

jmp finish

finish: set Ready

jmp start

;Подпрограмма обработки входной информации

;Выходные значения

; pause — количество пауз

і ax — 1 — «точка», 0 — «тире»

GetInfo proc

set pause

IncP: inc pause

jeq pause, 3, blank

Clk0: jnz dClk, Clk0

Clk1: jz dClk, Clk1

jz DI, IncP

Clk0_1: jnz dClk, Clk0_1

Clk1_1: jz dClk, Clk1_1

jnz DI, Clk0_2

set ax

ret

Clk0_2: jnz dClk, Clk0_2

Clk1_2: jz dClk, Clk1_2

clr ax

blank: ret

endp

4.3. Управляемый делитель частоты

Постановка задачи

На вход А подается меандр (периодический сигнал с равными длительностями 0 и 1). На вход В — число — коэффициент деления частоты. На выходе С нужно получить меандр с частотой А/В. На стабилизацию отводится один период выходной частоты, после чего должен следовать нулевой полупериод. Если В = 0, на С всегда должен быть 0.

Решение задачи

Микропрограмма:

a contIn 1

b contIn 8

c cont0ut 1

cur reg 8

clr c

; ожидание на b сигнала отличного от нуля jz b, l0

mov cur, b

; ожидание переднего фронта jz a, l1

; ожидание заднего фронта jnz a, l2

dec cur

; пропускаем первые b периодов jnz cur, l1

; ожидание переднего фронта jz a, l3

; инвертируем выходной сигнал not с

jz b, start

jmp l0

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

Требуется спроектировать 8-разрядный стек с глубиной до 255 элементов, который позволяет:

• положить элемент в стек;

• взять значение вершины стека;

• убрать элемент из стека;

• узнать количество элементов в стеке;

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

• контролировать ошибки (попытка взять элемент из пустого стека);

• сбросить состояние стека и признак ошибки. Решение задачи

Описание интерфейса проектируемого стека: Input — значение элемента;

Output — значение вершины стека;

Count — количество элементов (для пустого стека — 0);

Reset — сброс стека (сброс при 1);

Push — положить элемент с Input в стек (по переднему фронту);

Pop — убрать элемент со стека (по переднему фронту);

Error — признак ошибки (1 — ошибка). Стек представляет собой регистр длиной 256x8 = 2048. Вершина стека — биты 0-7. По команде Push все биты регистра сдвигаются влево на 8 позиций и на освободившееся место записывается новый элемент. По команде Pop все биты регистра сдвигаются вправо на 8 позиций.

Микропрограмма, реализующая стек:

Input ContIn 8

Push ContIn 1

Pop ContIn 1

0utput Cont0ut 8

Count Cont0ut 8

Error Cont0ut 1

Stack reg 2048

start:

clr Count

InitPop:

jnz Pop, InitPop

InitPush:

jnz Push, InitPush

Wait:

jnz Push, PushCmd

jz Pop, Wait ; Pop

clr Error

jz Count, StackEmpty

shr Stack, 8

mov Output, Stack[0]:8

dec Count

jmp InitPop ; Push

PushCmd:

clr Error

inc Count

jc StackFull

shl Stack, 8

mov Stack[0]:8, Input

mov 0utput, Input

jmp InitPop і Full

StackFull:

mov Count, 255 і Empty

StackEmpty:

set Error

jmp InitPop

4.5. Устройство для проверки корректности штрих-кода Постановка задачи

Требуется спроектировать устройство для проверки 13-разрядного штрих-кода системы БЛ^13.

Пусть дан штрих-код «4601546003119». Для проверки правильности штрих-кода существует следующий алгоритм:

1. Складываются цифры, стоящие на четных местах штрих-кода 6+1+4+0+3+1=15.

2. Полученная сумма умножается на три 15x3=45.

3. Складываются цифры, стоящие на нечетных местах штрих-кода (кроме последней контрольной цифры) 4+0+5+6+0+1=16.

4. Полученные два числа складываются 45+16=61.

5. Отбрасываются десятки 61-60=1.

6. Полученное в пункте 5 число вычитается из десяти 10-1=9 (если в 5 пункте получили 0 — результат 0). Результат должен совпадать с контрольной цифрой (13-й цифрой). Если это не так, то указанный «штрих-код» — грубая подделка, а качество товара скорей всего невысоко.

Примеры

«4601546003119» — штрих-код верен. «4601546003118» — штрих-код неверен.

Решение задачи

Описание интерфейса проектируемого стека: Code1-Code12 — первые 12 цифр штрихкода;

Code13 — 13-я цифра штрих-кода (контрольная);

Error — некорректные входные данные (1 — данные некорректны);

Status — результат проверки (1 — штрих-код неверен или некорректные входные данные). Микропрограмма:

Code1 ContIn 4

Code2 ContIn 4

Code3 ContIn 4

Code4 ContIn 4

Code5 ContIn 4

Code6 ContIn 4

Code7 ContIn 4

Code8 ContIn 4

Code9 ContIn 4

Code10 ContIn 4

Code11 ContIn 4

Code12 ContIn 4

Code13 ContIn 4

Status Cont0ut 1

Error Cont0ut 1

sum1 reg 8

sum reg 8

tmp reg 8

Start:

і Проверка корректности входных данных

ja Code1, 9, not_digit

ja Code2, 9, not_digit

ja Code3, 9, not_digit

ja Code4, 9, not_digit

ja Code5, 9, not_digit

ja Code6, 9, not_digit

ja Code7, 9, not_digit

ja Code8, 9, not_digit

ja Code9, 9, not_digit

ja Code10, 9, not_digit

ja Code11, 9, not_digit

ja Code12, 9, not_digit

ja Code13, 9, not_digit

clr Error

і Проверка корректности штрих-кода

clr tmp

clr sum

mov tmp[0] : 4, Code2

add sum, tmp

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

mov tmp[0] : 4, Code4

add sum, tmp

mov tmp[0] : 4, Code6

add sum, tmp

mov tmp[0] : 4, Code8

add sum, tmp

mov tmp[0] : 4, Code10

add sum, tmp

mov tmp[0] : 4, Code12

add sum, tmp

add sum, sum, sum1

add sum1, sum

clr sum

mov tmp[0] : 4, Code1

add sum, tmp

mov tmp[0] : 4, Code3

add sum, tmp

mov tmp[0] : 4, Code5

add sum, tmp

mov tmp[0] : 4, Code7

add sum, tmp

mov tmp[0] : 4, Code9

add sum, tmp

mov tmp[0] : 4, Code11

add sum, tmp

add sum, sum1

10

l2

Компоненты и технологии, № 9'2003

for: ja 10, sum, done

sub sum, 10

jmp for

done: jz sum, except

sub 10, sum, sum

except: jeq sum[0] : 4, Code13, set_s

clr Status

jmp start

set_s: set Status

jmp start

not_digit:

set Error

clr Status

jmp start

5. Отладка микропрограмм, настраиваемая на исполнительные устройства

Нам представляется, что в практике разработок вполне реальной является следующая ситуация. Имеется набор исполнительных устройств — независимо функционирующих компонентов операционного автомата или, в общем случае, независимо функционирующих операционных автоматов. Создание требуемой цифровой системы фактически заключается в написании и отладке микропрограммы, реализующей требуемый комплекс функций. Какие способы решения подобных проблем предлагаются нами?

При наличии определенных пользователем (или заданных ему техническим заданием) операционных устройств и формата микрокоманды можно реализовать модели имеющихся операционных устройств с помощью языка микропрограммных автоматов: блоки памяти операционных устройств определяем с помощью команд резервирования памяти REG и FLAG, а функции операционных устройств реализуем как последовательности микрокоманд на ассемблере МРА, объединенные в микропрограммы или макрокоманды, с определяемыми пользователями именами. Далее пользователи могут отлаживать микропрограммы, управляющие имеющимися операционными устройствами. По завершению отладки всех микропрограмм (или параллельно их отладке) пользователь может разработать генератор реальных машинных кодов для отлаживаемых подпрограмм. Эта задача может быть сильно упрощена при разумном вводе пользователем имен макрокоманд и подпрограмм, обеспечивающем табличное кодирование мнемоник в соответствующие поля микрокоманд. Кроме того, для ускорения создания генератора машинных кодов микропрограмм можно использовать разработанный нами ассемблер, настраиваемый на целевую архитектуру RtASM [8].

Для отладки генератора микропрограмм можно использовать дизассемблер и симуляцию дизассемблированных кодов с целью достижения эквивалентности результатов симуляции исходного текста и его ассемблированного (дизассемблированного) представления.

6. Использования в учебном процессе

Описанный в данной работе программный комплекс активно используется в учебном процессе математического факультета Гомельского государственного университета

(Белоруссия). Ниже приведены примеры лабораторных и курсовых работ.

1. Разработка микропрограмм алгоритмически сложных цифровых устройств.

2. Исследования прикладных алгоритмов на выделение новых инструкций для расширения языка микропрограммных автоматов (МПА).

3. Анализ эффективности аппаратной реализации инструкций (операционных устройств) языка МПА.

7. Направления текущих разработок

Разработанная система автоматического синтеза микропрограммных автоматов продолжает развиваться в следующих направлениях:

• поддержка языка программирования С как средства описания алгоритмов функционирования устройств;

• генераторы типизированных параметрических систем;

• управляемая оптимизация генерируемых МПА.

Очевидно, что использование языка более высокого уровня, чем ассемблер, будет способствовать повышению производительности разработки микропрограмм. Для реализации этого направления в настоящее время разрабатываются язык СМРБЬ, в основе которого лежат конструкции языка С, которые могут быть скомпилированы в конструкции уже реализованного языка МРБЬ, в том числе арифметические и логические выражения, операторы условия, выбора, циклов, безусловного перехода и некоторые другие. Одновременно разрабатывается компилятор СМРОЬ->МРБЬ на базе созданного нами универсального синтаксического анализатора ИшЗЛп.

Дальнейшим развитием такого подхода к повышению производительности разработчиков сложных алгоритмических устройств может быть создание визуальных редакторов для специализированных устройств, например, фильтров, шифраторов-дешифраторов, компрессоров-декомпрессоров, аудио- и видеокодеков и т. д. Разработчик в визуальном редакторе определяет параметры нужного ему устройства и получает исходный текст микропрограммы на СМРБЬ или МРБЬ, из которой по описанной выше технологии строится синтезируемое УИОЬ-описание микропрограммного автомата, реализующего требуемые функции.

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

Заключение

Описанные метод и средства разработки алгоритмически сложных устройств на основе автоматической генарации схем по отлаженным микропрограммам существенно со-

кращают сроки разработки, в то же время обеспечивая высокое быстродействие и приемлемое качество (в смысле аппаратных затрат) созданных схем. К сожалению, ввиду отстутствия реальных заказов, апробация и испытания в настоящее время проводились только на учебных примерах. Хочется надеяться, что настоящая публикация поможет нам найти разработчиков, решающих задачи соответствующей сложности. МИ

Литература

1. Dolinsky M. S., Ziselman I. M., Harrasov A. A. Computer-Aided design of microprogrammed devices // Automatic Control and Computer Sciences. New York: Allerton Press. 1997. Vol. 31. № 5.

2. Долинский М. С., Зисельман И. М., Харра-сов А. Р. Автоматический синтез микропрограммных автоматов // Автоматика и вычислительная техника. Рига. 1997. № 5.

3. Долинский М. С., Харрасов А. А. Средства разработки цифровых устройств методом синтеза микропрограммных автоматов // Электоника. Минск. 1998. № 11-12.

4. Коршунов И. В. Автоматический синтез микропрограммных автоматов // Новые математические методы и компьютерные технологии в проектировании, производстве и научных исследованиях. Материалы III Республиканской научно-технической конференции студентов и аспирантов 13-18 марта 2000 г. Гомель.

5. Коршунов И. В. Метод автоматического построения микропрограммных автоматов // Новые математические методы и компьютерные технологии в проектировании, производстве и научных исследованиях. Материалы IV Республиканской научно-технической конференции студентов и аспирантов 19-22 марта 2001 г. Гомель.

6. Долинский М., Литвинов В., Галатин А., Ермолаев И. HLCCAD — среда редактирования, симуляции и отладки аппаратного обеспечения. Компоненты и Технологии. 2003. № 1.

7. Долинский М., Ермолаев И., Толкачев А., Гончаренко И. WInter — среда отладки программного обеспечения мультипроцессорных систем. Компоненты и Технологии. 2003. № 2.

8. http://NewIT.gsu.unibel.by.

9. Баранов С. И. Синтез микропрограммных автоматов. Л.: Машиностроение. 1979.

10. Майоров С. А., Новиков Г. И. Структура электронных вычислительных машин. Л.: Машиностроение. 1979.

11. Каган Б. М. Электронные вычислительные машины и системы. М.: Энергия. 1979.

12. Семенов Н., Каршенбойм И. Микропрограммные автоматы на базе специализированных ИС // Chip news. 2000. № 7.

13. Лобанов В. Технический минимум пользователя САПР MAX+PLUS II // Chip news. 2001. № 1.

14. Лазарев В. Г., Пийль Е. И. Синтез управляющих автоматов. М.: Энергоатомиздат. 1989.

15. Tolkachev A., Dolinsky M. Hardware Implementation of Complex Data Processing Algorithms. EUROMICRO/DSD-2003.

i Надоели баннеры? Вы всегда можете отключить рекламу.