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
7637f3e33b
commit
7964358651
@ -75,7 +75,6 @@ module spi_controller (
|
|||||||
logic ShiftEdgePulse;
|
logic ShiftEdgePulse;
|
||||||
logic SampleEdgePulse;
|
logic SampleEdgePulse;
|
||||||
logic EndOfFramePulse;
|
logic EndOfFramePulse;
|
||||||
logic PhaseOneOffset;
|
|
||||||
|
|
||||||
// Frame stuff
|
// Frame stuff
|
||||||
logic [3:0] BitNum;
|
logic [3:0] BitNum;
|
||||||
@ -212,34 +211,17 @@ module spi_controller (
|
|||||||
always_ff @(posedge ~PCLK) begin
|
always_ff @(posedge ~PCLK) begin
|
||||||
if (~PRESETn | TransmitStart) begin
|
if (~PRESETn | TransmitStart) begin
|
||||||
ShiftEdge <= 0;
|
ShiftEdge <= 0;
|
||||||
PhaseOneOffset <= 0;
|
|
||||||
SampleEdge <= 0;
|
SampleEdge <= 0;
|
||||||
EndOfFrame <= 0;
|
EndOfFrame <= 0;
|
||||||
end else begin
|
end else if (^SckMode) begin
|
||||||
PhaseOneOffset <= (PhaseOneOffset == 0) ? Transmitting & SCLKenable : ~EndOfFrame;
|
|
||||||
case(SckMode)
|
|
||||||
2'b00: begin
|
|
||||||
ShiftEdge <= SPICLK & ShiftEdgePulse;
|
|
||||||
SampleEdge <= ~SPICLK & SampleEdgePulse;
|
|
||||||
EndOfFrame <= SPICLK & EndOfFramePulse;
|
|
||||||
end
|
|
||||||
2'b01: begin
|
|
||||||
ShiftEdge <= ~SPICLK & ShiftEdgePulse & PhaseOneOffset;
|
|
||||||
SampleEdge <= SPICLK & SampleEdgePulse;
|
|
||||||
EndOfFrame <= ~SPICLK & EndOfFramePulse;
|
|
||||||
end
|
|
||||||
2'b10: begin
|
|
||||||
ShiftEdge <= ~SPICLK & ShiftEdgePulse;
|
ShiftEdge <= ~SPICLK & ShiftEdgePulse;
|
||||||
SampleEdge <= SPICLK & SampleEdgePulse;
|
SampleEdge <= SPICLK & SampleEdgePulse;
|
||||||
EndOfFrame <= ~SPICLK & EndOfFramePulse;
|
EndOfFrame <= ~SPICLK & EndOfFramePulse;
|
||||||
end
|
end else begin
|
||||||
2'b11: begin
|
ShiftEdge <= SPICLK & ShiftEdgePulse;
|
||||||
ShiftEdge <= SPICLK & ShiftEdgePulse & PhaseOneOffset;
|
|
||||||
SampleEdge <= ~SPICLK & SampleEdgePulse;
|
SampleEdge <= ~SPICLK & SampleEdgePulse;
|
||||||
EndOfFrame <= SPICLK & EndOfFramePulse;
|
EndOfFrame <= SPICLK & EndOfFramePulse;
|
||||||
end
|
end
|
||||||
endcase
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
// Logic for continuing to transmit through Delay states after end of frame
|
// Logic for continuing to transmit through Delay states after end of frame
|
||||||
|
Loading…
Reference in New Issue
Block a user