URL
https://opencores.org/ocsvn/thor/thor/trunk
Show entire file |
Details |
Blame |
View Log
Rev 60 |
Rev 61 |
Line 1... |
Line 1... |
`timescale 1ns / 1ps
|
`timescale 1ns / 1ps
|
// ============================================================================
|
// ============================================================================
|
// __
|
// __
|
// \\__/ o\ (C) 2017-2018 Robert Finch, Waterloo
|
// \\__/ o\ (C) 2017-2019 Robert Finch, Waterloo
|
// \ __ / All rights reserved.
|
// \ __ / All rights reserved.
|
// \/_// robfinch<remove>@finitron.ca
|
// \/_// robfinch<remove>@finitron.ca
|
// ||
|
// ||
|
//
|
//
|
// FT64_MPU.v
|
// FT64_MPU.v
|
Line 69... |
Line 69... |
input i24;
|
input i24;
|
input i25;
|
input i25;
|
input i26;
|
input i26;
|
input i27;
|
input i27;
|
input i28;
|
input i28;
|
output reg [2:0] cti_o;
|
output [2:0] cti_o;
|
output reg [1:0] bte_o;
|
output [1:0] bte_o;
|
input bok_i;
|
input bok_i;
|
output cyc_o;
|
output cyc_o;
|
output reg stb_o;
|
output reg stb_o;
|
input ack_i;
|
input ack_i;
|
input err_i;
|
input err_i;
|
output we_o;
|
output we_o;
|
output reg [7:0] sel_o;
|
output [7:0] sel_o;
|
output [31:0] adr_o;
|
output [31:0] adr_o;
|
output reg [63:0] dat_o;
|
output reg [63:0] dat_o;
|
input [63:0] dat_i;
|
input [63:0] dat_i;
|
output sr_o;
|
output sr_o;
|
output cr_o;
|
output cr_o;
|
Line 89... |
Line 89... |
|
|
wire [3:0] cti;
|
wire [3:0] cti;
|
wire [2:0] bte;
|
wire [2:0] bte;
|
wire cyc,stb,we;
|
wire cyc,stb,we;
|
wire [7:0] sel;
|
wire [7:0] sel;
|
|
(* mark_debug="true" *)
|
wire [63:0] adr;
|
wire [63:0] adr;
|
reg [63:0] dati;
|
reg [63:0] dati;
|
wire [63:0] dato;
|
wire [63:0] dato;
|
wire [3:0] irq;
|
wire [3:0] irq;
|
wire [7:0] cause;
|
wire [7:0] cause;
|
Line 113... |
Line 114... |
wire exv,rdv,wrv;
|
wire exv,rdv,wrv;
|
wire pulse60;
|
wire pulse60;
|
wire sptr_o;
|
wire sptr_o;
|
wire [63:0] pkeys;
|
wire [63:0] pkeys;
|
|
|
always @(posedge clk_i)
|
|
cti_o <= cti;
|
|
always @(posedge clk_i)
|
|
bte_o <= bte;
|
|
//always @(posedge clk_i)
|
//always @(posedge clk_i)
|
// cyc_o <= cyc;
|
// cyc_o <= cyc;
|
always @(posedge clk_i)
|
always @(posedge clk_i)
|
stb_o <= stb;
|
stb_o <= stb;
|
//always @(posedge clk_i)
|
//always @(posedge clk_i)
|
// we_o <= we;
|
// we_o <= we;
|
always @(posedge clk_i)
|
|
sel_o <= sel;
|
|
//always @(posedge clk_i)
|
//always @(posedge clk_i)
|
// adr_o <= adr;
|
// adr_o <= adr;
|
always @(posedge clk_i)
|
always @(posedge clk_i)
|
dat_o <= dato;
|
dat_o <= dato;
|
|
|
Line 241... |
Line 236... |
(
|
(
|
.rst(rst_i),
|
.rst(rst_i),
|
.clk(clk_i),
|
.clk(clk_i),
|
.pkeys_i(pkeys),
|
.pkeys_i(pkeys),
|
.ol_i(ol),
|
.ol_i(ol),
|
|
.bte_i(bte),
|
.cti_i(cti),
|
.cti_i(cti),
|
.cs_i(cs_ipt),
|
.cs_i(cs_ipt),
|
.icl_i(icl),
|
.icl_i(icl),
|
.cyc_i(cyc),
|
.cyc_i(cyc),
|
.stb_i(stb),
|
.stb_i(stb),
|
Line 252... |
Line 248... |
.we_i(we),
|
.we_i(we),
|
.sel_i(sel),
|
.sel_i(sel),
|
.vadr_i(adr),
|
.vadr_i(adr),
|
.dat_i(dato),
|
.dat_i(dato),
|
.dat_o(ipt_dato),
|
.dat_o(ipt_dato),
|
|
.bte_o(bte_o),
|
|
.cti_o(cti_o),
|
.cyc_o(cyc_o),
|
.cyc_o(cyc_o),
|
.ack_i(ack),
|
.ack_i(ack),
|
.we_o(we_o),
|
.we_o(we_o),
|
|
.sel_o(sel_o),
|
.padr_o(adr_o),
|
.padr_o(adr_o),
|
.exv_o(exv),
|
.exv_o(exv),
|
.rdv_o(rdv),
|
.rdv_o(rdv),
|
.wrv_o(wrv)
|
.wrv_o(wrv)
|
);
|
);
|
|
|
always @(posedge clk_i)
|
always @(posedge clk_i)
|
casez({pic_ack,pit_ack,crd_ack,cs_ipt})
|
casez({pic_ack,pit_ack,crd_ack,cs_ipt,ack_i})
|
4'b1???: dati <= {2{pic_dato}};
|
5'b1????: dati <= {2{pic_dato}};
|
4'b01??: dati <= {2{pit_dato}};
|
5'b01???: dati <= {2{pit_dato}};
|
4'b001?: dati <= crd_dato;
|
5'b001??: dati <= crd_dato;
|
4'b0001: dati <= ipt_dato;
|
5'b0001?: dati <= ipt_dato;
|
default: dati <= dat_i;
|
5'b00001: dati <= dat_i;
|
|
default: dati <= dati;
|
endcase
|
endcase
|
|
|
always @(posedge clk_i)
|
always @(posedge clk_i)
|
ack <= ack_i|pic_ack|pit_ack|crd_ack|ipt_ack;
|
ack <= ack_i|pic_ack|pit_ack|crd_ack|ipt_ack;
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.