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

Subversion Repositories ao486

[/] [ao486/] [trunk/] [rtl/] [ao486/] [commands/] [CMD_NOT.txt] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 alfik
 
2
3
`define CMD_NOT         #AUTOGEN_NEXT_CMD
4
5
 
6
7
dec_ready_modregrm_one && { decoder[7:1], 1'b0 } == 8'hF6 && decoder[13:11] == 3'd2
8
prefix_group_1_lock && `DEC_MODREGRM_IS_MOD_11
9
`CMD_NOT
10
IF(decoder[0] == 1'b0); SET(dec_is_8bit); ENDIF();
11
SET(consume_modregrm_one);
12
13
 
14
15
IF(rd_cmd == `CMD_NOT);
16
 
17
    // dst: reg, src: reg
18
    IF(rd_modregrm_mod == 2'b11);
19
 
20
        // reg, reg
21
        SET(rd_dst_is_rm);
22
 
23
        SET(rd_req_rm);
24
 
25
        IF(rd_mutex_busy_modregrm_rm); SET(rd_waiting); ENDIF();
26
    ENDIF();
27
 
28
    // dst: memory, src: reg
29
    IF(rd_modregrm_mod != 2'b11);
30
 
31
        SET(rd_dst_is_memory);
32
 
33
        SET(rd_req_memory);
34
 
35
        IF(rd_mutex_busy_memory); SET(rd_waiting);
36
        ELSE();
37
            SET(read_rmw_virtual);
38
 
39
            IF(~(read_for_rd_ready)); SET(rd_waiting); ENDIF();
40
        ENDIF();
41
    ENDIF();
42
ENDIF();
43
44
 
45
46
IF(exe_cmd == `CMD_NOT);
47
 
48
    SET(exe_result, exe_arith_not);
49
 
50
ENDIF();
51
52
 
53
54
IF(wr_cmd == `CMD_NOT);
55
 
56
    IF(wr_dst_is_memory && ~(write_for_wr_ready)); SET(wr_waiting); ENDIF();
57
 
58
    SET(write_rmw_virtual,   wr_dst_is_memory);
59
    SET(write_regrm,         wr_dst_is_rm);
60
ENDIF();
61

powered by: WebSVN 2.1.0

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