source: cegar_dev/cegar/abstract_model/machine_concret.v @ 49

Last change on this file since 49 was 4, checked in by syed, 14 years ago

input files added

File size: 827 bytes
Line 
1typedef enum {S0, S1, S2, S3} MState;
2
3module machine_concret (clk, i1, o1, o2, r_i1);
4
5input clk;
6input i1;
7output o1;
8output o2;
9output r_i1;
10
11MState reg m_state;
12reg o1;
13reg o2;
14reg r_i1;
15
16initial 
17   begin
18        m_state = S0;
19        o1 = 0; 
20        o2 = 0; 
21       r_i1 = i1;
22   end 
23
24always @ (posedge clk) begin
25
26 r_i1 = i1;
27 case (m_state)
28   S0:
29      if (i1==1)
30        begin
31                m_state = S1;
32                o1 = 1;
33                o2 = 0;
34        end
35     else 
36        begin
37                o1 = 0;
38                o2 = 0;
39                m_state = S0;
40        end
41
42    S1:
43       begin
44                m_state = S2;
45                o1 = 0;
46                o2 = 1;
47       end
48
49    S2:
50       begin
51                m_state = S3;
52                o1 = 1;
53                o2 = 1;
54        end
55
56    S3:
57        begin
58                o1 = 1;
59                o2 = 1;
60                m_state = S3;
61        end
62
63  endcase
64
65end 
66 
67endmodule
Note: See TracBrowser for help on using the repository browser.