Você está na página 1de 17

ELETRÔNICA DIGITAL

Universidade Federal de Itajubá

Verilog HDL – Operações Aritméticas

Prof. Fadul Ferrari Rodor


Verilog | Operações aritméticas
Notação numérica

tamanho, em bits,
do valor

nº de bits’base ...

b - binária dígitos do
d - decima valor numérico
o - octal 0 a 9, A a F, x, z
h - hexadecimal
EELI14- Eletrônica Digital
Verilog | Operações aritméticas
Notação numérica - Exemplos

EELI14- Eletrônica Digital


Verilog | Operações aritméticas
Operadores aritméticos

Símbolo Operação aritmética Exemplo


+ Adição c+d
- Subtração c–d
* Multiplicação a*b
/ Divisão f/g
** Potência a ** b
% Módulo (resto da divisão) a%b

EELI14- Eletrônica Digital


Verilog | Operações aritméticas
Operadores aritméticos

EELI14- Eletrônica Digital


Verilog | Operações aritméticas
Somador

//somador

module somador (A,B,S,Cs);


input [3:0]A,B; //entradas
output [3:0]S; //saídas
output Cs; //saídas
wire [4:0]Sc;

assign Sc = A+B;
assign S = Sc[3:0];
assign Cs = Sc[4];
endmodule

EELI14- Eletrônica Digital


Verilog | Operações aritméticas
Subtrator

//subtrator

module subtrator (A,B,S,Bs);


input [3:0]A,B; //entradas
output [3:0]S; //saídas
output Bs; //saídas
wire [4:0]Sc;

assign Sc = A-B;
assign S = Sc[3:0];
assign Bs = Sc[4];
endmodule

EELI14- Eletrônica Digital


Verilog | Operações aritméticas
Multiplicador

//multiplicador

module multiplicador (A,B,M);


input [3:0]A,B; //entradas
output [7:0]M; //saídas

assign M = A*B;
endmodule

EELI14- Eletrônica Digital


Verilog | Operações aritméticas
Divisor

//divisor

module divisor (A,B,D);


input [3:0]A,B; //entradas
output [3:0]D; //saídas

assign D = A/B;
endmodule

EELI14- Eletrônica Digital


Verilog | Operações aritméticas
Potenciação

//potenciação

module potencia2 (A,P);


input [1:0]A; //entradas
output [3:0]P; //saídas

assign P = A**2;
endmodule

EELI14- Eletrônica Digital


Verilog | Operações aritméticas
Módulo

//resto da divisão

module modulo(A,B,M);
input [3:0]A,B; //entradas
output [3:0]M; //saídas

assign M = A % B;
endmodule

EELI14- Eletrônica Digital


Verilog | Operações aritméticas
Operadores aritméticos

Símbolo Operação de deslocamento Exemplo


>> Deslocamento à direita a>>b
<< Deslocamento à esquerda a<<c
>>> Deslocamento aritmético à direita b>>>f
<<< Deslocamento aritmético à esquerda c<<<g

EELI14- Eletrônica Digital


Verilog | Operações aritméticas
Exemplo de operação de deslocamento

a = 5'b10100;
b = a <<< 2; //b == 5'b10000
c = a >>> 2; //c == 5'b11101, pois o bit
sinalizador é 1
d = a << 2; //d == 5'b10000
e = a >> 2; //e == 5'b00101

EELI14- Eletrônica Digital


Verilog | Operações aritméticas
Concatenação

• Concatenações são realizadas usando-se chaves na


forma {Opn, …,Op2, Op1}, com vírgulas separando os
operandos. Examplos:
• {a, b[3:0], c, 4'b1001} // Se a e c operandos de 8 bits o resultado
da concatenação tem 24 bits;
• {4'b1001,4'b10x1} = 100110x1

• Constantes sem tamanho não são concatenáveis.

EELI14- Eletrônica Digital


Verilog | Operações aritméticas
Exercício

• Implemente uma unidade de divisão e multiplicação


por 2𝑛 para um operando de 8 bits.

EELI14- Eletrônica Digital


Verilog | Bibliografia

• TOCCI, Ronald J.; WIDMER, Neal S.; MOSS, Gregory L.


Sistemas Digitais: princípios e aplicações. Pearson
Prentice Hall, 10ª ou 11ª Edição, 2011, ISBN:
9788576059226.

• WAKERLY, J. F.; Digital Design, Editora Pearson, 4ª


Edição, 2006, ISBN: 9780131733497.

EELI14- Eletrônica Digital


Verilog | Fim

Obrigado

EELI14- Eletrônica Digital

Você também pode gostar