mirror of
https://github.com/openhwgroup/cvw
synced 2025-02-11 06:05:49 +00:00
Fix erroneous implicit sckcs and cssck phase delays
This commit is contained in:
parent
927398a017
commit
7637f3e33b
@ -93,6 +93,7 @@ module spi_controller (
|
|||||||
logic [7:0] sckcs;
|
logic [7:0] sckcs;
|
||||||
logic [7:0] intercs;
|
logic [7:0] intercs;
|
||||||
logic [7:0] interxfr;
|
logic [7:0] interxfr;
|
||||||
|
logic Phase;
|
||||||
|
|
||||||
logic HasCSSCK;
|
logic HasCSSCK;
|
||||||
logic HasSCKCS;
|
logic HasSCKCS;
|
||||||
@ -142,6 +143,7 @@ module spi_controller (
|
|||||||
|
|
||||||
assign ContinueTransmit = ~TransmitFIFOEmpty & EndOfFrame;
|
assign ContinueTransmit = ~TransmitFIFOEmpty & EndOfFrame;
|
||||||
assign EndTransmission = TransmitFIFOEmpty & EndOfFrame;
|
assign EndTransmission = TransmitFIFOEmpty & EndOfFrame;
|
||||||
|
assign Phase = SckMode[0];
|
||||||
|
|
||||||
always_ff @(posedge PCLK) begin
|
always_ff @(posedge PCLK) begin
|
||||||
if (~PRESETn) begin
|
if (~PRESETn) begin
|
||||||
@ -166,10 +168,12 @@ module spi_controller (
|
|||||||
end
|
end
|
||||||
|
|
||||||
// SPICLK Logic
|
// SPICLK Logic
|
||||||
|
|
||||||
if (TransmitStart) begin
|
if (TransmitStart) begin
|
||||||
SPICLK <= SckMode[1];
|
SPICLK <= SckMode[1];
|
||||||
end else if (SCLKenable & Transmitting) begin
|
end else if (SCLKenable) begin
|
||||||
SPICLK <= (~EndTransmission & ~DelayIsNext) ? ~SPICLK : SckMode[1];
|
if (Phase & (NextState == TRANSMIT)) SPICLK <= (~EndTransmission & ~DelayIsNext) ? ~SPICLK : SckMode[1];
|
||||||
|
else if (Transmitting) SPICLK <= (~EndTransmission & ~DelayIsNext) ? ~SPICLK : SckMode[1];
|
||||||
end
|
end
|
||||||
|
|
||||||
// Reset divider
|
// Reset divider
|
||||||
|
Loading…
Reference in New Issue
Block a user