ВУЗ:
Составители:
46
Встраивание компонента заключается в том, что создается его
экземпляр, который имеет уникальное имя (в локальной области
видимости). Раздел generic map позволяет указать конкретные значения
локальным константам. В разделе port map порты созданного экземпляра
подключаются к сигналам, которые определены в архитектуре. При
соединении компонентов и сигналов необходимо придерживаться
элементарных схемотехнических правил. Например, если один и тот же
сигнал будет подключен к выходам нескольких компонентов, то при этом
могут возникнуть конфликты, связанные с попытками разных компонентов
присвоить сигналу разные значения. Как при задании значении локальных
констант, так и при подключении сигналов к портам можно использовать
две синтаксические формы записи – полную и сокращенную. Полная
форма записи выглядит следующим образом: имя порта => имя сигнала
или имя локальной константы => значение. При этом порты или имена
констант могут перечисляться в произвольном порядке. В сокращенной
форме записи имена портов (локальных констант) вообще не
используются. Вместо этого подключаемые сигналы (или значения)
перечисляются через запятую в том же порядке, в котором перечислены
порты (константы) при объявлении компонента.
Рассмотрим тривиальный пример, который иллюстрирует правила
работы с компонентами. Пусть мы описываем схему, которая содержит
несколько операций сложения с разной разрядностью.
library IEEE;
use IEEE.std_logic_1164.all;
entity add is
generic (N: integer:=8); -- задано значение по умолчанию – 8
port(
S1: in integer range 0 to 2**N-1;
S1: in integer range 0 to 2**N-1;
SUM: out integer range 0 to 2**(N+1)-1);
end add;
architecture add_arch of add is
begin
SUM<=S1+S2;
end add_arch;
library IEEE;
use IEEE.std_logic_1164.all;
entity add_test is
port (
46 Встраивание компонента заключается в том, что создается его экземпляр, который имеет уникальное имя (в локальной области видимости). Раздел generic map позволяет указать конкретные значения локальным константам. В разделе port map порты созданного экземпляра подключаются к сигналам, которые определены в архитектуре. При соединении компонентов и сигналов необходимо придерживаться элементарных схемотехнических правил. Например, если один и тот же сигнал будет подключен к выходам нескольких компонентов, то при этом могут возникнуть конфликты, связанные с попытками разных компонентов присвоить сигналу разные значения. Как при задании значении локальных констант, так и при подключении сигналов к портам можно использовать две синтаксические формы записи – полную и сокращенную. Полная форма записи выглядит следующим образом: имя порта => имя сигнала или имя локальной константы => значение. При этом порты или имена констант могут перечисляться в произвольном порядке. В сокращенной форме записи имена портов (локальных констант) вообще не используются. Вместо этого подключаемые сигналы (или значения) перечисляются через запятую в том же порядке, в котором перечислены порты (константы) при объявлении компонента. Рассмотрим тривиальный пример, который иллюстрирует правила работы с компонентами. Пусть мы описываем схему, которая содержит несколько операций сложения с разной разрядностью. library IEEE; use IEEE.std_logic_1164.all; entity add is generic (N: integer:=8); -- задано значение по умолчанию – 8 port( S1: in integer range 0 to 2**N-1; S1: in integer range 0 to 2**N-1; SUM: out integer range 0 to 2**(N+1)-1); end add; architecture add_arch of add is begin SUM<=S1+S2; end add_arch; library IEEE; use IEEE.std_logic_1164.all; entity add_test is port (
Страницы
- « первая
- ‹ предыдущая
- …
- 44
- 45
- 46
- 47
- 48
- …
- следующая ›
- последняя »