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

Subversion Repositories raptor64

[/] [raptor64/] [trunk/] [rtl/] [verilog/] [RaptorPIC.v] - Diff between revs 30 and 33

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 30 Rev 33
Line 1... Line 1...
 
`timescale 1ns / 1ps
//=============================================================================
//=============================================================================
//      (C) 2005-2012  Robert Finch
//      (C) 2005-2012  Robert Finch
//      All rights reserved.
//      All rights reserved.
//      robfinch@Opencores.org
//      robfinch@Opencores.org
//
//
Line 94... Line 95...
        input cyc_i,            // cycle valid
        input cyc_i,            // cycle valid
        input stb_i,            // strobe
        input stb_i,            // strobe
        output ack_o,           // transfer acknowledge
        output ack_o,           // transfer acknowledge
        input we_i,                     // write
        input we_i,                     // write
        input [1:0] sel_i,       // byte select
        input [1:0] sel_i,       // byte select
        input [63:0] adr_i,      // address
        input [23:0] adr_i,      // address
        input [15:0] dat_i,
        input [15:0] dat_i,
        output reg [15:0] dat_o,
        output reg [15:0] dat_o,
        output vol_o,           // volatile register selected
        output vol_o,           // volatile register selected
        input i1, i2, i3, i4, i5, i6, i7,
        input i1, i2, i3, i4, i5, i6, i7,
                i8, i9, i10, i11, i12, i13, i14, i15,
                i8, i9, i10, i11, i12, i13, i14, i15,
Line 109... Line 110...
);
);
 
 
reg [15:0] ie;           // interrupt enable register
reg [15:0] ie;           // interrupt enable register
reg ack1;
reg ack1;
 
 
wire cs = cyc_i && stb_i && adr_i[63:4]==60'hFFFF_FFFF_FFDC_0FF;
wire cs = cyc_i && stb_i && adr_i[23:4]==20'hDC_0FF;
assign vol_o = cs;
assign vol_o = cs;
 
 
always @(posedge clk_i)
always @(posedge clk_i)
        ack1 <= cs & !ack_o;
        ack1 <= cs;
assign ack_o = ack1 && cs;
assign ack_o = cs ? (we_i ? 1'b1 : ack1) : 1'b0;
 
 
// write registers      
// write registers      
always @(posedge clk_i)
always @(posedge clk_i)
        if (rst_i)
        if (rst_i)
                ie <= 16'h0;
                ie <= 16'h0;

powered by: WebSVN 2.1.0

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