![]() |
Звоните! (926)274-88-54 Бесплатная доставка. Бесплатная сборка. |
Ассортимент тканей График работы: Ежедневно. С 8-00 до 20-00. Почта: soft_hous@mail.ru |
![]() ![]() ![]() |
Читальный зал --> Программные средства foundation 74x138 CS L. RD L . АО . Gl 0G2A О G2B YO О Yl О Y2 О Y3 О Y4 О Y5 О Ye О Y7 О 74x08 ---U2 74хОВ -- U2 Рис. 5.42. Схема заказного дешифратора Табл. 5.12. Программа заказного дешифратора на языке ABEL module CUSTMDEC title Customized Decoder PLD J. Wakerly, Stanford University CUSTMDEC device P16L8; BILL L MARY..L JOAN. L PAUL L ANNA L FRED L DAVE L KATE L Input pins !CS, !RD. AO, Al, A2 Output pins !BILL, iMARY, !JOAN, !PAUL lANNA, !FRED, !DAVE. !KATE pin 1, 2, 3, 4, 5; pin 19, 18, 17, 16 istype com; pin 15, 14, 13, 12 istype com; equations BILL = CS & RD & (!A2 fe !A1 & !A0); MARY = CS fe RD fe (!A2 & !A1 & !A0 # !A2 & KATE = CS fe RD fe (!A2 & !A1 fe AO # A2 & JOAN = CS fe RD fe (!A2 fe Al & !A0) PAUL = CS fe RD fe (!A2 fe Al fe AO) ANNA = CS & RD fe ( A2 & !A1 fe !A0) FRED = CS & RD & ( A2 & !A1 & AO) DAVE = CS & RD fe ( A2 & Al fe !A0) !A1 & AO); Al & AO); end CUSTMDEC Другой способ записи соотношений приведен в табл. 5.13. В большинстве прикладных задач этот стиль более понятен, особенно в том случае, когда сигналы на входах выбора одного из выходов имеют числовое значение. Табл. 5.13. Эквивалентные равенства для заказного дешифратора на языке ABEL ADDR = [А2,А1,А0]; equations BILL = CS fe RD & (ADDR == 0); MARY = CS fe RD fe((ADDR == 0) # (ADDR = D); KATE = CS & RD fe((ADDR == 1) # (ADDR == 7)); JOAN = CS fe RD & (ADDR == 2); PAUL = CS & RD & (ADDR == 3); ANNA = CS & RD & (ADDR == 4); FRED = CS fe RD & (ADDR == 5); DAVE = CS fe RD & (ADDR == 6); 5.4.7. Описаниедешифраторов на языке VHDL Существует несколько подходов к проектированию дешифраторов на языке VHDL. В простейшем случае следовало бы записать структурный эквивалент принципиальной схемы дешифратора, как это сделано в табл. 5.14 для полного дешифратора 2x4, приведенного нарис. 5.32. Предполагается, что компоненты and3 и inv уже существуют в микросхеме, для которой пишется программа. Конечно, такое механическое преобразование существующих устройств в эквивалент в виде списка соединений в первую очередь убивает желание пользоваться языком VHDL. Табл. 5.14. Структурная программа дешифратора, изображенного на рис. 5.32, на языке VHDL library IEEE; use IEEE.std logic ll64.all; entity V2to4dec is port (10, II, EN: m STD.LOGIC; У0, Yl, Y2, Y3: out STD.LOGIC ); end V2to4dec; architecture V2to4dec.s of V2to4dec is signal NOTIO, NOTIl: STD.LOGIC; component inv port (I; in STD.LOGIC; 0: out STD.LOGIC ); end component; component and3 port (10, II, 12: in STD.LOGIC; 0: out STD.LOGIC ); end component; begin Ul: inv port map (10,NOTIO); U2: inv port map (11,NOTIl); U3: andS port map (NOTIO,NOTIl,EN,YO); U4: andS port map ( ID,NOTIl,EN,Yl) U5: and3 port map (NOTIO, I1,EN,Y2) U6: andS port map ( 10, Il,EN,Y3) end V2to4dec.s; Вместо этого хотелось бы написать профамму, в которой язык VHDL был бы использован так, чтобы сделать проектирование дешифратора более понятным и удобным. В табл. 5.15 продемонстрирован один из подходов к написанию профаммы полного дешифратора 3x8, эквивалентного дешифратору 74х 13 8, на языке VHDL в стиле потокового проектирования. Адресные входы А (2 downto 0) и декодированные выходньге сигналы с низким активным уровнем Y L (О to 7) ради удобства чтения представлены в виде векторов. В операторе select перечислены восемь случаев декодирования, в каждом из которых 8-разрядному внутреннему сигналу Y L i присваивается соответствующая комбинащ1я входных сигналов с низким активным уровнем. Эта комбинация присваивается фактическому выходному сигналу схемы YL только в том случае, когда сигналы на всех входах разрешения активны. Табл. 5.15. VHDL-программа полного дешифратора 3x8 типа 74x138 в стиле потокового проектирования library IEEE; use IEEE.8td logic 1164.all; entity V74xl38 is port (Gl, G2A L, G2B L: in STD.LOGIC; -- enable inputs A: in STD LOGIC VECTOR (2 downto 0); - select inputs Y L: out STD.LOGIC.VECTOR (0 to 7) ); ~ decoded outputs end V74xi38; architecture V74xl38 a of V74xl38 is signal Y L i: STD LOGIC VECTOR (0 to 7); begin with A select Y L i <= 0111Ш1 when ООО , 10111Ш when 001 , llOimi when 010 , 11101111 when Oil , IIUOIU when 100 , 11111011 when 101 , 11111101 when 110 , 11111110 when 111 , 11111111 when others; Y L <= Y L i when (Gl and not G2A L and not G2B L)=l els 11111111 ; end V74xl38 a; Этот вариант хорош для начала и работает, но в нем есть скрытая ловушка. Корректировки, учитывающие тот факт, что два входных и все выходные сигналы имеют низкий активный уровень, оказываются спрятанными в заключительном операторе присваивания. Это верно, что большинство профамм на языке VHDL пишется почти полностью для сигналов с высоким активным уровнем, но если мы разрабатываем устройство с низкими активными уровнями сигналов на внешних выводах, то нам действительно следует привести их к более систематическому и более удобному виду. ООО «Мягкий Дом» - это Отечественный производитель мебели. Наша профильная продукция - это диваны еврокнижка. Каждый диван можем изготовить в соответствии с Вашими пожеланияи (размер, ткань и материал). Осуществляем бесплатную доставку и сборку. Звоните! Ежедневно! (926)274-88-54 Продажа и изготовление мебели. Копирование контента сайта запрещено. Авторские права защищаются адвокатской коллегией г. Москвы. |