![]() |
Звоните! (926)274-88-54 Бесплатная доставка. Бесплатная сборка. |
Ассортимент тканей График работы: Ежедневно. С 8-00 до 20-00. Почта: soft_hous@mail.ru |
![]() ![]() ![]() |
Читальный зал --> Программные средства foundation 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; ООО «Мягкий Дом» - это Отечественный производитель мебели. Наша профильная продукция - это диваны еврокнижка. Каждый диван можем изготовить в соответствии с Вашими пожеланияи (размер, ткань и материал). Осуществляем бесплатную доставку и сборку. Звоните! Ежедневно! (926)274-88-54 Продажа и изготовление мебели. Копирование контента сайта запрещено. Авторские права защищаются адвокатской коллегией г. Москвы. |