3834
.pdfсоответствующее 0, то регистр CNT_B начинает счет импульсов, иначе, если счетчик достигает своего максимальное значения 32767, то этот счетчик обнуляется, иначе, если регистр cnt3B достигает своего максимальное значения 3, то счетчику импульсов опорной синхронизации присваивается значение регистра временного хранения TEMP.
…… ……
62always@(posedge clk_B or posedge reset)
63begin
64if (reset)
65begin
66CNT_B<=15'b0;
67end
68else if (CNT_B==32767)
69begin
70CNT_B<=15'b0;end
71else if (cnt3B==2'b10)
72begin
73CNT_B<=TEMP;
74end
75else if (perCNT_B==0)
76begin
77CNT_B<=CNT_B+1'b1;
78end
79end
…… ……
Рис. 6. Verilog-описание счетчика импульсов CNT_B
Пятый блок always (рис. 7) предназначен для описания принципа функционирования регистра счета секунд S. При каждом положительном фронте тактового сигнала clk_B и сигнала сброса reset происходит действие, заключенное в конструкции begin – end, а именно: если подается сигнал сброса reset, то счетчик S обнуляется, иначе, если регистр CNT_B достигает своего максимальное значения 32767, то регистр S начинает счет секунд, иначе, если счетчик S достигает своего максимальное значения 59 и если регистр CNT_B достигает своего максимальное значения 32767, то регистр счета
21
секунд S обнуляется.
…… ……
82always@(posedge clk_B or posedge reset)
83begin
84if (reset)
85S<=15'b0;
86else if (S==59)
87begin
88if (CNT_B==32767)
89S<=1'b0;
90end
91else if (CNT_B==32767)
92S<=S+1'b1;
93end
…… ……
Рис. 7. Verilog-описание счетчика секунд S
Шестой блок always (рис. 8) предназначен для описания принципа функционирования регистра разрешения счета минут dM. При каждом положительном фронте тактового сигнала clk_B и сигнала сброса reset происходит действие, заключенное в конструкции begin – end, а именно: если подается сигнал сброса reset, то регистр dM обнуляется, иначе, если регистр CNT_B достигает своего максимальное значения 32767 и если счетчик S достигает своего максимальное значения 59, то регистр разрешения счета минут dM принимает значение 1, в противном случае принимает значение 0.
22
….…..
96always@(posedge clk_B or posedge reset)
97begin
98if (reset)
99dM<=1'b0;
100else if (CNT_B==32767)
101begin
102if (S==59)
103dM<=1'b1;
104else
105dM<=1'b0;
106end
107end
….. …..
Рис. 8. Verilog-описание регистра разрешения счета минут dM
Седьмой блок always (рис. 9) предназначен для описания принципа функционирования регистра счета минут M. В данном блоке событие, заключенное в конструкции begin – end чувствительно к значению регистра S и сигналу сброса reset. Если подается сигнал сброса reset, то регистр M обнуляется, иначе, если регистр dM принимает значение 1, то регистр M начинает счет минут, иначе, если регистр dM принимает значение «1» и если счетчик минут M достигает свое максимальное значение 59, то регистр M обнуляется.
Восьмой блок always (рис. 10) предназначен для описания принципа функционирования регистра разрешения счета часов dH. При каждом положительном фронте тактового сигнала clk_B и сигнала сброса reset происходит действие, заключенное в конструкции begin – end, а именно: если подается сигнал сброса reset, то регистр dH обнуляется, иначе, если регистр CNT_B достигает свое максимальное значения 32767 и если счетчики S и M достигаетю своих максимальных значений 59, то регистр разрешения счета часов dH принимает значение 1, в противном случае принимает значение 0.
23
110always@(S or reset)
111begin
112if (reset)
113M<=15'b0;
114else if (M==59)
115begin
116if (dM==1)
117M<=1'b0;
118end
119else if (dM==1)
121begin
122M<=M+1'b1;
123end
124end
…… ……
Рис. 9. Verilog-описание регистра счета минут M
……. ……
126always@(posedge clk_B or posedge reset)
127begin
128if (reset)
129dH<=1'b0;
130else if (CNT_B==32767)
131begin
132if (S==59)
133begin
134if (M==59)
135dH<=1'b1;
136else
137dH<=1'b0;
138end
139end
140end
……. …….
Рис. 10. Verilog-описание регистра разрешения счета часов dH
24
Девятый блок always (рис. 11) предназначен для описания функционирования регистра счета часов H. В данном блоке событие, заключенное в конструкции begin – end чувствительно к значению регистра M и сигналу сброса reset. Если подается сигнал сброса reset, то регистр H обнуляется, иначе, если регистры dM и dH принимают значения 1, то регистр H начинает счет часов, иначе, если значение регистра H достигает свое максимальное значение 23 и если регистр разрешения счета минут dM принимает значение 1, регистр счета часов обнуляется.
142always@(M or reset)
143begin
144if (reset)
145H<=15'b0;
146else if (H==23)
147begin
148if (dH==1)
149H<=1'b0;
150end
151else if (dM==1)
152begin
153if (dH==1)
154H<=H+1'b1;
155end
156end
Рис. 11. Verilog-описание регистра счета часов H
После создания RTL-модели блока счетчика реального времени для проверки пригодности полученного кода было создано тестовое окружение и проведено имитационное моделирование, которое подтвердило правильность созданной модели (рис. 12).
25
Рис. 12. Векторная диаграмма, иллюстрирующая работу блока счетчика реального времени для микроконтроллера
Литература
1.Евстифеев, А.В. Микроконтроллеры AVR семейств Tiny и Mega фирмы ATMEL [Текст]: руководство пользователя / А.В. Евстифеев. - 5-е изд., стер. – М.: Издательский дом «Додэка-XXI», 2008. – 560 с.
2.Поляков, А.К. Языки VHDL и Verilog в проектировании цифровой аппаратуры [Текст] / А. К. Поляков. – М.: СОЛОН-Пресс, 2003. – 320 с.
3.Стиль программирования на языке Verilog [Текст]: Verilog style and coding guidelines, SUN Microsystems / Г. Дайкема, П.
Монше, Д. Нельсен и др.; пер с англ. О.А. Ефремова.: 2002. – 30 с.
Воронежский государственный технический университет
26
УДК 621.9
Е.И. Новикова, И.В. Панченко
РАЗРАБОТКА ИНФОРМАЦИОННО-ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ДИАГНОСТИКИ
ОСТРОГО ПАНКРЕАТИТА
Статья посвящена |
созданию информационно-программного |
|
обеспечения для диагностики острого панкреатита. |
В процессе разработки |
|
программного продукта была использована среда |
программирования IDE |
|
BorlandDelphi7 |
|
|
Одна из ведущих ролей для повышения эффективности диагностики заболевания острого панкреатита принадлежит использованию компьютерных средств реализации математического описания, которые позволяют принять во внимание большое количестводиагностических признаков.
Постановка диагноза осуществляется на основе клинических
признаков, |
результатов |
лабораторных |
и |
ультразвукового |
||
исследования. |
Разработанное |
программное |
обеспечение |
диагностики острого панкреатита удобно в использовании, позволяет добиться повышения эффективности процесса диагностики заболевания острый панкреатит.
Взаимодействие функциональных блоков программы изображено на рис. 1. Структурная схема, созданной программы с использованием Delphi 7, представленная на рис. 2.
Рассмотрим более детально взаимодействие функциональных блоков системы.
Блок UAbout – это модуль «О программе», который представляет пользователю данные о создателях и версии программы.
Модуль UBD содержит методы и особенности управления работы с базой данных.
UChoose – модуль, который и позволяет пользователю выбирать метод получения информации о пациентах: извлечь из базы данных, либо путем введения нового пациента в базу.
UMain – это модуль основной формы, в котором указываются данные пациента, клинические, лабораторные признаки и данные УЗИ. При нажатии на соответствующую кнопку происходит расчет с помощью нейронных сетей и вынесение результатов.
27
Модуль UClient позволяет вводить данные о новых пациентах на новой форме.
UData – модуль, который содержит информацию о классах, константах, массивах определенных данных, типах данных, использованных в приложении. Также в этом модуле описаны методы работы нейронных сетей и получение результатов.
Ufirst – это модуль приветствующей формы.
UResult – модуль, при помощи которого выводятся данные о пациенте, клинических и лабораторных признаков, данных УЗИ.
Разработанная программа диагностирования острого панкреатита проста и удобна в использовании.
При запуске программы открывается главное окно, изображенное на рис. 3, которое содержит стандартное главное меню с пунктами «О программе», «Перейти к диагностике», «Закрыть».
Рис. 1. Схема взаимодействия функциональных блоков
28
Рис. 2. Структурная схема системы диагностики острого панкреатита
29
Рис. 3. Главное окно программы
При нажатии кнопки «О программе» появляется окно,изобаженное на рис. 4 , с информацией о разработчиках
.
Рис. 4. Окно «О программе»
При выборе кнопки «Перейти к диагностики» появляется
30