Line 1... |
Line 1... |
/* $Id: edk62.v,v 1.2 2008-04-27 16:28:19 sybreon Exp $
|
/* $Id: edk62.v,v 1.3 2008-05-01 08:33:20 sybreon Exp $
|
**
|
**
|
** AEMB2 EDK 6.2 COMPATIBLE CORE
|
** AEMB2 EDK 6.2 COMPATIBLE CORE
|
** Copyright (C) 2004-2008 Shawn Tan <shawn.tan@aeste.net>
|
** Copyright (C) 2004-2008 Shawn Tan <shawn.tan@aeste.net>
|
**
|
**
|
** This file is part of AEMB.
|
** This file is part of AEMB.
|
Line 33... |
Line 33... |
localparam AEMB_IDX = 6;
|
localparam AEMB_IDX = 6;
|
localparam AEMB_HTX = 1;
|
localparam AEMB_HTX = 1;
|
localparam AEMB_BSF = 1;
|
localparam AEMB_BSF = 1;
|
localparam AEMB_MUL = 1;
|
localparam AEMB_MUL = 1;
|
localparam AEMB_XSL = 1;
|
localparam AEMB_XSL = 1;
|
|
localparam AEMB_DIV = 0;
|
|
localparam AEMB_FPU = 0;
|
|
|
/*AUTOREGINPUT*/
|
/*AUTOREGINPUT*/
|
// Beginning of automatic reg inputs (for undeclared instantiated-module inputs)
|
// Beginning of automatic reg inputs (for undeclared instantiated-module inputs)
|
reg dwb_ack_i; // To uut of aeMB2_edk62.v
|
reg dwb_ack_i; // To uut of aeMB2_edk62.v
|
reg iwb_ack_i; // To uut of aeMB2_edk62.v
|
reg iwb_ack_i; // To uut of aeMB2_edk62.v
|
reg sys_clk_i; // To uut of aeMB2_edk62.v
|
reg sys_clk_i; // To uut of aeMB2_edk62.v
|
reg sys_ena_i; // To uut of aeMB2_edk62.v
|
reg sys_ena_i; // To uut of aeMB2_edk62.v
|
|
reg sys_int_i; // To uut of aeMB2_edk62.v
|
reg sys_rst_i; // To uut of aeMB2_edk62.v
|
reg sys_rst_i; // To uut of aeMB2_edk62.v
|
reg xwb_ack_i; // To uut of aeMB2_edk62.v
|
reg xwb_ack_i; // To uut of aeMB2_edk62.v
|
// End of automatics
|
// End of automatics
|
|
|
always #5 sys_clk_i <= !sys_clk_i;
|
always #5 sys_clk_i <= !sys_clk_i;
|
Line 55... |
Line 58... |
`endif
|
`endif
|
|
|
sys_clk_i = 0;
|
sys_clk_i = 0;
|
sys_rst_i = 1;
|
sys_rst_i = 1;
|
sys_ena_i = 1;
|
sys_ena_i = 1;
|
|
sys_int_i = 1;
|
|
|
xwb_ack_i = 0;
|
xwb_ack_i = 0;
|
|
|
#50 sys_rst_i = 0;
|
#50 sys_rst_i = 0;
|
#4000000 $displayh("\n*** TIMEOUT ", $stime, " ***"); $finish;
|
#4000000 $displayh("\n*** TIMEOUT ", $stime, " ***"); $finish;
|
|
|
Line 75... |
Line 80... |
wire dwb_wre_o; // From uut of aeMB2_edk62.v
|
wire dwb_wre_o; // From uut of aeMB2_edk62.v
|
wire [AEMB_IWB-1:2] iwb_adr_o; // From uut of aeMB2_edk62.v
|
wire [AEMB_IWB-1:2] iwb_adr_o; // From uut of aeMB2_edk62.v
|
wire iwb_cyc_o; // From uut of aeMB2_edk62.v
|
wire iwb_cyc_o; // From uut of aeMB2_edk62.v
|
wire [3:0] iwb_sel_o; // From uut of aeMB2_edk62.v
|
wire [3:0] iwb_sel_o; // From uut of aeMB2_edk62.v
|
wire iwb_stb_o; // From uut of aeMB2_edk62.v
|
wire iwb_stb_o; // From uut of aeMB2_edk62.v
|
|
wire iwb_tag_o; // From uut of aeMB2_edk62.v
|
wire iwb_wre_o; // From uut of aeMB2_edk62.v
|
wire iwb_wre_o; // From uut of aeMB2_edk62.v
|
wire [AEMB_XWB-1:2] xwb_adr_o; // From uut of aeMB2_edk62.v
|
wire [AEMB_XWB-1:2] xwb_adr_o; // From uut of aeMB2_edk62.v
|
wire xwb_cyc_o; // From uut of aeMB2_edk62.v
|
wire xwb_cyc_o; // From uut of aeMB2_edk62.v
|
wire [31:0] xwb_dat_o; // From uut of aeMB2_edk62.v
|
wire [31:0] xwb_dat_o; // From uut of aeMB2_edk62.v
|
wire [3:0] xwb_sel_o; // From uut of aeMB2_edk62.v
|
wire [3:0] xwb_sel_o; // From uut of aeMB2_edk62.v
|
Line 125... |
Line 131... |
// SPECIAL PORTS
|
// SPECIAL PORTS
|
if (dwb_wre_o & dwb_stb_o & dwb_ack_i) begin
|
if (dwb_wre_o & dwb_stb_o & dwb_ack_i) begin
|
case ({dwb_adr_o,2'o0})
|
case ({dwb_adr_o,2'o0})
|
32'hFFFFFFD0: $displayh(dwb_dat_o);
|
32'hFFFFFFD0: $displayh(dwb_dat_o);
|
32'hFFFFFFC0: $write("%c",dwb_dat_o[31:24]);
|
32'hFFFFFFC0: $write("%c",dwb_dat_o[31:24]);
|
|
32'hFFFFFFE0: sys_int_i <= #1 !sys_int_i;
|
endcase // case ({dwb_adr_o,2'o0})
|
endcase // case ({dwb_adr_o,2'o0})
|
|
|
case (dwb_sel_o)
|
case (dwb_sel_o)
|
4'h1: ram[dwb_adr_o] <= {dwb_dat_t[31:8], dwb_dat_o[7:0]};
|
4'h1: ram[dwb_adr_o] <= {dwb_dat_t[31:8], dwb_dat_o[7:0]};
|
4'h2: ram[dwb_adr_o] <= {dwb_dat_t[31:16], dwb_dat_o[15:8], dwb_dat_t[7:0]};
|
4'h2: ram[dwb_adr_o] <= {dwb_dat_t[31:16], dwb_dat_o[15:8], dwb_dat_t[7:0]};
|
Line 211... |
Line 218... |
.AEMB_XWB (AEMB_XWB),
|
.AEMB_XWB (AEMB_XWB),
|
.AEMB_ICH (AEMB_ICH),
|
.AEMB_ICH (AEMB_ICH),
|
.AEMB_IDX (AEMB_IDX),
|
.AEMB_IDX (AEMB_IDX),
|
.AEMB_BSF (AEMB_BSF),
|
.AEMB_BSF (AEMB_BSF),
|
.AEMB_MUL (AEMB_MUL),
|
.AEMB_MUL (AEMB_MUL),
|
.AEMB_XSL (AEMB_XSL),
|
.AEMB_DIV (AEMB_DIV),
|
.AEMB_HTX (AEMB_HTX))
|
.AEMB_FPU (AEMB_FPU))
|
uut
|
uut
|
(/*AUTOINST*/
|
(/*AUTOINST*/
|
// Outputs
|
// Outputs
|
.dwb_adr_o (dwb_adr_o[AEMB_DWB-1:2]),
|
.dwb_adr_o (dwb_adr_o[AEMB_DWB-1:2]),
|
.dwb_cyc_o (dwb_cyc_o),
|
.dwb_cyc_o (dwb_cyc_o),
|
Line 227... |
Line 234... |
.dwb_wre_o (dwb_wre_o),
|
.dwb_wre_o (dwb_wre_o),
|
.iwb_adr_o (iwb_adr_o[AEMB_IWB-1:2]),
|
.iwb_adr_o (iwb_adr_o[AEMB_IWB-1:2]),
|
.iwb_cyc_o (iwb_cyc_o),
|
.iwb_cyc_o (iwb_cyc_o),
|
.iwb_sel_o (iwb_sel_o[3:0]),
|
.iwb_sel_o (iwb_sel_o[3:0]),
|
.iwb_stb_o (iwb_stb_o),
|
.iwb_stb_o (iwb_stb_o),
|
|
.iwb_tag_o (iwb_tag_o),
|
.iwb_wre_o (iwb_wre_o),
|
.iwb_wre_o (iwb_wre_o),
|
.xwb_adr_o (xwb_adr_o[AEMB_XWB-1:2]),
|
.xwb_adr_o (xwb_adr_o[AEMB_XWB-1:2]),
|
.xwb_cyc_o (xwb_cyc_o),
|
.xwb_cyc_o (xwb_cyc_o),
|
.xwb_dat_o (xwb_dat_o[31:0]),
|
.xwb_dat_o (xwb_dat_o[31:0]),
|
.xwb_sel_o (xwb_sel_o[3:0]),
|
.xwb_sel_o (xwb_sel_o[3:0]),
|
Line 242... |
Line 250... |
.dwb_dat_i (dwb_dat_i[31:0]),
|
.dwb_dat_i (dwb_dat_i[31:0]),
|
.iwb_ack_i (iwb_ack_i),
|
.iwb_ack_i (iwb_ack_i),
|
.iwb_dat_i (iwb_dat_i[31:0]),
|
.iwb_dat_i (iwb_dat_i[31:0]),
|
.sys_clk_i (sys_clk_i),
|
.sys_clk_i (sys_clk_i),
|
.sys_ena_i (sys_ena_i),
|
.sys_ena_i (sys_ena_i),
|
|
.sys_int_i (sys_int_i),
|
.sys_rst_i (sys_rst_i),
|
.sys_rst_i (sys_rst_i),
|
.xwb_ack_i (xwb_ack_i),
|
.xwb_ack_i (xwb_ack_i),
|
.xwb_dat_i (xwb_dat_i[31:0]));
|
.xwb_dat_i (xwb_dat_i[31:0]));
|
|
|
endmodule // edk62
|
endmodule // edk62
|
|
|
// $Log: not supported by cvs2svn $
|
// $Log: not supported by cvs2svn $
|
|
// Revision 1.2 2008/04/27 16:28:19 sybreon
|
|
// Fixed minor typos.
|
|
//
|
// Revision 1.1 2008/04/26 18:09:16 sybreon
|
// Revision 1.1 2008/04/26 18:09:16 sybreon
|
// initial import
|
// initial import
|
//
|
//
|
|
|
// Local Variables:
|
// Local Variables:
|