All pastes #454613 Raw Edit

Exiles

public text v1 · immutable
·published 2007-04-23 18:36 UTC
rendered paste body
module alu_design(a,b,cin,s,y,cout);
	input [3:0] a,b;
	input [2:0] s;
	input cin;
	output [3:0] y;
	output cout;
	reg [3:0] y;
	reg cout;
	always @ (a or b or cin or s);
		begin
			if (s == 0)			// Transfer A
				{cout,y} <= a;		// Y <= A
			else if (s == 1)		// Decrement A
				{cout,y} <= (a-1);	// Y <= A – 1
			else if (s == 2)		// Increment A
				{cout,y} <= (a+1);	// Y <= A + 1
			else if (s == 3)		// Complement A
				{cout,y} <= (~a);	// Y <= Abar
			else if (s == 4)		// Logical AND
				{cout,y} <= (a&b);	// Y <= A and B
			else if (s == 5)		// Logical XOR
				{cout,y} <= (a^b);	// Y <= A xor B
			else if (s == 6)		// Add with Carry
				{cout,y} <= (a+b+cin);	// Y <= A + B + Cin
			else				// Subtraction
				{cout,y} <= (a+(~b)+1);	// Y <= A + Bbar + 1
		end
endmodule