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

📄 a86_reg_block.v

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

`include "timescale.v"
`include "a86_defines.v"

module a86_reg_block(
rst,clk,icode
,din,

ip,ip_next,
stall_ip,
take_jmp,

sp,bp
,si,di
,cs,ds,ss,es
,ax,bx,cx,dx
,cx_zero

);

input rst;
input clk;
input [`a86_icode_width-1:0] icode;

input [31:0] din;

wire rst;
wire clk;

output [15:0] ip;
wire [15:0] ip;

output [15:0] ip_next;
wire [15:0] ip_next;

input take_jmp;
input stall_ip;

wire take_jmp; 
wire stall_ip;

output [15:0] sp;
wire [15:0] sp;

output [15:0] bp;
wire [15:0] bp;

output [15:0] si;
wire [15:0] si;

output [15:0] di;
wire [15:0] di;

output [15:0] cs;
wire [15:0] cs;
output [15:0] ds;
wire [15:0] ds;
output [15:0] ss;
wire [15:0] ss;
output [15:0] es;
wire [15:0] es;

output [15:0] ax;
wire [15:0] ax;
output [15:0] bx;
wire [15:0] bx;
output [15:0] cx;
wire [15:0] cx;
output [15:0] dx;
wire [15:0] dx;


output cx_zero;
wire cx_zero;

wire take_jmp_local;


a86_ip a86_ip_0 (
    .rst( rst ),     
    .clk( clk ), 
    .take_jmp( take_jmp_local ),
    .stall_ip( stall_ip ),
    .din( din[15:0] ), 
    .ip( ip ), 
    .ip_next( ip_next ), 
    .icode( icode ) 
    );


a86_sp a86_sp_0 (
    .rst( rst ),             
    .clk( clk ), 
    .we( 1'b0 ), 
    .din( din[15:0] ), 
    .sp( sp ), 
    .spop( icode[3:0] ), 
    .en( icode[11] )
    );


a86_bp_reg a86_bp_reg_0 (
    .rst( rst ),             
    .clk( clk ), 
    .we( 1'b0 ), 
    .din( din[15:0] ), 
    .bp( bp )
    );


a86_index_regs a86_index_regs_0 (
    .rst( rst ),             
    .clk( clk ), 
    .we( 1'b0 ), 
    .sel( 3'b000 ), 
    .din( din[15:0] ), 
    .si( si ), 
    .di( di )
    );


a86_seg_regs a86_seg_regs_0 (
    .rst( rst ),         
    .clk( clk ), 
    .we( 1'b0 ), 
    .din( din[15:0] ), 
    .sel( 2'b00 ), 
    .cs( cs ), 
    .ds( ds ), 
    .ss( ss ), 
    .es( es )
    );

a86_regs a86_regs_0 (
    .rst( rst ),     
    .clk( clk ), 
    .icode( icode ), 
    .we( 1'b0 ), 
    .we_hi(  ), 
    .sel( 2'b10 ), 
    .din( din[15:0] ), 
    .din_hi( din[31:16] ), 
    .ax( ax ), 
    .dx( dx ), 
    .cx( cx ), 
    .bx( bx ), 
    .cx_zero( cx_zero )
    );

a86_cond_sel a86_cond_sel_0(
    .icode(icode),
    .sel( ),
    .fin( ),
    .cin( ),
    .cx_zero( cx_zero ),
    .cout( take_jmp_local )
    );








endmodule

⌨️ 快捷键说明

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