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

Другой способ навязать то или иное кодирование состояний без обращения к внешним пакетам и без учета признаков при синтезе заключается в более явном задании регистра состояний с помощью обычных логических типов данных. Этот подход представлен в табл. 9.15. Здесь сигнал Sreg определен как 4-разрядный

дует исполнять оператор case. В зависимости оттого, когда проверяется сигнал RESET, - до проверки поступления фронта тактового сигнала или после, - реализуется асинхронный или синхронный сброс (см. задачу 9.10).

Так как же насчет кодирования состояний? Табл. 9.13 не содержит никакой информации о том, как должны присваиваться комбинации переменных состояния состояниям с теми или иными именами. Ничего не известно даже о том, сколько необходимо двоичных переменных состояния.

Средства синтеза вольны связывать с идентификаторами перечислимого типа любые целые числа или двоичные комбинации, какие им только понравятся, но в типичном случае состояниям будут поставлены в соответствие целые числа, начиная с О, в том порядке, в каком перечислены их имена. Затем для представления этих чисел будет использовано наименьшее возможное число битов, равное flogjsl при наличии Л состояний. Таким образом, синтез по профамме из табл. 9.13 будет происходить с тем же самым простейшим кодированием состояний, которое было выбрано нами в исходном примере (см. табл. 7.7). Однако средствами языка VHDL можно заставить компилятор принять какой-то другой способ кодирования.

Один из способов навязать определенное кодирование состояний заключается в употреблении оператора attribute , как это сделано в табл. 9.14. Здесь enum encoding -определяемый пользователем признак, значением которого является строка, указывающая, какое именно кодирование путем перечисления должно быть использовано средствами синтеза. Процессор языка VHDL игнорирует это значение, но передает имя признака и его значение средствам синтеза. Признак enum encoding определен в большинстве средств синтеза и известен им, в том числе средствам синтеза фирмы Synopsys, Inc. Заметьте, что профаммой должен использоваться пакет attributes фирмы Synopsys; это необходимо для того, чтобы VHDL-компилятор распознал enum encoding как законный определяемый пользователем признак. Между прочим, кодирование состояний, указанное в последней программе, эквивалентно почти прямому кодированию из табл. 7.7.

Табл. 9.14. Исполь-

library IEEE; зование признака

use IEEE.std logic 1164.all; для того, чтобы зас-

library SYSOPSYS; тавить средства

use SYNOPSYS,attributes.all; синтеза кодировать

состояния по прави-

architecture smexampe arch of smexamp is перечисления

type Sreg type is (INIT, AO, AI, ОКО, OKI); attribute enum eiicoding of Sreg type: type is

0000 0001 0010 0100 1000 ; signal Sreg; Sreg type;



library IEEE;

use IEEE.std logic 1164.all;

architectiire sinexajspc arch of smexamp is subtype Sreg type is STD.LOGIC.VECTOR <1 to 4); constant INIT: Sreg.type := 0000 ; constant AO : Sreg type := 0001 ; constant Al : Sreg type := 0010 ; constant QKO : Sreg type ;= 0100 ; constant OKI : Sreg type := 1000 ; signal Sreg: Sreg type;

Возвращаясь к нашей исходной VHDL-профамме в табл. 9.13, отметим, что возможна еще одна интересная модификация. Исходной профаммой определяется обычный конечный автомат Мура со структурой, показанной на рис, 9.8(a). Что произойдет, если мы преобразуем оператор избирательного присваивания выходной логики в оператор case и переместим его в процесс, осуществляющий переходы из одного состояния в другое? Поступив так, мы создадим автомат, который в результате синтеза, вероятнее всего, будет иметь структуру, показанную на рис. 9.8(b). По существу, это автомат Мили с конвейерными выходами, и его поведение неотличимо от поведения исходного автомата, за исключением временных характеристик. Мы сократили задержку распространения от входа CLOCK до выхода Z, вырабатывая сигнал Z непосредственно на регистровом выходе, но одновременно с этим увеличилось требуемое время установления сигналов А и В по отношению к сигналу CLOCK из-за дополнительной задержки на прохождение сигнала через выходную логику ко входу D выходного регистра.

Все решения задачи построения рассматриваемого конечного автомата, о которых шла речь до сих пор, основывались на таблице состояний, которую мы первоначально составили вручную в разделе 7.4.1. Можно, однако, написать VHDL-профамму непосредственно, без составления таблицы состояний вручную.

Основная идея упрощения следует из исходной формулировки задачи, приведенной в начале данного раздела, и состоит в исключении последнего значения входного сигнала А из определения состояний. Вместо этого предусматривается наличие отдельного регистра LASTA для отслеживания упомянутой величины. В этом случае необходимо определить только два состояния, помимо исходного состояния INIT: состояние LOOKING ( смотреть дальше в ожидании совпадения ) и состояние ОК ( имеет место совпадение двух последовательных значений А или сигнал В остается равным 1 с момента последнего совпадения ). VHDL-архитектура, реализующая этот подход приведена в табл. 9.16. В процессе, возбуждаемом сигналом

элемент типа STD LOGIC VECTOR и введены константы, позволяющие повсюду в профамме ссылаться на состояния по их именам. Никаких других изменений в программе не требуется.

Табл. 9.15. Использование обычной логики и констант для задания способа кодирования состояний



CLOCK, первый оператор присваивания создает регистр LASTA, а оператор case создает автомат с тремя состояниями. В ютнце программы выходной сигнал Z определяется как результат простого комбинационного обнаружения состояния ОК.

clock-

Лотка переходов

А в;

c?se Sreg за

vhen 1КГТ ->

It А-О

tiiec Sreg < Au.

tiien Sreg < a:,

J Регистр состояния


Выходная логика

vtta Areg se..ect

2 <- 0 вдет ..Ч1Т iJ t i)a r ОКО i oni.

Sreg

=i>Z

CLOCK -

Логика переходов

A, В:

case Sreg 13

tbeu Sr g <- Л0,

-.аИ A-i

<mi if.

Выходная логика

rase Pr g IS

vhea IK:T ) HO

<

vhea ПКО ! OKI

<

i ,

vfaea otbern

->

<

end сая .

~\ Регистр

состояния

It CLOCKevent aad OLCCK . i tb n

I Выходной регистр

Sreg

if азскevent oci алск - v

Рис. 9.8. Структура конечных автоматов, подразумеваемая VHDL-програм-мами: (а) автомат Мура с комбинационной выходной логикой; (Ь) конвейерный автомат Мили с выходным регистром

коварное время

При записи VHDL-архитектуры, соответствующей схеме нарис. 9.8(b), очень важно добавить сигнал Sreg в список чувствительности процесса. Действительно, значение Z определяется оператором case выходной логики как функция от значения Sreg. При первом исполнении процесса с приходом нарастающего фронта тактового сигнала значение Sreg повсюду соответствует старому состоянию автомата. Это имеет место потому, что Sreg является сигналом, а не переменной. Как было объяснено в разделе 4.7.9, сигналы, изменяющиеся внутри процесса, не принимают новых значений до тех пор, пока не будет сделан по крайней мере один элементарный сдвиг по времени после того, как процесс начал исполняться. Помещая Sreg в список чувствительности, мы гарантируем, что процесс будет повторен, так что конечное значение Z будет выработано с учетом нового значения Sreg.



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


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