Звоните! (926)274-88-54 Бесплатная доставка. Бесплатная сборка. |
Ассортимент тканей График работы: Ежедневно. С 8-00 до 20-00. Почта: soft_hous@mail.ru |
|
(926)274-88-54 ГлавнаяИнтернет-магазинТкани в наличииМягкая мебельДиваны еврокнижка
Диван-кровать
Диван книжка
Кожаные диваны
Угловые диваны
Кресло-кровать
Недорогие диваны
Кресла
Диваны с фабрики
Кожаная мебель
Производство
Недорогая мебель
Как купитьЗаказ мебелиМебель для домаКухниШкафы купеОфисная мебельШкольная мебельПродажа мебели
Карта сайта
Вакансии
Схема проезда
(926)274-88-54
|
Читальный зал --> Программные средства foundation Табл. 6.33. Поведенческая VHDL-программа для счетчика числа единиц в 32-разрядном слове library IEEE; use IEEE.std logic l164.all; use IEEE.std logic unsigned.all; entity VentIs is port ( D; in STD.LOGIC.VECTOR (31 downto 0); SOT: out STD.LOGIC.VECTOR (4 downto 0) ); end VentIs; arcbitecture Vcntls.arch of VentIs is begin process (D) variable S: STD.LOGIC.VECTOR(4 downto 0); begin S := 00000 ; for i in 0 to 31 loop if D(i) = 1 then S := S + 00001 ; end if; end loop; SUM <= S; end process; end Vcntls.arch; D[24]- 0[5:3)г::>7Л£г ADDER2 *T D[ii:91=:i.[j£r 2 D[251- D[28]- ADDER2 ADDERS D[261- D[30] - D[311- ADDER2 D[271- D[29] - D[23:2i]r::>rl£r P[0:7t[1:01 ADDER2 ADDERS
имена сигналов Q[0:3 12:01 R[0:1 [3:0) :>SUM[5:0] S[4:01 Рис. 6.15. Структура 32 -разрядного счетчика числа единиц Устройство, изображенное на рис. 6.15, отлично создается структурной VHDL-архитектурой, приведенной в табл. 6.34. Программа начинается с объявления всех компонентов, которые будут использованы в проекте, соответствующих блокам на рисунке. Табл. 6.34. Структурная VHDL-архитектура для 32-разрядного счетчика числа единиц architecture Vcntlstr.arch of Vcntlstr is component FA port ( A, Б, CI: in STD.LOGIC; S, CO: out STD.LOGIC ); end component; component A00ER2 port ( A, B: in STD LQGIC VECT0R(1 downto 0); CI; in STD.LOGIC; S: out STD L0GIC VECT0R(2 downto 0) ); end component; cosnponent ADDERS port (A, B: in STD L0GIC VECT0R(2 downto 0); CI: in STD.LOGIC; S: out STD.LOGIC.VECTORO downto 0) ); end compoBeBt; component ADDER4 port ( A, B: in STD LOGIC VECTOR(3 downto 0); CI: in STD.LOGIC; S: out STD .LOGIC. /ECrDR(4 downto 0) ); ead component; component 1ЖШ port (A: in STD.LOGIC.VECTOR (4 downto 0); CI: in STD.LOGIC; S: out STD.LOGIC.VECTDRCB downto 0) ); end component; type Ptype is array (0 to 7} of STD.LOGIC.VECTOR(l downto 0) type Qtype is array (0 to 3) of STD.LOGIC.VECTOR(2 downto 0) type Rtype is array (0 to 1) of STD.LOGIC.VECTOR(3 downto 0) signal P: Ptype; signal Q: Qtype; signal R: Rtype; signal S; STD L0GIC.VECT0R(4 downto 0); begin Ul; for i ia 0 to 7 generate ШС: FA port map (D(3*i), 0(3*i+l), D(3*i+2), P(i)(0), P(i)(l)); end generate; U2: for i in 0 to 3 generate U2C: ADDER2jport map (P(2*i), P(2*i+D, D(24+i), QCi)); end generate; U3; for i in 0 to 1 generate U3C: ADDERS port шар (Q(2*i), Q(2.i+1), D(28*i), R(i)); end generate; U4: ADDER4 port aap (R(0), R(l), D(30), S); 05; IKCR5 port sap (S. D(31), ЗШ; end Vcntlstr.arch; Под каждым столбцом сигналов в схеме на рис. 6.15 указано имя, присвоенное этой совокупности сигналов в программе. Каждый из сигналов Р, Q и R - это массив, позволяющий представить все соединения в соответствующем столбце в виде одного вектора типа STD LOGIC VECTOR. Объявлению этих сигналов в программе предшествует определение соответствующих типов. В этой программе создание однотипных сумматоров - восьми полных сумматоров FA, четырех сумматоров ADDER2 и двух сумматоров ADDERS - успешно осуществляется операторами generate, а затем происходит обращение к компонентам ADDER4 и INCR5. Определение компонентов счетчика числа единиц в виде отдельных объектов и архитектур, начиная с полного сумматора FA и кончая устройством INCR увеличения числа на 1, можно сделать в отдельных структурных или поведенческих программах. Например, в табл. 6.35 приведена структурная программа для полного сумматора FA. Описание остальных блоков оставлено в качестве задач 6.20-6.22. Табл. 6.35. Структурная VHDL-программа для полного сумматора library IEEE; use IEEE.std logic 1164.all; entity FA is port ( A, B, CI: in STD.LOGIC; S, CO: out STD.LOGIC ); end FA; architecture FA.arch of FA is begin S A xor В xor CI; CO <= (A and B) or (A and CI) or (B and CI); end FA.arch; 6.3.7. Игра в крестики и нолики Наш последний пример состоит в проектировании комбинационной схемы, которая выбирает очередной ход игрока в игре в крестики и нолики. Те, кто не знаком с этой игрой, могут прочитать правила, приведенные в разделе 6.2.7. Здесь мы повторим нашу стратегию игры с целью достижения победы: 1. Ищем строку, столбец или диагональ, в которых имеется две наших метки (X или О в зависимости от того, за кого мы играем) и одна пустая клетка. Если такая комбинация существует, то помещаем свою метку в пустую клетку. Мы выиграли! 2. В противном случае ищем строку, столбец или диагональ, в которых имеется две метки противника и одна пустая клетка. Если такая комбинация обнаруживается, то помещаем свою метку в пустую клетку, чтобы блокировать возможную победу противника. 3. Если не найдены две предыдущие комбинации, то выбираем клетку на основании опыта . Например, если свободна центральная клетка, то обычно хорошим ходом является ее занятие. Другими хорошими ходами считается занятие угловых клеток. При выборе хода умные ифоки могут также принять во внимание развитие конфигурации противником и заблокировать его, воспользовавшись предвидением . ООО «Мягкий Дом» - это Отечественный производитель мебели. Наша профильная продукция - это диваны еврокнижка. Каждый диван можем изготовить в соответствии с Вашими пожеланияи (размер, ткань и материал). Осуществляем бесплатную доставку и сборку. Звоните! Ежедневно! (926)274-88-54 Продажа и изготовление мебели. Копирование контента сайта запрещено. Авторские права защищаются адвокатской коллегией г. Москвы. |