OpenCores
URL https://opencores.org/ocsvn/thor/thor/trunk

Subversion Repositories thor

[/] [thor/] [trunk/] [FT64v7/] [rtl/] [common/] [FT64_mpu.v] - Diff between revs 60 and 61

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;
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.