⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 a86_defines.v

📁 使用CPLD仿真8088核,内有源程序和说明
💻 V
字号:
// http://gforge.openchip.org/projects/a86

// defines.v


`ifdef	a86_define_once

`else

`define	a86_define_once


`define a86_d_romfetch #0
`define a86_d_ip_update #5



// Vendor Technology

`define	a86_vendor_generic
//`define	a86_vendor_xilinx


// a86 Bus



// Address width (16, 10, 8)
`define	a86_io_awidth	16
// Data width (16, 8)
`define	a86_io_dwidth	16
// how many devices on IO bus
`define	a86_io_num_devices 3








// r/m constantns

`define	rm_bx_si_disp	3'b000
`define	rm_bx_di_disp	3'b001
`define	rm_bp_si_disp	3'b010
`define	rm_bp_di_disp	3'b011
`define	rm_si_disp	3'b100
`define	rm_di_disp	3'b101
`define	rm_bp_disp	3'b110
`define	rm_bx_disp	3'b111

// Processor Status Flags

`define	psf_cf	4'b0000   
`define	psf_pf	4'b0010
`define	psf_af	4'b0100
`define	psf_zf	4'b0110
`define	psf_sf	4'b0111
`define	psf_tf	4'b1000
`define	psf_if	4'b1001
`define	psf_df	4'b1010
`define	psf_of	4'b1011


// Condition Code select
`define	cc_sel_zero	5'b00000
`define	cc_sel_cx_zero	5'b10000


`define shift_op_rol 4'b0000
`define shift_op_ror 4'b0001


// ALU ops


`define	alu_op_add  	8'b00000000   // add, adc, inc
`define	alu_op_sub  	8'b00000010   // sub, sbc, dec


`define	alu_op_and  	8'b00000100   // 
`define	alu_op_or   	8'b00000101   // 
`define	alu_op_xor  	8'b00000110   // 


`define	alu_op_mul  	8'b00001110   // 


// IDecoder

`define	a86_icode_width 192      // width of icode bus

// bit positions
`define	icode_seg_override  	1 // Segment override prefix is active
`define	icode_rep_prefix 2

`define	icode_lock_prefix 3

//`define	a86_icode_ 4

`define	icode_aluop_adsu 5      // ADD or SUB (ADC, SBB, INC, DEC)
`define	icode_aluop_add 6       // ADD or INC
`define	icode_aluop_incdec 7    // INC or DEC
`define	icode_aluop_inc 8       // 
`define	icode_aluop_dec 9       // 

//`define	a86_icode_rm_start 8    // 7/m
//`define	a86_icode_rm_size 3

`define	a86_icode_mode_start 11    // mode bits
`define	a86_icode_mode_size 2


// write enables for register block
`define	a86_icode_we_reg   13  // enable write to register ax,bx,cx,dx
`define	a86_icode_we_sp    14  // write Stack pointer
`define	a86_icode_we_bp    15
//`define	a86_icode_wr_ip    16
`define	a86_icode_we_index  17
`define	a86_icode_we_segment 18

`define	a86_icode_ip_wr 19    // direct write to IP
`define	a86_icode_ip_inc 20   // Increment
`define	a86_icode_jr 21       // relative jump

`define	a86_icode_1_byte_instr 22       // one byte instruction
`define	a86_icode_2_byte_instr 23       // two byte instruction
`define	a86_icode_3_byte_instr 24       // 3 byte instruction
`define	a86_icode_4_byte_instr 25       // 4 byte instruction
`define	a86_icode_5_byte_instr 26       // 5 byte instruction

//
`define	a86_icode_instr_size 27         // instruction size (3 bits)


`define	a86_icode_inout  30             // in out 1110 x1xxx
`define	a86_icode_in  31                // 
`define	a86_icode_out  32               // 


//
`define	a86_icode_alu_adsu  33         // 
`define	a86_icode_alu_adsu_add  34     // 
`define	a86_icode_incdec  35           // 

`define	a86_icode_alu_and  37             // 
`define	a86_icode_alu_or  38              // 
`define	a86_icode_alu_xor  39             // 

`define	a86_icode_alu_sela 40             // 
`define	a86_icode_alu_selb 41             // 


//`define a86_icode_wr_ax_bx_cx_dx 43
`define a86_icode_sel_ax_bx_cx_dx 44  

`define a86_icode_wr_ax 45
`define a86_icode_wr_bx 46
`define a86_icode_wr_cx 47
`define a86_icode_wr_dx 48

`define a86_icode_sel_ax 49
`define a86_icode_sel_bx 50
`define a86_icode_sel_cx 51
`define a86_icode_sel_dx 52


`define a86_icode_alub_immed 53
`define a86_icode_alub_immed_3b 54

`define a86_icode_dec_cx 55

`define a86_icode_sahf 56




`define a86_icode_iobus_we 61  
`define a86_icode_iobus_ce 62  


`define	a86_icode_i_start 64         

// aux field
`define	a86_icode_i_aux_start 64+8+3         







//`define	icode_

`endif















⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -