Line 42... |
Line 42... |
//////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////
|
//
|
//
|
// CVS Revision History
|
// CVS Revision History
|
//
|
//
|
// $Log: not supported by cvs2svn $
|
// $Log: not supported by cvs2svn $
|
|
// Revision 1.13 2003/05/05 15:46:37 simont
|
|
// 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.
|
//
|
//
|
// Revision 1.11 2003/04/25 17:15:51 simont
|
// Revision 1.11 2003/04/25 17:15:51 simont
|
// change branch instruction execution (reduse needed clock periods).
|
// change branch instruction execution (reduse needed clock periods).
|
Line 563... |
Line 566... |
begin
|
begin
|
if (rst) begin
|
if (rst) begin
|
dat0 <= #1 8'h00;
|
dat0 <= #1 8'h00;
|
wait_data <= #1 1'b0;
|
wait_data <= #1 1'b0;
|
end else if ((wr_sfr==`OC8051_WRS_DPTR) & (adr0==`OC8051_SFR_DPTR_LO)) begin //write and read same address
|
end else if ((wr_sfr==`OC8051_WRS_DPTR) & (adr0==`OC8051_SFR_DPTR_LO)) begin //write and read same address
|
dat0 <= #1 dat1;
|
dat0 <= #1 des_acc;
|
wait_data <= #1 1'b0;
|
wait_data <= #1 1'b0;
|
end else if (
|
end else if (
|
(((wr_sfr==`OC8051_WRS_ACC1) & (adr0==`OC8051_SFR_ACC)) | //write to acc
|
(
|
((wr_sfr==`OC8051_WRS_DPTR) & (adr0==`OC8051_SFR_DPTR_LO)) | //write to dpl
|
((wr_sfr==`OC8051_WRS_ACC1) & (adr0==`OC8051_SFR_ACC)) | //write to acc
|
|
// ((wr_sfr==`OC8051_WRS_DPTR) & (adr0==`OC8051_SFR_DPTR_LO)) | //write to dpl
|
(adr1[7] & (adr1==adr0) & we & !wr_bit_r) | //write and read same address
|
(adr1[7] & (adr1==adr0) & we & !wr_bit_r) | //write and read same address
|
(adr1[7] & (adr1[7:3]==adr0[7:3]) & (~&adr0[2:0]) & we & wr_bit_r) //write bit addressable to read address
|
(adr1[7] & (adr1[7:3]==adr0[7:3]) & (~&adr0[2:0]) & we & wr_bit_r) //write bit addressable to read address
|
) & !wait_data) begin
|
) & !wait_data) begin
|
wait_data <= #1 1'b1;
|
wait_data <= #1 1'b1;
|
|
|
Line 643... |
Line 647... |
end
|
end
|
|
|
|
|
//
|
//
|
//set output in case of address (bit)
|
//set output in case of address (bit)
|
|
|
always @(posedge clk or posedge rst)
|
always @(posedge clk or posedge rst)
|
begin
|
begin
|
if (rst)
|
if (rst)
|
bit_out <= #1 1'h0;
|
bit_out <= #1 1'h0;
|
else if (
|
else if (
|