A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Sistemas Digitais Projeto 2ª Unidade CPU. Sistemas Digitais Arquitetura/plataforma de prototipa ç ão.

Apresentações semelhantes


Apresentação em tema: "Sistemas Digitais Projeto 2ª Unidade CPU. Sistemas Digitais Arquitetura/plataforma de prototipa ç ão."— Transcrição da apresentação:

1 Sistemas Digitais Projeto 2ª Unidade CPU

2 Sistemas Digitais Arquitetura/plataforma de prototipa ç ão

3 Sistemas Digitais Conjunto de instruções INSTRUÇÂOOPCODE Add endereço : Ac <= Ac + conteúdo endereço.:. 00 Store endereço: endereço dado <= Ac.:. 01 Load endereço: Ac <= conteúdo do endereço.:. 02 Jump endereço: Pc <= endereço.:. 03 JNEG endereço: Se Ac < 0 Pc <= endereço.:. 04 Sub endereço: Ac <= Ac - conteúdo endereço.:. 05 In (Leitura) dispositivo : Lê do dsipositivo.:. 06 Out (Escrita) dispositivo : Escreve no dispositivo.:. 07

4 Sistemas Digitais Declaração da CPU LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CPU IS PORT( clock: IN STD_LOGIC; reset: IN STD_LOGIC; bus_data_in_register: IN STD_LOGIC_VECTOR(1 downto 0);... memory_address_register: OUT STD_LOGIC_VECTOR(7 downto 0);... );

5 Sistemas Digitais Modelo de arquitetura --Aqui deve constar a declaração dos sinais e dos estados BEGIN PROCESS (clock, reset) BEGIN IF (reset = '1') THEN state <= reset_pc; ELSIF (clock'EVENT AND clock = '1') THEN CASE state IS WHEN reset_pc => program_counter <= " "; memory_address_register <= " "; memory_data_out_register <= " "; register_AC <= " "; bus_data_out_register <= "00"; bus_address_register <= "00"; memory_write <= '0'; state <= fetch;

6 Sistemas Digitais Alguns estados WHEN fetch => program_counter <= program_counter + 1; memory_write <= '0'; state <= fetch1; WHEN decode => memory_address_register <= instruction_register(7 DOWNTO 0); CASE instruction_register(15 DOWNTO 8) IS WHEN " " => state <= execute_add; WHEN " " => state <= execute_store; continua outros estados; WHEN OTHERS => state <= fetch; END CASE;

7 Sistemas Digitais Alguns Estados (cont)... WHEN execute_jump => memory_address_register <= instruction_register(7 DOWNTO 0); program_counter <= instruction_register(7 DOWNTO 0); state <= fetch; WHEN execute_out => bus_address_register <= instruction_register(1 DOWNTO 0); bus_data_out_register <= register_ac (1 DOWNTO 0); memory_address_register <= program_counter; state <= fetch; WHEN OTHERS => memory_address_register <= program_counter; state <= fetch;...

8 Sistemas Digitais Unidade de mapeamento A unidade de mapeamento será o estágio final do projeto. Ela conterá os componentes utilizados (cpu, memória, decoder, drivers...) e fará a ligação entre os mesmos utilizando sinais (fios). Esse mapeamento deve ser feito em VHDL utilizando a sintaxe de PORT MAP

9 Sistemas Digitais Unidade de mapeamento LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY robot IS PORT( clock: IN STD_LOGIC; reset: IN STD_LOGIC; motorControl1: IN STD_LOGIC_VECTOR(1 DOWNTO 0);... motorOut1: OUT STD_LOGIC_VECTOR(1 DOWNTO 0);... ); END robot;

10 Sistemas Digitais Unidade de mapeamento(cont) -- declaração dos sinais usados declaração dos componentes usados COMPONENT decoder PORT( clock: IN STD_LOGIC; busAddress: IN STD_LOGIC_VECTOR(1 downto 0); CSMotor1: OUT STD_LOGIC; CSMotor2: OUT STD_LOGIC; muxSelector: OUT STD_LOGIC ); END COMPONENT;...

11 Sistemas Digitais Mapeamento... BEGIN U1: decoder PORT MAP(clock => clock, busAddress => bus_address, CSMotor1 => chip_select_motor1, CSMotor2 => chip_select_motor2, muxSelector => chip_select_mux ); U2: driver PORT MAP(reset => reset, chipSelect => chip_select_motor1, busData => bus_data_out, motorSignal => motorOut1 );...


Carregar ppt "Sistemas Digitais Projeto 2ª Unidade CPU. Sistemas Digitais Arquitetura/plataforma de prototipa ç ão."

Apresentações semelhantes


Anúncios Google