URL
https://opencores.org/ocsvn/raptor64/raptor64/trunk
Subversion Repositories raptor64
Compare Revisions
- This comparison shows the changes necessary to convert path
/raptor64/trunk/rtl
- from Rev 50 to Rev 52
- ↔ Reverse comparison
Rev 50 → Rev 52
/verilog/WB64ToMIG32.v
0,0 → 1,381
`timescale 1ns / 1ps |
// ============================================================================ |
// __ |
// \\__/ o\ (C) 2011-2013 Robert Finch, Stratford |
// \ __ / All rights reserved. |
// \/_// robfinch<remove>@opencores.org |
// || |
// |
// |
// WB2MIG32.v |
// - 64 bit WISHBONE to 32 bit MIG bus bridge |
// - supports |
// constant address burst cycles |
// incrementing address burst cycles |
// classic bus cycles |
// |
// This source file is free software: you can redistribute it and/or modify |
// it under the terms of the GNU Lesser General Public License as published |
// by the Free Software Foundation, either version 3 of the License, or |
// (at your option) any later version. |
// |
// This source file 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/>. |
// |
// ============================================================================ |
// |
//`define SUPPORT_INCADR 1 |
`define MAX_MEM 32'h07FF_FFFF |
// |
module WB64ToMIG32 ( |
input rst_i, |
input clk_i, |
|
// WISHBONE PORT |
input [1:0] bte_i, // burst type extension |
input [2:0] cti_i, // cycle type indicator |
input cyc_i, // cycle in progress |
input stb_i, // data strobe |
output ack_o, // acknowledge |
input we_i, // write cycle |
input [7:0] sel_i, // byte lane selects |
input [63:0] adr_i, // address |
input [63:0] dat_i, // data |
output reg [63:0] dat_o, |
input [4:0] bl_i, // burst length |
|
// MIG port |
input calib_done, |
input cmd_full, |
output reg cmd_en, |
output reg [2:0] cmd_instr, |
output reg [5:0] cmd_bl, |
output reg [29:0] cmd_byte_addr, |
|
output reg rd_en, |
input [31:0] rd_data, |
input rd_empty, |
|
output reg wr_en, |
output reg [3:0] wr_mask, |
output reg [31:0] wr_data, |
input wr_empty, |
input wr_full |
); |
parameter IDLE = 4'd1; |
parameter BWRITE_001a = 4'd2; |
parameter BWRITE_001b = 4'd3; |
parameter BWRITE_010a = 4'd4; |
parameter BWRITE_010b = 4'd5; |
parameter BWRITE_010c = 4'd6; |
parameter BWRITE_010d = 4'd7; |
parameter BWRITE_CMD = 4'd8; |
parameter BREAD_001a = 4'd9; |
parameter BREAD_001b = 4'd10; |
parameter BREAD_010a = 4'd11; |
parameter BREAD_010b = 4'd12; |
parameter BREAD_010c = 4'd13; |
parameter BREAD_010d = 4'd14; |
parameter NACK = 4'd15; |
|
|
// Fill write FIFO then issue write command |
reg [5:0] ctr; // burst length counter |
reg [63:0] dato; |
reg [3:0] state; |
reg ack1; |
|
wire cs = cyc_i && stb_i && (adr_i[59:32]==28'h0000001 || adr_i[63:36]==28'hE000000); // circuit select |
assign ack_o = ack1 & cs; // Force ack_o low as soon as cyc_i or stb_i go low |
|
always @(cs or adr_i or dato) |
if (cs) begin |
// The following test allows the startup code to determine how much memory is presnet. |
// Otherwise, the code thinks there's more memory than there actually is, due to aliased |
// addresses hit during the memory test. |
if (adr_i[31:0]>`MAX_MEM) |
dat_o <= 64'hDEADDEAD_DEADDEAD; |
else |
dat_o <= dato; |
end |
else |
dat_o <= 64'h00000000_00000000; // Allow wire-or'ing data bus |
|
reg [5:0] bl; |
reg [63:0] prev_adr; |
|
always @(posedge clk_i) |
if (rst_i) begin |
ack1 <= 1'b0; |
ctr <= 6'd0; |
state <= IDLE; |
end |
else begin |
cmd_en <= 1'b0; // Forces cmd_en to be just a 1-cycle pulse |
wr_en <= 1'b0; |
case(state) |
IDLE: |
if (cs & calib_done) begin |
ctr <= 6'd0; |
cmd_byte_addr <= {adr_i[29:2],2'b00}; |
if (cti_i==3'b001) |
cmd_bl <= {bl_i,1'b1}; |
else begin |
if (sel_i[3:0]==4'h0 || sel_i[7:4]==4'h0) |
cmd_bl <= 6'd0; // single access required |
else |
cmd_bl <= 6'd1; // double access required |
end |
cmd_instr <= we_i ? 3'b000 : 3'b001; // WRITE or READ |
prev_adr <= adr_i; |
|
// Write cycles |
if (we_i) begin |
case(cti_i) |
3'b000,3'b111: |
// Writing for a half-word or less ? |
if (sel_i[3:0]==4'h0 || sel_i[7:4]==4'h0) begin |
if (!wr_full) begin |
ack1 <= 1'b1; |
wr_en <= 1'b1; |
// data will be reflected for sub-word writes |
// the same data is on [31:0] as is on [63:32] |
wr_data <= dat_i[31:0]; |
wr_mask <= ~(sel_i[7:4]|sel_i[3:0]); |
state <= BWRITE_CMD; |
end |
end |
// Writing 2 32 bit words |
else begin |
if (wr_empty) |
state <= BWRITE_001a; |
end |
// Since we want to write a burst of numerous data, we wait until the |
// write FIFO is empty. We could wait until the FIFO count is greater |
// than the burst length. |
3'b001: |
if (wr_empty) |
state <= BWRITE_001a; |
`ifdef SUPPORT_INCADR |
3'b010: |
if (wr_empty) |
state <= BWRITE_010a; |
`endif |
default: ; |
endcase |
end |
// Read cycles |
else begin |
if (!cmd_full) begin |
cmd_en <= 1'b1; |
case(cti_i) |
3'b000: state <= BREAD_001a; |
3'b001: state <= BREAD_001a; |
`ifdef SUPPORT_INCADR |
3'b010: state <= BREAD_010a; |
`endif |
3'b111: state <= BREAD_001a; |
default: ; |
endcase |
end |
end |
end |
|
//--------------------------------------------------------- |
// Burst write |
//--------------------------------------------------------- |
|
// Constant address burst: |
BWRITE_001a: |
begin |
ack1 <= 1'b0; |
if (stb_i) begin |
wr_en <= 1'b1; |
wr_data <= dat_i[31:0]; |
wr_mask <= ~sel_i[3:0]; |
ctr <= ctr + 6'd1; |
state <= BWRITE_001b; |
end |
end |
BWRITE_001b: |
if (stb_i) begin |
ack1 <= 1'b1; |
wr_en <= 1'b1; |
wr_data <= dat_i[63:32]; |
wr_mask <= ~sel_i[7:4]; |
ctr <= ctr + 6'd1; |
if (ctr >= bl_i || cti_i==3'b000 || cti_i==3'b111 || !cyc_i) |
state <= BWRITE_CMD; |
else |
state <= BWRITE_001a; |
end |
else |
ack1 <= 1'b0; |
|
`ifdef SUPPORT_INCADR |
// Incrementing address burst: |
// Write the first word |
// Write subsequent words, checking for an address change |
BWRITE_010a: |
begin |
ack1 <= 1'b0; |
if (stb_i) begin |
wr_en <= 1'b1; |
wr_data <= dat_i[31:0]; |
wr_mask <= ~sel_i[3:0]; |
ctr <= ctr + 6'd1; |
state <= BWRITE_010b; |
end |
end |
BWRITE_010b: |
if (stb_i) begin |
ack1 <= 1'b1; |
wr_en <= 1'b1; |
wr_data <= dat_i[63:32]; |
wr_mask <= ~sel_i[7:4]; |
ctr <= ctr + 6'd1; |
if (ctr >= bl_i || cti_i==3'b000 || cti_i==3'b111 || !cyc_i) |
state <= BWRITE_CMD; |
else |
state <= BWRITE_010c; |
end |
else |
ack1 <= 1'b0; |
BWRITE_010c: |
begin |
ack1 <= 1'b0; |
if (stb_i) begin |
if (adr_i!=prev_adr) begin |
prev_adr <= adr_i; |
wr_en <= 1'b1; |
wr_data <= dat_i[31:0]; |
wr_mask <= ~sel_i[3:0]; |
ctr <= ctr + 6'd1; |
state <= BWRITE_010d; |
end |
end |
end |
BWRITE_010d: |
if (stb_i) begin |
ack1 <= 1'b1; |
wr_en <= 1'b1; |
wr_data <= dat_i[63:32]; |
wr_mask <= ~sel_i[7:4]; |
ctr <= ctr + 6'd1; |
if (ctr >= bl_i || cti_i==3'b000 || cti_i==3'b111 || !cyc_i) |
state <= BWRITE_CMD; |
else |
state <= BWRITE_010c; |
end |
else |
ack1 <= 1'b0; |
`endif |
|
BWRITE_CMD: |
begin |
if (cyc_i==1'b0) |
ack1 <= 1'b0; |
if (!cmd_full) begin |
cmd_en <= 1'b1; |
state <= NACK; |
end |
end |
|
//--------------------------------------------------------- |
// Burst read or single read |
//--------------------------------------------------------- |
BREAD_001a: |
begin |
rd_en <= 1'b1; |
ack1 <= 1'b0; |
if (rd_en & !rd_empty) begin |
dato <= {rd_data,rd_data}; |
ctr <= ctr + 6'd1; |
if (sel_i[7:4]!=4'h0 && sel_i[3:0]!=4'h0 && cyc_i) |
state <= BREAD_001b; |
else begin |
ack1 <= 1'b1; |
state <= NACK; |
end |
end |
end |
BREAD_001b: |
if (rd_en & !rd_empty) begin |
dato[63:32] <= rd_data; |
ack1 <= 1'b1; |
ctr <= ctr + 6'd1; |
if (ctr>={bl_i,1'b1} || !cyc_i || cti_i==3'b000 || cti_i==3'b111) |
state <= NACK; |
else |
state <= BREAD_001a; |
end |
|
`ifdef SUPPORT_INCADR |
BREAD_010a: |
begin |
rd_en <= 1'b1; |
ack1 <= 1'b0; |
if (rd_en & !rd_empty) begin |
prev_adr <= adr_i; |
dato <= {rd_data,rd_data}; |
ctr <= ctr + 6'd1; |
state <= BREAD_010b; |
end |
end |
BREAD_010b: |
if (rd_en & !rd_empty) begin |
rd_en <= 1'b0; |
dato[63:32] <= rd_data; |
ack1 <= 1'b1; |
ctr <= ctr + 6'd1; |
if (ctr>={bl_i,1'b1} || !cyc_i || cti_i==3'b000 || cti_i==3'b111) |
state <= NACK; |
else |
state <= BREAD_010c; |
end |
BREAD_010c: |
begin |
ack1 <= 1'b0; |
if (adr_i != prev_adr) begin |
rd_en <= 1'b1; |
if (rd_en & !rd_empty) begin |
prev_adr <= adr_i; |
dato <= {rd_data,rd_data}; |
ctr <= ctr + 6'd1; |
state <= BREAD_010d; |
end |
end |
end |
BREAD_010d: |
if (rd_en & !rd_empty) begin |
rd_en <= 1'b0; |
ack1 <= 1'b1; |
dato[63:32] <= rd_data; |
ctr <= ctr + 6'd1; |
if (ctr >= bl_i || cti_i==3'b000 || cti_i==3'b111 || !cyc_i) |
state <= NACK; |
else |
state <= BREAD_010c; |
end |
`endif |
|
//--------------------------------------------------------- |
//--------------------------------------------------------- |
// If cyc_o went inactive during BWRITE_CMD (ack1==1'b0) then move |
// to next state. cyc_i might have gone back to active as the next |
// bus cycle could have started. |
// |
NACK: |
if (!cyc_i || ack1==1'b0) begin |
ack1 <= 1'b0; |
rd_en <= 1'b0; |
state <= IDLE; |
end |
endcase |
end |
endmodule |
/verilog/Raptor64_opcodes.v
110,6 → 110,9
`define INSNKEY 6'd37 |
`define PCHI 6'd62 |
`define PCHISTORIC 6'd63 |
`define MFSEG 6'd42 |
`define MTSEG 6'd43 |
`define MFSEGI 6'd44 |
`define OMG 6'd50 |
`define CMG 6'd51 |
`define OMGI 6'd52 |
130,6 → 133,7
`define NOR 6'd13 |
`define XNOR 6'd14 |
`define ORC 6'd15 |
`define AVG 6'd19 |
`define MIN 6'd20 |
`define MAX 6'd21 |
`define MULU 6'd24 |
143,6 → 147,8
`define MOVPL 6'd32 |
`define MOVMI 6'd33 |
|
`define MTSEGI 6'd35 |
|
`define SHL 6'd40 |
`define SHRU 6'd41 |
`define ROL 6'd42 |
/verilog/Raptor64sc.v
32,6 → 32,7
//`define TLB 1 |
//`define SIMD 1 |
`define SEGMENTATION 1 |
`define SIMPLE_MMU 1 |
|
`define RESET_VECTOR 64'hFFFF_FFFF_FFFF_FFF0 |
|
52,8 → 53,7
`include "Raptor64_opcodes.v" |
|
module Raptor64sc(rst_i, clk_i, nmi_i, irq_i, irq_no, bte_o, cti_o, bl_o, iocyc_o, |
cyc_o, stb_o, ack_i, err_i, we_o, sel_o, rsv_o, adr_o, dat_i, dat_o, sys_adv, sys_adr, |
advanceI, advanceR, advanceX, advanceM1, advanceM2, advanceW, advanceT |
cyc_o, stb_o, ack_i, err_i, we_o, sel_o, rsv_o, adr_o, dat_i, dat_o, sys_adv, sys_adr |
); |
parameter IDLE = 5'd1; |
parameter ICACT = 5'd2; |
99,18 → 99,11
input sys_adv; |
input [63:5] sys_adr; |
|
output advanceI; |
output advanceR; |
output advanceX; |
output advanceM1; |
output advanceM2; |
output advanceW; |
output advanceT; |
|
wire clk; |
reg [3:0] state; |
reg [5:0] fltctr; |
wire fltdone = fltctr==6'd0; |
reg inta; |
reg bu_im; // interrupt mask |
reg im1; // temporary interrupt mask for LM/SM |
reg [7:0] ie_fuse; // interrupt enable fuse |
128,10 → 121,7
reg [63:0] EPC [0:15]; // Exception return address |
reg [63:0] IPC [0:15]; // Interrupt return address |
`ifdef SEGMENTATION |
reg [63:16] CS [0:15]; // Code segment |
reg [63:16] DS [0:15]; // Data segment |
reg [63:16] SS [0:15]; // Stack segment |
reg [63:16] ES [0:15]; // BSS segment |
reg [63:12] segs [0:255]; |
`endif |
reg dStatusHWI,xStatusHWI,m1StatusHWI,m2StatusHWI; |
reg dIm,xIm,m1Im,m2Im; |
147,7 → 137,7
reg [63:0] mutex_gate; |
reg [63:0] TBA; // Trap Base Address |
reg [8:0] dextype,d1extype,xextype,m1extype,m2extype,wextype,textype; |
reg [3:0] epat [0:255]; |
reg [3:0] epat [0:255]; // execution pattern table |
reg [7:0] eptr; |
reg [3:0] dAXC,d1AXC,xAXC,m1AXC,m2AXC,wAXC; // context active per pipeline stage |
wire [3:0] AXC = (eptr==8'h00) ? 4'h0 : epat[eptr]; |
185,6 → 175,10
reg [63:13] BadVAddr; |
reg [63:13] PageTableAddr; |
reg [63:0] errorAddress; |
wire mmu_ack; |
wire [15:0] mmu_dato; |
wire ack_i1 = ack_i | mmu_ack; |
wire [63:0] dat_i1 = dat_i|{4{mmu_dato}}; |
|
wire [6:0] iOpcode = insn[31:25]; |
wire [6:0] iFunc = insn[6:0]; |
274,37 → 268,37
reg [31:0] data32; |
reg [63:0] data64; |
|
always @(sel_o or dat_i) |
always @(sel_o or dat_i1) |
case(sel_o) |
8'b00000001: data8 <= #1 dat_i[ 7: 0]; |
8'b00000010: data8 <= #1 dat_i[15: 8]; |
8'b00000100: data8 <= #1 dat_i[23:16]; |
8'b00001000: data8 <= #1 dat_i[31:24]; |
8'b00010000: data8 <= #1 dat_i[39:32]; |
8'b00100000: data8 <= #1 dat_i[47:40]; |
8'b01000000: data8 <= #1 dat_i[55:48]; |
8'b10000000: data8 <= #1 dat_i[63:56]; |
8'b00000001: data8 <= #1 dat_i1[ 7: 0]; |
8'b00000010: data8 <= #1 dat_i1[15: 8]; |
8'b00000100: data8 <= #1 dat_i1[23:16]; |
8'b00001000: data8 <= #1 dat_i1[31:24]; |
8'b00010000: data8 <= #1 dat_i1[39:32]; |
8'b00100000: data8 <= #1 dat_i1[47:40]; |
8'b01000000: data8 <= #1 dat_i1[55:48]; |
8'b10000000: data8 <= #1 dat_i1[63:56]; |
default: data8 <= 8'h00; |
endcase |
|
always @(sel_o or dat_i) |
always @(sel_o or dat_i1) |
case(sel_o) |
8'b00000011: data16 <= #1 dat_i[15: 0]; |
8'b00001100: data16 <= #1 dat_i[31:16]; |
8'b00110000: data16 <= #1 dat_i[47:32]; |
8'b11000000: data16 <= #1 dat_i[63:48]; |
8'b00000011: data16 <= #1 dat_i1[15: 0]; |
8'b00001100: data16 <= #1 dat_i1[31:16]; |
8'b00110000: data16 <= #1 dat_i1[47:32]; |
8'b11000000: data16 <= #1 dat_i1[63:48]; |
default: data16 <= #1 16'hDEAD; |
endcase |
|
always @(sel_o or dat_i) |
always @(sel_o or dat_i1) |
case(sel_o) |
8'b00001111: data32 <= #1 dat_i[31: 0]; |
8'b11110000: data32 <= #1 dat_i[63:32]; |
8'b00001111: data32 <= #1 dat_i1[31: 0]; |
8'b11110000: data32 <= #1 dat_i1[63:32]; |
default: data32 <= #1 32'hDEADDEAD; |
endcase |
|
always @(sel_o or dat_i) |
data64 <= #1 dat_i; |
always @(sel_o or dat_i1) |
data64 <= #1 dat_i1; |
|
assign KernelMode = StatusEXL[xAXC]|StatusHWI; |
|
319,30 → 313,19
//----------------------------------------------------------------------------- |
// Segmentation |
// |
// If the upper nybble of the address is 'F' then segmentation is not applied. |
// This allows for bootstrapping and operating system use. Also when in kernel |
// mode the lowest 64k of memory is unsegmented to allow easier access to |
// operating system variables. |
// |
// Otherwise: the CS register is always in use for code addresses. |
// Which segment is used for data addresses depends on the upper nybble of |
// the address. |
// Paradoxically, it's less expensive to provide an array of 16 segment |
// registers as opposed to several independent registers. The 16 registers |
// are lower cost than the independent CS,DS,ES, and SS registers were. |
//----------------------------------------------------------------------------- |
`ifdef SEGMENTATION |
wire [63:0] spc; // segmented PC |
reg [63:0] sea; // segmented effective address |
assign spc = pc[63:60]==4'hF ? pc : {CS[AXC][63:16] + pc[59:16],pc[15:0]}; |
always @(ea or KernelMode) |
if (KernelMode && ea[63:16]==48'h0) |
sea <= ea; |
else |
case(ea[63:60]) |
4'hF: sea <= ea; |
4'hE: sea <= {SS[xAXC][63:16] + ea[59:16],ea[15:0]}; |
4'hD: sea <= {ES[xAXC][63:16] + ea[59:16],ea[15:0]}; |
default: |
sea <= {DS[xAXC][63:16] + ea[59:16],ea[15:0]}; |
endcase |
wire [63:0] sea; // segmented effective address |
assign spc = {segs[{pc[63:60], AXC}][63:12] + pc[59:12],pc[11:0]}; |
assign sea = {segs[{ea[63:60],xAXC}][63:12] + ea[59:12],ea[11:0]}; |
initial begin |
for (n = 0; n < 256; n = n + 1) |
segs[n] = 52'd0; |
end |
`else |
wire [63:0] spc = pc; |
wire [63:0] sea = ea; |
349,6 → 332,33
`endif |
|
//----------------------------------------------------------------------------- |
//----------------------------------------------------------------------------- |
`ifdef SIMPLE_MMU |
SimpleMMU ummu1 |
( |
.num(3'd0), |
.rst_i(rst_i), |
.clk_i(clk), |
.dma_i(1'b0), |
.kernel_mode(KernelMode), |
.cyc_i(iocyc_o), |
.stb_i(stb_o), |
.ack_o(mmu_ack), |
.we_i(we_o), |
.adr_i(adr_o[23:0]), |
.dat_i(dat_o[15:0]), |
.dat_o(mmu_dato), |
.rclk(~clk), |
.pc_i(spc[27:0]), |
.pc_o(ppc[27:0]), |
.ea_i(sea[27:0]), |
.ea_o(pea[27:0]) |
); |
assign pea[63:28]=sea[63:28]; |
assign ppc[63:28]=spc[63:28]; |
`endif |
|
//----------------------------------------------------------------------------- |
// TLB |
// The TLB contains 64 entries, that are 8 way set associative. |
// The TLB is dual ported and shared between the instruction and data streams. |
396,9 → 406,11
); |
|
`else |
`ifndef SIMPLE_MMU |
assign ppc = spc; |
assign pea = sea; |
`endif |
`endif |
|
//----------------------------------------------------------------------------- |
// Clock control |
479,7 → 491,7
.adr(icadr[13:0]), |
.d(err_i ? bevect : dat_i), |
.rclk(~clk), |
.pc(pc[13:0]), |
.pc(ppc[13:0]), |
.insn(insnbundle) |
); |
|
506,7 → 518,7
end |
|
wire [64:14] tgout; |
assign tgout = {tvalid[pc[13:6]],tmem[pc[13:6]]}; |
assign tgout = {tvalid[ppc[13:6]],tmem[ppc[13:6]]}; |
assign ihit = (tgout=={1'b1,ppc[63:14]}); |
assign ibufrdy = ibufadr[63:2]==ppc[63:2]; |
|
1095,6 → 1107,7
wire lti = $signed(a) < $signed(imm); |
wire ltu = a < b; |
wire ltui = a < imm; |
wire [7:0] segndx = xFunc6==`MFSEG ? {xIR[9:6],xAXC} : {a[63:60],xAXC}; |
|
always @(xOpcode or xFunc or xFunc5 or a or b or c or imm or xpc or aeqz or xFunc6 or |
sqrt_out or cntlzo or cntloo or tick or AXC or scale or |
1170,12 → 1183,6
`PageTableAddr: xData1 = {PageTableAddr,13'd0}; |
`BadVAddr: xData1 = {BadVAddr,13'd0}; |
`endif |
`ifdef SEGMENTATION |
`CS: xData1 = {CS[xAXC],16'h0}; |
`DS: xData1 = {DS[xAXC],16'h0}; |
`ES: xData1 = {ES[xAXC],16'b0}; |
`SS: xData1 = {SS[xAXC],16'h0}; |
`endif |
`ASID: xData1 = ASID; |
`Tick: xData1 = tick; |
`EPC: xData1 = EPC[xAXC]; |
1192,6 → 1199,10
`PCHISTORIC: xData1 = pchistoric; |
default: xData1 = 64'd0; |
endcase |
`ifdef SEGMENTATION |
`MFSEG,`MFSEGI: xData1 = segs[segndx]; |
`MTSEG: xData1 = a; |
`endif |
`OMG: xData1 = mutex_gate[a[5:0]]; |
`CMG: xData1 = mutex_gate[a[5:0]]; |
`OMGI: begin |
1219,6 → 1230,9
`MODS: xData1 = div_r; |
`BCD_MUL: xData1 = bcdmulo; |
`MFEP: xData1 = epat[a[7:0]]; |
`ifdef SEGMENTATION |
`MTSEGI: xData1 = b; |
`endif |
default: xData1 = 64'd0; |
endcase |
`ifdef SIMD |
1536,7 → 1550,7
wire m2ForwardingActive = (m2Rt==dRa || m2Rt==dRb || m2Rt==dRc) & !m2Rtz; |
wire m1ForwardingActive = (m1Rt==dRa || m1Rt==dRb || m1Rt==dRc) & !m1Rtz; |
wire xForwardingActive = (xRt==dRa || xRt==dRb || xRt==dRc) & !xRtz; |
wire memCycleActive = ((iocyc_o & !(ack_i|err_i)) || (cyc_o & !(ack_i|err_i))); |
wire memCycleActive = ((iocyc_o & !(ack_i1|err_i)) || (cyc_o & !(ack_i1|err_i))); |
wire StallI = 1'b0; |
|
// Stall on SWC allows rsf flag to be loaded for the next instruction |
1558,9 → 1572,9
|
assign advanceT = (state==RUN) && !StallT; |
assign advanceW = advanceT & !StallW; |
assign advanceM2 = advanceW && (cyc_o ? (ack_i|err_i) : 1'b1) && !StallM2; |
assign advanceM2 = advanceW && (cyc_o ? (ack_i1|err_i) : 1'b1) && !StallM2; |
assign advanceM1 = advanceM2 & |
(iocyc_o ? (ack_i|err_i) : 1'b1) & |
(iocyc_o ? (ack_i1|err_i) : 1'b1) & |
((m1IsLoad & m1IsCacheElement) ? dhit : 1'b1) & |
!StallM1 |
; |
1801,6 → 1815,7
wData <= 64'd0; |
m1Data <= 64'd0; |
m2Data <= 64'd0; |
wData <= 64'd0; |
icaccess <= 1'b0; |
dcaccess <= 1'b0; |
wFip <= 1'b0; |
1809,6 → 1824,7
xFip <= 1'b0; |
dFip <= 1'b0; |
dirqf <= 1'b0; |
inta <= 1'b0; |
dNmi <= 1'b0; |
xNmi <= 1'b0; |
m1Nmi <= 1'b0; |
1857,11 → 1873,12
// Initialize program counters |
// Initialize data tags to zero. |
// Initialize execution pattern register to zero. |
// Initialize segment registers to zero. |
//--------------------------------------------------------- |
case(state) |
RESET: |
begin |
pc <= `RESET_VECTOR; |
$display("Resetting %h",adr_o[14:6]); |
adr_o[14:6] <= adr_o[14:6]+9'd1; |
if (adr_o[14:6]==9'h1FF) begin |
dtinit <= 1'b0; |
1869,6 → 1886,9
end |
epat[a[7:0]] <= b[3:0]; /// b=0, to make this line the same as MTEP |
a[7:0] <= a[7:0] + 8'h1; |
wIR[9:6] <= a[7:4]; |
wAXC <= wAXC + 4'd1; |
segs[{wIR[9:6],wAXC}] <= wData; // same line as in WB stage, wData =0 |
end |
RUN: |
begin |
1876,6 → 1896,7
ie_fuse <= {ie_fuse[6:0],ie_fuse[0]}; // shift counter |
|
tick <= tick + 64'd1; |
$display("tick: %d", tick[31:0]); |
|
prev_nmi <= nmi_i; |
if (!prev_nmi & nmi_i) |
2303,6 → 2324,7
`RR: |
case(xFunc6) |
`MTEP: epat[a[7:0]] <= b[3:0]; |
`MTSEGI: m1IR[9:6] <= a[63:60]; |
default: ; |
endcase |
// JMP and CALL change the program counter immediately in the IF stage. |
3294,12 → 3316,6
case(wFunc6) |
`MTSPR: |
case(wIR[11:6]) |
`ifdef SEGMENTATION |
`CS: CS[wAXC][63:16] <= wData[63:16]; |
`DS: DS[wAXC][63:16] <= wData[63:16]; |
`ES: ES[wAXC][63:16] <= wData[63:16]; |
`SS: SS[wAXC][63:16] <= wData[63:16]; |
`endif |
`IPC: begin |
$display("mtspr IPC[%d]=%h",wAXC,wData); |
IPC[wAXC] <= wData; |
3307,7 → 3323,18
`EPC: EPC[wAXC] <= wData; |
default: ; |
endcase |
`ifdef SEGMENTATION |
`MTSEG: segs[{wIR[9:6],wAXC}] <= wData[63:12]; |
`endif |
endcase |
`RR: |
case(wFunc6) |
`ifdef SEGMENTATION |
`MTSEGI: segs[{wIR[9:6],wAXC}] <= wData[63:12]; |
`endif |
default: ; |
endcase |
default: ; |
endcase |
if (wclkoff) |
clk_en <= 1'b0; |
3435,6 → 3462,7
cstate <= ICACT1; |
end |
else begin |
$display("Fetching %h", {ppc[31:2],2'b00}); |
cti_o <= 3'b000; |
bl_o <= 5'd0; |
adr_o <= {ppc[63:2],2'b00}; |
3468,6 → 3496,7
insnbuf <= syscall509; |
else |
insnbuf <= adr_o[2] ? dat_i[63:32] : dat_i[31:0]; |
$display("Fetched: %h", adr_o[2] ? dat_i[63:32] : dat_i[31:0]); |
cti_o <= 3'b000; // back to non-burst mode |
cyc_o <= 1'b0; |
stb_o <= 1'b0; |
/verilog/SimpleMMU.v
0,0 → 1,215
`timescale 1ns / 1ps |
//============================================================================= |
// __ |
// \\__/ o\ (C) 2011,2012 Robert Finch |
// \ __ / All rights reserved. |
// \/_// robfinch<remove>@opencores.org |
// || |
// |
// SimpleMMU.v |
// - maps 128MB into 512 256kB blocks |
// - supports 32 tasks per mmu |
// |
// This source file is free software: you can redistribute it and/or modify |
// it under the terms of the GNU Lesser General Public License as published |
// by the Free Software Foundation, either version 3 of the License, or |
// (at your option) any later version. |
// |
// This source file 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/>. |
// |
// |
// 20 block RAMs // 106 LUTs // 42 FF's // 190 MHz |
//============================================================================= |
// |
module SimpleMMU(num, rst_i, clk_i, dma_i, kernel_mode, cyc_i, stb_i, ack_o, we_i, adr_i, dat_i, dat_o, rclk, pc_i, pc_o, ea_i, ea_o); |
parameter pIOAddress = 24'hDC4000; |
input [2:0] num; // mmu number |
input rst_i; // core reset |
input clk_i; // clock |
input dma_i; // 1=DMA cycle is active |
input kernel_mode; // 1=processor is in kernel mode |
input cyc_i; // bus cycle active |
input stb_i; // data transfer strobe |
output ack_o; // data transfer acknowledge |
input we_i; // write enable |
input [23:0] adr_i; // I/O register address |
input [15:0] dat_i; // data input |
output [15:0] dat_o; // data output |
reg [15:0] dat_o; |
input rclk; // read clock (~clk) |
input [27:0] pc_i; // program counter / instruction pointer input |
output [27:0] pc_o; // mapped version of program counter |
reg [27:0] pc_o; |
input [27:0] ea_i; // effective data address input |
output [27:0] ea_o; // effective data address mapped |
reg [27:0] ea_o; |
|
reg map_enable; |
reg forceHi; |
reg su; // 1= system |
reg [3:0] fuse; |
reg ofuse3; |
reg [7:0] accessKey; |
reg [7:0] operateKey; |
reg [2:0] kvmmu; |
reg ack1, ack2; |
|
always @(posedge clk_i) |
begin |
ack1 <= cs; |
ack2 <= ack1 & cs; |
end |
assign ack_o = cs ? (we_i ? 1'b1 : ack2) : 1'b0; |
|
wire cs = cyc_i && stb_i && (adr_i[23:12]==pIOAddress[23:12]); |
wire [7:0] oKey = |
dma_i ? 8'd1 : |
su ? 8'd0 : |
operateKey |
; |
reg [13:0] rmrad; |
reg [13:0] rmra; |
reg [13:0] rmrb; |
wire [13:0] mwa = {accessKey[4:0],adr_i[9:1]}; |
wire [13:0] mrad = {accessKey[4:0],adr_i[9:1]}; |
wire [13:0] mra = {oKey[4:0],pc_i[26:18]}; |
wire [13:0] mrb = {oKey[4:0],ea_i[26:18]}; |
wire [9:0] mro0,mro1,mro2; |
|
always @(posedge clk_i) rmrad <= mrad; |
always @(posedge rclk) rmra <= mra; |
always @(posedge rclk) rmrb <= mrb; |
wire thisMMU = kvmmu==accessKey[7:5]; |
|
wire pe_stb; |
wire pe_km; |
edge_det u1 (.rst(rst_i), .clk(clk_i), .ce(1'b1), .i(stb_i), .pe(pe_stb), .ne(), .ee() ); |
edge_det u2 (.rst(rst_i), .clk(clk_i), .ce(1'b1), .i(kernel_mode), .pe(pe_km), .ne(), .ee() ); |
|
mapram u3 |
( |
.wclk(clk_i), |
.wr(cs & we_i & su & ~adr_i[10] & thisMMU), |
.wa(mwa), |
.i(dat_i[9:0]), |
.rclk(~clk_i), |
.ra0(mrad), |
.ra1(mra), |
.ra2(mrb), |
.o0(mro0), |
.o1(mro1), |
.o2(mro2) |
); |
|
always @(posedge clk_i) |
if (rst_i) begin |
map_enable <= 1'b0; |
kvmmu <= 3'd0; |
su <= 1'b1; |
fuse <= 4'hF; |
ofuse3 <= 1'b1; |
accessKey <= 8'h00; |
operateKey <= 8'h00; |
end |
else begin |
ofuse3 <= fuse[3]; |
if (!fuse[3] && !dma_i && pe_stb) |
fuse <= fuse - 4'd1; |
if (fuse[3] & !ofuse3) |
su <= 1'b0; |
else if (pe_km) |
su <= 1'b1; |
|
if (cs) begin |
if (we_i) begin |
if (su) begin |
casex(adr_i[10:0]) |
// 11'b0xxxxxxxxxx: if (thisMMU) map[mwa] <= dat_i[9:0]; |
11'h40x: if (oKey==8'h00 && (adr_i[2:0]==num)) |
kvmmu <= dat_i[2:0]; |
11'h412: fuse <= dat_i[2:0]; |
11'h414: accessKey <= dat_i[7:0]; |
11'h416: operateKey <= dat_i[7:0]; |
11'h418: map_enable <= dat_i[0]; |
endcase |
end |
end |
else begin |
if ((adr_i[2:0]==num) && oKey==8'd0 && adr_i[10:4]==7'b1000000) |
dat_o <= {5'd0,kvmmu}; |
else if (thisMMU) |
casex(adr_i[10:0]) |
11'b0xxxxxxxxxx: dat_o <= mro0; |
11'h410: dat_o <= su; |
11'h412: dat_o <= fuse; |
11'h414: dat_o <= accessKey; |
11'h416: dat_o <= operateKey; |
11'h418: dat_o <= map_enable; |
default: dat_o <= 16'h0000; |
endcase |
else |
dat_o <= 16'h0000; |
end |
end |
else |
dat_o <= 16'h0000; |
end |
|
always @(pc_i) pc_o[17:0] <= pc_i[17:0]; |
always @(ea_i) ea_o[17:0] <= ea_i[17:0]; |
|
always @(rmra or oKey or kvmmu or mro1 or cs or map_enable) |
begin |
if (!map_enable) |
pc_o[27:18] <= pc_i[27:18]; |
else if (kvmmu==oKey[7:5]) |
pc_o[27:18] <= mro1; |
else |
pc_o[27:18] <= 10'h000; |
end |
|
always @(rmrb or oKey or kvmmu or mro2 or cs or cyc_i or ea_i or map_enable) |
begin |
if (cyc_i|~map_enable) // I/O cycles are not mapped |
ea_o[27:18] <= ea_i[27:18]; |
else if (kvmmu==oKey[7:5]) |
ea_o[27:18] <= mro2; |
else |
ea_o[27:18] <= 10'h000; |
end |
|
endmodule |
|
module mapram(wclk, wr, wa, i, rclk, ra0, ra1, ra2, o0, o1, o2); |
input wclk; |
input wr; |
input [13:0] wa; |
input [9:0] i; |
input rclk; |
input [13:0] ra0; |
input [13:0] ra1; |
input [13:0] ra2; |
output [9:0] o0; |
output [9:0] o1; |
output [9:0] o2; |
|
reg [9:0] map [0:16383]; |
reg [13:0] rra0,rra1,rra2; |
|
always @(posedge wclk) |
if (wr) map[wa] <= i; |
always @(posedge rclk) rra0 <= ra0; |
always @(posedge rclk) rra1 <= ra1; |
always @(posedge rclk) rra2 <= ra2; |
|
assign o0 = map[rra0]; |
assign o1 = map[rra1]; |
assign o2 = map[rra2]; |
|
endmodule |
/verilog/Raptor64_tb2.v
0,0 → 1,903
module Raptor64_tb2(); |
parameter IDLE = 8'd1; |
parameter DOCMD = 8'd2; |
|
reg clk; |
reg rst; |
reg nmi; |
wire sys_iocyc; |
wire sys_cyc; |
wire sys_stb; |
wire sys_we; |
wire [7:0] sys_sel; |
wire [63:0] sys_adr; |
wire [63:0] sys_dbo; |
wire [63:0] sys_dbi; |
wire sys_ack; |
wire sys_err = 1'b0; |
reg [7:0] cnt; |
wire wr_empty = 1'b1; |
wire wr_full; |
reg [63:0] romout; |
wire stk_ack; |
wire scr_ack; |
wire br_ack; |
wire [63:0] br_dato; |
wire [63:0] stk_dato; |
wire [63:0] scr_dato; |
wire [15:0] tc_dato; |
wire [15:0] pic_dato; |
wire tc_ack; |
wire pic_ack; |
reg pulse1000Hz,pulse100Hz; |
wire [7:0] config_rec; |
reg [7:0] config_reco; |
//wire sm_ack; |
wire [7:0] sm_dato; |
wire [8:0] vecno; |
wire [2:0] cpu_cti; |
|
wire uart_ack = sys_iocyc && sys_stb && (sys_adr[23:8]==16'hDC_0A); |
wire rast_ack = sys_iocyc && sys_stb && (sys_adr[23:8]==16'hDA_01); |
wire AC97_ack = sys_iocyc && sys_stb && (sys_adr[23:8]==16'hDC_10); |
wire spr_ack = sys_iocyc && sys_stb && (sys_adr[23:16]==8'hD8); |
wire Led_ack = sys_iocyc && sys_stb && (sys_adr[23:8]==16'hDC_06); |
wire dt_ack = sys_iocyc && sys_stb && (sys_adr[23:8]==16'hDC_04); |
wire p100ack = sys_iocyc && sys_stb && (sys_adr[23:0]==24'hDCFFFC); |
wire p1000ack = sys_iocyc && sys_stb && (sys_adr[23:0]==24'hDCFFFD); |
wire config_rec_ack = sys_iocyc && sys_stb && sys_adr[23:3]==21'b1101_1100_1111_1111_1111_0; |
wire perr_ack = sys_iocyc && sys_stb && sys_adr[23:0]==24'hDCFFFE; |
wire tmp_ack = sys_iocyc && sys_stb && (sys_adr[23:8]==16'hDC03); |
wire sm_ack = sys_iocyc && sys_stb && (sys_adr[23:16]==8'hDB); |
wire mmu_ack = sys_iocyc && sys_stb && (sys_adr[23:12]==12'hDC4); |
|
//assign ram_ack = sys_cyc && sys_stb && (sys_adr[63:32]==32'd1); |
|
assign config_rec = 8'b0000_0111; |
|
always @(config_rec_ack) |
config_reco <= config_rec_ack ? config_rec : 8'd0; |
|
wire cs_ram = sys_cyc && sys_stb && (sys_adr[63:32]==32'd1); |
reg [63:0] sysram [0:16000]; |
always @(posedge clk) |
if (cs_ram & sys_we) begin |
$display("Wrote ram[%h]=%h", sys_adr, sys_dbo); |
sysram[sys_adr[15:3]] <= sys_dbo; |
end |
wire [63:0] ramo = cs_ram ? sysram[sys_adr[15:3]] : 64'd0; |
reg ack1,ack2,ack3,ack4,ack5,ack6,ack7,ack8; |
always @(posedge clk) |
begin |
ack1 <= cs_ram; |
ack2 <= ack1 & cs_ram; |
ack3 <= ack2 & cs_ram; |
ack4 <= ack3 & cs_ram; |
ack5 <= ack4 & cs_ram; |
ack6 <= ack5 & cs_ram; |
ack7 <= ack6 & cs_ram; |
ack8 <= ack7 & cs_ram; |
end |
wire ram_ack = cs_ram & ack8; |
|
assign sys_ack = br_ack|stk_ack|scr_ack|tc_ack|pic_ack|ram_ack|uart_ack|rast_ack| |
AC97_ack|spr_ack|Led_ack|dt_ack| |
p100ack|p1000ack|config_rec_ack|tmp_ack|perr_ack|sm_ack|mmu_ack; |
|
initial begin |
clk = 1; |
pulse1000Hz = 0; |
pulse100Hz = 0; |
rst = 0; |
nmi = 0; |
#100 rst = 1; |
#100 rst = 0; |
#800 nmi = 1; |
#100 nmi = 0; |
end |
|
always #20 clk = ~clk; // 25 MHz |
always #29930 pulse1000Hz = 1; |
always #130 pulse1000Hz = 0; |
always #299030 pulse100Hz = 1; |
always #130 pulse100Hz = 0; |
|
|
reg pulse1000HzB,pulse100HzB; |
always @(posedge clk) |
if (rst) begin |
pulse1000HzB <= 1'b0; |
pulse100HzB <= 1'b0; |
end |
else begin |
if (pulse1000Hz) |
pulse1000HzB <= 1'b1; |
else begin |
if (p1000ack) |
pulse1000HzB <= 1'b0; |
end |
if (pulse100Hz) |
pulse100HzB <= 1'b1; |
else begin |
if (p100ack) |
pulse100HzB <= 1'b0; |
end |
end |
|
sema_mem usm |
( |
.rst_i(rst), |
.clk_i(clk), |
.cyc_i(sys_iocyc), |
.stb_i(sys_stb), |
.ack_o(sm_ack), |
.we_i(sys_we), |
.adr_i(sys_adr[23:0]), |
.dat_i(sys_dbo[7:0]), |
.dat_o(sm_dato) |
); |
|
|
rtfTextController tc1 |
( |
.rst_i(rst), |
.clk_i(clk), |
.cyc_i(sys_iocyc), |
.stb_i(sys_stb), |
.ack_o(tc_ack), |
.we_i(sys_we), |
.sel_i(sys_sel[1:0]|sys_sel[3:2]|sys_sel[5:4]|sys_sel[7:6]), |
.adr_i(sys_adr), |
.dat_i(sys_dbo[15:0]), |
.dat_o(tc_dato), |
.lp(), |
.curpos(), |
.vclk(), |
.hsync(), |
.vsync(), |
.blank(), |
.border(), |
.rgbIn(), |
.rgbOut() |
); |
|
scratchmem u_sc |
( |
.clk_i(clk), |
.cyc_i(sys_cyc), |
.stb_i(sys_stb), |
.ack_o(scr_ack), |
.we_i(sys_we), |
.sel_i(sys_sel), |
.adr_i(sys_adr), |
.dat_i(sys_dbo), |
.dat_o(scr_dato) |
); |
|
stkmem u_stk |
( |
.clk_i(clk), |
.cyc_i(sys_cyc), |
.stb_i(sys_stb), |
.ack_o(stk_ack), |
.we_i(sys_we), |
.adr_i(sys_adr), |
.dat_i(sys_dbo), |
.dat_o(stk_dato) |
); |
|
bootrom u_br |
( |
.clk_i(clk), |
.cti_i(cpu_cti), |
.cyc_i(sys_cyc), |
.stb_i(sys_stb), |
.ack_o(br_ack), |
.adr_i(sys_adr), |
.dat_o(br_dato) |
); |
|
|
RaptorPIC u_pic |
( |
.rst_i(rst), // reset |
.clk_i(clk), // system clock |
.cyc_i(sys_iocyc), // cycle valid |
.stb_i(sys_stb), // strobe |
.ack_o(pic_ack), // transfer acknowledge |
.we_i(sys_we), // write |
.sel_i(sys_sel[1:0]|sys_sel[3:2]|sys_sel[5:4]|sys_sel[7:6]), // byte select |
.adr_i(sys_adr), // address |
.dat_i(sys_dbo[15:0]), |
.dat_o(pic_dato), |
.vol_o(), // volatile register selected |
.i1(), |
.i2(pulse1000HzB), |
.i3(pulse100HzB), |
.i4(), .i5(), .i6(), .i7(), |
.i8(), .i9(), .i10(), .i11(), .i12(), .i13(), .i14(), |
.i15(), |
.irqo(cpu_irq), // normally connected to the processor irq |
.nmii(nmi), // nmi input connected to nmi requester |
.nmio(cpu_nmi), // normally connected to the nmi of cpu |
.vecno(vecno) |
); |
|
|
|
reg [63:0] keybdout; |
always @(sys_adr) |
if (sys_adr==24'hDC_0000) begin |
$display ("keyboard=FF"); |
keybdout <= 64'hFFFF_FFFF_FFFF_FFFF; |
end |
else |
keybdout <= 64'd0; |
|
always @(sys_adr) |
case(sys_adr)// | 64'hFFFF_FFFF_FFFF_0000) |
64'hFFFFFFFFFFFFE800: romout <= 64'h000030000000000A; |
64'hFFFFFFFFFFFFE808: romout <= 64'h0BEFFFEFFF800000; |
64'hFFFFFFFFFFFFE810: romout <= 64'hFFE920C7FFFFFA66; |
64'hFFFFFFFFFFFFE818: romout <= 64'h0000000004031FFF; |
64'hFFFFFFFFFFFFE820: romout <= 64'h001050A3000000CE; |
64'hFFFFFFFFFFFFE828: romout <= 64'h1080600041462018; |
64'hFFFFFFFFFFFFE830: romout <= 64'h001058A300000020; |
64'hFFFFFFFFFFFFE838: romout <= 64'h1080400041662018; |
64'hFFFFFFFFFFFFE840: romout <= 64'h0002210804000416; |
64'hFFFFFFFFFFFFE848: romout <= 64'h0000000000DBE218; |
64'hFFFFFFFFFFFFE850: romout <= 64'hFFEBD10806000414; |
64'hFFFFFFFFFFFFE858: romout <= 64'h0C7FFFFFAE131FFF; |
64'hFFFFFFFFFFFFE860: romout <= 64'h0010618800000416; |
64'hFFFFFFFFFFFFE868: romout <= 64'h0A1FFFFE90062000; |
64'hFFFFFFFFFFFFE870: romout <= 64'hFFEF94E1FFFFFFFF; |
64'hFFFFFFFFFFFFE878: romout <= 64'h00802000AA831FFF; |
64'hFFFFFFFFFFFFE880: romout <= 64'h50C842F840000129; |
64'hFFFFFFFFFFFFE888: romout <= 64'h008400008A9285D9; |
64'hFFFFFFFFFFFFE890: romout <= 64'h72EA6008400009A9; |
64'hFFFFFFFFFFFFE898: romout <= 64'h00840000929287FB; |
64'hFFFFFFFFFFFFE8A0: romout <= 64'hFFF2440840000A29; |
64'hFFFFFFFFFFFFE8A8: romout <= 64'h2F80000002A33FFF; |
64'hFFFFFFFFFFFFE8B0: romout <= 64'h00000C3FBC000018; |
64'hFFFFFFFFFFFFE8B8: romout <= 64'h0A2FFFFE8F09FD00; |
64'hFFFFFFFFFFFFE8C0: romout <= 64'h0003210082000000; |
64'hFFFFFFFFFFFFE8C8: romout <= 64'h0C7FFFFFA58BE100; |
64'hFFFFFFFFFFFFE8D0: romout <= 64'hFFFE282884000001; |
64'hFFFFFFFFFFFFE8D8: romout <= 64'h27740000003BE007; |
64'hFFFFFFFFFFFFE8E0: romout <= 64'h000000DFBE000018; |
64'hFFFFFFFFFFFFE8E8: romout <= 64'h37800000000DE000; |
64'hFFFFFFFFFFFFE8F0: romout <= 64'h6F57206F6C6C6548; |
64'hFFFFFFFFFFFFE8F8: romout <= 64'h0000000021646C72; |
64'hFFFFFFFFFFFFE900: romout <= 64'h3436726F74706152; |
64'hFFFFFFFFFFFFE908: romout <= 64'h206D657473797320; |
64'hFFFFFFFFFFFFE910: romout <= 64'h676E697472617473; |
64'hFFFFFFFFFFFFE918: romout <= 64'h000000002E2E2E2E; |
64'hFFFFFFFFFFFFE920: romout <= 64'h703FC8A1FFFF8007; |
64'hFFFFFFFFFFFFE928: romout <= 64'h0DFBE0000009200F; |
64'hFFFFFFFFFFFFE930: romout <= 64'h0000003FBC000008; |
64'hFFFFFFFFFFFFE938: romout <= 64'h0A1FFDC0A0067E18; |
64'hFFFFFFFFFFFFE940: romout <= 64'h0000060046000001; |
64'hFFFFFFFFFFFFE948: romout <= 64'h2F8C000000814318; |
64'hFFFFFFFFFFFFE950: romout <= 64'h0000011F86000000; |
64'hFFFFFFFFFFFFE958: romout <= 64'h0DFBE00000880108; |
64'hFFFFFFFFFFFFE960: romout <= 64'h0000203FBC000010; |
64'hFFFFFFFFFFFFE968: romout <= 64'h19F8600000067E10; |
64'hFFFFFFFFFFFFE970: romout <= 64'h000004A3FFDC0A00; |
64'hFFFFFFFFFFFFE978: romout <= 64'h0508400004080310; |
64'hFFFFFFFFFFFFE980: romout <= 64'h000002F881FFFFA8; |
64'hFFFFFFFFFFFFE988: romout <= 64'h11F8600000090308; |
64'hFFFFFFFFFFFFE990: romout <= 64'h0000411F84000008; |
64'hFFFFFFFFFFFFE998: romout <= 64'h1800000045037EF8; |
64'hFFFFFFFFFFFFE9A0: romout <= 64'h0000058000000451; |
64'hFFFFFFFFFFFFE9A8: romout <= 64'h1800200041A28400; |
64'hFFFFFFFFFFFFE9B0: romout <= 64'h000060DFBE000000; |
64'hFFFFFFFFFFFFE9B8: romout <= 64'h27F000000070FEF0; |
64'hFFFFFFFFFFFFE9C0: romout <= 64'h00003D2802000450; |
64'hFFFFFFFFFFFFE9C8: romout <= 64'h0A30000044014108; |
64'hFFFFFFFFFFFFE9D0: romout <= 64'h700000E300000000; |
64'hFFFFFFFFFFFFE9D8: romout <= 64'h24801DC000282017; |
64'hFFFFFFFFFFFFE9E0: romout <= 64'h000005A8C2200010; |
64'hFFFFFFFFFFFFE9E8: romout <= 64'h0504200000F0A108; |
64'hFFFFFFFFFFFFE9F0: romout <= 64'h0011458002000450; |
64'hFFFFFFFFFFFFE9F8: romout <= 64'h2F8440001094A010; |
64'hFFFFFFFFFFFFEA00: romout <= 64'h00003C2884000001; |
64'hFFFFFFFFFFFFEA08: romout <= 64'h1800400045114210; |
64'hFFFFFFFFFFFFEA10: romout <= 64'h0000627700000007; |
64'hFFFFFFFFFFFFEA18: romout <= 64'h0DFBE0000000BEF0; |
64'hFFFFFFFFFFFFEA20: romout <= 64'h000001800200041A; |
64'hFFFFFFFFFFFFEA28: romout <= 64'h03FBC00001037EF8; |
64'hFFFFFFFFFFFFEA30: romout <= 64'h0011467F00000006; |
64'hFFFFFFFFFFFFEA38: romout <= 64'h128020004504A010; |
64'hFFFFFFFFFFFFEA40: romout <= 64'h000002F844000148; |
64'hFFFFFFFFFFFFEA48: romout <= 64'h1A8C410000528C00; |
64'hFFFFFFFFFFFFEA50: romout <= 64'h00003C2884000001; |
64'hFFFFFFFFFFFFEA58: romout <= 64'h1800400045114210; |
64'hFFFFFFFFFFFFEA60: romout <= 64'h0000427700000006; |
64'hFFFFFFFFFFFFEA68: romout <= 64'h0A1FFFFFFFF37EF8; |
64'hFFFFFFFFFFFFEA70: romout <= 64'h0000427700000006; |
64'hFFFFFFFFFFFFEA78: romout <= 64'h1280200045137EF8; |
64'hFFFFFFFFFFFFEA80: romout <= 64'h0002A12804000450; |
64'hFFFFFFFFFFFFEA88: romout <= 64'h0A100000001BE110; |
64'hFFFFFFFFFFFFEA90: romout <= 64'h400028DFBE000000; |
64'hFFFFFFFFFFFFEA98: romout <= 64'h0DFBE00000004108; |
64'hFFFFFFFFFFFFEAA0: romout <= 64'h0000083FBC000010; |
64'hFFFFFFFFFFFFEAA8: romout <= 64'h0A2FFDC00009FD00; |
64'hFFFFFFFFFFFFEAB0: romout <= 64'h0000060082000000; |
64'hFFFFFFFFFFFFEAB8: romout <= 64'h20080000002BE100; |
64'hFFFFFFFFFFFFEAC0: romout <= 64'h00106850420000FF; |
64'hFFFFFFFFFFFFEAC8: romout <= 64'h2F8800000C840010; |
64'hFFFFFFFFFFFFEAD0: romout <= 64'hFFED4AC04514000D; |
64'hFFFFFFFFFFFFEAD8: romout <= 64'h2774000000231FFF; |
64'hFFFFFFFFFFFFEAE0: romout <= 64'h000060DFBE000010; |
64'hFFFFFFFFFFFFEAE8: romout <= 64'h27F400000030FEF0; |
64'hFFFFFFFFFFFFEAF0: romout <= 64'h0000051802000400; |
64'hFFFFFFFFFFFFEAF8: romout <= 64'h1980200040008108; |
64'hFFFFFFFFFFFFEB00: romout <= 64'h000378A2FFD00000; |
64'hFFFFFFFFFFFFEB08: romout <= 64'h0284200000142208; |
64'hFFFFFFFFFFFFEB10: romout <= 64'hFC000188820000DE; |
64'hFFFFFFFFFFFFEB18: romout <= 64'h1180200040042007; |
64'hFFFFFFFFFFFFEB20: romout <= 64'h400100504200007F; |
64'hFFFFFFFFFFFFEB28: romout <= 64'h0C7FFFFFACEB2100; |
64'hFFFFFFFFFFFFEB30: romout <= 64'h0000627740000003; |
64'hFFFFFFFFFFFFEB38: romout <= 64'h03FBC00002037EF8; |
64'hFFFFFFFFFFFFEB40: romout <= 64'hFFED0A7F40000007; |
64'hFFFFFFFFFFFFEB48: romout <= 64'h0284201000031FFF; |
64'hFFFFFFFFFFFFEB50: romout <= 64'h0000050844000000; |
64'hFFFFFFFFFFFFEB58: romout <= 64'h188440000000A210; |
64'hFFFFFFFFFFFFEB60: romout <= 64'h0003211804000408; |
64'hFFFFFFFFFFFFEB68: romout <= 64'h10806000414BE110; |
64'hFFFFFFFFFFFFEB70: romout <= 64'h0010218886000000; |
64'hFFFFFFFFFFFFEB78: romout <= 64'h2774000000766008; |
64'hFFFFFFFFFFFFEB80: romout <= 64'h0000A0DFBE000020; |
64'hFFFFFFFFFFFFEB88: romout <= 64'h27F4000000F0FEF0; |
64'hFFFFFFFFFFFFEB90: romout <= 64'h000C00A100000554; |
64'hFFFFFFFFFFFFEB98: romout <= 64'h0104420001828800; |
64'hFFFFFFFFFFFFEBA0: romout <= 64'hA4A4A41004400009; |
64'hFFFFFFFFFFFFEBA8: romout <= 64'h0A300200000284A4; |
64'hFFFFFFFFFFFFEBB0: romout <= 64'h000000E300000001; |
64'hFFFFFFFFFFFFEBB8: romout <= 64'h028C600000464308; |
64'hFFFFFFFFFFFFEBC0: romout <= 64'h00003EF805FFFFAF; |
64'hFFFFFFFFFFFFEBC8: romout <= 64'h0DFBE0000289DD00; |
64'hFFFFFFFFFFFFEBD0: romout <= 64'h00003C3FBC000028; |
64'hFFFFFFFFFFFFEBD8: romout <= 64'h0A3FFDA00009FD00; |
64'hFFFFFFFFFFFFEBE0: romout <= 64'h00000908C2000000; |
64'hFFFFFFFFFFFFEBE8: romout <= 64'h0104420001842310; |
64'hFFFFFFFFFFFFEBF0: romout <= 64'h001050A100000020; |
64'hFFFFFFFFFFFFEBF8: romout <= 64'h0C7FFFFFB3242020; |
64'hFFFFFFFFFFFFEC00: romout <= 64'h000000A3FFD00000; |
64'hFFFFFFFFFFFFEC08: romout <= 64'h188C801000062308; |
64'hFFFFFFFFFFFFEC10: romout <= 64'hFFFEBC28C6000002; |
64'hFFFFFFFFFFFFEC18: romout <= 64'h2774000000FBE017; |
64'hFFFFFFFFFFFFEC20: romout <= 64'h0000A0DFBE000028; |
64'hFFFFFFFFFFFFEC28: romout <= 64'h27F4000000F0FEF0; |
64'hFFFFFFFFFFFFEC30: romout <= 64'h000000A3FFDA0000; |
64'hFFFFFFFFFFFFEC38: romout <= 64'h108C400000242308; |
64'hFFFFFFFFFFFFEC40: romout <= 64'h8000141044200018; |
64'hFFFFFFFFFFFFEC48: romout <= 64'h0A3FFD0000004208; |
64'hFFFFFFFFFFFFEC50: romout <= 64'h000001A8C2400001; |
64'hFFFFFFFFFFFFEC58: romout <= 64'h028C600000262320; |
64'hFFFFFFFFFFFFEC60: romout <= 64'h680002F805FFFF8F; |
64'hFFFFFFFFFFFFEC68: romout <= 64'h108C200000228FFF; |
64'hFFFFFFFFFFFFEC70: romout <= 64'hFFEC843842000001; |
64'hFFFFFFFFFFFFEC78: romout <= 64'h2774000000F31FFF; |
64'hFFFFFFFFFFFFEC80: romout <= 64'h000060DFBE000028; |
64'hFFFFFFFFFFFFEC88: romout <= 64'h27F000000070FEF0; |
64'hFFFFFFFFFFFFEC90: romout <= 64'h000000A3FFDA0000; |
64'hFFFFFFFFFFFFEC98: romout <= 64'h0108230001842310; |
64'hFFFFFFFFFFFFECA0: romout <= 64'h40000018C6080000; |
64'hFFFFFFFFFFFFECA8: romout <= 64'h0A1000000200A31F; |
64'hFFFFFFFFFFFFECB0: romout <= 64'h00000988C2000000; |
64'hFFFFFFFFFFFFECB8: romout <= 64'h2F80400000F0A318; |
64'hFFFFFFFFFFFFECC0: romout <= 64'h0000627700000007; |
64'hFFFFFFFFFFFFECC8: romout <= 64'h050420000FF37EF8; |
64'hFFFFFFFFFFFFECD0: romout <= 64'h60016AA040180041; |
64'hFFFFFFFFFFFFECD8: romout <= 64'h2B84018007AAC100; |
64'hFFFFFFFFFFFFECE0: romout <= 64'h000182A040080061; |
64'hFFFFFFFFFFFFECE8: romout <= 64'h058420001000C108; |
64'hFFFFFFFFFFFFECF0: romout <= 64'h0003FCDFBE000000; |
64'hFFFFFFFFFFFFECF8: romout <= 64'h2B84014001A14108; |
64'hFFFFFFFFFFFFED00: romout <= 64'h000000284200003C; |
64'hFFFFFFFFFFFFED08: romout <= 64'h1080200041637EF8; |
64'hFFFFFFFFFFFFED10: romout <= 64'h680000504200007F; |
64'hFFFFFFFFFFFFED18: romout <= 64'h208C400000028FFF; |
64'hFFFFFFFFFFFFED20: romout <= 64'h0010601082200018; |
64'hFFFFFFFFFFFFED28: romout <= 64'h0504200007F42008; |
64'hFFFFFFFFFFFFED30: romout <= 64'h0000581082200003; |
64'hFFFFFFFFFFFFED38: romout <= 64'h0188408000092310; |
64'hFFFFFFFFFFFFED40: romout <= 64'h0000002883D00000; |
64'hFFFFFFFFFFFFED48: romout <= 64'h2C84018000D37EF8; |
64'hFFFFFFFFFFFFED50: romout <= 64'h0000018800000418; |
64'hFFFFFFFFFFFFED58: romout <= 64'h2C84038009137EF8; |
64'hFFFFFFFFFFFFED60: romout <= 64'h0000003FBC000008; |
64'hFFFFFFFFFFFFED68: romout <= 64'h1080400041867E10; |
64'hFFFFFFFFFFFFED70: romout <= 64'h000006C080100038; |
64'hFFFFFFFFFFFFED78: romout <= 64'h188040004180A210; |
64'hFFFFFFFFFFFFED80: romout <= 64'h0000211F84000000; |
64'hFFFFFFFFFFFFED88: romout <= 64'h2C84034009037EF8; |
64'hFFFFFFFFFFFFED90: romout <= 64'h0000003FBC000008; |
64'hFFFFFFFFFFFFED98: romout <= 64'h1080400041667E10; |
64'hFFFFFFFFFFFFEDA0: romout <= 64'h000006C0BFE00000; |
64'hFFFFFFFFFFFFEDA8: romout <= 64'h188040004160E210; |
64'hFFFFFFFFFFFFEDB0: romout <= 64'hC0024EF801FFFE8A; |
64'hFFFFFFFFFFFFEDB8: romout <= 64'h03FBC000008B2100; |
64'hFFFFFFFFFFFFEDC0: romout <= 64'h0010619F84000000; |
64'hFFFFFFFFFFFFEDC8: romout <= 64'h2C0BFC0000042010; |
64'hFFFFFFFFFFFFEDD0: romout <= 64'h0010603884000001; |
64'hFFFFFFFFFFFFEDD8: romout <= 64'h2F801FFFD8A62010; |
64'hFFFFFFFFFFFFEDE0: romout <= 64'h000022C840280092; |
64'hFFFFFFFFFFFFEDE8: romout <= 64'h19F840000000FEF0; |
64'hFFFFFFFFFFFFEDF0: romout <= 64'h4000790804000416; |
64'hFFFFFFFFFFFFEDF8: romout <= 64'h02884000001B02FE; |
64'hFFFFFFFFFFFFEE00: romout <= 64'hFFF0298804000416; |
64'hFFFFFFFFFFFFEE08: romout <= 64'h2C840380094BE007; |
64'hFFFFFFFFFFFFEE10: romout <= 64'h0000003FBC000008; |
64'hFFFFFFFFFFFFEE18: romout <= 64'h1080400041867E10; |
64'hFFFFFFFFFFFFEE20: romout <= 64'h001062F880000088; |
64'hFFFFFFFFFFFFEE28: romout <= 64'h2F801FFFB0A62000; |
64'hFFFFFFFFFFFFEE30: romout <= 64'hFFEA298800000416; |
64'hFFFFFFFFFFFFEE38: romout <= 64'h03FBC000030BE007; |
64'hFFFFFFFFFFFFEE40: romout <= 64'h8002667F4000001F; |
64'hFFFFFFFFFFFFEE48: romout <= 64'h0C7FFFFFB42B2100; |
64'hFFFFFFFFFFFFEE50: romout <= 64'h0010601002300009; |
64'hFFFFFFFFFFFFEE58: romout <= 64'h2F8000001CA42008; |
64'hFFFFFFFFFFFFEE60: romout <= 64'h001062C840600008; |
64'hFFFFFFFFFFFFEE68: romout <= 64'h2F8800004C842010; |
64'hFFFFFFFFFFFFEE70: romout <= 64'h0010603884000001; |
64'hFFFFFFFFFFFFEE78: romout <= 64'h0C7FFFFFB4262010; |
64'hFFFFFFFFFFFFEE80: romout <= 64'h0010601002300009; |
64'hFFFFFFFFFFFFEE88: romout <= 64'h108C400000242008; |
64'hFFFFFFFFFFFFEE90: romout <= 64'h00000988C4000000; |
64'hFFFFFFFFFFFFEE98: romout <= 64'h028420000010A318; |
64'hFFFFFFFFFFFFEEA0: romout <= 64'h000000A4FFDA0000; |
64'hFFFFFFFFFFFFEEA8: romout <= 64'h2F84BFFFF4482428; |
64'hFFFFFFFFFFFFEEB0: romout <= 64'hFFFFF8A200000020; |
64'hFFFFFFFFFFFFEEB8: romout <= 64'h2F80000024A62317; |
64'hFFFFFFFFFFFFEEC0: romout <= 64'h000026C04034000A; |
64'hFFFFFFFFFFFFEEC8: romout <= 64'h0C7FFFFFB4204009; |
64'hFFFFFFFFFFFFEED0: romout <= 64'h4000241002300009; |
64'hFFFFFFFFFFFFEED8: romout <= 64'h0C7FFFFFB3204020; |
64'hFFFFFFFFFFFFEEE0: romout <= 64'hFFEF058803D00000; |
64'hFFFFFFFFFFFFEEE8: romout <= 64'h2774000001F31FFF; |
64'hFFFFFFFFFFFFEEF0: romout <= 64'hFFEF44DFBE000030; |
64'hFFFFFFFFFFFFEEF8: romout <= 64'h2774000001F31FFF; |
64'hFFFFFFFFFFFFEF00: romout <= 64'h000080DFBE000030; |
64'hFFFFFFFFFFFFEF08: romout <= 64'h27F400000070FEF0; |
64'hFFFFFFFFFFFFEF10: romout <= 64'h000058A3FFDA0000; |
64'hFFFFFFFFFFFFEF18: romout <= 64'h0284200000182308; |
64'hFFFFFFFFFFFFEF20: romout <= 64'h00106248C2000016; |
64'hFFFFFFFFFFFFEF28: romout <= 64'h0284200000142008; |
64'hFFFFFFFFFFFFEF30: romout <= 64'h0000018802000418; |
64'hFFFFFFFFFFFFEF38: romout <= 64'h2F8440002C682310; |
64'hFFFFFFFFFFFFEF40: romout <= 64'h0010598800000418; |
64'hFFFFFFFFFFFFEF48: romout <= 64'h0284200000142008; |
64'hFFFFFFFFFFFFEF50: romout <= 64'h6800018802000416; |
64'hFFFFFFFFFFFFEF58: romout <= 64'h208C400000228FFF; |
64'hFFFFFFFFFFFFEF60: romout <= 64'h000006F844000146; |
64'hFFFFFFFFFFFFEF68: romout <= 64'h188040004160E210; |
64'hFFFFFFFFFFFFEF70: romout <= 64'h00005908C4000000; |
64'hFFFFFFFFFFFFEF78: romout <= 64'h0104410000542308; |
64'hFFFFFFFFFFFFEF80: romout <= 64'hFFEC2588C2000016; |
64'hFFFFFFFFFFFFEF88: romout <= 64'h2774000000731FFF; |
64'hFFFFFFFFFFFFEF90: romout <= 64'h000060DFBE000020; |
64'hFFFFFFFFFFFFEF98: romout <= 64'h27F400000030DEF0; |
64'hFFFFFFFFFFFFEFA0: romout <= 64'h0000001040200009; |
64'hFFFFFFFFFFFFEFA8: romout <= 64'h028840000014A208; |
64'hFFFFFFFFFFFFEFB0: romout <= 64'hFFED4AF840000088; |
64'hFFFFFFFFFFFFEFB8: romout <= 64'h2F801FFFFAA31FFF; |
64'hFFFFFFFFFFFFEFC0: romout <= 64'h0000627740000003; |
64'hFFFFFFFFFFFFEFC8: romout <= 64'h03FBC00000837EF8; |
64'hFFFFFFFFFFFFEFD0: romout <= 64'hFFEF959FBE000000; |
64'hFFFFFFFFFFFFEFD8: romout <= 64'h11FBE00000031FFF; |
64'hFFFFFFFFFFFFEFE0: romout <= 64'h0000402FBC000008; |
64'hFFFFFFFFFFFFEFE8: romout <= 64'h19F820000000DEF0; |
64'hFFFFFFFFFFFFEFF0: romout <= 64'h0000359FBE000008; |
64'hFFFFFFFFFFFFEFF8: romout <= 64'h0C7FFFFFB5228400; |
64'hFFFFFFFFFFFFF000: romout <= 64'hFFED48A10000000A; |
64'hFFFFFFFFFFFFF008: romout <= 64'h11F8200000031FFF; |
64'hFFFFFFFFFFFFF010: romout <= 64'h0000411FBE000008; |
64'hFFFFFFFFFFFFF018: romout <= 64'h037BC00001037EF8; |
64'hFFFFFFFFFFFFF020: romout <= 64'h0000019FBE000008; |
64'hFFFFFFFFFFFFF028: romout <= 64'h0504200000F67E08; |
64'hFFFFFFFFFFFFF030: romout <= 64'h4000E42042000030; |
64'hFFFFFFFFFFFFF038: romout <= 64'h02042000007AC100; |
64'hFFFFFFFFFFFFF040: romout <= 64'h000000C7FFFFFB52; |
64'hFFFFFFFFFFFFF048: romout <= 64'h11FBE00000847E08; |
64'hFFFFFFFFFFFFF050: romout <= 64'h000040DFBE000010; |
64'hFFFFFFFFFFFFF058: romout <= 64'h27F400000010FEF0; |
64'hFFFFFFFFFFFFF060: romout <= 64'hFFF0181842200004; |
64'hFFFFFFFFFFFFF068: romout <= 64'h0184220000231FFF; |
64'hFFFFFFFFFFFFF070: romout <= 64'h000004C7FFFFFC06; |
64'hFFFFFFFFFFFFF078: romout <= 64'h0DFBE0000109DD00; |
64'hFFFFFFFFFFFFF080: romout <= 64'h0000143FBC000018; |
64'hFFFFFFFFFFFFF088: romout <= 64'h0A3000000079FD00; |
64'hFFFFFFFFFFFFF090: romout <= 64'hFFF0541842400002; |
64'hFFFFFFFFFFFFF098: romout <= 64'h2F80600000F31FFF; |
64'hFFFFFFFFFFFFF0A0: romout <= 64'h0000627740000005; |
64'hFFFFFFFFFFFFF0A8: romout <= 64'h0A10000003A37EF8; |
64'hFFFFFFFFFFFFF0B0: romout <= 64'h400024C7FFFFFB52; |
64'hFFFFFFFFFFFFF0B8: romout <= 64'h0C7FFFFFC2004200; |
64'hFFFFFFFFFFFFF0C0: romout <= 64'h000080A300000007; |
64'hFFFFFFFFFFFFF0C8: romout <= 64'h0C7FFFFFB5228400; |
64'hFFFFFFFFFFFFF0D0: romout <= 64'hFFF0550082000000; |
64'hFFFFFFFFFFFFF0D8: romout <= 64'h0288400000131FFF; |
64'hFFFFFFFFFFFFF0E0: romout <= 64'hFFEFE6F807FFFF2F; |
64'hFFFFFFFFFFFFF0E8: romout <= 64'h03FBC00003033FFF; |
64'hFFFFFFFFFFFFF0F0: romout <= 64'h00002A7F000000FC; |
64'hFFFFFFFFFFFFF0F8: romout <= 64'h0A80000001328800; |
64'hFFFFFFFFFFFFF100: romout <= 64'h800000104430001C; |
64'hFFFFFFFFFFFFF108: romout <= 64'h0194FE000000631F; |
64'hFFFFFFFFFFFFF110: romout <= 64'h0000241908200001; |
64'hFFFFFFFFFFFFF118: romout <= 64'h0194A20000104439; |
64'hFFFFFFFFFFFFF120: romout <= 64'h0000001146500009; |
64'hFFFFFFFFFFFFF128: romout <= 64'h2F811FFFF0F1C108; |
64'hFFFFFFFFFFFFF130: romout <= 64'h0000001909800001; |
64'hFFFFFFFFFFFFF138: romout <= 64'h0110C40000906532; |
64'hFFFFFFFFFFFFF140: romout <= 64'h400024194B800001; |
64'hFFFFFFFFFFFFF148: romout <= 64'h0100A20000904020; |
64'hFFFFFFFFFFFFF150: romout <= 64'h0000C277000000FC; |
64'hFFFFFFFFFFFFF158: romout <= 64'h03FBC00002037EF8; |
64'hFFFFFFFFFFFFF160: romout <= 64'h00003E7F0000009C; |
64'hFFFFFFFFFFFFF168: romout <= 64'h0504400000F2A000; |
64'hFFFFFFFFFFFFF170: romout <= 64'h0000005884000030; |
64'hFFFFFFFFFFFFF178: romout <= 64'h0190840000106217; |
64'hFFFFFFFFFFFFF180: romout <= 64'h00002418CBC00000; |
64'hFFFFFFFFFFFFF188: romout <= 64'h018C640000104429; |
64'hFFFFFFFFFFFFF190: romout <= 64'h80000410C4300009; |
64'hFFFFFFFFFFFFF198: romout <= 64'h2F811FFFECF06108; |
64'hFFFFFFFFFFFFF1A0: romout <= 64'h8000241008100009; |
64'hFFFFFFFFFFFFF1A8: romout <= 64'h2770000009C04018; |
64'hFFFFFFFFFFFFF1B0: romout <= 64'h0000E0DFBE000020; |
64'hFFFFFFFFFFFFF1B8: romout <= 64'h27F400007C40FEF0; |
64'hFFFFFFFFFFFFF1C0: romout <= 64'hFFF0E81004B00009; |
64'hFFFFFFFFFFFFF1C8: romout <= 64'h01004A0000931FFF; |
64'hFFFFFFFFFFFFF1D0: romout <= 64'h000004C7FFFFFC56; |
64'hFFFFFFFFFFFFF1D8: romout <= 64'h0A8000000072A400; |
64'hFFFFFFFFFFFFF1E0: romout <= 64'h0000001A4E180000; |
64'hFFFFFFFFFFFFF1E8: romout <= 64'h029CE0000040A738; |
64'hFFFFFFFFFFFFF1F0: romout <= 64'hC0004050460000FF; |
64'hFFFFFFFFFFFFF1F8: romout <= 64'h018424000016A758; |
64'hFFFFFFFFFFFFF200: romout <= 64'h400026F811FFFF0F; |
64'hFFFFFFFFFFFFF208: romout <= 64'h2F813FFFECF04010; |
64'hFFFFFFFFFFFFF210: romout <= 64'hFFF1581014100009; |
64'hFFFFFFFFFFFFF218: romout <= 64'h0A80000000331FFF; |
64'hFFFFFFFFFFFFF220: romout <= 64'hC0004050460000FF; |
64'hFFFFFFFFFFFFF228: romout <= 64'h018424000016A858; |
64'hFFFFFFFFFFFFF230: romout <= 64'h000052F811FFFF8F; |
64'hFFFFFFFFFFFFF238: romout <= 64'h277400007C460B00; |
64'hFFFFFFFFFFFFF240: romout <= 64'hFFBFE0DFBE000038; |
64'hFFFFFFFFFFFFF248: romout <= 64'h1800000041A2FBFF; |
64'hFFFFFFFFFFFFF250: romout <= 64'h000090C7FFFFFBF9; |
64'hFFFFFFFFFFFFF258: romout <= 64'h0C7FFFFFB5228400; |
64'hFFFFFFFFFFFFF260: romout <= 64'h0FFFFCC7FFFFFA8A; |
64'hFFFFFFFFFFFFF268: romout <= 64'h2C04018000DB0100; |
64'hFFFFFFFFFFFFF270: romout <= 64'hFFFE28C7FFFFFB52; |
64'hFFFFFFFFFFFFF278: romout <= 64'h18800000418BE007; |
64'hFFFFFFFFFFFFF280: romout <= 64'hC00024C7FFFFFB42; |
64'hFFFFFFFFFFFFF288: romout <= 64'h108C200000004100; |
64'hFFFFFFFFFFFFF290: romout <= 64'hFFECF428C6000002; |
64'hFFFFFFFFFFFFF298: romout <= 64'h2C84020002431FFF; |
64'hFFFFFFFFFFFFF2A0: romout <= 64'h00000908C2000000; |
64'hFFFFFFFFFFFFF2A8: romout <= 64'h0C7FFFFFB3D0A318; |
64'hFFFFFFFFFFFFF2B0: romout <= 64'h000112C04130003A; |
64'hFFFFFFFFFFFFF2B8: romout <= 64'h2C075500042B0106; |
64'hFFFFFFFFFFFFF2C0: romout <= 64'h800132C04154004A; |
64'hFFFFFFFFFFFFF2C8: romout <= 64'h2C04050003FB0109; |
64'hFFFFFFFFFFFFF2D0: romout <= 64'hFFEEAAC040080043; |
64'hFFFFFFFFFFFFF2D8: romout <= 64'h108C2000000BE007; |
64'hFFFFFFFFFFFFF2E0: romout <= 64'hFFECF428C6000002; |
64'hFFFFFFFFFFFFF2E8: romout <= 64'h2C87F64004C31FFF; |
64'hFFFFFFFFFFFFF2F0: romout <= 64'h00000908C2000000; |
64'hFFFFFFFFFFFFF2F8: romout <= 64'h0C7FFFFFB3D0A318; |
64'hFFFFFFFFFFFFF300: romout <= 64'hFFEBD2C87F440053; |
64'hFFFFFFFFFFFFF308: romout <= 64'h2F801FFFA2A31FFF; |
64'hFFFFFFFFFFFFF310: romout <= 64'hFFEF94A1FFFFF320; |
64'hFFFFFFFFFFFFF318: romout <= 64'h2F801FFF9AA31FFF; |
64'hFFFFFFFFFFFFF320: romout <= 64'h70736944203D203F; |
64'hFFFFFFFFFFFFF328: romout <= 64'h706C65682079616C; |
64'hFFFFFFFFFFFFF330: romout <= 64'h203D20534C430A0D; |
64'hFFFFFFFFFFFFF338: romout <= 64'h6373207261656C63; |
64'hFFFFFFFFFFFFF340: romout <= 64'h203A0A0D6E656572; |
64'hFFFFFFFFFFFFF348: romout <= 64'h6D2074696445203D; |
64'hFFFFFFFFFFFFF350: romout <= 64'h79622079726F6D65; |
64'hFFFFFFFFFFFFF358: romout <= 64'h3D204C0A0D736574; |
64'hFFFFFFFFFFFFF360: romout <= 64'h31532064616F4C20; |
64'hFFFFFFFFFFFFF368: romout <= 64'h0A0D656C69662039; |
64'hFFFFFFFFFFFFF370: romout <= 64'h706D7544203D2044; |
64'hFFFFFFFFFFFFF378: romout <= 64'h0D79726F6D656D20; |
64'hFFFFFFFFFFFFF380: romout <= 64'h617473203D20420A; |
64'hFFFFFFFFFFFFF388: romout <= 64'h20796E6974207472; |
64'hFFFFFFFFFFFFF390: romout <= 64'h4A0A0D6369736162; |
64'hFFFFFFFFFFFFF398: romout <= 64'h20706D754A203D20; |
64'hFFFFFFFFFFFFF3A0: romout <= 64'h0D65646F63206F74; |
64'hFFFFFFFFFFFFF3A8: romout <= 64'hFFFFFFFFFFFF000A; |
64'hFFFFFFFFFFFFF3B0: romout <= 64'h0000003FBC000008; |
64'hFFFFFFFFFFFFF3B8: romout <= 64'h108C200000067EF8; |
64'hFFFFFFFFFFFFF3C0: romout <= 64'hFFECF428C6000002; |
64'hFFFFFFFFFFFFF3C8: romout <= 64'h2C07FF0002031FFF; |
64'hFFFFFFFFFFFFF3D0: romout <= 64'h00000038C6000002; |
64'hFFFFFFFFFFFFF3D8: romout <= 64'h0DFBE00000847EF8; |
64'hFFFFFFFFFFFFF3E0: romout <= 64'hFFF474C7FFFFFCEC; |
64'hFFFFFFFFFFFFF3E8: romout <= 64'h0104050000931FFF; |
64'hFFFFFFFFFFFFF3F0: romout <= 64'hFFF3B0A400000007; |
64'hFFFFFFFFFFFFF3F8: romout <= 64'h0C7FFFFFD1D31FFF; |
64'hFFFFFFFFFFFFF400: romout <= 64'h0000058142000000; |
64'hFFFFFFFFFFFFF408: romout <= 64'h2F809FFFFAF0A528; |
64'hFFFFFFFFFFFFF410: romout <= 64'hFFF3B2F801FFF1AA; |
64'hFFFFFFFFFFFFF418: romout <= 64'h0C7FFFFFD1D31FFF; |
64'hFFFFFFFFFFFFF420: romout <= 64'h0000001040300009; |
64'hFFFFFFFFFFFFF428: romout <= 64'h2F801FFF12A343F8; |
64'hFFFFFFFFFFFFF430: romout <= 64'hFFF474C7FFFFFCEC; |
64'hFFFFFFFFFFFFF438: romout <= 64'h0104020000931FFF; |
64'hFFFFFFFFFFFFF440: romout <= 64'hFFF0A8C7FFFFFBF9; |
64'hFFFFFFFFFFFFF448: romout <= 64'h0C7FFFFFC2A31FFF; |
64'hFFFFFFFFFFFFF450: romout <= 64'hFFF0A8C7FFFFFC2A; |
64'hFFFFFFFFFFFFF458: romout <= 64'h0C7FFFFFC2A31FFF; |
64'hFFFFFFFFFFFFF460: romout <= 64'hFFF0A8C7FFFFFC2A; |
64'hFFFFFFFFFFFFF468: romout <= 64'h0C7FFFFFC2A31FFF; |
64'hFFFFFFFFFFFFF470: romout <= 64'h000062F801FFEEAA; |
64'hFFFFFFFFFFFFF478: romout <= 64'h27F4000000A0FEF0; |
64'hFFFFFFFFFFFFF480: romout <= 64'h00003CA200000000; |
64'hFFFFFFFFFFFFF488: romout <= 64'h108C200000029000; |
64'hFFFFFFFFFFFFF490: romout <= 64'hFFECF428C6000002; |
64'hFFFFFFFFFFFFF498: romout <= 64'h0C7FFFFFD3231FFF; |
64'hFFFFFFFFFFFFF4A0: romout <= 64'h800002C0401BFFFF; |
64'hFFFFFFFFFFFFF4A8: romout <= 64'h0504200000F06210; |
64'hFFFFFFFFFFFFF4B0: romout <= 64'hFFFB3C1082200009; |
64'hFFFFFFFFFFFFF4B8: romout <= 64'h01080100009BE027; |
64'hFFFFFFFFFFFFF4C0: romout <= 64'h000062774000000A; |
64'hFFFFFFFFFFFFF4C8: romout <= 64'h2A04054003037EF8; |
64'hFFFFFFFFFFFFF4D0: romout <= 64'h0000C2B840100039; |
64'hFFFFFFFFFFFFF4D8: romout <= 64'h0DFBE0000000E108; |
64'hFFFFFFFFFFFFF4E0: romout <= 64'h60011AA040340041; |
64'hFFFFFFFFFFFFF4E8: romout <= 64'h03842000041AE100; |
64'hFFFFFFFFFFFFF4F0: romout <= 64'h000000284200000A; |
64'hFFFFFFFFFFFFF4F8: romout <= 64'h2A04024006137EF8; |
64'hFFFFFFFFFFFFF500: romout <= 64'h000186B840140066; |
64'hFFFFFFFFFFFFF508: romout <= 64'h0284200000A0E108; |
64'hFFFFFFFFFFFFF510: romout <= 64'hFFFFFCDFBE000000; |
64'hFFFFFFFFFFFFF518: romout <= 64'h0DFBE000000287FF; |
64'hFFFFFFFFFFFFF520: romout <= 64'hFFF782F80000008A; |
64'hFFFFFFFFFFFFF528: romout <= 64'h2C84004000A31FFF; |
64'hFFFFFFFFFFFFF530: romout <= 64'h500068C7FFFFFDE0; |
64'hFFFFFFFFFFFFF538: romout <= 64'h2C87FF40053B01F4; |
64'hFFFFFFFFFFFFF540: romout <= 64'h9000C0C7FFFFFDE0; |
64'hFFFFFFFFFFFFF548: romout <= 64'h2987FE40039A01FF; |
64'hFFFFFFFFFFFFF550: romout <= 64'hFFF7801040400009; |
64'hFFFFFFFFFFFFF558: romout <= 64'h0C7FFFFFD3231FFF; |
64'hFFFFFFFFFFFFF560: romout <= 64'hFFF7801040200009; |
64'hFFFFFFFFFFFFF568: romout <= 64'h0C7FFFFFD3231FFF; |
64'hFFFFFFFFFFFFF570: romout <= 64'h8000241884200000; |
64'hFFFFFFFFFFFFF578: romout <= 64'h0108230000904208; |
64'hFFFFFFFFFFFFF580: romout <= 64'h9000C6C13FA40030; |
64'hFFFFFFFFFFFFF588: romout <= 64'h2C100B00032B0402; |
64'hFFFFFFFFFFFFF590: romout <= 64'h5000D6C100A80033; |
64'hFFFFFFFFFFFFF598: romout <= 64'h2C100B40037B04FE; |
64'hFFFFFFFFFFFFF5A0: romout <= 64'h1000E6C100B40038; |
64'hFFFFFFFFFFFFF5A8: romout <= 64'h2F801FFFC2AB0403; |
64'hFFFFFFFFFFFFF5B0: romout <= 64'h00000450C60000FF; |
64'hFFFFFFFFFFFFF5B8: romout <= 64'h0C7FFFFFDE00E318; |
64'hFFFFFFFFFFFFF5C0: romout <= 64'h800000C7FFFFFD32; |
64'hFFFFFFFFFFFFF5C8: romout <= 64'h0108220000906210; |
64'hFFFFFFFFFFFFF5D0: romout <= 64'hFFF4C8C7FFFFFDE0; |
64'hFFFFFFFFFFFFF5D8: romout <= 64'h0188420000031FFF; |
64'hFFFFFFFFFFFFF5E0: romout <= 64'h0000001082200009; |
64'hFFFFFFFFFFFFF5E8: romout <= 64'h0294A00000160510; |
64'hFFFFFFFFFFFFF5F0: romout <= 64'hFFF782F807FFFE4F; |
64'hFFFFFFFFFFFFF5F8: romout <= 64'h0C7FFFFFD3231FFF; |
64'hFFFFFFFFFFFFF600: romout <= 64'h8000241884200000; |
64'hFFFFFFFFFFFFF608: romout <= 64'h0C7FFFFFDE004208; |
64'hFFFFFFFFFFFFF610: romout <= 64'h800000C7FFFFFD32; |
64'hFFFFFFFFFFFFF618: romout <= 64'h0108220000906210; |
64'hFFFFFFFFFFFFF620: romout <= 64'hFFF676F801FFF82A; |
64'hFFFFFFFFFFFFF628: romout <= 64'h2F801FFFC8A31FFF; |
64'hFFFFFFFFFFFFF630: romout <= 64'hFFF028C7FFFFFDA5; |
64'hFFFFFFFFFFFFF638: romout <= 64'h0C7FFFFFDADBE007; |
64'hFFFFFFFFFFFFF640: romout <= 64'hFFF6B6F801FFFB8A; |
64'hFFFFFFFFFFFFF648: romout <= 64'h1980A00000031FFF; |
64'hFFFFFFFFFFFFF650: romout <= 64'hFFF696F801FFDFAA; |
64'hFFFFFFFFFFFFF658: romout <= 64'h1980A00000031FFF; |
64'hFFFFFFFFFFFFF660: romout <= 64'hFFF676F801FFDF2A; |
64'hFFFFFFFFFFFFF668: romout <= 64'h1980A00000031FFF; |
64'hFFFFFFFFFFFFF670: romout <= 64'h000022F801FFDEAA; |
64'hFFFFFFFFFFFFF678: romout <= 64'h19FBE0000000FEF0; |
64'hFFFFFFFFFFFFF680: romout <= 64'hFFF4C8C7FFFFFDE0; |
64'hFFFFFFFFFFFFF688: romout <= 64'h0104020000931FFF; |
64'hFFFFFFFFFFFFF690: romout <= 64'h000022F8000004AA; |
64'hFFFFFFFFFFFFF698: romout <= 64'h19FBE0000000FEF0; |
64'hFFFFFFFFFFFFF6A0: romout <= 64'hFFF4C8C7FFFFFDE0; |
64'hFFFFFFFFFFFFF6A8: romout <= 64'h0104020000931FFF; |
64'hFFFFFFFFFFFFF6B0: romout <= 64'h000022F80000024A; |
64'hFFFFFFFFFFFFF6B8: romout <= 64'h19FBE0000000FEF0; |
64'hFFFFFFFFFFFFF6C0: romout <= 64'hFFF4C8C7FFFFFDE0; |
64'hFFFFFFFFFFFFF6C8: romout <= 64'h0104020000931FFF; |
64'hFFFFFFFFFFFFF6D0: romout <= 64'hFFF4C8C7FFFFFDE0; |
64'hFFFFFFFFFFFFF6D8: romout <= 64'h0188420000031FFF; |
64'hFFFFFFFFFFFFF6E0: romout <= 64'hFFF7801044200009; |
64'hFFFFFFFFFFFFF6E8: romout <= 64'h0C7FFFFFD3231FFF; |
64'hFFFFFFFFFFFFF6F0: romout <= 64'h8000241884200000; |
64'hFFFFFFFFFFFFF6F8: romout <= 64'h0C7FFFFFDE004208; |
64'hFFFFFFFFFFFFF700: romout <= 64'h800000C7FFFFFD32; |
64'hFFFFFFFFFFFFF708: romout <= 64'h0108220000906210; |
64'hFFFFFFFFFFFFF710: romout <= 64'hFFF4C8C7FFFFFDE0; |
64'hFFFFFFFFFFFFF718: romout <= 64'h0188420000031FFF; |
64'hFFFFFFFFFFFFF720: romout <= 64'hFFF7801082200009; |
64'hFFFFFFFFFFFFF728: romout <= 64'h0C7FFFFFD3231FFF; |
64'hFFFFFFFFFFFFF730: romout <= 64'h8000241884200000; |
64'hFFFFFFFFFFFFF738: romout <= 64'h0C7FFFFFDE004208; |
64'hFFFFFFFFFFFFF740: romout <= 64'h800000C7FFFFFD32; |
64'hFFFFFFFFFFFFF748: romout <= 64'h0108220000906210; |
64'hFFFFFFFFFFFFF750: romout <= 64'hFFF4C8C7FFFFFDE0; |
64'hFFFFFFFFFFFFF758: romout <= 64'h0188420000031FFF; |
64'hFFFFFFFFFFFFF760: romout <= 64'h0000281082200009; |
64'hFFFFFFFFFFFFF768: romout <= 64'h0108050000904421; |
64'hFFFFFFFFFFFFF770: romout <= 64'h0000211FBE000000; |
64'hFFFFFFFFFFFFF778: romout <= 64'h0DFBE0000000BEF0; |
64'hFFFFFFFFFFFFF780: romout <= 64'h0000003FBC000008; |
64'hFFFFFFFFFFFFF788: romout <= 64'h0C7FFFFFA9E67EF8; |
64'hFFFFFFFFFFFFF790: romout <= 64'hFFEA2AF841FF8D88; |
64'hFFFFFFFFFFFFF798: romout <= 64'h2C07AB4000031FFF; |
64'hFFFFFFFFFFFFF7A0: romout <= 64'hFFFD20C7FFFFFDEE; |
64'hFFFFFFFFFFFFF7A8: romout <= 64'h11FBE000000BE107; |
64'hFFFFFFFFFFFFF7B0: romout <= 64'h0000002FBC000008; |
64'hFFFFFFFFFFFFF7B8: romout <= 64'h20003DC0A0137EF8; |
64'hFFFFFFFFFFFFF7C0: romout <= 64'h0002A05042000001; |
64'hFFFFFFFFFFFFF7C8: romout <= 64'h20003DC0A00BE100; |
64'hFFFFFFFFFFFFF7D0: romout <= 64'h000000504200007F; |
64'hFFFFFFFFFFFFF7D8: romout <= 64'h0CFFFFFFC9137EF8; |
64'hFFFFFFFFFFFFF7E0: romout <= 64'h726F747061520A0D; |
64'hFFFFFFFFFFFFF7E8: romout <= 64'h20796E6954203436; |
64'hFFFFFFFFFFFFF7F0: romout <= 64'h3176204349534142; |
64'hFFFFFFFFFFFFF7F8: romout <= 64'h202943280A0D302E; |
64'hFFFFFFFFFFFFF800: romout <= 64'h6F52202032313032; |
64'hFFFFFFFFFFFFF808: romout <= 64'h6E69462074726562; |
64'hFFFFFFFFFFFFF810: romout <= 64'h0A0D000A0A0D6863; |
64'hFFFFFFFFFFFFF818: romout <= 64'h616857000A0D4B4F; |
64'hFFFFFFFFFFFFF820: romout <= 64'h726F53000A0D3F74; |
64'hFFFFFFFFFFFFF828: romout <= 64'h6F43000A0D2E7972; |
64'hFFFFFFFFFFFFF830: romout <= 64'h4C4620746361706D; |
64'hFFFFFFFFFFFFF838: romout <= 64'h6461657220485341; |
64'hFFFFFFFFFFFFF840: romout <= 64'h0A0D726F72726520; |
64'hFFFFFFFFFFFFF848: romout <= 64'h207265626D754E00; |
64'hFFFFFFFFFFFFF850: romout <= 64'h62206F6F74207369; |
64'hFFFFFFFFFFFFF858: romout <= 64'h766944000A0D6769; |
64'hFFFFFFFFFFFFF860: romout <= 64'h7962206E6F697369; |
64'hFFFFFFFFFFFFF868: romout <= 64'h000A0D6F72657A20; |
64'hFFFFFFFFFFFFF870: romout <= 64'h7620666F2074754F; |
64'hFFFFFFFFFFFFF878: romout <= 64'h20656C6261697261; |
64'hFFFFFFFFFFFFF880: romout <= 64'h000A0D6563617073; |
64'hFFFFFFFFFFFFF888: romout <= 64'h6620736574796220; |
64'hFFFFFFFFFFFFF890: romout <= 64'h0A0D000A0D656572; |
64'hFFFFFFFFFFFFF898: romout <= 64'h000A0D7964616552; |
64'hFFFFFFFFFFFFF8A0: romout <= 64'h6E69746365707845; |
64'hFFFFFFFFFFFFF8A8: romout <= 64'h6D6D6F6320612067; |
64'hFFFFFFFFFFFFF8B0: romout <= 64'h656E694C000A0D61; |
64'hFFFFFFFFFFFFF8B8: romout <= 64'h207265626D756E20; |
64'hFFFFFFFFFFFFF8C0: romout <= 64'h0D676962206F6F74; |
64'hFFFFFFFFFFFFF8C8: romout <= 64'h746365707845000A; |
64'hFFFFFFFFFFFFF8D0: romout <= 64'h6176206120676E69; |
64'hFFFFFFFFFFFFF8D8: romout <= 64'h0A0D656C62616972; |
64'hFFFFFFFFFFFFF8E0: romout <= 64'h64616220444E5200; |
64'hFFFFFFFFFFFFF8E8: romout <= 64'h74656D6172617020; |
64'hFFFFFFFFFFFFF8F0: romout <= 64'h535953000A0D7265; |
64'hFFFFFFFFFFFFF8F8: romout <= 64'h6464612064616220; |
64'hFFFFFFFFFFFFF900: romout <= 64'h49000A0D73736572; |
64'hFFFFFFFFFFFFF908: romout <= 64'h707865205455504E; |
64'hFFFFFFFFFFFFF910: romout <= 64'h6120676E69746365; |
64'hFFFFFFFFFFFFF918: romout <= 64'h6C62616972617620; |
64'hFFFFFFFFFFFFF920: romout <= 64'h5458454E000A0D65; |
64'hFFFFFFFFFFFFF928: romout <= 64'h74756F6874697720; |
64'hFFFFFFFFFFFFF930: romout <= 64'h4E000A0D524F4620; |
64'hFFFFFFFFFFFFF938: romout <= 64'h6570786520545845; |
64'hFFFFFFFFFFFFF940: romout <= 64'h206120676E697463; |
64'hFFFFFFFFFFFFF948: romout <= 64'h2064656E69666564; |
64'hFFFFFFFFFFFFF950: romout <= 64'h656C626169726176; |
64'hFFFFFFFFFFFFF958: romout <= 64'h2F4F544F47000A0D; |
64'hFFFFFFFFFFFFF960: romout <= 64'h6162204255534F47; |
64'hFFFFFFFFFFFFF968: romout <= 64'h6E20656E696C2064; |
64'hFFFFFFFFFFFFF970: romout <= 64'h000A0D7265626D75; |
64'hFFFFFFFFFFFFF978: romout <= 64'h77204E5255544552; |
64'hFFFFFFFFFFFFF980: romout <= 64'h472074756F687469; |
64'hFFFFFFFFFFFFF988: romout <= 64'h50000A0D4255534F; |
64'hFFFFFFFFFFFFF990: romout <= 64'h69206D6172676F72; |
64'hFFFFFFFFFFFFF998: romout <= 64'h6962206F6F742073; |
64'hFFFFFFFFFFFFF9A0: romout <= 64'h72747845000A0D67; |
64'hFFFFFFFFFFFFF9A8: romout <= 64'h6361726168632061; |
64'hFFFFFFFFFFFFF9B0: romout <= 64'h206E6F2073726574; |
64'hFFFFFFFFFFFFF9B8: romout <= 64'h6E676920656E696C; |
64'hFFFFFFFFFFFFF9C0: romout <= 64'h0D000A0D6465726F; |
64'hFFFFFFFFFFFFF9C8: romout <= 64'h0D000A0A0D00520A; |
64'hFFFFFFFFFFFFF9D0: romout <= 64'h0048000A0D004F0A; |
64'hFFFFFFFFFFFFF9D8: romout <= 64'h000A0D0057000A0D; |
64'hFFFFFFFFFFFFF9E0: romout <= 64'hFFFFFF000A0D0053; |
64'hFFFFFFFFFFFFF9E8: romout <= 64'hFFFFFFFFFFFFFFFF; |
64'hFFFFFFFFFFFFF9F0: romout <= 64'hAAAB541000800009; |
64'hFFFFFFFFFFFFF9F8: romout <= 64'h05802AA5555F5554; |
64'hFFFFFFFFFFFFFA00: romout <= 64'h0000019A02000000; |
64'hFFFFFFFFFFFFFA08: romout <= 64'h0104430000646810; |
64'hFFFFFFFFFFFFFA10: romout <= 64'h000022F8C00000A9; |
64'hFFFFFFFFFFFFFA18: romout <= 64'h042060000000A840; |
64'hFFFFFFFFFFFFFA20: romout <= 64'h800026F8C1FFFF00; |
64'hFFFFFFFFFFFFFA28: romout <= 64'h0100080000904802; |
64'hFFFFFFFFFFFFFA30: romout <= 64'hA955551A04000000; |
64'hFFFFFFFFFFFFFA38: romout <= 64'h2F8C00001091021A; |
64'hFFFFFFFFFFFFFA40: romout <= 64'h0000002210000008; |
64'hFFFFFFFFFFFFFA48: romout <= 64'h2F8C1FFFF801081C; |
64'hFFFFFFFFFFFFFA50: romout <= 64'h000026FA14000329; |
64'hFFFFFFFFFFFFFA58: romout <= 64'h3AAAAD5552A04002; |
64'hFFFFFFFFFFFFFA60: romout <= 64'h000000580355AAAA; |
64'hFFFFFFFFFFFFFA68: romout <= 64'h11A0400000066808; |
64'hFFFFFFFFFFFFFA70: romout <= 64'h0003241044300006; |
64'hFFFFFFFFFFFFFA78: romout <= 64'h02210000008BE300; |
64'hFFFFFFFFFFFFFA80: romout <= 64'hFFFC804207000000; |
64'hFFFFFFFFFFFFFA88: romout <= 64'h01200B00009BE307; |
64'hFFFFFFFFFFFFFA90: romout <= 64'h0000001000800009; |
64'hFFFFFFFFFFFFFA98: romout <= 64'h0408755AAAA46810; |
64'hFFFFFFFFFFFFFAA0: romout <= 64'h000022F8C00000A9; |
64'hFFFFFFFFFFFFFAA8: romout <= 64'h0420700000008840; |
64'hFFFFFFFFFFFFFAB0: romout <= 64'h000222F8C1FFFF20; |
64'hFFFFFFFFFFFFFAB8: romout <= 64'h01216800014BE858; |
64'hFFFFFFFFFFFFFAC0: romout <= 64'h000052FA14000048; |
64'hFFFFFFFFFFFFFAC8: romout <= 64'h1981000040004852; |
64'hFFFFFFFFFFFFFAD0: romout <= 64'h000020DFBE000000; |
64'hFFFFFFFFFFFFFAD8: romout <= 64'h19F820000000FEF0; |
64'hFFFFFFFFFFFFFAE0: romout <= 64'h8000060803DC0FF0; |
64'hFFFFFFFFFFFFFAE8: romout <= 64'h2C840180002B01B4; |
64'hFFFFFFFFFFFFFAF0: romout <= 64'h0002A8C7FFFFFAB9; |
64'hFFFFFFFFFFFFFAF8: romout <= 64'h2C84014000FBE000; |
64'hFFFFFFFFFFFFFB00: romout <= 64'h000000C7FFFFFA6D; |
64'hFFFFFFFFFFFFFB08: romout <= 64'h02FBC00000847E08; |
64'hFFFFFFFFFFFFFB10: romout <= 64'h0000800000000020; |
64'hFFFFFFFFFFFFFB18: romout <= 64'h19803FF000000000; |
64'hFFFFFFFFFFFFFB20: romout <= 64'h0000D19805FF0008; |
64'hFFFFFFFFFFFFFB28: romout <= 64'h2F84000002902008; |
64'hFFFFFFFFFFFFFB30: romout <= 64'h0010A00802000228; |
64'hFFFFFFFFFFFFFB38: romout <= 64'h008800005A902010; |
64'hFFFFFFFFFFFFFB40: romout <= 64'h40000C1884680001; |
64'hFFFFFFFFFFFFFB48: romout <= 64'h1184400000004110; |
64'hFFFFFFFFFFFFFB50: romout <= 64'h0014A45084000000; |
64'hFFFFFFFFFFFFFB58: romout <= 64'h1184400000802200; |
64'hFFFFFFFFFFFFFB60: romout <= 64'h0016A45084000000; |
64'hFFFFFFFFFFFFFB68: romout <= 64'h0080000003402200; |
64'hFFFFFFFFFFFFFB70: romout <= 64'hFC00000800000035; |
64'hFFFFFFFFFFFFFB78: romout <= 64'h11805FF00084600F; |
64'hFFFFFFFFFFFFFB80: romout <= 64'h0000000000000020; |
64'hFFFFFFFFFFFFFB88: romout <= 64'h37800000000DE000; |
64'hFFFFFFFFFFFFFFB0: romout <= 64'h000000CFFFFFFEC6; |
64'hFFFFFFFFFFFFFFB8: romout <= 64'h37800000000DE000; |
64'hFFFFFFFFFFFFFFC0: romout <= 64'h000000CFFFFFFEC6; |
64'hFFFFFFFFFFFFFFC8: romout <= 64'h37800000000DE000; |
64'hFFFFFFFFFFFFFFD0: romout <= 64'h000000CFFFFFFEB5; |
64'hFFFFFFFFFFFFFFD8: romout <= 64'h37800000000DE000; |
64'hFFFFFFFFFFFFFFE0: romout <= 64'h000000CFFFFFFEC5; |
64'hFFFFFFFFFFFFFFE8: romout <= 64'h37800000000DE000; |
64'hFFFFFFFFFFFFFFF0: romout <= 64'h000000CFFFFFFA00; |
64'hFFFFFFFFFFFFFFF8: romout <= 64'h37800000000DE000; |
default: romout <= 64'd0; |
endcase |
assign sys_dbi = br_dato|keybdout|stk_dato|scr_dato| {4{tc_dato}} | {4{pic_dato}} | {8{config_reco}} | ramo | {8{sm_dato}}; |
|
|
Raptor64sc u1 |
( |
.rst_i(rst), |
.clk_i(clk), |
.nmi_i(cpu_nmi), |
.irq_i(cpu_irq), |
.irq_no(vecno), |
.bte_o(), |
.cti_o(cpu_cti), |
.iocyc_o(sys_iocyc), |
.cyc_o(sys_cyc), |
.stb_o(sys_stb), |
.ack_i(sys_ack), |
.err_i(sys_err), |
.we_o(sys_we), |
.sel_o(sys_sel), |
.adr_o(sys_adr), |
.dat_i(sys_dbi), |
.dat_o(sys_dbo), |
|
.sys_adv(1'b0), |
.sys_adr(59'd0) |
); |
endmodule |