Line 1... |
Line 1... |
// -*- Mode: Verilog -*-
|
|
// Filename : ae18_core.v
|
|
// Description : PIC18 compatible core.
|
|
// Author : Shawn Tan Ser Ngiap <shawn.tan@aeste.net>
|
|
// Created On : Fri Dec 22 16:09:33 2006
|
|
// Last Modified By: $Author: sybreon $
|
|
// Last Modified On: $Date: 2007-04-03 22:13:25 $
|
|
// Update Count : $Revision: 1.6 $
|
|
// Status : $State: Exp $
|
|
|
|
/*
|
/*
|
* $Id: ae18_core.v,v 1.6 2007-04-03 22:13:25 sybreon Exp $
|
* $Id: ae18_core.v,v 1.7 2007-04-13 22:18:51 sybreon Exp $
|
*
|
*
|
* AE18 8-bit Microprocessor Core
|
* AE18 8-bit Microprocessor Core
|
* Copyright (C) 2006 Shawn Tan Ser Ngiap <shawn.tan@aeste.net>
|
* Copyright (C) 2006 Shawn Tan Ser Ngiap <shawn.tan@aeste.net>
|
*
|
*
|
* This library is free software; you can redistribute it and/or modify it
|
* This library is free software; you can redistribute it and/or modify it
|
* under the terms of the GNU Lesser General Public License as published by
|
* under the terms of the GNU Lesser General Public License as published by
|
* the Free Software Foundation; either version 2.1 of the License,
|
* the Free Software Foundation; either version 2.1 of the License,
|
* or (at your option) any later version.
|
* or (at your option) any later version.
|
*
|
*
|
* This library is distributed in the hope that it will be useful, but
|
* This library is distributed in the hope that it will be useful, but
|
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
* License for more details.
|
* Lesser General Public License for more details.
|
*
|
*
|
* You should have received a copy of the GNU Lesser General Public License
|
* You should have received a copy of the GNU Lesser General Public
|
* along with this library; if not, write to the Free Software Foundation, Inc.,
|
* License along with this library; if not, write to the Free Software
|
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
|
* USA
|
*
|
*
|
* DESCRIPTION
|
* DESCRIPTION
|
* This core provides a PIC18 software compatible core. It does not provide
|
* This core provides a PIC18 software compatible core. It does not provide
|
* any of the additional functionality needed to form a full PIC18 micro-
|
* any of the additional functionality needed to form a full PIC18 micro-
|
* controller system. Additional functionality such as I/O devices would
|
* controller system. Additional functionality such as I/O devices would
|
* need to be integrated with the core. This core provides the necessary
|
* need to be integrated with the core. This core provides the necessary
|
* signals to wire up WISHBONE compatible devices to it.
|
* signals to wire up WISHBONE compatible devices to it.
|
*
|
*
|
* HISTORY
|
* HISTORY
|
* $Log: not supported by cvs2svn $
|
* $Log: not supported by cvs2svn $
|
|
* Revision 1.6 2007/04/03 22:13:25 sybreon
|
|
* Fixed various bugs:
|
|
* - STATUS,C not correct for subtraction instructions
|
|
* - Data memory indirect addressing mode bugs
|
|
* - Other minor fixes
|
|
*
|
* Revision 1.5 2007/03/04 23:26:37 sybreon
|
* Revision 1.5 2007/03/04 23:26:37 sybreon
|
* Rearranged code to make it synthesisable.
|
* Rearranged code to make it synthesisable.
|
*
|
*
|
* Revision 1.4 2006/12/29 18:08:56 sybreon
|
* Revision 1.4 2006/12/29 18:08:56 sybreon
|
* Minor code clean up
|
* Minor code clean up
|
Line 1201... |
Line 1198... |
// STACK
|
// STACK
|
wire [ISIZ-1:0] wSTKW = {rTOSU,rTOSH,rTOSL};
|
wire [ISIZ-1:0] wSTKW = {rTOSU,rTOSH,rTOSL};
|
wire [ISIZ-1:0] wSTKR;
|
wire [ISIZ-1:0] wSTKR;
|
wire wSTKE = (qena[1]);
|
wire wSTKE = (qena[1]);
|
|
|
ae18_aram #(ISIZ,5)
|
reg [ISIZ-1:0] rSTKRAM [0:31];
|
stack (
|
|
.wdat(wSTKW), .rdat(wSTKR),
|
assign wSTKR = rSTKRAM[rSTKPTR[4:0]];
|
.radr(rSTKPTR[4:0]), .wadr(rSTKPTR_[4:0]),
|
always @(posedge clk)
|
.we(wSTKE),
|
if (wSTKE)
|
// Inputs
|
rSTKRAM[rSTKPTR_[4:0]] <= wSTKW;
|
.clk (clk));
|
|
|
|
/*
|
/*
|
* SFR Bank
|
* SFR Bank
|
*/
|
*/
|
parameter [15:0]
|
parameter [15:0]
|