Professional Documents
Culture Documents
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 19:18:40 04/05/2017
// Design Name:
// Module Name: alwas
// Project Name:
// Target Devices:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module alwas(clk_out, disp, bt1, bt2, bt3, bt4, an0,an1,an2,an3,
cg,cf,ce,cd,cc,cb,ca
);
input clk_out; //clocku pe care merge, deja modificat yeeee
input [7:0] disp; //inputul primit din switch-uri
input bt1, bt2, bt3, bt4; //butoanieeee
output reg an0,an1,an2,an3, cg,cf,ce,cd,cc,cb,ca; //anoade catoade
reg [6:0] first, second, third, fourth; // reprezentarea cifrelor in format
reg [7:0] num1, num2; // stocam inputurile pentru cele 2 numere
reg [1:0] pos; // iterator pe anoade
reg [8:0] sum; // stocam suma, un bit in plus in caz de carry la suma
reg [7:0] ones, complement; //ones-plin de 1uri, complement e... complement
you nailed it
reg carry; // carry pentru o alta metoda la zcb
//zcb
else if (bt3) begin // la butonul 3 ar trebui sa se faca suma ZCB
/*sum[8:0] = num1[7:0] + num2[7:0];
{carry,sum[0]} = num1[0] + num2[0];
{carry,sum[1]} = num1[1] + num2[1] + carry;
{carry,sum[2]} = num1[2] + num2[2] + carry;
{carry,sum[3]} = num1[3] + num2[3] + carry;
if (sum[3:0] >= 4'b1010) begin
sum[3:0] = sum[3:0] + 4'b0110;
end
{carry,sum[4]} = num1[4] + num2[4] + carry;
{carry,sum[5]} = num1[5] + num2[5] + carry;
{carry,sum[6]} = num1[6] + num2[6] + carry;
{carry,sum[7]} = num1[7] + num2[7] + carry;
if (sum[7:4] > 4'b1010) begin
sum[7:4] = sum[7:4] + 4'b0110 + carry;
end
sum[8] = carry;*/
pos = pos+1;
case(pos)
2'b00:
begin
an0 = 0;
an1 = 1;
an2 = 1;
an3 = 1;
case(sum[3:0])
1 : {cg,cf,ce,cd,cc,cb,ca} = 7'b1111001;
2 : {cg,cf,ce,cd,cc,cb,ca} = 7'b0100100;
3 : {cg,cf,ce,cd,cc,cb,ca} = 7'b0110000;
4 : {cg,cf,ce,cd,cc,cb,ca} = 7'b0011001;
5 : {cg,cf,ce,cd,cc,cb,ca} = 7'b0010010;
6 : {cg,cf,ce,cd,cc,cb,ca} = 7'b0000010;
7 : {cg,cf,ce,cd,cc,cb,ca} = 7'b1111000;
8 : {cg,cf,ce,cd,cc,cb,ca} = 7'b0000000;
4'b1001 : {cg,cf,ce,cd,cc,cb,ca} =
7'b0010000; // 9
default : {cg,cf,ce,cd,cc,cb,ca} =
7'b1000000;
endcase
end
2'b01:
begin
an0 = 1;
an1 = 0;
an2 = 1;
an3 = 1;
case(sum[7:4])
1 : {cg,cf,ce,cd,cc,cb,ca} = 7'b1111001;
2 : {cg,cf,ce,cd,cc,cb,ca} = 7'b0100100;
3 : {cg,cf,ce,cd,cc,cb,ca} = 7'b0110000;
4 : {cg,cf,ce,cd,cc,cb,ca} = 7'b0011001;
5 : {cg,cf,ce,cd,cc,cb,ca} = 7'b0010010;
6 : {cg,cf,ce,cd,cc,cb,ca} = 7'b0000010;
7 : {cg,cf,ce,cd,cc,cb,ca} = 7'b1111000;
8 : {cg,cf,ce,cd,cc,cb,ca} = 7'b0000000;
4'b1001 : {cg,cf,ce,cd,cc,cb,ca} =
7'b0010000; // 9
default : {cg,cf,ce,cd,cc,cb,ca} =
7'b1000000;
endcase
end
2'b10:
begin
an0 = 1;
an1 = 1;
an2 = 1;
an3 = 0;
ca = 1;
cb = 1;
cc = 1;
cd = 1;
ce = 1;
cf = 1;
cg = 1;
end
2'b11:
begin
an0 = 1;
an1 = 1;
an2 = 1;
an3 = 0;
ca = 1;
cb = 1;
cc = 1;
cd = 1;
ce = 1;
cf = 1;
cg = 1;
end
endcase
end
else begin
pos = pos+1;
case(pos)
2'b00:
begin
an0 = 0;
an1 = 1;
an2 = 1;
an3 = 1;
ca = 1;
cb = 1;
cc = 1;
cd = 1;
ce = 1;
cf = 1;
cg = 1;
end
2'b01:
begin
an0 = 1;
an1 = 0;
an2 = 1;
an3 = 1;
ca = 1;
cb = 1;
cc = 1;
cd = 1;
ce = 1;
cf = 1;
cg = 1;
end
2'b10:
begin
an0 = 1;
an1 = 1;
an2 = 0;
an3 = 1;
ca = 1;
cb = 1;
cc = 1;
cd = 1;
ce = 1;
cf = 1;
cg = 1;
end
2'b11:
begin
an0 = 1;
an1 = 1;
an2 = 1;
an3 = 0;
ca = 1;
cb = 1;
cc = 1;
cd = 1;
ce = 1;
cf = 1;
cg = 1;
end
endcase
end
end
endmodule