Звоните! 
 (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

Несмотря на то, что программа в табл. 4.9 является короткой, опытный программист может загрустить, разглядывая ее структуру. Глубина вложений во внутреннем цикле for составляет четыре уровня, а число проходов, которые, возможно, необходимо будет выполнить, порядка MAX VARS-MAX CUBES. Да-да, это показатель степени, а не сноска! Если выбрать величину MAX CUBES равной 1000 (это значение в большой степени произвольно, но, в действительности, для многих функций этого может оказаться совсем не достаточно), то внутренний цикл будет выполняться миллиарды и миллиарды раз.

Конечно, максимальное число минтермов у функции и переменных равно 2 , и поэтому, по всем правилам, следовало бы объявить в программе в табл. 4.9 значение MAX CUBES равным по меньшей мере 2, чтобы иметь возможность обработать максимально возможное число 0-мерных кубов. Такое объявление не было бы чрезмерно завышенным. Если у функции и переменных есть терм-произведение, равный одной переменной, то фактически понадобятся 2 минтермов, чтобы покрыть этот терм-произведение.

На самом деле, в случае больших кубов ситуация еще хуже. Число возможных т-мерных подкубов и-мерного куба равно ()х2 ~ , где биномиальный коэффициент () - это число способов, какими можно распределить нули и единицы по остающимся переменным. Для функции 16 переменных худший случай имеет место при т= 5; существует 8 945 664 возможных 5-мерных подкуба 16-мерного куба. Полное число различных ш-мерных подкубов w-мерного куба для всех значений т равно 3 . Так что в общем случае профамме минимизации может потребоваться гораздо больше памяти, чем это предусмотрено в профамме в табл. 4.9.

Существует несколько приемов, с помощью которых можно оптимизировать необходимый объем памяти и время счета в профамме в табл. 4.9 (см. задачи 4.77-4.80), но их применение дает ничтожный результат по сравнению с непреодолимой комбинаторной сложностью задачи. Таким образом, даже при теперешних быстрых компьютерах и фомадной памяти прямое применение алгоритма Куина-Мак-Класки для нахождения простых импликант обычно бывает офани-чено функциями лишь небольшого числа переменных (менее 15-20).

*4.4.3. Нахождение минимального покрытия по таблице простых импликант

После того как найден список всех простых импликант комбинационной логической функции, наступает второй этап процедуры ее минимизации - выбор минимального подмножества простых импликант, покрывающих все единицы функции. В алгоритме Куина-Мак-Класки для этого используется двумерный массив, называемый таблицей простых импликант {prime-implicant table). На рис. 4.43(a) приведена небольшая, но показательная таблица простых импликант, возникающая в задаче минимизации логической функции с картой Карно, представленной на рис. 4.35. Каждому минтерму функции соответствует один столбец, а каждой простой импликанте - одна строка. Каждый элемент таблицы представляет



минтермы

2 6

9 13

2 6 7 9 13

простые

V V

импли-

канты

V V

1/ V

7 15

7 15

1 .

7 15

Рис. 4.43.Таблицы простых импликант: (а) исходная таблица; (Ь) выделение особенных элементов, равных 1, и существенных простых импликант; (с) вид таблицы после исключения существенных простых импликант; (d) обнаружение перекрываемых строк; (е) таблица с существенной простой импликантой второго порядка как результат исключения перекрываемых строк

Выбор простых импликант по таблице осуществляется путем последовательного выполнения шагов, аналогичных тем, которые мы совершали в разделе 4.3.5, используя картьЕ Карно:

1. Находим особенные элементы, равные 1. Их легко найти в таблице, беря столбцы с единственной единицей, как показано нарис. 4.43 (Ь).

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

3. Исключаем из рассмотрения существенные простые импликанты и покрываемые ими элементы, равные 1 (минтермы). В таблице это осуществляется вычеркиванием соответствующих строк и столбцов, выделенных цветом на рис. 4.43(b). Если остаются какие-либо строки, в которых нет галочек, то они тоже вычеркиваются; соответствующие простые импликанты являются избыточными {redundant prime implicants), то есть полностью покрываемыми существенными простыми импликантами. Остающаяся на этом шаге таблица меньших размеров показана на рис. 4.43(c).

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

собой бит, равный 1 в том и только в том случае, когда простая импликанта данной строки покрывает минтерм данного столбца (на рисунке эти элементы отмечены галочкой).



столбцов, отмеченных галочками в другой строке; вычеркиваются также все, кроме одной, строки в множестве строк с идентичными наборами столбцов, отмеченных галочками. Эти действия иллюстрируются рисунком (d); в результате этих действий таблица сокращается еще больше и принимает вид, указанный на рис. 4.43(e).

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

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

6. Если все оставшиеся столбцы покрываются существенными простыми импликантами второго порядка, как это имеет место на рис. 4.43(e), то задача решена. Если на предыдущем шаге существенные простые импликанты второго порядка не найдены, то мы возвращаемся к шагу 3 и повторяем наши действия. В противном случае необходимо воспользоваться методом ветвления, рассмотренным в разделе 4.3.5. Согласно этому методу берем строки по одной, предполагаем, что выбранная строка является существенной, и рекурсивно выполняем (чертыхаясь) шаги З-б.

Хотя алгоритм отбора простых импликант, основанный на таблице простых импликант, является довольно простым, необходимая структура данных в соответствующей компьютерной программе колоссальна, так как приходится оперировать с числом битов порядка р 2 , где р - число простых импликант, а п - число битов на входе (предполагается, что заданная функция принимает значение 1 для большинства комбинаций переменных). Хуже всего, что для выполнения шагов, беспечно описанных нами выше в нескольких предложениях, требуются офомные по объему вычисления.

*4.4.4. Другие методы минимизации

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

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

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 
Продажа и изготовление мебели.


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