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

Subversion Repositories eco32

[/] [eco32/] [trunk/] [fpga/] [mc/] [src/] [cpu/] [cpu.v] - Diff between revs 81 and 120

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

Rev 81 Rev 120
Line 2448... Line 2448...
// sregs -- the special registers
// sregs -- the special registers
//--------------------------------------------------------------
//--------------------------------------------------------------
 
 
 
 
module sregs(clk, reset,
module sregs(clk, reset,
             rn, we, di, do,
             rn, we, din, dout,
             psw, psw_we, psw_new,
             psw, psw_we, psw_new,
             tlb_index, tlb_index_we, tlb_index_new,
             tlb_index, tlb_index_we, tlb_index_new,
             tlb_entry_hi, tlb_entry_hi_we, tlb_entry_hi_new,
             tlb_entry_hi, tlb_entry_hi_we, tlb_entry_hi_new,
             tlb_entry_lo, tlb_entry_lo_we, tlb_entry_lo_new,
             tlb_entry_lo, tlb_entry_lo_we, tlb_entry_lo_new,
             mmu_bad_addr, mmu_bad_addr_we, mmu_bad_addr_new);
             mmu_bad_addr, mmu_bad_addr_we, mmu_bad_addr_new);
    input clk;
    input clk;
    input reset;
    input reset;
    input [2:0] rn;
    input [2:0] rn;
    input we;
    input we;
    input [31:0] di;
    input [31:0] din;
    output [31:0] do;
    output [31:0] dout;
    output [31:0] psw;
    output [31:0] psw;
    input psw_we;
    input psw_we;
    input [31:0] psw_new;
    input [31:0] psw_new;
    output [31:0] tlb_index;
    output [31:0] tlb_index;
    input tlb_index_we;
    input tlb_index_we;
Line 2487... Line 2487...
  //      110              - not used -
  //      110              - not used -
  //      111              - not used -
  //      111              - not used -
 
 
  reg [31:0] sr[0:7];
  reg [31:0] sr[0:7];
 
 
  assign do = sr[rn];
  assign dout = sr[rn];
  assign psw = sr[0];
  assign psw = sr[0];
  assign tlb_index = sr[1];
  assign tlb_index = sr[1];
  assign tlb_entry_hi = sr[2];
  assign tlb_entry_hi = sr[2];
  assign tlb_entry_lo = sr[3];
  assign tlb_entry_lo = sr[3];
  assign mmu_bad_addr = sr[4];
  assign mmu_bad_addr = sr[4];
Line 2499... Line 2499...
  always @(posedge clk) begin
  always @(posedge clk) begin
    if (reset == 1) begin
    if (reset == 1) begin
      sr[0] <= 32'h00000000;
      sr[0] <= 32'h00000000;
    end else begin
    end else begin
      if (we == 1) begin
      if (we == 1) begin
        sr[rn] <= di;
        sr[rn] <= din;
      end else begin
      end else begin
        if (psw_we) begin
        if (psw_we) begin
          sr[0] <= psw_new;
          sr[0] <= psw_new;
        end
        end
        if (tlb_index_we) begin
        if (tlb_index_we) begin

powered by: WebSVN 2.1.0

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