blob: c60527b57269dd614c7de3086b6ae0166eed2f10 [file] [log] [blame] [edit]
// Simple adder/subtractor module
module ADD_SUB(
input clk,
input [7:0] a0,
input [7:0] b0,
// if this is 1, add; else subtract
input doAdd0,
output reg [8:0] result0
);
always @ (posedge clk)
begin
if (doAdd0)
result0 <= a0 + b0;
else
result0 <= a0 - b0;
end
endmodule: ADD_SUB
//---------------------------------------
// Interface for the adder/subtractor DUT
//---------------------------------------
interface add_sub_if(
input bit clk,
input [7:0] a,
input [7:0] b,
input doAdd,
input [8:0] result
);
clocking cb @(posedge clk);
output a;
output b;
output doAdd;
input result;
endclocking // cb
endinterface: add_sub_if
//---------------
// Interface bind
//---------------
bind ADD_SUB add_sub_if add_sub_if0(
.clk(clk),
.a(a0),
.b(b0),
.doAdd(doAdd0),
.result(result0)
);