소개글
"베릴로그 계산기 구현"에 대한 내용입니다.
목차
1. Addition (가산기)
1) Source cord (vench)
2) testbench
3) wave & output
2. Subtraction (감산기)
1) Source cord (vench)
2) testbench
3) wave & output
3. Multiplication (곱셈기)
1) Source cord (vench)
2) testbench
3) wave & output
4. Divison (비교기)
1) Source cord (vench)
2) testbench
3) wave & output
5. ALU
1) Source cord (vench)
2) testbench
3) waveforms
본문내용
module add16(a,b,c_in, sum, c_out,overflow); //16bit adder 모듈 선언
input [15:0] a,b;
input c_in;
output [15:0] sum;
output c_out;
output reg overflow; //output이 16비트를 넘어서는 경우에 출력하는 overflow 선언
wire c4,c5,c6 ; // 4bit adder에서 쓰인 wire와 똑같은 역할
add4 u7(a[3:0], b[3:0], c_in, sum[3:0], c4); /16bit를 4bit로 4등분하여 4bit full_adder instance
add4 u8(a[7:4], b[7:4], c4, sum[7:4], c5);
add4 u9(a[11:8], b[11:8], c5, sum[11:8], c6);
add4 u10(a[15:12], b[15:12], c6, sum[15:12], c_out);
always@(*)begin
if(sum<a)
overflow=1;
else
overflow=0; // input이 unsigned이기에 sum이 input보다 작은 경우 sum값이 17비트로 출력됐다는 소리이end 므로 overflow=1이 되고 그 외에는 0을 출력
endmodule
module add4(w,z,c_in, sum, c_out); // 4bit full_adder 모듈 선언
input [3:0] w,z; // 4bit unsigned input 2개 선언
input c_in; //c_in 선언
output [3:0] sum; // 4bit unsigned ouput 선언
output c_out; //c_out 선언
wire c1,c2,c3; //4bit끼리의 계산이기에 1bit full_adder을 이용해서 계산하기 위해 2^0, 2^1, 2^2, 2^3 자리끼리의 연 산에서 나오는 c_out을 상위 비트의 연산의 c_in으로 넣어주기 위한 net 선언
참고 자료
없음