Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебное пособие 800670

.pdf
Скачиваний:
4
Добавлен:
01.05.2022
Размер:
25.75 Mб
Скачать

 

 

 

Таблица 2

Входные и выходные позиции переходов

Входные

Выходные

Входные

Выходные

 

позиции

позиции

позиции

позиции

 

I(d1) = {b0},

O(d1) = {b1,b2},

I(d10) = {b6},

O(d10) = {b8},

 

I(d2) = {b1, b2},

O(d2) = {b4},

I(d11) = {b4},

O(d11) = {b9},

 

I(d3) = {b2 },

O(d3) = {b3},

I(d12) = {b5},

O(d12) = {b9},

 

I(d4) = {b4},

O(d4) = {b4},

I(d13) = {b5},

O(d13) = {b8}.

 

I(d5) = {b4},

O(d5) = {b7},

I(d14) = {b7},

O(d14) = {b8},

 

I(d6) = {b4},

O(d6) = {b5},

I(d15) = {b8},

O(d15) = {b9}

 

I(d7) = {b4},

O(d7) = {b6},

I(d16) = {b8},

O(d16) = {b9}

 

I(d8) = {b5},

O(d8) = {b7},

I(d17) = {b7},

O(d17) = {b9}

 

I(d9) = {b6},

O(d9) = {b7},

 

 

 

Разработанная сеть Петри (СП) безопасна, так как она 1 – ограничена, достижима, все переходы активны (потенциально запускаемые), необратима, покрываема и неустойчива. Разработанная сеть позволяет отслеживать состояние диагностики пациента с подозрением на острый панкреатит и генерировать варианты управления процессом диагностики посредством имитации.

Также по результатам классификации был построен ансамбль нейросетей, состоящий из 25 моделей, с применением пакета STATISTICA 6.0. Для построения использовался алгоритм обучения с учителем. Обучающая выборка велась на 55 примерах, 9 примеров было выделено в качестве тестовых, из них 3 – острый панкреатит тяжелой формы, 4 – острый панкреатит нетяжелой формы, 2 – другая патология, и 7 в качестве контрольных, из них 2– острый панкреатит тяжелой формы, 3 – острый панкреатит нетяжелой формы, 2 – другая патология.

После анализа сравнительной характеристики, которая представлена в табл. 3, было выявлено, что наибольшей достоверностью постановки диагноза обладают нейронная сеть №7 и №15 (87,5 %). Результаты тестирования тестовой и контрольной группы рассматриваемых заболеваний НС№7 и №15 представлены в табл. 4.

Архитектуры выбранных нейронных сетей представлены на рис. 3 и 4.

Входами сетей являются вектора классификационных

11

признаков заболеваний острого панкреатита:

Х1 – алкогольный анамнез, Х2 – интенсивные опоясывающие боли, Х3 – многократная рвота, Х4 – симптом Мэйо-Робсона, Х5 – симптом Карте, Х6симптом Бонде, Х7 – цианоз кожи, Х8 – тахикардия/артериальная гипотензия, Х9 – эритематозные кожные узелки, Х10 – содержание Са, Х11 – активность амилазы в крови, Х12 – содержание лейкоцитов, Х13 – активность амилазы в моче, Х14 – повышение билирубина, Х15 – нечеткие контуры, Х16 – наличие свободной жидкости в брюшной полости, Х17 – отек панкреатических тканей, Х18-Х20 – размеры поджелудочной железы (тело, головка, хвост соответственно), Х21 – эхогенность в норме, Х22 – эхогенность повышена, Х23 – эхогенность понижена.

Сети имеют 3 выхода, соответствующие рассматриваемым заболеваниям. В НС№7 один скрытый слой, который состоит из 12 нейронов, в НС№15 два скрытых слоя, состоящие из 10 и 8 нейронов соответственно. Обучение сетей выполнены с использованием линейной функции активации на входном слое, сигмоидальной функции на скрытом и логистической функции на выходном слое.

Рис. 2. Архитектура НС №7

12

Таблица 3 Сравнительная характеристика эффективности разработанных НС

 

Правильно

Правильно

 

 

Кол-во

Кол-во

Кол-во

 

 

 

распознанны

распознанные

 

Кол-во

удаленны

удаленн

удаленн

Кол-во

 

 

е примеры в

примеры в

Число

х

ых

ых

Прогн

тестовой

контрольной

скрыт

удаленн

нейронов

нейронов

нейронов

удаленн

оз

сет

выборке

выборке

ых

ых

1

2

3

ых

сети,

и

 

 

 

 

слоев

входов

скрытого

скрытого

скрытого

синапсо

%

 

 

 

 

 

Кол-

%

Кол-

%

 

(из 23)

слоя (из

слоя(из

слоя (из

в

 

 

во

 

во

 

 

 

12)

12)

12)

 

 

 

 

 

 

 

 

 

 

 

1

2

3

4

5

6

7

8

9

10

11

12

 

 

 

 

 

 

 

 

 

 

 

 

1

7

77,78

5

71,43

1

4

4

-

-

0 из 176

75,00

 

 

 

 

 

 

 

 

 

 

 

 

 

2

7

77,78

5

71,43

1

4

4

-

-

17 из

75,00

 

176

3

7

77,78

6

85,71

1

0

3

-

-

0 из 234

81,25

4

7

77,78

6

85,71

1

0

3

-

 

20 из

81,25

 

234

5

5

55,56

5

71,43

1

7

3

-

-

0 из 171

62,50

6

3

33,33

3

42,86

1

11

4

-

-

0 из 120

37,50

7

8

88,89

6

85,71

1

0

0

-

-

0 из 312

87,50

8

5

55,56

5

71,43

1

7

0

-

-

0 из 228

62,50

9

6

66,67

5

71,43

1

7

0

-

-

18 из

68,75

 

228

10

6

66,67

5

71,43

1

5

4

-

-

0 из 168

68,75

11

3

33,33

4

57,14

2

8

3

0

-

0 из 279

43,75

12

5

55,56

4

57,14

2

8

3

0

-

16 из

56,25

 

279

13

6

77,78

4

57,14

2

4

1

1

-

0 из 363

68,75

14

4

44,44

3

42,86

2

9

0

1

-

13 из

43,75

 

333

15

8

88,89

6

85,71

2

0

2

4

-

0 из 334

87,50

16

7

77,78

6

85,71

2

0

2

5

-

0 из 321

81,25

17

4

44,44

2

28,57

2

10

1

3

-

0 из 269

37,50

18

4

44,44

3

42,86

3

2

1

3

2

0 из 450

43,75

19

4

44,44

5

71,43

3

5

4

0

0

0 из 420

56,25

20

8

88,89

5

71,43

3

0

4

3

2

0 из 376

81,25

21

4

44,44

3

42,86

3

3

6

4

2

0 из 278

43,75

22

7

77,78

5

71,43

3

0

2

0

0

0 из 530

75

23

7

77,78

6

85,71

3

0

0

2

3

0 из 313

81,25

24

6

66,67

6

85,71

3

0

0

2

3

20 из

75,00

 

513

25

4

44,44

4

57,14

3

3

6

4

2

18 из

50,00

 

278

13

 

 

 

 

 

 

Таблица 4

 

Тестирования тестовой и контрольной группы

 

 

 

 

Кол-во

Распознанных

Кол-во

Распознанных

 

 

 

примеров в

 

Нейронная

 

примеров в

примеров в тестовом

примеров в

 

Выходы

контрольном

 

сеть

 

тестовом

множестве

контрольном

множестве

 

 

 

множестве

 

 

множестве

 

 

 

 

 

Кол-во

%

Кол-во

%

 

 

F1.1

3

2

66,67

2

2

100,00

 

НС№7

F1.2

4

4

100,00

3

3

100,00

 

 

F1.3

2

2

100,00

2

1

50,00

 

 

F2.1

3

3

100,00

2

2

100,00

 

НС№15

F2.2

4

3

75,00

3

2

66,67

 

 

F2.3

2

2

100,00

2

2

100,00

 

Рис. 3. Архитектура НС №15

Рассмотрим фрагмент математической модели нейронной сети №7:

Функция скрытого слоя имеет вид:

Y1.1= 0,413*X1 – 0,892*X2 + 0,391*X3 – 1,176*X4 + 0,978*X5 +0,281*X6

+

+ 0,031*X7 +1,118*X8 + 0,217*X9 – 1,207*X10 – 0,105*X11 + 1,211*X12

+

+0,279*X13 + 0,153*X14-0,081*X15 – 1,133*X16 + 0,144*X17 + 0,554*X18

-0,649*X19+ 0,176*X20– 0,079*X21 -1,252*X22 – 0,451*X23 – 0,015;

14

Y2.12=0,087*X1 + 0,268*X2 + 0,023*X3 – 0,847*X4 – 1,731*X5 – 0,190*X6 +

+0,324*X7 –0,040*X8 – 0,779*X9 + 0,373*X10 – 0,653*X11 –0,237*X12 + +0,258*X1 + 0,113*X14 –0,573*X15 + 0,623*X1 + 0,655*X17 + 0,062*X18

-0,990*X19 + 0,615*X20 + 1,028*X21 +0,175*X22 – 0,602*X23 – 0,115; Функции выходного слоя:

F1.1= 0,293*Y1.1 +1,508*Y1.2 + 0,645*Y1.3 – 4,774*Y1.4 – 0,190*Y1.5 + + 0,784*Y1.6 +0,489*Y1.7 – 0,968*Y1.8 – 0,970* Y1.9 + 0,450*Y1.10 – -2,019*Y1.11 + 0,026*Y1.12 + 0,118;

F1.2= 1,315*Y1.1 – 0,197* Y1.2 + 1,488*Y1.3 – 4,907*Y1.4 – 1,802*Y1.5 -

0,809*Y1.6 +1,190*Y1.7 – 2,126*Y1.8 + 0,499*Y1.9 – 6,161*Y10

-3,247*Y11 – 0,322*Y12+2,813;

F1.3= - 1,161* Y1.1+0,673* Y1.2+1,345* Y1.3-1,522* Y1.4 – 0,461* Y1.5 + + 2,217* Y1.6 – 0,227*Y1.7 + 1,372* Y1.8 – 0,109*Y1.9 + 6,520*Y1.10 – -0,195*Y1.11 + 1,403* Y1.12 + 0,494;

Рассмотрим фрагмент математической модели нейронной сети №15 Функции первого скрытого слоя имеет вид:

Y2.1= 0,253*X1 + 0,984*X2 – 0,535*X3 – 0,368*X4 + 0,572*X5 – 0,589*X6 +

+ 1,030*X7 – 0,761*X8 + 0,261*X9 – 0,083*X10 +0,085*X11 + 0,114*X12

- 0,928*X13 + 0,860*X14 +0,824*X15 – 0,909*X16 – 0,696*X17 + 0,638*X18

- 0,432*X19 + 0,377*X20 + 0,187*X21 + 0,789*X22 + 0,671*X23 – 0,319;

Y2.10=-0,706*X1 –0,145*X2 + 0,737*X3+0,649*X4 + 0,589*X5 + 0,494*X6

+

+ 0,897*X7 – 0,818*X8 + 0,552*X9 + 0,433*X10 + 0,870*X11 – 0,640*X12

+

+ 0,349*X13 + 0,879*X14 + 0,386*X15 + 0,324*X16 + 0,378*X17 – 0,061*X18

- 0,592*X19 – 0,269*X20 – 0,135*X21 – 0,202*X22 + 0,095*X23 – 1,323; Функции второго скрытого слоя:

15

Z2.1= - 1,022*Y1 + 1,348*Y2 – 1,271*Y3 + 1,668*Y4 – 0,667*Y5 – 0,023*Y6 +

+ 0,876*Y7 + 1,215*Y8 + 0,498*Y9 – 0,438*Y10 + 0,278;

Z2.8 = - 0,625*Y1 + 0,012*Y2 – 1,193*Y3 + 1,539*Y4 + 0,121*Y5 + 0,895*Y6

- 0,158*Y7 – 0,639*Y8 + 0,145*Y9 + 0,184*Y10 + 0,713;

Функции выходного слоя имеют вид:

F2.1 = -3,475*Z2.1 – 0,445*Z2.2 + 0,415*Z2.3 + 2,994*Z2.4 + 0,442*Z2.5 + + 0,359*Z2.6 – 0,712*Z2.7 – 0,631*Z2.8 + 0,487;

F2.2= -1,774*Z2.1 + 1,054*Z2.2 – 2,476*Z2.3 + 3,293*Z2.4 – 1,252*Z2.5 – - 2,034*Z2.6 – 3,083*Z2.7 – 2,462*Z2.8 + 1,524;

F2.3= - 0,829*Z2.1 + 0,616*Z2.2 + 3,671*Z2.3 + 0,477*Z2.4 + 1,993*Z2.5 – - 0,614*Z2.6 + 3,372*Z2.7 – 0,184*Z2.8 + 1,219,

где F1.1 , F2.1 – тяжёлая форма острого панкреатита, F1.2,F2.2 – нетяжёлая форма острого панкреатита, F1.3, F2.3 – другая патология.

Разработанные нейросети позволяют достаточно точно прогнозировать новые наблюдения.

Воронежский государственный технический университет

16

УДК 621.9

Ю.С. Балашов, К.А. Митрофанов

СОЗДАНИЕ RTL-МОДУЛЯ БЛОКА ЧАСОВ РЕАЛЬНОГО ВРЕМЕНИ ДЛЯ МИКРОКОНТРОЛЛЕРА НА ЯЗЫКЕ

ПРОГРАММИРОВАНИЯ VERILOG

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

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

Задачей блока счетчика реального времени для микроконтроллера является точный счёт секунд, минут и часов, который достигается при помощи трех основных счётчиков:

-счётчика на 60 секунд; -счётчика на 60 минут; -счётчика на 24 часа.

Основной структурной единицей проекта на языке Verilog является модуль [2]. Пример его объявления приведен на рис. 1.

Поэтапно рассмотрим описания кода модуля блока счетчика реального времени.

На первом этапе разработки кода устройства модулю присваивается название module RTC (OutRTC,data_in,wr,clk_A,clk_B,reset), объявляются регистры, входы,

выходы, а также их типы (рис. 2).

Следующими этапами разработки кода устройства, является описание поведения создаваемой системы при влиянии соответствующих сигналов [3]. Первый блок always (рис. 3) можно описать следующим образом. При каждом положительном фронте тактового сигнала clk_A и сигнала сброса reset происходит действие, заключенное в конструкции begin – end, а именно: если подается сигнал сброса reset, то регистр временного хранения TEMP обнуляется, иначе, если подается сигнал записи write, то в регистр TEMP записываются данные с шины данных data_in.

17

01 module RTC (OutRTC,data_in,wr,clk_A,clk_B,reset);

…..…….

05 output OutRTC;

06 input clk_A,clk_B,wr,reset,data_in;

…… …….

09wire reset,wr,clk_A,clk_B;

10wire [15:0] OutRTC;

11reg [15:0] TEMP;

…… ………

26TEMP<=15'b0;

27end

28else if (wr)

29begin

…..

………

160

endmodul

Рис. 1.

Объявление модуля блока часов реального времени

01 module RTC (OutRTC,data_in,wr,clk_A,clk_B,reset); 04 output OutRTC;

05 input clk_A,clk_B,wr,reset,data_in;

08 wire reset,wr,clk_A,clk_B; …. ……

13reg [1:0] cnt3B;

14reg [15:0] S;

15reg [15:0] M;

16reg [15:0] H;

17reg perCNT_B;

18reg dM;

19reg dH;

Рис. 2. Объявление названия, входов, выходов и их типов модуля

22 always@(posedge clk_A or posedge reset)

23begin

24if (reset)

25begin

26TEMP<=15'b0;

18

27end

28else if (wr)

29begin

30TEMP<=data_in;

31end

32end

…..……

Рис. 3. Verilog-описание регистра временного хранения TEMP

Второй блок always (рис. 4) предназначен для описания принципа функционирования флагового регистра perCNT_B. При каждом положительном фронте тактового сигнала clk_A и сигнала сброса reset происходит действие, заключенное в конструкции begin

– end, а именно: если подается сигнал сброса reset, то регистр perCNT_B обнуляется, иначе, если подается сигнал записи write, то регистру флагов присваивается значение 1, иначе, если регистр счета третьего импульса опорной синхронизации cnt3B достиг своего максимального значения 3, то регистр perCNT_B обнуляется.

Третий блок always (рис. 5) предназначен для описания принципа функционирования регистра счета третьего импульса опорной синхронизации cnt3B. При каждом положительном фронте тактового сигнала clk_B и сигнала сброса reset происходит действие, заключенное в конструкции begin – end, а именно: если подается сигнал сброса reset, то регистр cnt3B обнуляется, иначе, если регистр разрешения perCNT_B установлен в положение соответствующее 1, то регистр cnt3B начинает счет импульсов, иначе, если счетчик достигает своего максимальное значения 3, то регистр cnt3B обнуляется.

19

…… …….

36always@(posedge clk_A or posedge reset)

37begin

38if (reset)

39begin

40perCNT_B<=1'b0;

41end

42else if (wr)

43begin

44perCNT_B<=1'b1;

45end

46else if (cnt3B==3)

47perCNT_B<=1'b0;

48end

…… ……

Рис. 4. Verilog-описание работы регистра флагов perCNT_B

….. …..

51always@(posedge clk_B or posedge reset)

52begin

53if (reset)

54cnt3B<=2'b0;

55else if (cnt3B==3)

56cnt3B<=2'b0;

57else if (perCNT_B==1)

58cnt3B<=cnt3B+1'b1;

59end

Рис. 5. Verilog-описание счетчика трех импульсов cnt3B

Четвертый блок always (рис. 6) предназначен для описания принципа функционирования регистра счета импульсов опорной синхронизации CNT_B. При каждом положительном фронте тактового сигнала clk_B и сигнала сброса reset происходит действие, заключенное в конструкции begin – end, а именно: если подается сигнал сброса reset, то регистр CNT_B обнуляется, иначе, если регистр разрешения perCNT_B установлен в положение

20