mirror of
https://github.com/aolofsson/oh.git
synced 2025-01-17 20:02:53 +08:00
Fixing burst logic speed path
- The burst signal was going fro lclk_div4 domain straight into the io high speed domain. There is quite a bit of logic on this signal. Instead of starting with false paths or multi cycle paths with firstedge, I changed the pipeline.
This commit is contained in:
parent
f77938e9b0
commit
5197822f53
@ -49,7 +49,6 @@ module etx_io (/*AUTOARG*/
|
||||
reg [63:0] tx_double;
|
||||
reg [2:0] tx_state;
|
||||
reg tx_access_reg;
|
||||
reg tx_burst_reg;
|
||||
|
||||
//############
|
||||
//# WIRES
|
||||
@ -99,7 +98,6 @@ module etx_io (/*AUTOARG*/
|
||||
if(firstedge)
|
||||
begin
|
||||
tx_access_reg <= tx_access & ~tx_wait;
|
||||
tx_burst_reg <= tx_burst & ~tx_wait;
|
||||
end
|
||||
|
||||
//Pushback on wait
|
||||
@ -136,8 +134,8 @@ module etx_io (/*AUTOARG*/
|
||||
`CYCLE4 : tx_state[2:0] <= `CYCLE5;
|
||||
`CYCLE5 : tx_state[2:0] <= `CYCLE6;
|
||||
`CYCLE6 : tx_state[2:0] <= `CYCLE7;
|
||||
`CYCLE7 : tx_state[2:0] <= tx_burst_reg & ~tx_wait ? `CYCLE4 :
|
||||
`IDLE;
|
||||
`CYCLE7 : tx_state[2:0] <= tx_burst & ~tx_wait ? `CYCLE4 :
|
||||
`IDLE;
|
||||
endcase // case (tx_state)
|
||||
|
||||
//#############################
|
||||
|
@ -43,7 +43,7 @@ module etx_protocol (/*AUTOARG*/
|
||||
reg tx_access;
|
||||
reg [PW-1:0] tx_packet;
|
||||
reg tx_io_wait;
|
||||
|
||||
reg tx_burst;
|
||||
wire etx_write;
|
||||
wire [1:0] etx_datamode;
|
||||
wire [3:0] etx_ctrlmode;
|
||||
@ -78,7 +78,7 @@ module etx_protocol (/*AUTOARG*/
|
||||
else if (tx_io_wait)
|
||||
tx_io_wait <= 1'b0;
|
||||
else
|
||||
tx_io_wait <= etx_access & ~tx_burst;
|
||||
tx_io_wait <= etx_access & ~tx_burst_in;
|
||||
|
||||
//Hold transaction while waiting
|
||||
//This transaction should be flushed out on wait????
|
||||
@ -92,6 +92,7 @@ module etx_protocol (/*AUTOARG*/
|
||||
begin
|
||||
tx_packet[PW-1:0] <= etx_packet[PW-1:0];
|
||||
tx_access <= tx_enable & etx_access;
|
||||
tx_burst <= tx_burst_in;
|
||||
end
|
||||
|
||||
//#############################
|
||||
@ -115,7 +116,7 @@ module etx_protocol (/*AUTOARG*/
|
||||
==
|
||||
{etx_ctrlmode[3:0],etx_datamode[1:0], etx_write};
|
||||
|
||||
assign tx_burst = tx_access & //avoid garbage
|
||||
assign tx_burst_in = tx_access & //avoid garbage
|
||||
~tx_wr_wait_reg & //clear on wait
|
||||
etx_write & //write
|
||||
(etx_datamode[1:0]==2'b11) & //double only
|
||||
|
Loading…
x
Reference in New Issue
Block a user