LOGIN   :::   RECOVER PASS   :::   GET ACCOUNT    
Browse
  • Projects
  • Code (CVS)
  • Forums
  • News
  • Articles
  • Polls
  •  
    OpenCores
  • FAQ
  • CVS HowTo
  • Mission
  • Media
  • Tools
  • Sponsors
  • Mirrors
  • Logos
  • Contact us
  •  
    Tools
  • Search
      
  • Download Cores (CVSGet)
  •  
    More
  • Wishbone
  • Perlilog
  • EDA tools
  • OpenTech CD
  •  
    Navigation: All forums > Cvs-checkins > Message List > Message Post

    Message

    Reply | Reply all
    Date Prev | Date Next | Thread Prev | Thread Next Date Index | Thread Index

    From: cvs at opencores.org<cvs@o...>
    Date: Mon Dec 17 13:53:28 CET 2007
    Subject: [cvs-checkins] MODIFIED: aemb ...
    Top
    Date: 00/07/12 17:13:53

    Modified: aemb/rtl/verilog aeMB2_aslu.v
    Log:
    Fixed Carry bit bug.


    Revision Changes Path
    1.7 aemb/rtl/verilog/aeMB2_aslu.v

    http://www.opencores.org/cvsweb.shtml/aemb/rtl/verilog/aeMB2_aslu.v.diff?r1=1.6&r2=1.7

    (In the diff below, changes in quantity of whitespace are not shown.)

    Index: aeMB2_aslu.v
    ===================================================================
    RCS file: /cvsroot/sybreon/aemb/rtl/verilog/aeMB2_aslu.v,v
    retrieving revision 1.6
    retrieving revision 1.7
    diff -u -b -r1.6 -r1.7
    --- aeMB2_aslu.v 16 Dec 2007 20:38:06 -0000 1.6
    +++ aeMB2_aslu.v 17 Dec 2007 12:53:27 -0000 1.7
    @@ -1,4 +1,4 @@
    -/* $Id: aeMB2_aslu.v,v 1.6 2007/12/16 20:38:06 sybreon Exp $
    +/* $Id: aeMB2_aslu.v,v 1.7 2007/12/17 12:53:27 sybreon Exp $
    **
    ** AEMB2 INTEGER ARITHMETIC SHIFT LOGIC UNIT
    **
    @@ -101,6 +101,7 @@
    reg rMSR_C0,
    rMSR_C1,
    rMSR_C,
    + rMSR_CC,
    rMSR_CL[0:1];


    @@ -164,18 +165,26 @@

    wire wMSR_CX, wMSR_C;
    assign wMSR_CX = (pha_i) ? rMSR_C0 : rMSR_C1;
    +
    assign wMSR_C = (rOPC_IF == 6'o44) & wMSR_CX | // SRX
    (rOPC_IF[5:4] == 2'o0) & rOPC_IF[1] & wMSR_CX | // ADDC/RSUBC
    (rOPC_IF[5:4] == 2'o0) & (rOPC_IF[1:0] == 2'o1); // RSUB
    + /*
    + assign wMSR_C = ((rOPC_IF[5:4] == 2'o0) & (rOPC_OF[1:0] == 2'o1)) ? 1'b1 : // RSUB = 1
    + ((rOPC_IF[5:4] == 2'o0) & (rOPC_OF[1:0] == 2'o0)) ? 1'b0 : // ADD = 0
    + wMSR_CX;
    + */

    always @(posedge clk_i)
    if (rst_i) begin
    /*AUTORESET*/
    // Beginning of autoreset for uninitialized flops
    rMSR_C <= 1'h0;
    + rMSR_CC <= 1'h0;
    // End of automatics
    end else if (ena_i) begin
    - rMSR_C <= #1 wMSR_C;
    + rMSR_C <= #1 wMSR_CX;
    + rMSR_CC <= #1 wMSR_C;
    end

    /*
    @@ -196,8 +205,8 @@

    assign {wCMPC,wCMP} = {wSUBC,wCMPF,wSUB[30:0]};
    assign wOPX = (rOPC[0] & !rOPC[5]) ? ~rOPA : rOPA ;
    - //assign wOPC = ((wMSR_C & rOPC[1]) | (rOPC[0] & !rOPC[1])) & (!rOPC[5] & ~&rOPC[5:4]);
    - assign wOPC = rMSR_C;
    + //assign wOPC = ((rMSR_C & rOPC[1]) | (rOPC[0] & !rOPC[1])) & (!rOPC[5] & ~&rOPC[5:4]);
    + assign wOPC = rMSR_CC;

    assign {wSUBC,wSUB} = {wADDC,wADD};
    assign {wADDC,wADD} = (rOPB + wOPX) + wOPC;
    @@ -207,8 +216,8 @@
    always @(rIMM or rOPC or wADD or wADDC or wCMP
    or wCMPC or wSUB or wSUBC)
    case ({rOPC[3],rOPC[0],rIMM[0]})
    - 4'h2, 4'h6, 4'h7: {rRES_ADDC,rRES_ADD} <= #1 {~wSUBC,wSUB}; // SUB
    - 4'h3: {rRES_ADDC,rRES_ADD} <= #1 {~wCMPC,wCMP}; // CMP
    + 4'h2, 4'h6, 4'h7: {rRES_ADDC,rRES_ADD} <= #1 {wSUBC,wSUB}; // SUB
    + 4'h3: {rRES_ADDC,rRES_ADD} <= #1 {wCMPC,wCMP}; // CMP
    default: {rRES_ADDC,rRES_ADD} <= #1 {wADDC,wADD};
    endcase // case ({rOPC[3],rOPC[0],rIMM[0]})

    @@ -428,7 +437,7 @@
    //case (rOPC[5:4])
    3'o0: xMSR_C <= (fADDC) ? rRES_ADDC : rMSR_C; // ADD/SUB
    3'o2: case (rOPC[2:0])
    - 3'o5: xMSR_C <= (rIMM[14]) ? rOPC[2] : rMSR_C; // MTS
    + 3'o5: xMSR_C <= (rIMM[14]) ? rOPA[2] : rMSR_C; // MTS
    3'o4: xMSR_C <= (&rIMM[6:5]) ? rMSR_C : rRES_SFTC; // SRX
    default: xMSR_C <= rMSR_C;
    endcase // case (rOPC[2:0])
    @@ -554,6 +563,9 @@
    endmodule // aeMB2_aslu

    /* $Log: aeMB2_aslu.v,v $
    +/* Revision 1.7 2007/12/17 12:53:27 sybreon
    +/* Fixed Carry bit bug.
    +/*
    /* Revision 1.6 2007/12/16 20:38:06 sybreon /* Minor optimisations. /*

     
    Copyright (c) 1999 OPENCORES.ORG. All rights reserved.