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

library IEEE;

use IEEE.std logic l164.all;

entity Vsrlatch is

port CS, R. m STO LOGIC;

Q, QN: buffer STD.LOGIC ); end Vsrlatch,;

architecture \fsrlatch arch of Vsrlatch is begin

QN <= S nor Q;

Q <= R nor QN; end Vsrlatch arch;

Табл. 7.36. Потоковая VHDL-программа для SR-защелки

Моделирование в среде VHDL 5геляется достаточно точным, чтобы справиться со случаем, когда одновременно поданы оба сигнала S и R. Самый интересный результат моделирования получается тогда, когда сигналы S и R снимаются одновременно. В первом из замечаний в разделе 7.2.1, вынесенных за пределы основного текста, уже объяснялось, что в этой ситуации в реальной SR-защелке могут начаться колебания, либо она может войти в метастабильное состояние. При моделировании это приведет к потенциально бесконечному циклу, в котором каждое исполнение одного из операторов присваивания будет запускать очередное исполнение другого. После некоторого числа повторений хорошее средство моделирования раскусит проблему - число элементарных сдвигов по времени растет, а время в модели стоит на месте - и остановит процесс моделирования.

не воспользоваться ли нам сигналом u?

Конечно, бьшо бы замечательно, если бы в модели SR-защелки, представленной в табл. 7.36, при одновременном переходе сигналов S и R на неактивный уровень вырабатывался выходной сигнал U, но ведь этого нет. Однако язык VHDL является достаточно мощным, чтобы разработчик, имеющий опыт работы с VHDL, мог легко описать модель, обладающую таким свойством. В подобной модели надо бьшо бы воспользоваться средствами языка VHDL, позволяющими имитировать течение времени (мы не рассматриваем эти средства), чтобы учесть время восстановления защелки (см. второе замечание в разделе 7.2.1, вьшесенное за пределы основного текста) и вырабатьшать сигнал на выходе и, если второе изменение во входных сигналах происходит слишком близю по времени. Таким способом можно смоделировать даже максимально допустимое разрешенное время пребывания в состоянии метастабильности.

Заметьте, что в случае, когда у схемы есть возможность попасть в метастабильное состояние, нет гарантии, что моделирующая программа обнаружит это, особенно в больших проектах. Лучший способ избежать каких бы то ни было проблем с метастабильностью при проектировании систем заключается в ясном задании и защите асинхронных входов в соответствии с тем, как это обсуждается в парафафе 8 9.



7.12.2. Тактируемые схемы

На практике большинство устройств, проектируемых и моделируемых в среде VHDL, представляют собой тактируемые синхронные системы, в которых используются переключающиеся по фронту триггеры. В дополнение к тому, что вам уже известно о возможностях языка VHDL, для описания переключающегося по фронту элемента нам понадобится еще средство, а именно - признак even t (event attribute), который можно присоединить к имени сигнала, чтобы получить переменную типа boolean, принимающую значение true, если то или иное событие в сигнале запускает объемлющий процесс в текущем цикле моделирования, и значение false - в противном случае.

Используя признак event, можно смоделировать поведение переключающегося по положительному фронту D-триггера с асинхронным входом сброса так, как это сделано в табл. 7.37. Здесь асинхронный сигнал CLR на входе сброса преобладает над тактовым входным сигналом CLK и поэтому проверяется первым в предложении if . Только тогда, когда сигнал на входе CLR имеет неактивный уровень, вступает в действие то, что предусмотрено предложением elsif , и имеющиеся в нем операторы исполняются по положительному фронту сигнала CLK. Заметьте, что величина CLK event истинна при любом изменении сигнала CLK, поэтому для переключения только по положительному перепалу в сигнале CLK предусмотрена проверка CLK = Г . Существует много других способов задать процесс или составить оператор, отражающие чувствительность к перепаду сигнала; еще два способа описания D-триггера (без входа сброса) приведены в табл. 7.38.

Табл. 7.37. Поведенческое описание переключающегося по положительному фронту D-триггера на языке VHDL

library IEEE;

use IEEE.st;d logic 1164.all;

entity VposDff IS

port (CLK. CLK, D; m STD LDGIC; Q, QN: out STD LOGIC ); end VposDff;

architecture VposDff arch of VposDff is begin

process (CLK, CLR)

begin

if CLa=1 then Q <= 0; QS <= Ч; elsif CLKevent ал<1 CLK-l then Q < D; QN < not D; end if, end process, end VposDff arch;

При тестировании тактируемой схемы вам понадобится еще одна вещь: нужно будет генерировать системный тактовый сигнал. Это совсем легко реализовать, организуя цикл внутри процесса, как это показано в табл. 7.39 для тактовой частоты 100 МГц с коэффициентом заполнения 60%.



ВНУТРЕННОСТИ СИНТЕЗА

Вам, наверное, интересно узнать, как программные средства синтеза реализуют в настоящем триггере описание чувствительности к фронту, приведенное в табл. 7.37 и 7.38. Большинство профаммных средств распознает только небольшое число предопределенных способов описания поведения схемы, переключающейся по фронту, и отображает их в предопределенные компоненты внуфи профаммируемой ИС.

Профамма синтеза фирмы Synopsis (Synopsis synthesis engine) распознает используемое нами в этой книге выражение CLK event and CLK = Г с помощью профаммного продукта Foundation Series 1.5 фирмы Xilinx. Но язык VHDL предоставляет также и другие возможности для выражения того же самого функционального поведения, что и в табл. 7.38. Питер Ашенден (Peter Ashenden), автор Справочника проектировщика по языку VHDL {The Designers Guide to VHDL. Morgan Kaufmann, 1996), испытал способность различных средств синтеза воспринимать фи приведенные здесь формы задания чувствительности к перепаду и еще одну, немного модифицированную. Только одно из профаммных средств смогло синтезировать по трем из четырех форм; большинство испытанных программ синтеза справляется только с двумя. Следовательно, вам нужно использовать тот метод, который предписан имеющимися у вас программными средствами.

-- Табл. 7.38. Два других

process способа описания пере-

wait until CLKevent aad CLK=i; ключающегося nO положи-

; тельному фронту D-тригге-

end process; pa

Q <= D when CLKevent and CLK=l else Q;

Табл. 7.39. Тактовый процесс для тестирования

architecture TB arch ot ТВ т signal HOIK- STD LOGIC;

signal ... - Declare oxher laput and output signals

process Clock generator begia

HCtK <~ 1, Start at 1 at time 0 loop

HCLK <= 0 after 6 ns; MCLK <= 1 after 4 ns; end loop; ead process;

process - Generate the rest of the input stimuli, check outputs begin

end;



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


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