Звоните! 
 (926)274-88-54 
 Бесплатная доставка. 
 Бесплатная сборка. 
Ассортимент тканей

График работы:
Ежедневно. С 8-00 до 20-00.
Почта: soft_hous@mail.ru
Читальный зал -->  Программные средства foundation 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 [ 97 ] 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359

Необязательный оператор tes t vectors указывает на то, что далее следуют векторы проверок.

Векторы проверок (test vectors) ставят в соответствие комбинациям входных сигналов ожидаемые значения выходных сигналов; они используются при моделировании и при тестировании, как объясняется в разделе 4.6.7.

Компилятор распознает несколько специальных констант, в том числе символ .X. для обозначения одиночного бита с безразличным значением.

Оператором end отмечается конец модуля.

Для задания значений сигналов на выходах комбинационных схем используется оператор нетактируемого присваивания = (unclocked assignment operator). Левая часть равенства обычно содержит имя сигнала. Правая часть равенства является логическим выражением, которое не обязательно должно быть вида сумма произведений . Имени сигнала в левой части равенства может предшествовать необязательный оператор ! (НЕ); это эквивалентно инвертированию логического выражения, стоящего справа. Задача компилятора состоит в том, чтобы создать такой рисунок соединений, при котором сигнал, названный в левой части равенства, будет результатом реализации логического выражения, указанного в правой части равенства.

4.6.2. Работа компилятора языка ABEL

Программа, приведенная в табл. 4.11, реализует функцию ALARM, описанную в разделе 4.3.1. Сигналу, называвшемуся ранее ENABLE, в профамме соответствует идентификатор ENABLEA, поскольку ENABLE является зарезервированным словом языка ABEL.

Обратите внимание, что не все равенства размещены вслед за оператором equations. Промежуточное равенство (intermediate equation) для идентификатора SECURE появляется раньше. Это равенство просто ифает роль определения, которое связывает выражение с идентификатором SECURE. Компилятор языка ABEL подставляет это выражение на место идентификатора SECURE всякий раз, когда SECURE встречается после его определения.

На рис. 4.19 была приведена схема охранной сигнализации, непосредственно реализующая выражения SECURE и ALARM посредством многоуровневой логики. Компилятор языка ABEL так не поступает и не использует выражения для соединений вентилей, Наоборот, он разфызает выражения, стремясь получить минимальный двухуровневый вариант вида сумма произведений , пригодный для реализации в ПЛУ. Таким образом, в результате компиляции профамма, приведенная в табл. 4.11, должна выдать схему, эквивалентную схеме И-ИЛИ, изображенной нарис. 4.20, которая и оказывается минимальной.

Компилятор действительно это делает. В табл. 4.12 приведен файл синтезированных равенств, созданный компилятором языка ABEL. Заметьте, что компилятор составляет равенства только для единственного выходного сигнала ALARM. Сигнал SECURE нигде не появляется.

Компилятор находит минимальньЕе выражения вида сумма произведений как для самой функции ALARM, так и для ее дополнения ! ALARM. Как упоминалось ранее, во многих ПЛУ имеется возможность выбирать инвертированные или не



4/3 Best P-Term Total: 3

Total Pins: 7

Total NodsB: 0

Average P-Term/Output: 3

Equations:

ALARM = (ENABLEA & EXITING fe !D00R

# ENABLEA & EXITING fe !WINDOW

# ENABLEA fe [EXITING fe !GARAGE

# PANIC);

Reverse-Polarity Equations:

!ALARM = (.PANIC fe WINDOW fe DOOR & GARAGE

# !PANIC fe EXITING

# !PANIC fe !ENABLEA);

инвертированные значения выходных сигналов схем И-ИЛИ. Равенство обратной полярности в табл. 4,12 представляет собой реализацию выражения для ! alarm вида сумма произведений ; если бы было выбрано инверсное значение выходного сигнала, то использовалось бы это равенство.

В данном примере в равенстве обратной полярности на один терм-произведение меньше, чем в равенстве нормальной полярности для сигнала alarm, так что компилятор выберет это равенство, если программируемое устройство допускает выбор инвертированного или неинвертированного выходного сигнала. Пользователь может также заставить компилятор использовать нормальную или обратную полярность сигнала, включив в список свойств сигнала istype ключевое слово buffer или invert соответственно. (В некоторых компиляторах языка ABEL для той же цели можно использовать ключевые слова pos и neg , но при этом нужно принять во внимание то, о чем будет сказано в разделе 4.6.6.)

Табл. 4.12. Файл синтезированных равенств, созданный компилятором языка ABEL для программы, приведенной в табл. 4.11

ABEL 6.30

Design alarmckt created Tue Nov 24 1998

Title; Alarm Circuit Example

Title: J. Wakerly, Micro Systems Engineering

P-Tenns Fan-in Fan-out Type Name (attributes)

4/3 6 1 Pin ALARM



4.6.3. Операторы WHEN и блоки равенств

Кроме равенств, в языке ABEL имеется другой способ задания комбинационных логических функций - оператор WHEN (WHEN statement), также размещаемый в части профаммы, содержащей равенства. В табл. 4.13 показана общая структура оператора WHEN; она подобна структуре оператора IF в обычных языках программирования. Предложение ELSE является необязательным. Здесь LogicExpression - выражент, принимающее значение true (I) или false (0). В зависимости от значения LogicExpression исполняется либо TrueEquation, либо FalseEquation. Однако в данном случае необходимо уточнить, что именно мы понимаем под словом исполняется , и об этом говорится ниже.

------ - Табл. 4.13. Структура оператора when в языке

WHEN LogicExpression THEN ABEL

TrueEquation;

ELSE

FalseEquation;

В простейщем случае TrueEquation и необязательное FalseEquation представляют собой операторы присваивания, как это имеет место в первых двух операторах WHEN в табл. 4.14 (в отношении XI и Х2). В этом случае выполняется логическая операция И, операндами которой являются LogicExpression и правая часть TrueEquation, а также логическая операция И, операндами которой являются дополнение к LogicExpression и правая часть FalseEquation. Таким образом, равенства для X1А и Х2А, в которых нет операторов WHEN, дают те же самые результаты, что и соответствующие операторы WHEN.

Заметьте, что в первом примере XI фигурирует в TrueEquation, а FalseEquation отсутствует. Спрашивается, что будет с XI, если LogicExpression (! А#В) окажется ложным? Можно подумать, что для таких комбинаций входных сигналов значение XI должно быть безразличным, но это не так; сейчас мы это объясним.

Формально оператором нетактируемого присваивания (=) задается комбинация входных сигналов, которую следует добавить в множество включений для выходного сигнала, фигурирующего в левой части равенства. Вначале множество включений данного выходного сигнала является пустым; оно пополняется всякий раз, как этот выходной сигнал появляется в левой части равенства. Другими словами, осуществляется логическая операция ИЛИ, операндами которой служат правые части всех равенств для одного и того же неинвертированного выходного сигнала. (Если в левой части равенства указано дополнение данного входного сигнала, то берется дополнение правой части этого равенства, и только после этого результат включается в операцию ИЛИ.) Таким образом, значение XI равно 1 только при такой комбинации входных сигналов, когда выражение LogicExpression (! А#В) истинно и выражение (С&! D), стоящее справа в равенстве TrueEquation, также истинно.

Во втором примере Х2 фигурирует в левой части двух равенств, так что эквивалентное равенство для Х2А получается путем выполнения операции ИЛИ над вы-



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 [ 97 ] 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359



ООО «Мягкий Дом» - это Отечественный производитель мебели. Наша профильная продукция - это диваны еврокнижка. Каждый диван можем изготовить в соответствии с Вашими пожеланияи (размер, ткань и материал). Осуществляем бесплатную доставку и сборку.



Звоните! Ежедневно!
 (926)274-88-54 
Продажа и изготовление мебели.


Копирование контента сайта запрещено.
Авторские права защищаются адвокатской коллегией г. Москвы
.