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

Subversion Repositories aemb

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /
    from Rev 30 to Rev 31
    Reverse comparison

Rev 30 → Rev 31

/trunk/rtl/verilog/aeMB_regfile.v
1,5 → 1,5
/*
* $Id: aeMB_regfile.v,v 1.14 2007-04-27 15:15:49 sybreon Exp $
* $Id: aeMB_regfile.v,v 1.15 2007-04-30 15:56:50 sybreon Exp $
*
* AEMB Register File
* Copyright (C) 2004-2007 Shawn Tan Ser Ngiap <shawn.tan@aeste.net>
27,6 → 27,9
*
* HISTORY
* $Log: not supported by cvs2svn $
* Revision 1.14 2007/04/27 15:15:49 sybreon
* Fixed simulation bug.
*
* Revision 1.13 2007/04/27 04:22:40 sybreon
* Fixed minor synthesis bug.
*
140,8 → 143,8
wire [31:0] wDWBDAT;
reg [31:0] sDWBDAT;
reg [31:0] rDWBDAT;
assign dwb_dat_o = {rDWBDAT[7:0],rDWBDAT[15:8],rDWBDAT[23:16],rDWBDAT[31:24]};
assign wDWBDAT = {dwb_dat_i[7:0],dwb_dat_i[15:8],dwb_dat_i[23:16],dwb_dat_i[31:24]};
assign dwb_dat_o = rDWBDAT;
assign wDWBDAT = dwb_dat_i;
 
/**
RAM Based Register File
/trunk/rtl/verilog/aeMB_aslu.v
1,5 → 1,5
/*
* $Id: aeMB_aslu.v,v 1.7 2007-04-27 00:23:55 sybreon Exp $
* $Id: aeMB_aslu.v,v 1.8 2007-04-30 15:56:50 sybreon Exp $
*
* AEMB Arithmetic Shift Logic Unit
* Copyright (C) 2004-2007 Shawn Tan Ser Ngiap <shawn.tan@aeste.net>
25,6 → 25,10
*
* HISTORY
* $Log: not supported by cvs2svn $
* Revision 1.7 2007/04/27 00:23:55 sybreon
* Added code documentation.
* Improved size & speed of rtl/verilog/aeMB_aslu.v
*
* Revision 1.6 2007/04/26 14:29:53 sybreon
* Made minor performance optimisations.
*
57,7 → 61,6
 
output [DSIZ-1:0] dwb_adr_o;
output [3:0] dwb_sel_o;
//input [31:0] dwb_dat_i;
output [31:0] rRESULT;
output [3:0] rDWBSEL;
209,7 → 212,7
 
reg [3:0] rDWBSEL, xDWBSEL;
assign dwb_adr_o = {rRESULT[DSIZ-1:2],2'b00};
assign dwb_sel_o = {rDWBSEL[0],rDWBSEL[1],rDWBSEL[2],rDWBSEL[3]};
assign dwb_sel_o = rDWBSEL;
 
always @(/*AUTOSENSE*/rOPC or wADD)
case (wADD[1:0])
/trunk/sim/verilog/testbench.v
1,5 → 1,5
/*
* $Id: testbench.v,v 1.3 2007-04-27 15:18:43 sybreon Exp $
* $Id: testbench.v,v 1.4 2007-04-30 15:56:50 sybreon Exp $
*
* AEMB Generic Testbench
* Copyright (C) 2004-2007 Shawn Tan Ser Ngiap <shawn.tan@aeste.net>
24,6 → 24,9
*
* HISTORY
* $Log: not supported by cvs2svn $
* Revision 1.3 2007/04/27 15:18:43 sybreon
* Minor updates as sw/c/aeMB_testbench.c got updated.
*
* Revision 1.2 2007/04/25 22:15:05 sybreon
* Added support for 8-bit and 16-bit data types.
*
44,8 → 47,8
always #5 sys_clk_i = ~sys_clk_i;
 
initial begin
$dumpfile("dump.vcd");
$dumpvars(1,dut);
//$dumpfile("dump.vcd");
//$dumpvars(1,dut);
end
initial begin
82,9 → 85,9
wire [DSIZ-1:0] dwb_adr_o;
wire [31:0] dwb_dat_t;
assign dwb_dat_i = ram[dadr];
assign iwb_dat_i = ram[iadr];
assign dwb_dat_t = ram[dwb_adr_o[DSIZ-1:2]];
assign {dwb_dat_i[7:0],dwb_dat_i[15:8],dwb_dat_i[23:16],dwb_dat_i[31:24]} = ram[dadr];
assign {iwb_dat_i[7:0],iwb_dat_i[15:8],iwb_dat_i[23:16],iwb_dat_i[31:24]} = ram[iadr];
assign {dwb_dat_t} = ram[dwb_adr_o[DSIZ-1:2]];
always @(posedge sys_clk_i) begin
iwb_ack_i <= #1 iwb_stb_o;
94,13 → 97,13
if (dwb_we_o & dwb_stb_o) begin
case (dwb_sel_o)
4'h1: ram[dwb_adr_o[DSIZ-1:2]] <= {dwb_dat_t[31:8],dwb_dat_o[7:0]};
4'h2: ram[dwb_adr_o[DSIZ-1:2]] <= {dwb_dat_t[31:16],dwb_dat_o[15:8],dwb_dat_t[7:0]};
4'h4: ram[dwb_adr_o[DSIZ-1:2]] <= {dwb_dat_t[31:24],dwb_dat_o[23:16],dwb_dat_t[15:0]};
4'h8: ram[dwb_adr_o[DSIZ-1:2]] <= {dwb_dat_o[31:24],dwb_dat_t[23:0]};
4'h3: ram[dwb_adr_o[DSIZ-1:2]] <= {dwb_dat_t[31:16],dwb_dat_o[15:0]};
4'hC: ram[dwb_adr_o[DSIZ-1:2]] <= {dwb_dat_o[31:16],dwb_dat_t[15:0]};
4'hF: ram[dwb_adr_o[DSIZ-1:2]] <= {dwb_dat_o[31:0]};
4'h1: ram[dwb_adr_o[DSIZ-1:2]] <= {dwb_dat_o[7:0],dwb_dat_t[23:0]};
4'h2: ram[dwb_adr_o[DSIZ-1:2]] <= {dwb_dat_t[31:24],dwb_dat_o[15:8],dwb_dat_t[15:0]};
4'h4: ram[dwb_adr_o[DSIZ-1:2]] <= {dwb_dat_t[31:16],dwb_dat_o[23:16],dwb_dat_t[7:0]};
4'h8: ram[dwb_adr_o[DSIZ-1:2]] <= {dwb_dat_t[31:8],dwb_dat_o[31:24]};
4'h3: ram[dwb_adr_o[DSIZ-1:2]] <= {dwb_dat_o[7:0],dwb_dat_o[15:8],dwb_dat_t[15:0]};
4'hC: ram[dwb_adr_o[DSIZ-1:2]] <= {dwb_dat_t[31:16],dwb_dat_o[23:16],dwb_dat_o[31:24]};
4'hF: ram[dwb_adr_o[DSIZ-1:2]] <= {dwb_dat_o[7:0],dwb_dat_o[15:8],dwb_dat_o[23:16],dwb_dat_o[31:24]};
endcase // case (dwb_sel_o)
end
end
108,7 → 111,7
integer i;
initial begin
for (i=0;i<65535;i=i+1) begin
ram[i] <= 32'h0;
ram[i] <= $random;
end
#1 $readmemh("aeMB.rom",ram);
end
139,7 → 142,7
if (dwb_we_o & (dwb_dat_o == "PASS")) begin
$display("\tPASS");
end
if (iwb_dat_i == 32'h000000b8) begin
if (iwb_dat_i == 32'hb8000000) begin
$display("\n\t*** PASSED ALL TESTS ***");
$finish;
end
/trunk/sw/c/aeMB_testbench.c
1,5 → 1,5
/*
* $Id: aeMB_testbench.c,v 1.5 2007-04-27 15:17:59 sybreon Exp $
* $Id: aeMB_testbench.c,v 1.6 2007-04-30 15:57:10 sybreon Exp $
*
* AEMB Function Verification C Testbench
* Copyright (C) 2004-2007 Shawn Tan Ser Ngiap <shawn.tan@aeste.net>
25,6 → 25,10
*
* HISTORY
* $Log: not supported by cvs2svn $
* Revision 1.5 2007/04/27 15:17:59 sybreon
* Added code documentation.
* Added new tests that test floating point, modulo arithmetic and multiplication/division.
*
* Revision 1.4 2007/04/25 22:15:05 sybreon
* Added support for 8-bit and 16-bit data types.
*
250,16 → 254,16
int* mpi = (int*)0xFFFFFFFF;
 
// Number of each test to run
int max = 5;
int max = 3;
 
// Fibonacci Test
if (fib_test(max) == -1) { *mpi = 0x4C494146; }
if (fib_test(max) == -1) { *mpi = 0x4641494C; }
 
// Euclid Test
if (euclid_test(max) == -1) { *mpi = 0x4C494146; }
if (euclid_test(max) == -1) { *mpi = 0x4641494C; }
 
// Newton-Rhapson Test
if (newton_test(max) == -1) { *mpi = 0x4C494146; }
if (newton_test(max) == -1) { *mpi = 0x4641494C; }
// ALL PASSED
return 0;

powered by: WebSVN 2.1.0

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