View difference between Paste ID: h72Rp13Z and muZFTPia
SHOW: | | - or go back to the newest paste.
1
`timescale 1ns / 1ps
2
//////////////////////////////////////////////////////////////////////////////////
3
// Company: 
4
// Engineer: 
5
// 
6
// Create Date:    22:50:18 01/24/2013 
7
// Design Name: 
8
// Module Name:    Lab3_1 
9
// Project Name: 
10
// Target Devices: 
11
// Tool versions: 
12
// Description: 
13
//
14
// Dependencies: 
15
//
16
// Revision: 
17
// Revision 0.01 - File Created
18
// Additional Comments: 
19
//
20
//////////////////////////////////////////////////////////////////////////////////
21
module Lab3_1(
22
    input clock,
23
         output en_1,
24
         output en_2,
25
         output en_3,
26
         output en_4,
27
    output a,
28
    output b,
29
    output c,
30
    output d,
31
    output e,
32
    output f,
33
    output g
34
    );
35
         
36
         parameter MSB=24;
37
         
38
         reg[MSB:0] count;
39
         reg[MSB:0] count2;
40
         reg[2:0] count3=3;        
41
 
42
         reg[1:0] pos;
43
         
44
         reg[3:0] pstate;
45
         reg[6:0] loop;
46
         
47
         /*reg[6:0] id;
48
         id[7] = 5;
49
         id[6] = 4;
50
         id[5] = 3;
51
         id[4] = 0;
52
         id[3] = 4;
53
         id[2] = 7;
54
         id[1] = 4;
55
         id[0] = 5;*/
56
         
57
         reg[3:0] number;
58
         
59
         reg[3:0] en = 4'b1111;
60
         
61
         assign en_1 = en[0];
62
         assign en_2 = en[1];
63
         assign en_3 = en[2];
64
         assign en_4 = en[3];
65
         
66
         segment num(number,a,b,c,d,e,f,g);
67
         
68
         always@(posedge clock)
69
         begin
70
         if(count<=134217)
71
                count <= count + 1;
72
         else
73
                count <= 1;
74
         end
75
         
76
         always@(posedge clock)
77
         begin
78
         if(count2<33554432)
79
                count2 <= count2 + 1;
80
         else begin
81
                count2 <= 1;
82
                count3 <= count3+1;
83
         end
84
         end
85
         
86
         always@(posedge clock)
87
         begin
88
                if(loop == 99)
89
                        loop <= 0;
90
                else
91
                        loop <= loop + 1;
92
         end
93
         
94
         //เลข
95
         always@(posedge clock)
96
         begin
97
                if(count == 1)
98
                        begin
99
                                if(pstate == count3) begin
100
                                        pstate <= count3-3;
101
                                end
102
                                else
103
                                        pstate <= pstate + 1;
104
                        end
105
		if(count2 == 1)
106
			begin
107-
				pstate<=pstate-3;
107+
				pstate<=pstate-2;
108
			end
109
         end
110
         
111
         //ตำแหน่ง
112
         always@(posedge clock)
113
         begin
114
                if(count == 1)
115
                        pos <= pos + 1;
116
         end
117
         
118
         always@(*)
119
         begin
120
                case(pos)
121
                        0       :       begin
122
                                                en = 4'b0111;
123
                                        end
124
                        1       :       begin
125
                                                en = 4'b1011;
126
                                        end
127
                        2       :       begin
128
                                                en = 4'b1101;
129
                                        end
130
                        3       :       begin
131
                                                en = 4'b1110;
132
                                        end
133
                endcase
134
         end
135
         
136
         always@(*)
137
         begin
138
                number = 0;
139
               
140
                case(pstate)
141
                        0       :       begin
142
                                                number = 5;
143
                                        end
144
                        1       :       begin
145
                                                number = 4;
146
                                        end
147
                        2       :       begin
148
                                                number = 3;
149
                                        end
150
                        3       :       begin
151
                                                number = 0;
152
                                        end
153
                        4       :       begin
154
                                                number = 4;
155
                                        end
156
                        5       :       begin
157
                                                number = 7;
158
                                        end
159
                        6       :       begin
160
                                                number = 4;
161
                                        end
162
                        7       :       begin
163
                                                number = 5;
164
                                        end
165
                endcase
166
        end
167
endmodule