DW8051源码分析(1)——DW8051_package.inc

基米 标签: DW8051, 源码分析

这个文件被DW8051_core.v所调用

`include "./DW8051/DW8051_package.inc"

主要内容是一些宏定义:

1、SFR address的定义

2、指令周期cycle defition

3、ALU中各种运算的定义

代码如下:

//-----------------------------------------------------------------
// Global constants:
//-----------------------------------------------------------------
// special SFR addresses:
`define p0_addr      8'b10000000 // 80h
`define sp_addr      8'b10000001 // 81h
`define dpl_addr     8'b10000010 // 82h
`define dph_addr     8'b10000011 // 83h
`define dpl1_addr    8'b10000100 // 84h,new
`define dph1_addr    8'b10000101 // 85h,new
`define dps_addr     8'b10000110 // 86h,new
`define pcon_addr    8'b10000111 // 87h
`define tcon_addr    8'b10001000 // 88h
`define tmod_addr    8'b10001001 // 89h
`define tl0_addr     8'b10001010 // 8Ah
`define tl1_addr     8'b10001011 // 8Bh
`define th0_addr     8'b10001100 // 8Ch
`define th1_addr     8'b10001101 // 8Dh
`define ckcon_addr   8'b10001110 // 8Eh,new
`define spc_fnc_addr 8'b10001111 // 8Fh,new
`define p1_addr      8'b10010000 // 90h
`define exif_addr    8'b10010001 // 91h
`define mpage_addr   8'b10010010 // 92h,new
`define scon_addr    8'b10011000 // 98h
`define scon0_addr   152         // 98h
`define sbuf_addr    8'b10011001 // 99h
`define sbuf0_addr   8'b10011001 // 99h
`define p2_addr      8'b10100000 // A0h
`define ie_addr      8'b10101000 // A8h
`define p3_addr      8'b10110000 // B0h
`define ip_addr      8'b10111000 // B8h
`define scon1_addr   192         // C0h
`define sbuf1_addr   8'b11000001 // C1h
`define t2con_addr   8'b11001000 // C8h
`define rcap2l_addr  8'b11001010 // CAh
`define rcap2h_addr  8'b11001011 // CBh
`define tl2_addr     8'b11001100 // CCh
`define th2_addr     8'b11001101 // CDh
`define psw_addr     8'b11010000 // D0h
`define eicon_addr   8'b11011000 // D8h
`define acc_addr     8'b11100000 // E0h
`define eie_addr     8'b11101000 // E8h
`define b_addr       8'b11110000 // F0h
`define eip_addr     8'b11111000 // F8h


// cycle definitions:
`define c1 2'b00
`define c2 2'b01
`define c3 2'b10
`define c4 2'b11

`define s1p1 4'b0000
`define s1p2 4'b0001
`define s2p1 4'b0010
`define s2p2 4'b0011
`define s3p1 4'b0100
`define s3p2 4'b0101
`define s4p1 4'b0110
`define s4p2 4'b0111
`define s5p1 4'b1000
`define s5p2 4'b1001
`define s6p1 4'b1010
`define s6p2 4'b1011


// ALU operations:
`define alu_op_trans  6'b000000
`define alu_op_cpl    6'b000010
`define alu_op_da     6'b000100
`define alu_op_swap   6'b000110
`define alu_op_clr    6'b001000
`define alu_op_anl    6'b001010
`define alu_op_orl    6'b001100
`define alu_op_xrl    6'b001110
`define alu_op_inc    6'b010000
`define alu_op_dec    6'b010001
`define alu_op_cmp    6'b010010
`define alu_op_add    6'b010100
`define alu_op_addc   6'b010101
`define alu_op_sub    6'b010110
`define alu_op_subb   6'b010111
`define alu_op_rl     6'b011000
`define alu_op_rlc    6'b011001
`define alu_op_rr     6'b011010
`define alu_op_rrc    6'b011011
`define alu_op_mul    6'b011100
`define alu_op_div    6'b011110
`define alu_op_div_sr 6'b011111
`define alu_op_clrc   6'b100000
`define alu_op_clrb   6'b100001
`define alu_op_setbc  6'b100010
`define alu_op_setbb  6'b100011
`define alu_op_cplc   6'b100100
`define alu_op_cplb   6'b100101
`define alu_op_anlcb  6'b100110
`define alu_op_anlcbn 6'b100111
`define alu_op_orlcb  6'b101000
`define alu_op_orlcbn 6'b101001
`define alu_op_movcb  6'b101010
`define alu_op_movbc  6'b101011

转载于:https://www.cnblogs.com/jimix/archive/2012/11/28/2793546.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值