OpenCores
URL https://opencores.org/ocsvn/t6507lp/t6507lp/trunk

Subversion Repositories t6507lp

[/] [t6507lp/] [trunk/] [fv/] [fsm_bfm.e] - Diff between revs 206 and 212

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 206 Rev 212
<'
<'
import fsm_components.e;
import fsm_components.e;
 
 
unit fsm_bfm_u {
unit fsm_bfm_u {
        reset_n    : out simple_port of bit;
        reset_n    : out simple_port of bit;
        alu_result : out simple_port of byte;
        alu_result : out simple_port of byte;
        alu_status : out simple_port of byte;
        alu_status : out simple_port of byte;
        data_in    : out simple_port of byte;
        data_in    : out simple_port of byte;
        alu_x      : out simple_port of byte;
        alu_x      : out simple_port of byte;
        alu_y      : out simple_port of byte;
        alu_y      : out simple_port of byte;
 
 
        reset_needed : bool;
        reset_needed : bool;
        keep reset_needed == TRUE;
        keep reset_needed == TRUE;
 
 
        event done;
        event done;
        event main_clk;
        event main_clk;
 
 
        mem : list of valid_opcodes;
        mem : list of valid_opcodes;
        keep mem.size() == 8192;
        keep mem.size() == 8192;
 
 
        !i : uint(bits:13);
        !i : uint(bits:13);
        keep i == 0;
        keep i == 0;
 
 
        on main_clk {
        on main_clk {
                var data : fsm_input_s;
                var data : fsm_input_s;
 
                var last_X : byte;
 
                var last_Y : byte;
                gen data;
                gen data;
 
 
                --print mem[i];
                --print mem[i];
                --keep data.data_in == mem[i].as_a(byte);
                --keep data.data_in == mem[i].as_a(byte);
                while (reset_needed) {
                while (reset_needed) {
                        gen data;
                        gen data;
 
 
                        if (data.reset_n == 0) {
                        if (data.reset_n == 0) {
                                reset_needed = FALSE;
                                reset_needed = FALSE;
                        };
                        };
                };
                };
 
 
        --      if (data.test_kind == REGULAR) {
        --      if (data.test_kind == REGULAR) {
        --              emit data.T1_cover_event;
        --              emit data.T1_cover_event;
        --              alu_opcode$ = data.alu_opcode.as_a(byte);
        --              alu_opcode$ = data.alu_opcode.as_a(byte);
        --      }
        --      }
        --      else {
        --      else {
        --              emit data.T2_cover_event;
        --              emit data.T2_cover_event;
        --              alu_opcode$ = data.rand_op;
        --              alu_opcode$ = data.rand_op;
        --      };
        --      };
 
 
                reset_n$    = data.reset_n;
                reset_n$    = data.reset_n;
                alu_result$ = data.alu_result;
                alu_result$ = data.alu_result;
                alu_status$ = data.alu_status;
                alu_status$ = data.alu_status;
                --data_in$    = data.data_in;
                --data_in$    = data.data_in;
                data_in$    = mem[i].as_a(byte);
                data_in$    = mem[i].as_a(byte);
                data.data_in = mem[i].as_a(byte);
                data.data_in = mem[i].as_a(byte);
                --data_in$    = 8'hF8;
                --data_in$    = 8'hF8;
 
                --print me.agent.chk.old_state;
 
                --if (me.agent.chk.old_state == CYCLE_1) {
 
                --      last_X = data.alu_x;
 
                --      last_Y = data.alu_y;
 
                --};
 
                --alu_x$      = last_X;
 
                --alu_y$      = last_Y;
                alu_x$      = data.alu_x;
                alu_x$      = data.alu_x;
                alu_y$      = data.alu_y;
                alu_y$ = data.alu_y;
 
 
                if (data.reset_n == 1) {
                if (data.reset_n == 1) {
                        i = i + 1;
                        i = i + 1;
                }
                }
                else {
                else {
                        i = 0;
                        i = 0;
                };
                };
 
 
                agent.chk.store(data);
                agent.chk.store(data);
                emit done;
                emit done;
        };
        };
};
};
'>
'>
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.