![]() |
Звоните! (926)274-88-54 Бесплатная доставка. Бесплатная сборка. |
Ассортимент тканей График работы: Ежедневно. С 8-00 до 20-00. Почта: soft_hous@mail.ru |
![]() ![]() ![]() |
Читальный зал --> Программные средства foundation Табл. 5.16. VHDL-архитектура, пригодная для работы с различными активными уровнями сигналов architecture V74xl38 b of V74xl38 is signal G2A, G2B: STD.LOGIC; signal У: STD LOGIC VECTOR (0 to 7); signal y s: STD.LOGIC.VECTOR (0 to 7); begin G2A <= not G2A L; - convert inputs G2B <= not G2B L; - convert inputs Y L <= not Y; - convert outputs with A select Y.s <= 10000000 when ООО . 01000000 when 001 , 00100000 when 010 , 00010000 when Oil , 00001000 when 100 , 00000100 when 101 , 00000010 when 110 , 00000001 when 111 , 00000000 when others; Y <=Y s when (Gl and G2A and G2B) = l else 00000000 ; end V74xl38 b; - active-high version of inputs - active-high version of outputs - internal signeil Табл. 5.16 демонстрирует такой подход. Изменения не коснулись объявлений в разделе entity. Однако в архитектуре V7 4х138 а для каждого из внешних выводов с низким активным уровнем определена версия сигнала с высоким активным уровнем, и переход от сигналов с высоким активным уровнем к сигналам с низким активным уровнем осуществляется явными операторами присваивания. Функция самого дешифратора определена с использованием только сигналов с высоким активным уровнем, что является, вероятно, самым большим достоинством этого подхода. Другой плюс состоит в том, что если требуется изменить активные внешние уровни, то это легко сделать путем исправлений лишь в определенных местах в программе, число которых невелико. программа выполняется не по порядку В табл. 5.16 все три оператора преобразования активного уровня собраны вместе в начале программы, хотя никакое значение не может быть присвоено сигналу y l до тех, пока не будет присвоено значение сигналу y, что делается в программе позднее. Помните, что это правильно, поскольку операторы присваивания в теле архитектуры выполняются параллельно. Это означает, что присвоение значения любому сигналу вызывает пересчет во всех других операторах, в которых фигурирует этот сигнал, независимо от его расположения в теле архитектуры. Если место расположения оператора y l <= not y беспокоит вас, то можно поместить его в конце тела архитектуры, но программа немного более удобна для отладки в представленном виде, когда все преобразования активных уровней собраны вместе. Табл. 5.18. Определение дешифратора 3x8 с высокими активными уровнями сигналов в потоковом стиле library IEEE; use IEEE.std.logic.1164.all; entity V3to8dec is port (Gl. G2, G3: m STD.LOGIC; A: in STD.LOGIC.VECTOR (2 downto 0); Y- out STD.LOGIC.VECTOR (0 to 7) ); end V3to8dec; architecture V3to8dec a of V3to8dec is signal Y.s: STD.LOGIC.VECTOR (0 to 7); begin with A select Y.s <= 10000000 when ООО , 01000000 when 001 , 00100000 when 010 , 00010000 when Oil , 00001000 when 100 , 00000100 when 101 , 00000010 when 110 , 00000001 when 111 , 00000000 when others; Y <= Y.s when (Gl and G2 and G3)-l else 00000000 ; end V3to8dec a; С активными )овнями можно оперировать даже более систематическим образом. Как показано в табл. 5.17, архитектуру V7 4x138 можно организовать иерархически, используя компонент v3to8 dec, в котором фигурируют сигаалы только с высокими активными уровнями; определение самого компонента в стиле потокового проектирования приведено в табл. 5.18. Еще раз: не требуется никаких изменений в определении объекта У74х138на верхнем уровне. Соотношение между объектами показано нарис. 5.43. Табл .5.17. Иерархическое определение дешифратора типа 74x138 с преобразованием активных уровней architecture V74xl38 c of V74xl38 is signal G2A, G2B: STD.LOGIC; ~ active-high version of inputs signal Y: STD LOGIC VECTOR (0 to 7); ~ active-high version of outputs component V3to8dec port (Gl, G2, G3: in STD.LOGIC; A: in STD.LOGIC.VECTOR (2 downto 0); У: out STD.LOGIC.VECTOR (0 to 7) ); end component; begin G2A <= not G2A L; - convert inputs G2B <= not G2B L; - convert inputs Y.L <= not Y; - convert outputs Ul: V3to8dec port map (Gl, G2A, G2B, A, Y); end V74xl38.c; объект V74X138 - mA>j. - eae t. - mm объект V74x138 объект V3tCi8deC -[T- Gl G2 G3 A(2 01 Yt0 7] Рис. 5.43. VHDL-объект V74x138. (a) верхний уровень; (b) внутренняя организация с архитектурой V74x138 с Еще один подход к конструированию дешифратора позволяет заменить архитектуру V3to8dec a втабл. 5.18 архитектурой V3to8dec b, представленной в табл. 5.19. Вместо параллельных операторов используются процесс и последовательные операторы, в результате чего работа дешифратора оказывается заданной в поведенческом стиле. Однако внимательное сравнение этих двух вариантов показывает, что реально они отличаются только синтаксисом. Табл. 5.19. Определение архитектуры дешифратора 3x8 в поведенческом стиле architecture V3to8dec b of V3to8dec is signal Y.s: STD LOGIC VECTOR (0 to 7); begin process(A, Gl, G2, G3, Y s) begin case A is when ООО => Y.s <= 10000000 ; when 001 => Y s <= 01000000 ; when 010 => Y s <= 00100000 ; when Oil => Y s <= 00010000 ; when 100 => Y.s <= 00001000 ; when 101 => Y s <= 00000100 ; when 110 => Y.s <= 00000010 ; when 111 => Y s <= 00000001 ; when others => Y s <= 00000000 ; end case; if (Gl and G2 and G3)=l then Y <= Y.s; else Y <= 00000000 ; end if; end process; end V3to8dec b; ООО «Мягкий Дом» - это Отечественный производитель мебели. Наша профильная продукция - это диваны еврокнижка. Каждый диван можем изготовить в соответствии с Вашими пожеланияи (размер, ткань и материал). Осуществляем бесплатную доставку и сборку. Звоните! Ежедневно! (926)274-88-54 Продажа и изготовление мебели. Копирование контента сайта запрещено. Авторские права защищаются адвокатской коллегией г. Москвы. |