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

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

Табл. 6.30. Структурная VHDL-архитектура для 64-разрядного компаратора

architecture coi!ip64s arch of соарб4 is cotaponent compS

port ( A, E: 3B STD LOQIC VECTuR (7 downto 0); EQ. GT: oat STD.LOGIC); end component;

sigaal EQS, GT8; STD.LOGIC,VECTOR (T dowato 0); - =, > for 8-bit slice

signal SEQ, SJT: STD.LOGIC,VECTOR (8 dorato 0); - serial сЫиу-oi slice rei5-,ilts

begin

.EQ(8) 1; SCTCS) < 0; Ul: for i in 7 downto 0 gensrate

X32: cotupB port кар (k(7+i*S dowsto i 8), E(7+i*8 downto i+8), EQ8Ci), QTSCi));

SEQ(3) SEQCi+l) aud EQ8{i);

SGT(i) <= SGT(i-fl) or (SEQCi-l) and GT8<i)); end gessrats;

EQ <= SEQ(O); GT <= SGT(U); ead cozp64s aicb;

Если до архитектуре, приведенной в табл. 6.28, относительно простые программные средства могут выдать в качестве результата синтеза схему медленного итерационного компаратора, то в случае архитектуры из табл. 6.30 результатом синтеза будет более быстрое устройство, поскольку в нем в более явной форме извлекается информация из каждого 8-разрядного звена, которая затем пропускается через более быструю комбинационную схему (состоящую всего лишь из 8-уровневой логики И-ИЛИ, а не из 64-уровневой). Более сильные программные средства могут распараллелить 8-разрядный компаратор, предложив более*быструю неитерационную структуру наподобие ИС средней степени интеграции 74x682 (см. рис. 5.84), и преобразовать нашу итерационную логику объединения сигналов, поступающих от отдельных каскадов, в двухуровневую схему, реализующую выражения вида сумма произведений , подобные тем, какие бьши приведены в программе на языке ABEL в табл. 6.8.

6.3.5. Компаратор с управляемым режимом работы

в качестве следующего примера давайте предположим, что имеется система, в которой нужно, как правило, сравнивать два 32-разрядных двоичньос слова, но иногда во входных словах необходимо игнорировать значения одного или двух младших разрядов. Режим работы задается двумя битами М1 и МО, как указано в табл. 6.9.

Желаемое функционирование разрабатываемого устройства совсем легко обеспечить средствами языка VHDL, используя оператор case для выбора нужного



поведения, как это сделано в профамме в табл. 6.31. Эта профамма представляет собой вполне доброкачественное поведенческое описание, которое также полностью синтезируемо. Однако у такого описания имеется все же существенный недостаток: оно, вероятнее всего, приведет к созданию в процессе синтеза трех отдельных компараторов для обнаружения равенства или неравенства сравниваемых величин (представленньЕх 32, 31 и 30 двоичными разрядами), по одному на каждый из случаев в операторе case. Отдельные компараторы могут при этом быть или не быть бысфодействующими, как это обсуждалось в предыдущем разделе, но в данном примере мы не будем подробно разбирать этот вопрос.

Табл. 6.31. VHDL-программа с поведенческой архитектурой для 32-разрядного компаратора с управляемым режимом работы

libraxy IEEE;

use IEEE.std.logJc 1l64.alI; use IEEE. std logj c.unsignea.a.l 1;

entity ViEOdecmp is

port ( K: in STO.LOGIC.yECTOR (1 dosnto 0); - mode

A, Б: in STD.LOGIC.VECTOR (31 dowato 0); - uns.1gr.ed ir-tegers EQ, ОТ: o\iz STD.LOGIC ); - ccEparisoa results

end Vasodecmp;

architecture Vaodecap.. arch of VmodecHip is begin

process (M, A, B) begin

case M is when 00 = >

if Л - В then EQ <= Ч; else EQ <= 0; end if; If A > В tben GT <= !; else GT <~ 0; and if; when 01

if A(31 dowato 1) - B(31 dosnto 1) thee EQ <= 1; else £Q 0; end ii; if A(3; dow.>5to 1) > B(3i dowato 1) then GT <= 1; else GT 0; end if; whea 10 =>

if A(31 downto 2) = В(31 downto 2) then EQ < 1; else EQ 0; snd if; If A(3i dow-ato 2) > B(3l downto 2) then GT <- I; elsf GT <= 0; end i£; when others => EQ 0; GT <= 0; ond case; end process; snd Vi!;odec4r.p..ai-ch;

Более эффективное решение заключается в выполнении только одного сравнения входных слов по 30 старшим битам и получении окончательного результата с помощью дополнительной логики, которая реализует зависящую от режима работы функцию и позволяет, по мере необходимости, учитывать значения младших разрядов. Этот подход продемонсфирован в табл. 6.32. Результат сравнения 30 старших битов представлен внутри процесса двумя переменными: EQ3 О и GT30. Затем используется оператор case, аналогичный приведенному в предыдущей архитектуре, посредством которого получается окончательный результат в зависимости от режима работы. Если желательно, то ЗО-разрядный компаратор можно оптимизировать в отношении быстродействия методами, которые бьши рассмофены в предыдущем разделе.



6.3.6. Счетчик числа единиц

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

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

Чтобы синтезировать счетчик числа единиц с лучшими параметрами, необходимо придумать экономичную структуру и затем описать ее в виде архитектуры. Такой структурой является дерево сумматоров, показанное на рис. 6.15. Полный сумматор (FA) выполняет сложение трех входных битов, вырабатывая 2-разрядную сумму. Пары 2-разрядных чисел складьшаются с помощью 2-разрядных сумматоров ADDER2, у каждого из которых имеется вход переноса, позволяющий добавить к сумме значение еще одного бита. Полученные 3-разрядные суммы объединяются 3-разрядными сумматорами ADDER3, а последняя пара 4-разрядных сумм складывается в 4-разрядном сумматоре ADDER4. С учетом сигналов, подаваемых на входы переноса, эта древовидная структура обеспечивает подсчет числа единиц в 31 разряде. При наличии единицы в оставшемся входном разряде это обстоятельство учитывается с помощью отдельного 5-разрядного устройства INCR5 увеличения числа на единицу.

Табл. 6.32. Более эффективная архитектура для 32-разрядного компаратора с управляемым режимом работы

architecture Vssodecpe.arch ol Vraodecap is begin

process (H, A, B)

vai-iable EQ30. GT30: STD...LOaiC; - SO-bit comparison results begin

if A(31 doynto 2) = B(3i downto 2) then EQ30 Ч; else SQ30 ;= O; end if-if Д(31 dowato 2) > B(31 downto 2) then CT30 : l; else 0T30 := 0 svd ii case M is . - ,

when 00 =>

if EQ30=i and A(i dcsrato 0) = B(l downto 0) then

EQ < I; else EQ <= 0; end if; if GT30=l or (EQ30-l and A(1 downto C) > B(! downto 0)) then GT <= 1; else GT <= 0; end if; when 01 =>

if EQ30=l and A(i) = B(l) then EQ <- 1; else SQ <= 0; end if; if GT30=l or (EQ30=l and A(i) > B(l)) thee GT <= 1; else GT <= 0; end if; when 10 => EQ <= EQ30; GT <= GT30; when others > EQ 0; GT <= 0; end case;

end process; end ¥modecpe..arch;



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


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