Documente Academic
Documente Profesional
Documente Cultură
input internal_clk,
input clk,
input [7:0] number,
input [3:0] btn,
output [7:0] out,
output reg [3:0] Q = 4'b0001,
output reg [6:0] seg, seg1, seg2, seg3);
wire
reg
reg
wire
[3:0]
[7:0]
[7:0]
[1:0]
=
=
=
=
=
=
=
=
=
=
=
=
stack[1]*stack[0];
stack[2];
stack[3];
0; end
stack[1]+stack[0];
stack[2];
stack[3];
0; end
stack[1]-stack[0];
stack[2];
stack[3];
0; end
stack[3]
stack[2]
stack[1]
stack[0]
<=
<=
<=
<=
stack[2];
stack[1];
stack[0];
number; end
stack[0]
stack[1]
stack[2]
stack[3]
<=
<=
<=
<=
stack[1];
stack[2];
stack[3];
0; end
stack[0]
stack[1]
stack[2]
stack[3]
<=
<=
<=
<=
0;
0;
0;
0; end
endcase
always @(out) if ( out[7] == 0 ) y = out; else y = -out;
assign out1 = y % (4'd10);
assign out2 = (y/10) % (4'd10);
assign out3 = y/100;
/*7SEGMENTS*/
_7segDisplay digit1( out1 , seg1 );
_7segDisplay digit2( out2 , seg2 );
_7segDisplay digit3( out3 , seg3 );
always @(posedge internal_clk) begin
Q = { Q[2:0] , Q[3] } ;
case (Q)
4'b0001: seg = seg1;
4'b0010: seg = seg2;
4'b0100: seg = seg3;
4'b1000: if (out[7]) seg=7'b0000001; else seg=7'b0000000
;
endcase
end
endmodule
module _7segDisplay(
input [3:0] number,
output reg [6:0] seg); /* seg = {a,b,c,d,e,f,g} */
always @(number)
case (number)
4'd0 :
4'd1 :
4'd2 :
4'd3 :
4'd4 :
4'd5 :
4'd6 :
4'd7 :
4'd8 :
4'd9 :
default
endcase
endmodule
seg
seg
seg
seg
seg
seg
seg
seg
seg
seg
seg
=
=
=
=
=
=
=
=
=
=
=
7'b1111110;
7'b0110000;
7'b1101101;
7'b1111001;
7'b0110011;
7'b1011011;
7'b1011111;
7'b1110000;
7'b1111111;
7'b1111011;
7'b0000000;
/*
NET "internal_clk" LOC = "P55";
NET "clk" LOC = "P94";
NET
NET
NET
NET
NET
NET
NET
NET
"number[0]"
"number[1]"
"number[2]"
"number[3]"
"number[4]"
"number[5]"
"number[6]"
"number[7]"
NET
NET
NET
NET
"btn[0]"
"btn[1]"
"btn[2]"
"btn[3]"
LOC
LOC
LOC
LOC
LOC
LOC
LOC
LOC
LOC
LOC
LOC
LOC
=
=
=
=
=
=
=
=
=
=
=
=
"P97";
"P98";
"P99";
"P100";
"P101";
"P102";
"P104";
"P105";
"P87";
"P88";
"P92";
"P93";
NET
NET
NET
NET
"seg[3]"
"seg[4]"
"seg[5]"
"seg[6]"
NET
NET
NET
NET
*/
"Q[0]"
"Q[1]"
"Q[2]"
"Q[3]"
LOC
LOC
LOC
LOC
LOC
LOC
LOC
LOC
=
=
=
=
=
=
=
=
"P121";
"P112";
"P114";
"P111";
"P120";
"P119";
"P115";
"P124";