Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

out_data : OUT std_logic_vector (9 DOWNTO 0);

interrupt : OUT std_logic

);

END gpr;

ARCHITECTURE Level1 OF gpr IS

shared variable flag: integer:=0;

shared variable quit: integer:=1;

BEGIN

PROCESS(clk)

variable zero: std_logic :='0';

type registr1 is array(0 to 11) of std_logic_vector(3 downto 0);

type registr2 is array(0 to 11) of std_logic_vector(9 downto 0);

variable reg1 : registr1;

variable reg2 : registr2;

BEGIN

reg1(0) := "0000";

reg1(1) := "0001";

reg1(2) := "0010";

reg1(3) := "0011";

reg1(4) := "0100";

reg1(5) := "0101";

reg1(6) := "0110";

reg1(7) := "0111";

reg1(8) := "1000";

reg1(9) := "1001";

reg1(10) := "1010";

reg1(11) := "1011";

quit:=1;

IF (clk'event AND clk = '1' ) THEN

if(we = '1' AND flag=0 AND quit=1) then

case adr(3 downto 0) is

when "0000"=> case reg1(0)(3 downto 0) is

when "0000"=> reg2(0) := in_data;

when "0001"=> reg2(1) := in_data;

when "0010"=> reg2(2) := in_data;

when "0011"=> reg2(3) := in_data;

when "0100"=> reg2(4) := in_data;

when "0101"=> reg2(5) := in_data;

when "0110"=> reg2(6) := in_data;

when "0111"=> reg2(7) := in_data;

when "1000"=> reg2(8) := in_data;

when "1001"=> reg2(9):= in_data;

when "1010"=> reg2(10) := in_data;

НЕ нашли? Не то? Что вы ищете?

when "1011"=> reg2(11) := in_data;

when others => zero:=NOT zero; interrupt<=zero; zero:=NOT zero; flag:=1;quit:=0;

end case;

when "0001"=> case reg1(1)(3 downto 0) is

when "0000"=> reg2(0) := in_data;

when "0001"=> reg2(1) := in_data;

when "0010"=> reg2(2) := in_data;

when "0011"=> reg2(3) := in_data;

when "0100"=> reg2(4) := in_data;

when "0101"=> reg2(5) := in_data;

when "0110"=> reg2(6) := in_data;

when "0111"=> reg2(7) := in_data;

when "1000"=> reg2(8) := in_data;

when "1001"=> reg2(9):= in_data;

when "1010"=> reg2(10) := in_data;

when "1011"=> reg2(11) := in_data;

when others => zero:=NOT zero; interrupt<=zero; zero:=NOT zero; flag:=1;quit:=0;

end case;

when "0010"=> case reg1(2)(3 downto 0) is

when "0000"=> reg2(0) := in_data;

when "0001"=> reg2(1) := in_data;

when "0010"=> reg2(2) := in_data;

when "0011"=> reg2(3) := in_data;

when "0100"=> reg2(4) := in_data;

when "0101"=> reg2(5) := in_data;

when "0110"=> reg2(6) := in_data;

when "0111"=> reg2(7) := in_data;

when "1000"=> reg2(8) := in_data;

when "1001"=> reg2(9):= in_data;

when "1010"=> reg2(10) := in_data;

when "1011"=> reg2(11) := in_data;

when others => zero:=NOT zero; interrupt<=zero; zero:=NOT zero; flag:=1;quit:=0;

end case;

when "0011"=> case reg1(3)(3 downto 0) is

when "0000"=> reg2(0) := in_data;

when "0001"=> reg2(1) := in_data;

when "0010"=> reg2(2) := in_data;

when "0011"=> reg2(3) := in_data;

when "0100"=> reg2(4) := in_data;

when "0101"=> reg2(5) := in_data;

when "0110"=> reg2(6) := in_data;

when "0111"=> reg2(7) := in_data;

when "1000"=> reg2(8) := in_data;

when "1001"=> reg2(9):= in_data;

when "1010"=> reg2(10) := in_data;

when "1011"=> reg2(11) := in_data;

when others => zero:=NOT zero; interrupt<=zero; zero:=NOT zero; flag:=1;quit:=0;

end case;

when "0100"=> case reg1(4)(3 downto 0) is

when "0000"=> reg2(0) := in_data;

when "0001"=> reg2(1) := in_data;

when "0010"=> reg2(2) := in_data;

when "0011"=> reg2(3) := in_data;

when "0100"=> reg2(4) := in_data;

when "0101"=> reg2(5) := in_data;

when "0110"=> reg2(6) := in_data;

when "0111"=> reg2(7) := in_data;

when "1000"=> reg2(8) := in_data;

when "1001"=> reg2(9):= in_data;

when "1010"=> reg2(10) := in_data;

when "1011"=> reg2(11) := in_data;

when others => zero:=NOT zero; interrupt<=zero; zero:=NOT zero; flag:=1;quit:=0;

end case;

when "0101"=> case reg1(5)(3 downto 0) is

when "0000"=> reg2(0) := in_data;

when "0001"=> reg2(1) := in_data;

when "0010"=> reg2(2) := in_data;

when "0011"=> reg2(3) := in_data;

when "0100"=> reg2(4) := in_data;

when "0101"=> reg2(5) := in_data;

when "0110"=> reg2(6) := in_data;

when "0111"=> reg2(7) := in_data;

when "1000"=> reg2(8) := in_data;

when "1001"=> reg2(9):= in_data;

when "1010"=> reg2(10) := in_data;

when "1011"=> reg2(11) := in_data;

when others => zero:=NOT zero; interrupt<=zero; zero:=NOT zero; flag:=1;quit:=0;

end case;

when "0110"=> case reg1(6)(3 downto 0) is

when "0000"=> reg2(0) := in_data;

when "0001"=> reg2(1) := in_data;

when "0010"=> reg2(2) := in_data;

when "0011"=> reg2(3) := in_data;

when "0100"=> reg2(4) := in_data;

when "0101"=> reg2(5) := in_data;

when "0110"=> reg2(6) := in_data;

when "0111"=> reg2(7) := in_data;

when "1000"=> reg2(8) := in_data;

when "1001"=> reg2(9) := in_data;

when "1010"=> reg2(10) := in_data;

when "1011"=> reg2(11) := in_data;

when others => zero:=NOT zero; interrupt<=zero; zero:=NOT zero; flag:=1;quit:=0;

end case;

when "0111"=> case reg1(7)(3 downto 0) is

when "0000"=> reg2(0) := in_data;

when "0001"=> reg2(1) := in_data;

when "0010"=> reg2(2) := in_data;

when "0011"=> reg2(3) := in_data;

when "0100"=> reg2(4) := in_data;

when "0101"=> reg2(5) := in_data;

when "0110"=> reg2(6) := in_data;

when "0111"=> reg2(7) := in_data;

when "1000"=> reg2(8) := in_data;

when "1001"=> reg2(9):= in_data;

when "1010"=> reg2(10) := in_data;

when "1011"=> reg2(11) := in_data;

when others => zero:=NOT zero; interrupt<=zero; zero:=NOT zero; flag:=1;quit:=0;

end case;

when "1001"=> case reg1(8)(3 downto 0) is

when "0000"=> reg2(0) := in_data;

when "0001"=> reg2(1) := in_data;

when "0010"=> reg2(2) := in_data;

when "0011"=> reg2(3) := in_data;

when "0100"=> reg2(4) := in_data;

when "0101"=> reg2(5) := in_data;

when "0110"=> reg2(6) := in_data;

when "0111"=> reg2(7) := in_data;

when "1000"=> reg2(8) := in_data;

when "1001"=> reg2(9):= in_data;

when "1010"=> reg2(10) := in_data;

when "1011"=> reg2(11) := in_data;

when others => zero:=NOT zero; interrupt<=zero; zero:=NOT zero; flag:=1;quit:=0;

end case;

when "1010"=> case reg1(9)(3 downto 0) is

when "0000"=> reg2(0) := in_data;

when "0001"=> reg2(1) := in_data;

when "0010"=> reg2(2) := in_data;

when "0011"=> reg2(3) := in_data;

when "0100"=> reg2(4) := in_data;

when "0101"=> reg2(5) := in_data;

when "0110"=> reg2(6) := in_data;

when "0111"=> reg2(7) := in_data;

when "1000"=> reg2(8) := in_data;

when "1001"=> reg2(9):= in_data;

when "1010"=> reg2(10) := in_data;

when "1011"=> reg2(11) := in_data;

when others => zero:=NOT zero; interrupt<=zero; zero:=NOT zero; flag:=1;quit:=0;

end case;

when "1011"=> case reg1(10)(3 downto 0) is

when "0000"=> reg2(0) := in_data;

when "0001"=> reg2(1) := in_data;

when "0010"=> reg2(2) := in_data;

when "0011"=> reg2(3) := in_data;

when "0100"=> reg2(4) := in_data;

when "0101"=> reg2(5) := in_data;

when "0110"=> reg2(6) := in_data;

when "0111"=> reg2(7) := in_data;

when "1000"=> reg2(8) := in_data;

when "1001"=> reg2(9):= in_data;

when "1010"=> reg2(10) := in_data;

when "1011"=> reg2(11) := in_data;

when others => zero:=NOT zero; interrupt<=zero; zero:=NOT zero; flag:=1;quit:=0;

end case;

when "1100"=> case reg1(11)(3 downto 0) is

when "0000"=> reg2(0) := in_data;

when "0001"=> reg2(1) := in_data;

when "0010"=> reg2(2) := in_data;

when "0011"=> reg2(3) := in_data;

when "0100"=> reg2(4) := in_data;

when "0101"=> reg2(5) := in_data;

when "0110"=> reg2(6) := in_data;

when "0111"=> reg2(7) := in_data;

when "1000"=> reg2(8) := in_data;

when "1001"=> reg2(9):= in_data;

when "1010"=> reg2(10) := in_data;

when "1011"=> reg2(11) := in_data;

when others => zero:=NOT zero; interrupt<=zero; zero:=NOT zero; flag:=1;quit:=0;

end case;

when others => zero:=NOT zero; interrupt<=zero; zero:=NOT zero; flag:=1;quit:=0;

end case;

quit := 0;

case adr(3 downto 0) is

when "0000"=> case reg1(0)(3 downto 0) is

when "0000"=> out_data <= reg2(0);

when "0001"=> out_data <= reg2(1);

when "0010"=> out_data <= reg2(2);

when "0011"=> out_data <= reg2(3);

when "0100"=> out_data <= reg2(4);

when "0101"=> out_data <= reg2(5);

when "0110"=> out_data <= reg2(6);

when "0111"=> out_data <= reg2(7);

when "1000"=> out_data <= reg2(8);

when "1001"=> out_data <= reg2(9);

when "1010"=> out_data <= reg2(10);

when "1011"=> out_data <= reg2(11);

when others => zero:=NOT zero; interrupt<=zero; zero:=NOT zero; flag:=1;quit:=0;

end case;

when "0001"=> case reg1(1)(3 downto 0) is

when "0000"=> out_data <= reg2(0);

when "0001"=> out_data <= reg2(1);

when "0010"=> out_data <= reg2(2);

when "0011"=> out_data <= reg2(3);

when "0100"=> out_data <= reg2(4);

when "0101"=> out_data <= reg2(5);

when "0110"=> out_data <= reg2(6);

when "0111"=> out_data <= reg2(7);

when "1000"=> out_data <= reg2(8);

when "1001"=> out_data <= reg2(9);

when "1010"=> out_data <= reg2(10);

when "1011"=> out_data <= reg2(11);

when others => zero:=NOT zero; interrupt<=zero; zero:=NOT zero; flag:=1;quit:=0;

end case;

when "0010"=> case reg1(2)(3 downto 0) is

when "0000"=> out_data <= reg2(0);

when "0001"=> out_data <= reg2(1);

when "0010"=> out_data <= reg2(2);

when "0011"=> out_data <= reg2(3);

when "0100"=> out_data <= reg2(4);

when "0101"=> out_data <= reg2(5);

when "0110"=> out_data <= reg2(6);

when "0111"=> out_data <= reg2(7);

when "1000"=> out_data <= reg2(8);

when "1001"=> out_data <= reg2(9);

when "1010"=> out_data <= reg2(10);

when "1011"=> out_data <= reg2(11);

when others => zero:=NOT zero; interrupt<=zero; zero:=NOT zero; flag:=1;quit:=0;

end case;

when "0011"=> case reg1(3)(3 downto 0) is

when "0000"=> out_data <= reg2(0);

when "0001"=> out_data <= reg2(1);

when "0010"=> out_data <= reg2(2);

when "0011"=> out_data <= reg2(3);

when "0100"=> out_data <= reg2(4);

when "0101"=> out_data <= reg2(5);

when "0110"=> out_data <= reg2(6);

when "0111"=> out_data <= reg2(7);

when "1000"=> out_data <= reg2(8);

when "1001"=> out_data <= reg2(9);

when "1010"=> out_data <= reg2(10);

when "1011"=> out_data <= reg2(11);

when others => zero:=NOT zero; interrupt<=zero; zero:=NOT zero; flag:=1;quit:=0;

end case;

when "0100"=> case reg1(4)(3 downto 0) is

when "0000"=> out_data <= reg2(0);

when "0001"=> out_data <= reg2(1);

when "0010"=> out_data <= reg2(2);

when "0011"=> out_data <= reg2(3);

when "0100"=> out_data <= reg2(4);

when "0101"=> out_data <= reg2(5);

when "0110"=> out_data <= reg2(6);

when "0111"=> out_data <= reg2(7);

when "1000"=> out_data <= reg2(8);

when "1001"=> out_data <= reg2(9);

when "1010"=> out_data <= reg2(10);

when "1011"=> out_data <= reg2(11);

when others => zero:=NOT zero; interrupt<=zero; zero:=NOT zero; flag:=1;quit:=0;

end case;

when "0101"=> case reg1(5)(3 downto 0) is

when "0000"=> out_data <= reg2(0);

when "0001"=> out_data <= reg2(1);

when "0010"=> out_data <= reg2(2);

when "0011"=> out_data <= reg2(3);

when "0100"=> out_data <= reg2(4);

when "0101"=> out_data <= reg2(5);

when "0110"=> out_data <= reg2(6);

when "0111"=> out_data <= reg2(7);

when "1000"=> out_data <= reg2(8);

when "1001"=> out_data <= reg2(9);

when "1010"=> out_data <= reg2(10);

when "1011"=> out_data <= reg2(11);

when others => zero:=NOT zero; interrupt<=zero; zero:=NOT zero; flag:=1;quit:=0;

end case;

when "0110"=> case reg1(6)(3 downto 0) is

when "0000"=> out_data <= reg2(0);

when "0001"=> out_data <= reg2(1);

when "0010"=> out_data <= reg2(2);

when "0011"=> out_data <= reg2(3);

when "0100"=> out_data <= reg2(4);

when "0101"=> out_data <= reg2(5);

when "0110"=> out_data <= reg2(6);

when "0111"=> out_data <= reg2(7);

when "1000"=> out_data <= reg2(8);

when "1001"=> out_data <= reg2(9);

when "1010"=> out_data <= reg2(10);

when "1011"=> out_data <= reg2(11);

when others => zero:=NOT zero; interrupt<=zero; zero:=NOT zero; flag:=1;quit:=0;

end case;

when "0111"=> case reg1(7)(3 downto 0) is

when "0000"=> out_data <= reg2(0);

when "0001"=> out_data <= reg2(1);

when "0010"=> out_data <= reg2(2);

when "0011"=> out_data <= reg2(3);

when "0100"=> out_data <= reg2(4);

when "0101"=> out_data <= reg2(5);

when "0110"=> out_data <= reg2(6);

when "0111"=> out_data <= reg2(7);

when "1000"=> out_data <= reg2(8);

when "1001"=> out_data <= reg2(9);

when "1010"=> out_data <= reg2(10);

when "1011"=> out_data <= reg2(11);

when others => zero:=NOT zero; interrupt<=zero; zero:=NOT zero; flag:=1;quit:=0;

end case;

when "1000"=> case reg1(8)(3 downto 0) is

when "0000"=> out_data <= reg2(0);

when "0001"=> out_data <= reg2(1);

when "0010"=> out_data <= reg2(2);

when "0011"=> out_data <= reg2(3);

when "0100"=> out_data <= reg2(4);

when "0101"=> out_data <= reg2(5);

when "0110"=> out_data <= reg2(6);

when "0111"=> out_data <= reg2(7);

when "1000"=> out_data <= reg2(8);

when "1001"=> out_data <= reg2(9);

when "1010"=> out_data <= reg2(10);

when "1011"=> out_data <= reg2(11);

when others => zero:=NOT zero; interrupt<=zero; zero:=NOT zero; flag:=1;quit:=0;

end case;

when "1001"=> case reg1(9)(3 downto 0) is

when "0000"=> out_data <= reg2(0);

when "0001"=> out_data <= reg2(1);

when "0010"=> out_data <= reg2(2);

when "0011"=> out_data <= reg2(3);

when "0100"=> out_data <= reg2(4);

when "0101"=> out_data <= reg2(5);

when "0110"=> out_data <= reg2(6);

when "0111"=> out_data <= reg2(7);

when "1000"=> out_data <= reg2(8);

when "1001"=> out_data <= reg2(9);

when "1010"=> out_data <= reg2(10);

when "1011"=> out_data <= reg2(11);

when others => zero:=NOT zero; interrupt<=zero; zero:=NOT zero; flag:=1;quit:=0;

end case;

when "1010"=> case reg1(10)(3 downto 0) is

when "0000"=> out_data <= reg2(0);

when "0001"=> out_data <= reg2(1);

when "0010"=> out_data <= reg2(2);

when "0011"=> out_data <= reg2(3);

when "0100"=> out_data <= reg2(4);

when "0101"=> out_data <= reg2(5);

when "0110"=> out_data <= reg2(6);

when "0111"=> out_data <= reg2(7);

when "1000"=> out_data <= reg2(8);

when "1001"=> out_data <= reg2(9);

when "1010"=> out_data <= reg2(10);

when "1011"=> out_data <= reg2(11);

when others => zero:=NOT zero; interrupt<=zero; zero:=NOT zero; flag:=1;quit:=0;

end case;

when "1011"=> case reg1(11)(3 downto 0) is

when "0000"=> out_data <= reg2(0);

when "0001"=> out_data <= reg2(1);

when "0010"=> out_data <= reg2(2);

when "0011"=> out_data <= reg2(3);

when "0100"=> out_data <= reg2(4);

when "0101"=> out_data <= reg2(5);

when "0110"=> out_data <= reg2(6);

when "0111"=> out_data <= reg2(7);

when "1000"=> out_data <= reg2(8);

when "1001"=> out_data <= reg2(9);

when "1010"=> out_data <= reg2(10);

when "1011"=> out_data <= reg2(11);

when others => zero:=NOT zero; interrupt<=zero; zero:=NOT zero; flag:=1;quit:=0;

end case;

when others => zero:=NOT zero; interrupt<=zero; zero:=NOT zero; flag:=1;quit:=0;

end case;

quit := 0;

end if;

if(flag=1 AND quit=1) then

quit:=0;

flag:=0;

zero:=NOT zero;

zero:=NOT zero;

interrupt<=zero;

end if;

end if;

END PROCESS;

END Level1;

Работа устройства осуществляется следующим образом: при наличии высокого уровня входного сигналов CLK и WE производится запись информации, поступившей на вход IN_DATA устройства, по адресу на входе ADR. Чтение данных из РОН осуществляется при подаче на вход адресов требуемого регистра, а также высоко уровня сигналов CLK и RE. При адресация в устройстве осуществляется с помощью дополнительного блока регистров, хранящего адреса необходимых регистров с дынными.

КПДП организует прямой доступ к памяти внешним устройствам. Для подсчета текущего адреса и количества переданных слов данное устройство содержит в себе собственный счетчик адреса. В начале цикла КПДП счетчик адреса устанавливается в начальный адрес (по условию 8), и начинает отсчет 8 циклов передачи слова.

Условно-графическое изображение КПДП изображено на рисунке 2.13.

Рисунок 2.12 – Условно-графическое обозначение КПДП.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4