Subversion Repositories programming

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
207 ira 1
/**
2
 * Copyright 2006, Ira W. Snyder (devel@irasnyder.com)
3
 * License: GNU General Public License v2 (or, at your option, any later
4
 * version)
5
 */
6
 
7
/**
8
 * Name: Ira Snyder
9
 * Class: CS365 - Computer Architecture
10
 * Project #1 - Part 1
11
 * Due: 2006-02-06
12
 */
13
 
14
/**
15
 * File: ALU4_test.v
16
 * Purpose: Test the ALU4 module.
17
 */
18
 
19
module ALU4_test;
20
 
21
    reg[0:3] a, b;
22
    reg[0:1] op;
23
    reg cin;
24
    wire[0:3] result;
25
    wire cout;
26
 
27
    ALU4 alu (a, b, cin, op, cout, result);
28
    initial begin
29
        $monitor ("time=%0d a=%b b=%b op=%b cin=%b cout=%b result=%b",
30
            $time, a, b, op, cin, cout, result);
31
    end
32
 
33
    initial begin
34
           a='b0000; b='b0000; cin=0; op='b00; $display; $display("AND");
35
        #1 a='b0001; b='b0000; cin=0; op='b00;
36
        #1 a='b0101; b='b1010; cin=0; op='b00;
37
        #1 a='b1100; b='b1111; cin=0; op='b00;
38
        #1 a='b1010; b='b1010; cin=0; op='b00;
39
 
40
        #1 a='b0000; b='b0000; cin=0; op='b01; $display; $display ("OR");
41
        #1 a='b0001; b='b0000; cin=0; op='b01;
42
        #1 a='b0101; b='b1010; cin=0; op='b01;
43
        #1 a='b1100; b='b1111; cin=0; op='b01;
44
        #1 a='b1010; b='b1010; cin=0; op='b01;
45
 
46
        #1 a='b0000; b='b0000; cin=0; op='b10; $display; $display ("ADD");
47
        #1 a='b0001; b='b0000; cin=0; op='b10;
48
        #1 a='b0001; b='b0000; cin=1; op='b10;
49
        #1 a='b0001; b='b0001; cin=0; op='b10;
50
        #1 a='b0001; b='b0001; cin=1; op='b10;
51
        #1 a='b0011; b='b1100; cin=0; op='b10;
52
        #1 a='b0011; b='b1100; cin=1; op='b10;
53
 
54
        #1 a='b0000; b='b0000; cin=0; op='b11; $display; $display ("SUB");
55
        #1 a='b0001; b='b0001; cin=0; op='b11;
56
        #1 a='b0001; b='b0001; cin=1; op='b11;
57
        #1 a='b0011; b='b0001; cin=0; op='b11;
58
        #1 a='b0011; b='b0001; cin=1; op='b11;
59
        #1 a='b1001; b='b0001; cin=0; op='b11;
60
        #1 a='b1001; b='b0001; cin=1; op='b11;
61
    end
62
 
63
endmodule
64