Line 42... |
Line 42... |
//////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////
|
//
|
//
|
// CVS Revision History
|
// CVS Revision History
|
//
|
//
|
// $Log: not supported by cvs2svn $
|
// $Log: not supported by cvs2svn $
|
|
// Revision 1.14 2003/05/07 12:39:20 simont
|
|
// fix bug in case of sequence of inc dptr instrucitons.
|
|
//
|
// Revision 1.13 2003/05/05 15:46:37 simont
|
// Revision 1.13 2003/05/05 15:46:37 simont
|
// add aditional alu destination to solve critical path.
|
// add aditional alu destination to solve critical path.
|
//
|
//
|
// Revision 1.12 2003/04/29 11:24:31 simont
|
// Revision 1.12 2003/04/29 11:24:31 simont
|
// fix bug in case execution of two data dependent instructions.
|
// fix bug in case execution of two data dependent instructions.
|
Line 585... |
Line 588... |
((wr_sfr==`OC8051_WRS_DPTR) & (adr0==`OC8051_SFR_DPTR_HI)) //write to dph
|
((wr_sfr==`OC8051_WRS_DPTR) & (adr0==`OC8051_SFR_DPTR_HI)) //write to dph
|
) & !wait_data) begin
|
) & !wait_data) begin
|
wait_data <= #1 1'b1;
|
wait_data <= #1 1'b1;
|
|
|
end else begin
|
end else begin
|
case (adr0)
|
case (adr0) /* synopsys full_case parallel_case */
|
`OC8051_SFR_ACC: dat0 <= #1 acc;
|
`OC8051_SFR_ACC: dat0 <= #1 acc;
|
`OC8051_SFR_PSW: dat0 <= #1 psw;
|
`OC8051_SFR_PSW: dat0 <= #1 psw;
|
|
|
`ifdef OC8051_PORTS
|
`ifdef OC8051_PORTS
|
`ifdef OC8051_PORT0
|
`ifdef OC8051_PORT0
|
Line 638... |
Line 641... |
`OC8051_SFR_TH2: dat0 <= #1 th2;
|
`OC8051_SFR_TH2: dat0 <= #1 th2;
|
`OC8051_SFR_TL2: dat0 <= #1 tl2;
|
`OC8051_SFR_TL2: dat0 <= #1 tl2;
|
`OC8051_SFR_T2CON: dat0 <= #1 t2con;
|
`OC8051_SFR_T2CON: dat0 <= #1 t2con;
|
`endif
|
`endif
|
|
|
default: dat0 <= #1 8'h00;
|
// default: dat0 <= #1 8'h00;
|
endcase
|
endcase
|
wait_data <= #1 1'b0;
|
wait_data <= #1 1'b0;
|
end
|
end
|
end
|
end
|
|
|
Line 661... |
Line 664... |
|
|
bit_out <= #1 dat1[adr0[2:0]];
|
bit_out <= #1 dat1[adr0[2:0]];
|
else if ((adr1==adr0) & we & wr_bit_r)
|
else if ((adr1==adr0) & we & wr_bit_r)
|
bit_out <= #1 bit_in;
|
bit_out <= #1 bit_in;
|
else
|
else
|
case (adr0[7:3])
|
case (adr0[7:3]) /* synopsys full_case parallel_case */
|
`OC8051_SFR_B_ACC: bit_out <= #1 acc[adr0[2:0]];
|
`OC8051_SFR_B_ACC: bit_out <= #1 acc[adr0[2:0]];
|
`OC8051_SFR_B_PSW: bit_out <= #1 psw[adr0[2:0]];
|
`OC8051_SFR_B_PSW: bit_out <= #1 psw[adr0[2:0]];
|
|
|
`ifdef OC8051_PORTS
|
`ifdef OC8051_PORTS
|
`ifdef OC8051_PORT0
|
`ifdef OC8051_PORT0
|
Line 696... |
Line 699... |
|
|
`ifdef OC8051_TC2
|
`ifdef OC8051_TC2
|
`OC8051_SFR_B_T2CON: bit_out <= #1 t2con[adr0[2:0]];
|
`OC8051_SFR_B_T2CON: bit_out <= #1 t2con[adr0[2:0]];
|
`endif
|
`endif
|
|
|
default: bit_out <= #1 1'b0;
|
// default: bit_out <= #1 1'b0;
|
endcase
|
endcase
|
end
|
end
|
|
|
always @(posedge clk or posedge rst)
|
always @(posedge clk or posedge rst)
|
begin
|
begin
|