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

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

Instruções de Laço Repeat While For O laço Repeat não é usado para síntese de circuitos O laço While é usado para síntese de circuitos sequenciais O laço.

Apresentações semelhantes


Apresentação em tema: "Instruções de Laço Repeat While For O laço Repeat não é usado para síntese de circuitos O laço While é usado para síntese de circuitos sequenciais O laço."— Transcrição da apresentação:

1 Instruções de Laço Repeat While For O laço Repeat não é usado para síntese de circuitos O laço While é usado para síntese de circuitos sequenciais O laço For é usado para síntese de circuitos combinacionais VERILOG HDL

2 Instruções de Laço O Laço for Sintaxe: for ( ; ; ); < > >= <= expressões de comparação O laço For é usado para síntese de circuitos combinacionais

3 VERILOG HDL Exemplo da construção FOR LOOP: Descrever em VERILOG um circuito para determinar a ordem do bit 1 de mais alta significância em um vetor de entrada de 8 bits. Solução: ordem_bit A B 8 bits3 bits

4 Solução: module ordem_bit (output reg [2:0]B, input [7:0] A); integer i; begin B = 0; for (i = 0; i <= 7; i = i+1) if (A[i]==1) B = i; end endmodule VERILOG HDL i, índice do for (variável não é sintetizada)

5 VERILOG HDL Simulação:

6 VERILOG HDL Exemplo 2: Dê uma especificação de alto nível de um sistema combinacional que computa a distância entre dois 1s no vetor de bits de entrada (8 bits). Suponha que o vetor tenha exatamente dois 1s. Por exemplo se x = (1,0,1,0,0,0,0,0) então a distância é 2.

7 VERILOG HDL module distancia_bit (output reg [2:0] B, input [7:0] A); integer i; reg [2:0] j,k; begin B=0; k=0; j=0; for (i = 0; i <= 7; i = i+1) if (A[i]==1) j = i; // bit de maior ordem for (i = 7; i >= 0; i = i-1) if (A[i]==1) k = i; // bit de menor ordem B = j - k; // cálculo da diferença na ordem dos bits end endmodule

8 VERILOG HDL module distancia_bit (output reg [2:0] B, input [7:0] A); integer i; reg [2:0] j,k; begin B=0; k=0; j=0; for (i = 0; i <= 7; i = i+1) if (A[i]==1) j = i; // bit de maior ordem for (i = 7; i >= 0; i = i-1) if (A[i]==1) k = i; // bit de menor ordem B = j - k; // cálculo da diferença na ordem dos bits end endmodule Simulação:

9 VERILOG HDL Exercício: Um sistema combinacional tem uma entrada x, a qual representa um dígito decimal. A saída z é o quadrado de x se x for maior do que 4; caso contrário, a saída z é duas vezes x. Dê uma descrição Verilog do sistema

10 VERILOG HDL Solução: module exercicio1 (output reg [6:0]z, input [3:0] x); begin if (x > 4) z = x*x; else z = 2*x; end endmodule

11 VERILOG HDL Simulação:

12 VERILOG HDL Simulação: 12.8 ns (tap) tap -> tempo de atraso de propagação

13 VERILOG HDL Simulação: 21.0ns (tap) tap -> tempo de atraso de propagação


Carregar ppt "Instruções de Laço Repeat While For O laço Repeat não é usado para síntese de circuitos O laço While é usado para síntese de circuitos sequenciais O laço."

Apresentações semelhantes


Anúncios Google