HierarchyFilesModulesSignalsTasksFunctionsHelp

/******************************************************************************/ 
/*                                                                            */ 
/* Copyright (c) 1999 Sun Microsystems, Inc. All rights reserved.             */ 
/*                                                                            */ 
/* The contents of this file are subject to the current version of the Sun    */ 
/* Community Source License, microSPARCII ("the License"). You may not use    */ 
/* this file except in compliance with the License.  You may obtain a copy    */ 
/* of the License by searching for "Sun Community Source License" on the      */ 
/* World Wide Web at http://www.sun.com. See the License for the rights,      */ 
/* obligations, and limitations governing use of the contents of this file.   */ 
/*                                                                            */ 
/* Sun Microsystems, Inc. has intellectual property rights relating to the    */ 
/* technology embodied in these files. In particular, and without limitation, */ 
/* these intellectual property rights may include one or more U.S. patents,   */ 
/* foreign patents, or pending applications.                                  */ 
/*                                                                            */ 
/* Sun, Sun Microsystems, the Sun logo, all Sun-based trademarks and logos,   */ 
/* Solaris, Java and all Java-based trademarks and logos are trademarks or    */ 
/* registered trademarks of Sun Microsystems, Inc. in the United States and   */ 
/* other countries. microSPARC is a trademark or registered trademark of      */ 
/* SPARC International, Inc. All SPARC trademarks are used under license and  */ 
/* are trademarks or registered trademarks of SPARC International, Inc. in    */ 
/* the United States and other countries. Products bearing SPARC trademarks   */ 
/* are based upon an architecture developed by Sun Microsystems, Inc.         */ 
/*                                                                            */ 
/******************************************************************************/ 
/***************************************************************************
****************************************************************************
***
***  Program File:  @(#)fp_rom.v
***
****************************************************************************
****************************************************************************/
// **************************************************************
//  @(#)fp_rom.v	1.7  1/8/93
//
//  High-level verilog model of the fpu 256x64 rom.
// **************************************************************


	// simulates a clocked ROM with an internal address register
[Up: fpufpc fprom]
module fp_rom ( ss_clock, rom_adr, rom_dout,
		rom_scan_out, rom_scan_in, ss_scan_mode);

input ss_clock ;
input rom_scan_in, ss_scan_mode ;
input [7:0] rom_adr ;
output rom_scan_out ;
output [63:0] rom_dout ;



wire [63:0] data ;
wire [7:0] reg_rom_adr ;	// registered version of the address

Mflipflop_noop rmad7(reg_rom_adr[7], rom_adr[7], ss_clock);
Mflipflop_noop rmad6(reg_rom_adr[6], rom_adr[6], ss_clock);
Mflipflop_noop rmad5(reg_rom_adr[5], rom_adr[5], ss_clock);
Mflipflop_noop rmad4(reg_rom_adr[4], rom_adr[4], ss_clock);
Mflipflop_noop rmad3(reg_rom_adr[3], rom_adr[3], ss_clock);
Mflipflop_noop rmad2(reg_rom_adr[2], rom_adr[2], ss_clock);
Mflipflop_noop rmad1(reg_rom_adr[1], rom_adr[1], ss_clock);
Mflipflop_noop rmad0(reg_rom_adr[0], rom_adr[0], ss_clock);

RR256X64 ROM_256x64 ( 
		.DO63(rom_dout[63]), 
		.DO62(rom_dout[62]), 
		.DO61(rom_dout[61]),
		.DO60(rom_dout[60]),
		.DO59(rom_dout[59]), 
		.DO58(rom_dout[58]), 
		.DO57(rom_dout[57]), 
		.DO56(rom_dout[56]), 
		.DO55(rom_dout[55]), 
		.DO54(rom_dout[54]), 
		.DO53(rom_dout[53]), 
		.DO52(rom_dout[52]), 
		.DO51(rom_dout[51]), 
		.DO50(rom_dout[50]), 
		.DO49(rom_dout[49]), 
		.DO48(rom_dout[48]), 
		.DO47(rom_dout[47]), 
		.DO46(rom_dout[46]),
		.DO45(rom_dout[45]), 
		.DO44(rom_dout[44]), 
		.DO43(rom_dout[43]), 
		.DO42(rom_dout[42]), 
		.DO41(rom_dout[41]), 
		.DO40(rom_dout[40]), 
		.DO39(rom_dout[39]), 
		.DO38(rom_dout[38]), 
		.DO37(rom_dout[37]), 
		.DO36(rom_dout[36]), 
		.DO35(rom_dout[35]), 
		.DO34(rom_dout[34]), 
		.DO33(rom_dout[33]), 
		.DO32(rom_dout[32]), 
		.DO31(rom_dout[31]), 
		.DO30(rom_dout[30]), 
		.DO29(rom_dout[29]), 
		.DO28(rom_dout[28]), 
		.DO27(rom_dout[27]), 
		.DO26(rom_dout[26]), 
		.DO25(rom_dout[25]),
		.DO24(rom_dout[24]), 
		.DO23(rom_dout[23]), 
		.DO22(rom_dout[22]), 
		.DO21(rom_dout[21]), 
		.DO20(rom_dout[20]), 
		.DO19(rom_dout[19]), 
		.DO18(rom_dout[18]),
		.DO17(rom_dout[17]), 
		.DO16(rom_dout[16]), 
		.DO15(rom_dout[15]), 
		.DO14(rom_dout[14]), 
		.DO13(rom_dout[13]),
		.DO12(rom_dout[12]), 
		.DO11(rom_dout[11]), 
		.DO10(rom_dout[10]), 
		.DO9(rom_dout[9]), 
		.DO8(rom_dout[8]), 
		.DO7(rom_dout[7]), 
		.DO6(rom_dout[6]), 
		.DO5(rom_dout[5]), 
		.DO4(rom_dout[4]), 
		.DO3(rom_dout[3]), 
		.DO2(rom_dout[2]), 
		.DO1(rom_dout[1]), 
		.DO0(rom_dout[0]),
		.OE(1'b1),
		.ADR7(reg_rom_adr[7]),
		.ADR6(reg_rom_adr[6]),
		.ADR5(reg_rom_adr[5]),
		.ADR4(reg_rom_adr[4]), 
		.ADR3(reg_rom_adr[3]), 
		.ADR2(reg_rom_adr[2]), 
		.ADR1(reg_rom_adr[1]), 
		.ADR0(reg_rom_adr[0])
		);

endmodule

 
[Up: fp_rom ROM_256x64]
module RR256X64 (
	DO63,DO62,DO61,DO60,DO59,DO58,DO57,DO56,
	DO55,DO54,DO53,DO52,DO51,DO50,DO49,DO48,
	DO47,DO46,DO45,DO44,DO43,DO42,DO41,DO40,
	DO39,DO38,DO37,DO36,DO35,DO34,DO33,DO32,
	DO31,DO30,DO29,DO28,DO27,DO26,DO25,DO24,
	DO23,DO22,DO21,DO20,DO19,DO18,DO17,DO16,
	DO15,DO14,DO13,DO12,DO11,DO10,DO9,DO8,
	DO7,DO6,DO5,DO4,DO3,DO2,DO1,DO0,
	OE,
	ADR7,ADR6,ADR5,ADR4,ADR3,ADR2,ADR1,ADR0);

input 	OE,
	ADR7,ADR6,ADR5,ADR4,ADR3,ADR2,ADR1,ADR0;

output 	DO63,DO62,DO61,DO60,DO59,DO58,DO57,DO56,
	DO55,DO54,DO53,DO52,DO51,DO50,DO49,DO48,
	DO47,DO46,DO45,DO44,DO43,DO42,DO41,DO40,
	DO39,DO38,DO37,DO36,DO35,DO34,DO33,DO32,
	DO31,DO30,DO29,DO28,DO27,DO26,DO25,DO24,
	DO23,DO22,DO21,DO20,DO19,DO18,DO17,DO16,
	DO15,DO14,DO13,DO12,DO11,DO10,DO9,DO8,
	DO7,DO6,DO5,DO4,DO3,DO2,DO1,DO0;

wire [7:0] reg_rom_adr = {
	ADR7,ADR6,ADR5,ADR4,ADR3,ADR2,ADR1,ADR0 };
reg [63:0] data;

assign 	{
	DO63,DO62,DO61,DO60,DO59,DO58,DO57,DO56,
	DO55,DO54,DO53,DO52,DO51,DO50,DO49,DO48,
	DO47,DO46,DO45,DO44,DO43,DO42,DO41,DO40,
	DO39,DO38,DO37,DO36,DO35,DO34,DO33,DO32,
	DO31,DO30,DO29,DO28,DO27,DO26,DO25,DO24,
	DO23,DO22,DO21,DO20,DO19,DO18,DO17,DO16,
	DO15,DO14,DO13,DO12,DO11,DO10,DO9,DO8,
	DO7,DO6,DO5,DO4,DO3,DO2,DO1,DO0 } = data[63:0];


  always @(reg_rom_adr) begin
    case (reg_rom_adr)
 	8'd000:  data = 64'h0000000000000000 ;
 	8'd001:  data = 64'h00000011100085c4 ;
 	8'd002:  data = 64'h00000041100085a4 ;
 	8'd003:  data = 64'h0000000000000000 ;
 	8'd004:  data = 64'h03103010c804f865 ;
 	8'd005:  data = 64'h0020800113800000 ;
 	8'd006:  data = 64'h00000000000085ac ;
 	8'd007:  data = 64'h121200000000806c ;
 	8'd008:  data = 64'h041440404800f865 ;
 	8'd009:  data = 64'h0020800113800000 ;
 	8'd010:  data = 64'h05145051c800f865 ;
 	8'd011:  data = 64'h0020800113800000 ;
 	8'd012:  data = 64'h000000100000860c ;
 	8'd013:  data = 64'h121200512000807c ;
 	8'd014:  data = 64'h000000100000860c ;
 	8'd015:  data = 64'h12120000000081dc ;
 	8'd016:  data = 64'h00000000000080a4 ;
 	8'd017:  data = 64'h00000000000087dc ;
 	8'd018:  data = 64'h0000004110000000 ;
 	8'd019:  data = 64'h00000001e8001dac ;
 	8'd020:  data = 64'h002080111000d57f ;
 	8'd021:  data = 64'h0020800123800000 ;
 	8'd022:  data = 64'h001430000000c9cd ;
 	8'd023:  data = 64'h0010300188000000 ;
 	8'd024:  data = 64'h0a14507968037040 ;
 	8'd025:  data = 64'h0300001968200000 ;
 	8'd026:  data = 64'h0a145079680371f0 ;
 	8'd027:  data = 64'h0300000168200000 ;
 	8'd028:  data = 64'h0a14507968037040 ;
 	8'd029:  data = 64'h0300001968200000 ;
 	8'd030:  data = 64'h0a145079680371f0 ;
    	8'd031:  data = 64'h0300000168200000 ;
   	8'd032:  data = 64'h0014000048000000 ;
   	8'd033:  data = 64'h0a1430000000c1cc ;
    	8'd034:  data = 64'h0a000000000069cc ;
    	8'd035:  data = 64'h0200000000008254 ;
    	8'd036:  data = 64'h0014010048000000 ;
    	8'd037:  data = 64'h0c1850518000c2f4 ;
    	8'd038:  data = 64'h0c1850000000c83c ;
    	8'd039:  data = 64'h02000018000082fe ;
    	8'd040:  data = 64'h0a14507968037040 ;
    	8'd041:  data = 64'h0300001968200000 ;
    	8'd042:  data = 64'h0a145079680371f0 ;
    	8'd043:  data = 64'h0300000168200000 ;
    	8'd044:  data = 64'h0a14507968037040 ;
    	8'd045:  data = 64'h0300001968200000 ;
    	8'd046:  data = 64'h0a145079680371f0 ;
    	8'd047:  data = 64'h0300000168200000 ;
    	8'd048:  data = 64'h8a1030000000842c ;
    	8'd049:  data = 64'h80103380000080b4 ;
    	8'd050:  data = 64'h801030780000842c ;
    	8'd051:  data = 64'h82103390680080b4 ;
    	8'd052:  data = 64'h801033800000866c ;
    	8'd053:  data = 64'h8a103380000086c4 ;
    	8'd054:  data = 64'h80103380000086c4 ;
    	8'd055:  data = 64'h0a1433800000c90c ;
    	8'd056:  data = 64'h001430000000c77e ;
    	8'd057:  data = 64'h801030000000ea55 ;
    	8'd058:  data = 64'h0014008188000000 ;
    	8'd059:  data = 64'h1212005120008624 ;
    	8'd060:  data = 64'h0000000000000001 ;
    	8'd061:  data = 64'h0000000001000000 ;
    	8'd062:  data = 64'h001450000000c737 ;
    	8'd063:  data = 64'h0000000001000000 ;
    	8'd064:  data = 64'h8a1030780000861c ;
    	8'd065:  data = 64'h80103000000080b4 ;
    	8'd066:  data = 64'h801030000000861c ;
    	8'd067:  data = 64'h82103018000080b4 ;
    	8'd068:  data = 64'h801030000000812c ;
    	8'd069:  data = 64'h00000000000080b4 ;
    	8'd070:  data = 64'h82103018000080b4 ;
    	8'd071:  data = 64'h0a1430000000c90c ;
    	8'd072:  data = 64'h001430000000c9cc ;
    	8'd073:  data = 64'h000000000000977e ;
    	8'd074:  data = 64'h04100017a0000000 ;
    	8'd075:  data = 64'h0300029188180001 ;
    	8'd076:  data = 64'h001400004b400000 ;
    	8'd077:  data = 64'h5e10001140000000 ;
    	8'd078:  data = 64'h5810501140000000 ;
   	8'd079:  data = 64'h5e95501120008470 ;
   	8'd080:  data = 64'h5e95500000000000 ;
   	8'd081:  data = 64'h80103027c8003cfc ;
   	8'd082:  data = 64'h10100047e00022a4 ;
   	8'd083:  data = 64'h0514000000000000 ;
   	8'd084:  data = 64'h0a000011a0008268 ;
   	8'd085:  data = 64'h2018501140000000 ;
   	8'd086:  data = 64'h5e10001140008470 ;
   	8'd087:  data = 64'h5810500000000000 ;
   	8'd088:  data = 64'h8300039160128350 ;
   	8'd089:  data = 64'h03000017c8100000 ;
   	8'd090:  data = 64'h0000028000000000 ;
   	8'd091:  data = 64'h0000007800008244 ;
   	8'd092:  data = 64'haa120391680283f0 ;
   	8'd093:  data = 64'hca18401720000000 ;
   	8'd094:  data = 64'h0c1850518000c605 ;
   	8'd095:  data = 64'h0020800002800000 ;
   	8'd096:  data = 64'h0014008048000000 ;
   	8'd097:  data = 64'h80103027c8003cfc ;
   	8'd098:  data = 64'h10100047e0002324 ;
   	8'd099:  data = 64'h0514000000000000 ;
   	8'd100:  data = 64'h0a000011a00082b0 ;
   	8'd101:  data = 64'h2018501140000000 ;
   	8'd102:  data = 64'h0300000000108448 ;
   	8'd103:  data = 64'h0300000000100000 ;
   	8'd104:  data = 64'h8300039160120c48 ;
   	8'd105:  data = 64'h03000017c8100000 ;
   	8'd106:  data = 64'h0300000000108330 ;
   	8'd107:  data = 64'h0300000000100000 ;
   	8'd108:  data = 64'haa120391680283f8 ;
   	8'd109:  data = 64'hca18401720000000 ;
   	8'd110:  data = 64'h001430000000c9cd ;
   	8'd111:  data = 64'h0010300003800000 ;
   	8'd112:  data = 64'h8a103380000083d4 ;
   	8'd113:  data = 64'h8010338000008374 ;
   	8'd114:  data = 64'h801033800000870c ;
   	8'd115:  data = 64'h82103380000080b4 ;
   	8'd116:  data = 64'h8a103078000086dc ;
   	8'd117:  data = 64'h8010338000008374 ;
   	8'd118:  data = 64'h82103380000080b4 ;
   	8'd119:  data = 64'h0a1433800000c90c ;
   	8'd120:  data = 64'h001430000000c254 ;
   	8'd121:  data = 64'h00000000000081cc ;
   	8'd122:  data = 64'h0c1850118000c6ee ;
   	8'd123:  data = 64'h03000010c8040000 ;
   	8'd124:  data = 64'haa12001168000bf8 ;
   	8'd125:  data = 64'hca18401720000000 ;
   	8'd126:  data = 64'h78c0400000000000 ;
   	8'd127:  data = 64'h78c0404380000000 ;
   	8'd128:  data = 64'h78c04041e800e400 ;
   	8'd129:  data = 64'h78c0400000000000 ;
   	8'd130:  data = 64'h01105011c800c454 ;
   	8'd131:  data = 64'h041500004800f865 ;
   	8'd132:  data = 64'h0020800113800000 ;
   	8'd133:  data = 64'h0c1853918000c37e ;
   	8'd134:  data = 64'h03000010c8040000 ;
   	8'd135:  data = 64'h8300001160108b4c ;
   	8'd136:  data = 64'h03000017c8100000 ;
   	8'd137:  data = 64'h0700000000000000 ;
   	8'd138:  data = 64'h041440104800f865 ;
   	8'd139:  data = 64'h0020800113800000 ;
   	8'd140:  data = 64'h0b0000158018ae4c ;
   	8'd141:  data = 64'h0414101720008654 ;
   	8'd142:  data = 64'h5e95500000002a54 ;
   	8'd143:  data = 64'h5e955011c800e470 ;
   	8'd144:  data = 64'hde95500000000000 ;
   	8'd145:  data = 64'h101800106800dc9c ;
   	8'd146:  data = 64'h1013400000000000 ;
   	8'd147:  data = 64'h03105000c804c454 ;
   	8'd148:  data = 64'h041500004800f865 ;
   	8'd149:  data = 64'h0020800113800000 ;
   	8'd150:  data = 64'h001850000000ccc4 ;
   	8'd151:  data = 64'h001430000000c736 ;
   	8'd152:  data = 64'h0a145079680171f0 ;
   	8'd153:  data = 64'h0300000168200000 ;
   	8'd154:  data = 64'h88103877c8009d5c ;
   	8'd155:  data = 64'h00000000000087b4 ;
   	8'd156:  data = 64'h8810387728003f6c ;
   	8'd157:  data = 64'h041400172800f865 ;
   	8'd158:  data = 64'h0020800113800000 ;
   	8'd159:  data = 64'h080000604800e2d4 ;
   	8'd160:  data = 64'h041850118000c37e ;
   	8'd161:  data = 64'h03000010c8040000 ;
   	8'd162:  data = 64'h00000027c8008a94 ;
   	8'd163:  data = 64'h0000000000008314 ;
   	8'd164:  data = 64'h001850000000c724 ;
   	8'd165:  data = 64'h001430000000c54c ;
   	8'd166:  data = 64'h0000000000003546 ;
   	8'd167:  data = 64'h0000000000006d4d ;
   	8'd168:  data = 64'h0000000001c00000 ;
   	8'd169:  data = 64'h020000000000858c ;
   	8'd170:  data = 64'h88103077c8001fb4 ;
   	8'd171:  data = 64'h00000015c8009f9c ;
   	8'd172:  data = 64'h0000004000000000 ;
   	8'd173:  data = 64'h0300000168202e34 ;
   	8'd174:  data = 64'h03000408c81c0001 ;
   	8'd175:  data = 64'h002080004b800000 ;
   	8'd176:  data = 64'h001430600000c1fe ;
   	8'd177:  data = 64'h0000000000003546 ;
   	8'd178:  data = 64'h000000000000ed47 ;
   	8'd179:  data = 64'h0000000001800000 ;
   	8'd180:  data = 64'h00000001e800985e ;
   	8'd181:  data = 64'h0000004180000000 ;
   	8'd182:  data = 64'h0300000168200000 ;
   	8'd183:  data = 64'h04142000000087cc ;
   	8'd184:  data = 64'h000000000000bd7e ;
   	8'd185:  data = 64'h0411101188000000 ;
   	8'd186:  data = 64'h00208011c800d73f ;
   	8'd187:  data = 64'h002080004a000000 ;
   	8'd188:  data = 64'h0c1850158000c5fe ;
   	8'd189:  data = 64'h03000010c8040000 ;
   	8'd190:  data = 64'h0200000048009fad ;
   	8'd191:  data = 64'h0014000003800000 ;
   	8'd192:  data = 64'h041030100000977e ;
   	8'd193:  data = 64'h000002800000b77e ;
   	8'd194:  data = 64'h000003000000877e ;
   	8'd195:  data = 64'h101850418000c77e ;
   	8'd196:  data = 64'h0a14507968017040 ;
   	8'd197:  data = 64'h0300001968200000 ;
   	8'd198:  data = 64'h04141400000080a0 ;
   	8'd199:  data = 64'h03000008c81c0000 ;
   	8'd200:  data = 64'h0b00081580182c6c ;
   	8'd201:  data = 64'h001410172000c37e ;
   	8'd202:  data = 64'h03000010c8040000 ;
   	8'd203:  data = 64'h001400004800f865 ;
   	8'd204:  data = 64'h0020800113800000 ;
   	8'd205:  data = 64'h021430000000c37e ;
   	8'd206:  data = 64'h001430100000c37e ;
   	8'd207:  data = 64'h04110000000085bc ;
   	8'd208:  data = 64'h00000000000081fe ;
   	8'd209:  data = 64'h8010300000008584 ;
   	8'd210:  data = 64'h00000060000081fe ;
   	8'd211:  data = 64'h8210301800008584 ;
   	8'd212:  data = 64'h80103000000084b4 ;
   	8'd213:  data = 64'h8010300000008584 ;
   	8'd214:  data = 64'h8210301800008584 ;
   	8'd215:  data = 64'h8010300000008524 ;
   	8'd216:  data = 64'h0a1850000000c9cc ;
   	8'd217:  data = 64'h001850000000c8be ;
   	8'd218:  data = 64'h0000000000008254 ;
   	8'd219:  data = 64'h0c1853800000cef4 ;
   	8'd220:  data = 64'h0c1850000000c255 ;
   	8'd221:  data = 64'h001030018b000000 ;
   	8'd222:  data = 64'h0c1850518000c37e ;
   	8'd223:  data = 64'h03000010c8040000 ;
   	8'd224:  data = 64'h0a000070680083dc ;
   	8'd225:  data = 64'h0c1850718000c37e ;
   	8'd226:  data = 64'h03000010c8040000 ;
   	8'd227:  data = 64'h0a000070680083e4 ;
   	8'd228:  data = 64'h001430000000cd8c ;
   	8'd229:  data = 64'h00000000000091ff ;
   	8'd230:  data = 64'h0000000000000000 ;
   	8'd231:  data = 64'h0020800122000000 ;
   	8'd232:  data = 64'h00000877c8003f55 ;
   	8'd233:  data = 64'h0014000723800000 ;
   	8'd234:  data = 64'h881030786800e0b4 ;
   	8'd235:  data = 64'h04185011e000c37e ;
   	8'd236:  data = 64'h0000001720008654 ;
   	8'd237:  data = 64'h801030106800e784 ;
   	8'd238:  data = 64'h001850100000ce7d ;
   	8'd239:  data = 64'h001400004b800000 ;
   	8'd240:  data = 64'h001430000000c0be ;
   	8'd241:  data = 64'h04100017a000ea54 ;
   	8'd242:  data = 64'h030002918818877e ;
   	8'd243:  data = 64'h03000468c81cafec ;
   	8'd244:  data = 64'h80103000680065e4 ;
   	8'd245:  data = 64'h0410301000008266 ;
   	8'd246:  data = 64'h000002806800e7c4 ;
   	8'd247:  data = 64'h001850100000c37e ;
   	8'd248:  data = 64'h041100100000877e ;
   	8'd249:  data = 64'h002080000000d2ff ;
   	8'd250:  data = 64'h0020800182800000 ;
   	8'd251:  data = 64'h002080111000d5c4 ;
   	8'd252:  data = 64'h00000011200085c4 ;
   	8'd253:  data = 64'h0410001188000001 ;
   	8'd254:  data = 64'h001110004bc00000 ;
   	8'd255:  data = 64'h0000000000000000 ;
       endcase
      end

endmodule

HierarchyFilesModulesSignalsTasksFunctionsHelp

This page: Created:Thu Aug 19 12:02:34 1999
From: ../../../sparc_v8/ssparc/fpu/fp_rom/rtl/fp_rom.v

Verilog converted to html by v2html 5.0 (written by Costas Calamvokis).Help