aboutsummaryrefslogtreecommitdiff
path: root/task4/scorehand.sv
blob: a6c40d6abc55207ca4dc53438a8d90a96d56e85a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
module scorehand(card1, card2, card3, total);
	input logic [3:0] card1, card2, card3;
	output logic [3:0] total;

	logic [3:0] value1, value2, value3;
	logic [4:0] sum;

	always_comb begin
		/* 10 and face cards have a value of zero. */
		if (card1 >= 10) value1 = 0;
		else value1 = card1;
		if (card2 >= 10) value2 = 0;
		else value2 = card2;
		if (card3 >= 10) value3 = 0;
		else value3 = card3;

		/* Perform a modulo 10 operation on the total. */
		sum = value1 + value2 + value3;
		if (sum >= 20)
			total = sum - 5'd20;
		else if (sum >= 10)
			total = sum - 5'd10;
		else
			total = sum;
	end
endmodule: scorehand