Question: Objective To implement a Verilog gate level model for ripple carry adder subtractor. Outcome Gate level implementation for the following components. FULL _ ADDER HALF

Objective
To implement a Verilog gate level model for ripple carry adder subtractor.
Outcome
Gate level implementation for the following components.
FULL_ADDER
HALF_ADDER
RC_ADD_SUB_32
Instruction
Continue with your Modelsim Project03 as in Lab Assignment 01
Complete gate level description of following components
HALF_ADDER module in half_adder.v
FULL_ADDER module in full_adder.v
RC_ADD_SUB_32 module in rc_add_sub_32.v
Compile entire Project03 and simulate following testbenches in ModelSim simulator.
HALF_ADDER_TB
FULL_ADDER_TB
RC_ADD_SUB_32_TB
Observe result on waveform windows and fix any issue.
This will also generate following output files.
OUTPUT/half_adder.out
OUTPUT/full_adder.out
OUTPUT/rc_add_sub_32.out
This should match with given golden file in CS147-Project03/GOLDEN/
half_adder.out.golden
full_adder.out.golden
rc_add_sub_32.out.golden
Add more testing in testbenches to make sure outcome is correct.
// Name: full_adder.v
// Module: FULL_ADDER
//
// Output: S : Sum
// CO : Carry Out
//
// Input: A : Bit 1
// B : Bit 2
// CI : Carry In
//
// Notes: 1-bit full adder implementaiton.
`include "prj_definition.v"
module FULL_ADDER(S,CO,A,B, CI);
output S,CO;
input A,B, CI;
//TBD
Endmodule;
// Name: half_adder.v
// Module: HALF_ADDER
//
// Output: Y : Sum
// C : Carry
//
// Input: A : Bit 1
// B : Bit 2
//
// Notes: 1-bit half adder implementaiton.
//
include "prj_definition.v"
module HALF_ADDER(Y, C,A,B);
output Y,C;
input A,B;
// TBD
Endmodule;
// Name: rc_add_sub_32.v
Module: RC_ADD_SUB_32
// Output: Y : Output 32-bit
// CO : Carry Out
//
//
// Input: A : 32-bit input
// B : 32-bit input
// SnA : if SnA=0 it is add, subtraction otherwise
//
// Notes: 32-bit adder / subtractor implementaiton.
//`include "prj_definition.v"
module RC_ADD_SUB_64(Y, CO, A, B, SnA);
// output list
output [63:0] Y;
output CO;
// input list
input [63:0] A;
input [63:0] B;
input SnA;
// TBD
endmodule
module RC_ADD_SUB_32(Y, CO, A, B, SnA);
// output list
output [`DATA_INDEX_LIMIT:0] Y;
output CO;
// input list
input [`DATA_INDEX_LIMIT:0] A;
input [`DATA_INDEX_LIMIT:0] B;
input SnA;
// TBD
endmodule
Objective To implement a Verilog gate level model

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!