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

Subversion Repositories m32632

[/] [m32632/] [trunk/] [rtl/] [DECODER.v] - Diff between revs 29 and 49

Show entire file | Details | Blame | View Log

Rev 29 Rev 49
Line 2... Line 2...
//
//
// This file is part of the M32632 project
// This file is part of the M32632 project
// http://opencores.org/project,m32632
// http://opencores.org/project,m32632
//
//
//      Filename:       DECODER.v
//      Filename:       DECODER.v
//  Version:    3.0
//      Version:        3.2 bug fix     
//      History:        2.0 of 11 August 2016
//  History:    3.0 of 2 December 2018
 
//                              2.0 of 11 August 2016
//                              1.0 first release of 30 Mai 2015
//                              1.0 first release of 30 Mai 2015
//      Date:           2 December 2018
//      Date:           17 January 2021
//
//
// Copyright (C) 2018 Udo Moeller
// Copyright (C) 2021 Udo Moeller
// 
// 
// This source file may be used and distributed without 
// This source file may be used and distributed without 
// restriction provided that this copyright statement is not 
// restriction provided that this copyright statement is not 
// removed from the file and that any derivative work contains 
// removed from the file and that any derivative work contains 
// the original copyright notice and the associated disclaimer.
// the original copyright notice and the associated disclaimer.
Line 569... Line 570...
        assign jump = (ex_br_op[0] & branch) | (acb_reg & ~ACB_ZERO) | ex_br_op[1];
        assign jump = (ex_br_op[0] & branch) | (acb_reg & ~ACB_ZERO) | ex_br_op[1];
 
 
        always @(posedge BCLK) ldpc_phase <=  (phase_reg == 8'h3E)      // PC load at CXP/Traps , all one clock cycle guaranted
        always @(posedge BCLK) ldpc_phase <=  (phase_reg == 8'h3E)      // PC load at CXP/Traps , all one clock cycle guaranted
                                                                                | (phase_reg == 8'h43)  // PC load at RXP
                                                                                | (phase_reg == 8'h43)  // PC load at RXP
                                                                                | ((phase_reg == 8'h49) & reti_flag)    // PC load at RETI
                                                                                | ((phase_reg == 8'h49) & reti_flag)    // PC load at RETI
                                                                                | (phase_reg == 8'h4E)  // PC load at RETT
                                                                                | ((phase_reg == 8'h4E) & next) // PC load at RETT - here not one clock cycle guaranted
                                                                                | (phase_reg == 8'h66)  // PC load at JUMP/JSR/CASE
                                                                                | (phase_reg == 8'h66)  // PC load at JUMP/JSR/CASE
                                                                                | (phase_reg == 8'h7B); // PC load at DE = Direct Exception
                                                                                | (phase_reg == 8'h7B); // PC load at DE = Direct Exception
 
 
        assign NEW = ((phase_reg == 8'd1) &  jump & di_stat[0]) | LOAD_PC;
        assign NEW = ((phase_reg == 8'd1) &  jump & di_stat[0]) | LOAD_PC;
        assign LOAD_PC = ((phase_reg == 8'h2B) & di_stat[0])     // only one pulse, but DISP must be ok => di_stat[0] (RET)
        assign LOAD_PC = ((phase_reg == 8'h2B) & di_stat[0])     // only one pulse, but DISP must be ok => di_stat[0] (RET)

powered by: WebSVN 2.1.0

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