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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [orpsocv2/] [rtl/] [verilog/] [or1200/] [or1200_except.v] - Diff between revs 363 and 502

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

Rev 363 Rev 502
Line 174... Line 174...
reg     [2:0]                    delayed_iee;
reg     [2:0]                    delayed_iee;
reg     [2:0]                    delayed_tee;
reg     [2:0]                    delayed_tee;
wire                            int_pending;
wire                            int_pending;
wire                            tick_pending;
wire                            tick_pending;
wire                            fp_pending;
wire                            fp_pending;
 
wire                            range_pending;
 
 
reg trace_trap      ;
reg trace_trap      ;
reg ex_freeze_prev;
reg ex_freeze_prev;
reg sr_ted_prev;
reg sr_ted_prev;
reg dsr_te_prev;
reg dsr_te_prev;
Line 206... Line 207...
                      & ~ex_dslot & ~(sr_we & ~to_sr[`OR1200_SR_TEE]);
                      & ~ex_dslot & ~(sr_we & ~to_sr[`OR1200_SR_TEE]);
 
 
assign fp_pending = sig_fp & fpcsr_fpee & ~ex_freeze & ~ex_branch_taken
assign fp_pending = sig_fp & fpcsr_fpee & ~ex_freeze & ~ex_branch_taken
                    & ~ex_dslot;
                    & ~ex_dslot;
 
 
 
`ifdef OR1200_IMPL_OVE
 
assign range_pending =  sig_range & sr[`OR1200_SR_OVE] & ~ex_freeze &
 
                       ~ex_branch_taken & ~ex_dslot;
 
`else
 
assign range_pending = 0;
 
`endif
 
 
// Abort write into RF by load & other instructions   
// Abort write into RF by load & other instructions   
assign abort_ex = sig_dbuserr | sig_dmmufault | sig_dtlbmiss | sig_align |
assign abort_ex = sig_dbuserr | sig_dmmufault | sig_dtlbmiss | sig_align |
                  sig_illegal | ((du_hwbkpt | trace_trap) & ex_pc_val
                  sig_illegal | ((du_hwbkpt | trace_trap) & ex_pc_val
                                 & !sr_ted & !dsr_te);
                                 & !sr_ted & !dsr_te);
 
 
Line 232... Line 240...
                      sig_dtlbmiss      & ~du_dsr[`OR1200_DU_DSR_DME],
                      sig_dtlbmiss      & ~du_dsr[`OR1200_DU_DSR_DME],
                      sig_trap          & ~du_dsr[`OR1200_DU_DSR_TE],
                      sig_trap          & ~du_dsr[`OR1200_DU_DSR_TE],
                      sig_syscall       & ~du_dsr[`OR1200_DU_DSR_SCE] & ~ex_freeze,
                      sig_syscall       & ~du_dsr[`OR1200_DU_DSR_SCE] & ~ex_freeze,
                      sig_dmmufault     & ~du_dsr[`OR1200_DU_DSR_DPFE],
                      sig_dmmufault     & ~du_dsr[`OR1200_DU_DSR_DPFE],
                      sig_dbuserr       & ~du_dsr[`OR1200_DU_DSR_BUSEE],
                      sig_dbuserr       & ~du_dsr[`OR1200_DU_DSR_BUSEE],
                      sig_range         & ~du_dsr[`OR1200_DU_DSR_RE],
                      range_pending     & ~du_dsr[`OR1200_DU_DSR_RE],
                      fp_pending        & ~du_dsr[`OR1200_DU_DSR_FPE],
                      fp_pending        & ~du_dsr[`OR1200_DU_DSR_FPE],
                      int_pending       & ~du_dsr[`OR1200_DU_DSR_IE],
                      int_pending       & ~du_dsr[`OR1200_DU_DSR_IE],
                      tick_pending      & ~du_dsr[`OR1200_DU_DSR_TTE]
                      tick_pending      & ~du_dsr[`OR1200_DU_DSR_TTE]
                      };
                      };
 
 
Line 258... Line 266...
                        sig_illegal             & du_dsr[`OR1200_DU_DSR_IIE],
                        sig_illegal             & du_dsr[`OR1200_DU_DSR_IIE],
                        sig_align               & du_dsr[`OR1200_DU_DSR_AE],
                        sig_align               & du_dsr[`OR1200_DU_DSR_AE],
                        sig_dtlbmiss            & du_dsr[`OR1200_DU_DSR_DME],
                        sig_dtlbmiss            & du_dsr[`OR1200_DU_DSR_DME],
                        sig_dmmufault           & du_dsr[`OR1200_DU_DSR_DPFE],
                        sig_dmmufault           & du_dsr[`OR1200_DU_DSR_DPFE],
                        sig_dbuserr             & du_dsr[`OR1200_DU_DSR_BUSEE],
                        sig_dbuserr             & du_dsr[`OR1200_DU_DSR_BUSEE],
                        sig_range               & du_dsr[`OR1200_DU_DSR_RE],
                        range_pending           & du_dsr[`OR1200_DU_DSR_RE],
                        sig_trap                & du_dsr[`OR1200_DU_DSR_TE],
                        sig_trap                & du_dsr[`OR1200_DU_DSR_TE],
                        fp_pending              & du_dsr[`OR1200_DU_DSR_FPE],
                        fp_pending              & du_dsr[`OR1200_DU_DSR_FPE],
                        sig_syscall             & du_dsr[`OR1200_DU_DSR_SCE] & ~ex_freeze
                        sig_syscall             & du_dsr[`OR1200_DU_DSR_SCE] & ~ex_freeze
                };
                };
 
 

powered by: WebSVN 2.1.0

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