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

📄 bootrom.v

📁 Verilog, c and asm source codes of the Minimig system, a fpga implementation of the Amiga computer.
💻 V
📖 第 1 页 / 共 3 页
字号:
// Copyright 2006, 2007 Dennis van Weeren//// This file is part of Minimig//// Minimig is free software; you can redistribute it and/or modify// it under the terms of the GNU General Public License as published by// the Free Software Foundation; either version 3 of the License, or// (at your option) any later version.//// Minimig is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the// GNU General Public License for more details.//// You should have received a copy of the GNU General Public License// along with this program.  If not, see <http://www.gnu.org/licenses/>.//////// This is the Minimig boot rom// The bootrom contains code for early startup of the Minimig.// The bootrom will download the kickstart rom image trough the floppy // interface to the kickstart ram area. //// 11-04-2005	-removed rd signal because it is no longer necessary// 19-04-2005	-expanded to 2Kbyte address space// 21-12-2005	-added rd input// 27-11-2006	-rom now implemented using blockram//JB:// 2008-05-14	-Verilog 2001 style module definition// 2008-05-14	-new bootloader module bootrom(	input 	clk,					//bus clock	input 	aen,    				//rom enable	input	rd,						//bus read	input 	[10:1]address,		//address in	output 	reg [15:0]dataout		//data out);reg	 	[10:1]romaddress;reg		[15:0]romdata;//use clocked address to infer blockramalways @(negedge clk)	romaddress[10:1]<=address[10:1];//the rom itself//FPGA core version is stored in words 4-7 as 8 ASCII characters // bytes:// 0-1: vendor id (YQ for JB :-)// 2-3: year// 4-5: month// 6-7: day//if all goes well this rom will be implemented using blockramalways @(romaddress)begin	case(romaddress)		0000:	romdata[15:0] = 16'h0001;		0001:	romdata[15:0] = 16'h0000;		0002:	romdata[15:0] = 16'h0000;		0003:	romdata[15:0] = 16'h0010;//		0004:	romdata[15:0] = 16'h5951;//vendor//		0005:	romdata[15:0] = 16'h3038;//year//		0006:	romdata[15:0] = 16'h3037;//month//		0007:	romdata[15:0] = 16'h3239;//day				0004:	romdata[15:0] = 16'h4141;//vendor		0005:	romdata[15:0] = 16'h3030;//year		0006:	romdata[15:0] = 16'h3030;//month		0007:	romdata[15:0] = 16'h3030;//day		0008:	romdata[15:0] = 16'h4DF9;		0009:	romdata[15:0] = 16'h00DF;		0010:	romdata[15:0] = 16'hF000;		0011:	romdata[15:0] = 16'h6100;		0012:	romdata[15:0] = 16'h031C;		0013:	romdata[15:0] = 16'h3D7C;		0014:	romdata[15:0] = 16'h9000;		0015:	romdata[15:0] = 16'h0100;		0016:	romdata[15:0] = 16'h3D7C;		0017:	romdata[15:0] = 16'h0000;		0018:	romdata[15:0] = 16'h0102;		0019:	romdata[15:0] = 16'h3D7C;		0020:	romdata[15:0] = 16'h0000;		0021:	romdata[15:0] = 16'h0104;		0022:	romdata[15:0] = 16'h3D7C;		0023:	romdata[15:0] = 16'h0000;		0024:	romdata[15:0] = 16'h0108;		0025:	romdata[15:0] = 16'h3D7C;		0026:	romdata[15:0] = 16'h0000;		0027:	romdata[15:0] = 16'h010A;		0028:	romdata[15:0] = 16'h3D7C;		0029:	romdata[15:0] = 16'h003C;		0030:	romdata[15:0] = 16'h0092;		0031:	romdata[15:0] = 16'h3D7C;		0032:	romdata[15:0] = 16'h00D4;		0033:	romdata[15:0] = 16'h0094;		0034:	romdata[15:0] = 16'h3D7C;		0035:	romdata[15:0] = 16'h2C81;		0036:	romdata[15:0] = 16'h008E;		0037:	romdata[15:0] = 16'h3D7C;		0038:	romdata[15:0] = 16'hF4C1;		0039:	romdata[15:0] = 16'h0090;		0040:	romdata[15:0] = 16'h3D7C;		0041:	romdata[15:0] = 16'h037F;	//background colour		0042:	romdata[15:0] = 16'h0180;		0043:	romdata[15:0] = 16'h3D7C;		0044:	romdata[15:0] = 16'h0FFF;	//text colour		0045:	romdata[15:0] = 16'h0182;		0046:	romdata[15:0] = 16'h41F9;		0047:	romdata[15:0] = 16'h0000;		0048:	romdata[15:0] = 16'h034E;		0049:	romdata[15:0] = 16'h43F9;		0050:	romdata[15:0] = 16'h0000;		0051:	romdata[15:0] = 16'hC100;		0052:	romdata[15:0] = 16'h7002;		0053:	romdata[15:0] = 16'h22D8;		0054:	romdata[15:0] = 16'h51C8;		0055:	romdata[15:0] = 16'hFFFC;		0056:	romdata[15:0] = 16'h2D7C;		0057:	romdata[15:0] = 16'h0000;		0058:	romdata[15:0] = 16'hC100;		0059:	romdata[15:0] = 16'h0080;		0060:	romdata[15:0] = 16'h3D40;		0061:	romdata[15:0] = 16'h0088;		0062:	romdata[15:0] = 16'h3D7C;		0063:	romdata[15:0] = 16'h8390;		0064:	romdata[15:0] = 16'h0096;		0065:	romdata[15:0] = 16'h3D7C;		0066:	romdata[15:0] = 16'h7FFF;		0067:	romdata[15:0] = 16'h009E;		0068:	romdata[15:0] = 16'h41F9;		0069:	romdata[15:0] = 16'h0000;		0070:	romdata[15:0] = 16'h035A;		0071:	romdata[15:0] = 16'h6100;		0072:	romdata[15:0] = 16'h027E;		0073:	romdata[15:0] = 16'h41F9;		0074:	romdata[15:0] = 16'h0000;		0075:	romdata[15:0] = 16'h03AA;		0076:	romdata[15:0] = 16'h6100;		0077:	romdata[15:0] = 16'h0274;		0078:	romdata[15:0] = 16'h41F9;		0079:	romdata[15:0] = 16'h0000;		0080:	romdata[15:0] = 16'h03C1;		0081:	romdata[15:0] = 16'h6100;		0082:	romdata[15:0] = 16'h026A;		0083:	romdata[15:0] = 16'h45F9;		0084:	romdata[15:0] = 16'h0000;		0085:	romdata[15:0] = 16'h0008;		0086:	romdata[15:0] = 16'h7E07;		0087:	romdata[15:0] = 16'h101A;		0088:	romdata[15:0] = 16'h6100;		0089:	romdata[15:0] = 16'h0208;		0090:	romdata[15:0] = 16'h51CF;		0091:	romdata[15:0] = 16'hFFF8;		0092:	romdata[15:0] = 16'h41F9;		0093:	romdata[15:0] = 16'h0000;		0094:	romdata[15:0] = 16'h03CE;		0095:	romdata[15:0] = 16'h6100;		0096:	romdata[15:0] = 16'h024E;		0097:	romdata[15:0] = 16'h302E;		0098:	romdata[15:0] = 16'h0004;		0099:	romdata[15:0] = 16'hE048;		0100:	romdata[15:0] = 16'h0200;		0101:	romdata[15:0] = 16'h007F;		0102:	romdata[15:0] = 16'h6100;		0103:	romdata[15:0] = 16'h01CE;		0104:	romdata[15:0] = 16'h41F9;		0105:	romdata[15:0] = 16'h0000;		0106:	romdata[15:0] = 16'h03DC;		0107:	romdata[15:0] = 16'h0801;		0108:	romdata[15:0] = 16'h0004;		0109:	romdata[15:0] = 16'h6700;		0110:	romdata[15:0] = 16'h0008;		0111:	romdata[15:0] = 16'h41F9;		0112:	romdata[15:0] = 16'h0000;		0113:	romdata[15:0] = 16'h03E3;		0114:	romdata[15:0] = 16'h6100;		0115:	romdata[15:0] = 16'h0228;		0116:	romdata[15:0] = 16'h41F9;		0117:	romdata[15:0] = 16'h0000;		0118:	romdata[15:0] = 16'h03EB;		0119:	romdata[15:0] = 16'h6100;		0120:	romdata[15:0] = 16'h021E;		0121:	romdata[15:0] = 16'h302E;		0122:	romdata[15:0] = 16'h007C;		0123:	romdata[15:0] = 16'h6100;		0124:	romdata[15:0] = 16'h01A4;		0125:	romdata[15:0] = 16'h700A;		0126:	romdata[15:0] = 16'h6100;		0127:	romdata[15:0] = 16'h01BC;		0128:	romdata[15:0] = 16'h700A;		0129:	romdata[15:0] = 16'h6100;		0130:	romdata[15:0] = 16'h01B6;		0131:	romdata[15:0] = 16'h13FC;		0132:	romdata[15:0] = 16'h0003;		0133:	romdata[15:0] = 16'h00BF;		0134:	romdata[15:0] = 16'hE201;		0135:	romdata[15:0] = 16'h13FC;		0136:	romdata[15:0] = 16'h0000;		0137:	romdata[15:0] = 16'h00BF;		0138:	romdata[15:0] = 16'hE001;		0139:	romdata[15:0] = 16'h13FC;		0140:	romdata[15:0] = 16'h00FF;		0141:	romdata[15:0] = 16'h00BF;		0142:	romdata[15:0] = 16'hD300;		0143:	romdata[15:0] = 16'h13FC;		0144:	romdata[15:0] = 16'h00F7;		0145:	romdata[15:0] = 16'h00BF;		0146:	romdata[15:0] = 16'hD100;		0147:	romdata[15:0] = 16'h0839;		0148:	romdata[15:0] = 16'h0002;		0149:	romdata[15:0] = 16'h00BF;		0150:	romdata[15:0] = 16'hE001;		0151:	romdata[15:0] = 16'h6700;		0152:	romdata[15:0] = 16'hFFF6;		0153:	romdata[15:0] = 16'h303C;		0154:	romdata[15:0] = 16'h000C;		0155:	romdata[15:0] = 16'h6100;		0156:	romdata[15:0] = 16'h0124;		0157:	romdata[15:0] = 16'h207C;		0158:	romdata[15:0] = 16'h0000;		0159:	romdata[15:0] = 16'h4000;		0160:	romdata[15:0] = 16'h0C58;		0161:	romdata[15:0] = 16'hAA55;		0162:	romdata[15:0] = 16'h6600;		0163:	romdata[15:0] = 16'h00FE;		0164:	romdata[15:0] = 16'h3018;		0165:	romdata[15:0] = 16'h0C40;		0166:	romdata[15:0] = 16'h0001;		0167:	romdata[15:0] = 16'h6600;		0168:	romdata[15:0] = 16'h001C;		0169:	romdata[15:0] = 16'h2018;		0170:	romdata[15:0] = 16'h6100;		0171:	romdata[15:0] = 16'h0106;		0172:	romdata[15:0] = 16'h41F9;		0173:	romdata[15:0] = 16'h0000;		0174:	romdata[15:0] = 16'h4000;		0175:	romdata[15:0] = 16'h6100;		0176:	romdata[15:0] = 16'h01AE;		0177:	romdata[15:0] = 16'h700A;		0178:	romdata[15:0] = 16'h6100;		0179:	romdata[15:0] = 16'h0154;		0180:	romdata[15:0] = 16'h6000;		0181:	romdata[15:0] = 16'h00EE;		0182:	romdata[15:0] = 16'h0C40;		0183:	romdata[15:0] = 16'h0002;		0184:	romdata[15:0] = 16'h6600;		0185:	romdata[15:0] = 16'h009E;		0186:	romdata[15:0] = 16'h2858;		0187:	romdata[15:0] = 16'h2A4C;		0188:	romdata[15:0] = 16'h2818;		0189:	romdata[15:0] = 16'h2A04;		0190:	romdata[15:0] = 16'h41F9;		0191:	romdata[15:0] = 16'h0000;		0192:	romdata[15:0] = 16'h03F9;		0193:	romdata[15:0] = 16'h6100;		0194:	romdata[15:0] = 16'h018A;		0195:	romdata[15:0] = 16'h200C;		0196:	romdata[15:0] = 16'h6100;		0197:	romdata[15:0] = 16'h00FE;		0198:	romdata[15:0] = 16'h41F9;		0199:	romdata[15:0] = 16'h0000;		0200:	romdata[15:0] = 16'h0408;		0201:	romdata[15:0] = 16'h6100;		0202:	romdata[15:0] = 16'h017A;		0203:	romdata[15:0] = 16'h2004;		0204:	romdata[15:0] = 16'h6100;		0205:	romdata[15:0] = 16'h00EE;		0206:	romdata[15:0] = 16'h700A;		0207:	romdata[15:0] = 16'h6100;		0208:	romdata[15:0] = 16'h011A;		0209:	romdata[15:0] = 16'h41F9;		0210:	romdata[15:0] = 16'h0000;		0211:	romdata[15:0] = 16'h0412;		0212:	romdata[15:0] = 16'h6100;		0213:	romdata[15:0] = 16'h0164;		0214:	romdata[15:0] = 16'h0442;		0215:	romdata[15:0] = 16'h0021;		0216:	romdata[15:0] = 16'h96FC;		0217:	romdata[15:0] = 16'h0021;		0218:	romdata[15:0] = 16'h2C05;		0219:	romdata[15:0] = 16'hEA8E;		0220:	romdata[15:0] = 16'hBC84;		0221:	romdata[15:0] = 16'h6D00;		0222:	romdata[15:0] = 16'h0004;		0223:	romdata[15:0] = 16'h2C04;		0224:	romdata[15:0] = 16'h3006;		0225:	romdata[15:0] = 16'h6100;		0226:	romdata[15:0] = 16'h0098;		0227:	romdata[15:0] = 16'h3006;		0228:	romdata[15:0] = 16'hE448;		0229:	romdata[15:0] = 16'h5340;		0230:	romdata[15:0] = 16'h28D8;		0231:	romdata[15:0] = 16'h51C8;		0232:	romdata[15:0] = 16'hFFFC;		0233:	romdata[15:0] = 16'h707F;		0234:	romdata[15:0] = 16'h6100;		0235:	romdata[15:0] = 16'h00E4;		0236:	romdata[15:0] = 16'h0879;		0237:	romdata[15:0] = 16'h0001;		0238:	romdata[15:0] = 16'h00BF;		0239:	romdata[15:0] = 16'hE001;		0240:	romdata[15:0] = 16'h9886;		0241:	romdata[15:0] = 16'h6E00;		0242:	romdata[15:0] = 16'hFFD0;		0243:	romdata[15:0] = 16'hBBFC;		0244:	romdata[15:0] = 16'h00F8;		0245:	romdata[15:0] = 16'h0000;		0246:	romdata[15:0] = 16'h6600;		0247:	romdata[15:0] = 16'h0018;		0248:	romdata[15:0] = 16'h0C85;		0249:	romdata[15:0] = 16'h0004;		0250:	romdata[15:0] = 16'h0000;		0251:	romdata[15:0] = 16'h6600;		0252:	romdata[15:0] = 16'h000E;		0253:	romdata[15:0] = 16'h284D;		0254:	romdata[15:0] = 16'hD9C5;		0255:	romdata[15:0] = 16'h7AFF;		0256:	romdata[15:0] = 16'h28DD;		0257:	romdata[15:0] = 16'h51CD;		0258:	romdata[15:0] = 16'hFFFC;		0259:	romdata[15:0] = 16'h700A;		0260:	romdata[15:0] = 16'h6100;		0261:	romdata[15:0] = 16'h00B0;		0262:	romdata[15:0] = 16'h6000;		0263:	romdata[15:0] = 16'h004A;		0264:	romdata[15:0] = 16'h0C40;		0265:	romdata[15:0] = 16'h0003;		0266:	romdata[15:0] = 16'h6600;		0267:	romdata[15:0] = 16'h0012;		0268:	romdata[15:0] = 16'h08F9;		0269:	romdata[15:0] = 16'h0001;		0270:	romdata[15:0] = 16'h00BF;		0271:	romdata[15:0] = 16'hE001;		0272:	romdata[15:0] = 16'h4A39;		0273:	romdata[15:0] = 16'h00BF;		0274:	romdata[15:0] = 16'hC000;		0275:	romdata[15:0] = 16'h60FE;		0276:	romdata[15:0] = 16'h3E00;		0277:	romdata[15:0] = 16'h3D7C;		0278:	romdata[15:0] = 16'h0F00;		0279:	romdata[15:0] = 16'h0180;		0280:	romdata[15:0] = 16'h41F9;		0281:	romdata[15:0] = 16'h0000;		0282:	romdata[15:0] = 16'h0451;		0283:	romdata[15:0] = 16'h6100;		0284:	romdata[15:0] = 16'h00D6;		0285:	romdata[15:0] = 16'h3007;		0286:	romdata[15:0] = 16'h6100;		0287:	romdata[15:0] = 16'h0054;		0288:	romdata[15:0] = 16'h6000;		0289:	romdata[15:0] = 16'hFFFE;		0290:	romdata[15:0] = 16'h3D7C;		0291:	romdata[15:0] = 16'h0F00;		0292:	romdata[15:0] = 16'h0180;		0293:	romdata[15:0] = 16'h41F9;		0294:	romdata[15:0] = 16'h0000;		0295:	romdata[15:0] = 16'h0435;		0296:	romdata[15:0] = 16'h6100;		0297:	romdata[15:0] = 16'h00BC;		0298:	romdata[15:0] = 16'h6000;		0299:	romdata[15:0] = 16'hFFEA;		0300:	romdata[15:0] = 16'h6000;		0301:	romdata[15:0] = 16'hFED8;		0302:	romdata[15:0] = 16'h3D7C;

⌨️ 快捷键说明

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