fpga: x400: Adjust SPI engine strobes alignment
Modify behavior of clock crossing between radio_clk and radio_clk_2x. This ensures strobe signals are always asserted for a single radio_clk_2x cycle and when radio_clk is low. Original-commit: adb352a2ad81d7c6d70ec5880a787b6bab7d19ba
This commit is contained in:
committed by
Wade Fife
parent
8630f2616c
commit
56b8f83341
@@ -24131,9 +24131,9 @@ FPGA version.<BR/>
|
||||
|
||||
<tr valign="top">
|
||||
|
||||
<td class='value'>570500626</td>
|
||||
<td class='value'>570565649</td>
|
||||
|
||||
<td class='l'>0x22012612</td>
|
||||
<td class='l'>0x22022411</td>
|
||||
|
||||
<td class="l" style="text-align: left;">
|
||||
<p class="name"><a name='VERSIONING_REGS_REGMAP|FPGA_VERSION|FPGA_VERSION_LAST_MODIFIED_TIME'></a>FPGA_VERSION_LAST_MODIFIED_TIME</p>
|
||||
|
||||
@@ -85,7 +85,7 @@
|
||||
localparam FPGA_CURRENT_VERSION_MINOR = 'h6; // FPGA_VERSION:FPGA_CURRENT_VERSION_MINOR
|
||||
localparam FPGA_CURRENT_VERSION_MAJOR = 'h7; // FPGA_VERSION:FPGA_CURRENT_VERSION_MAJOR
|
||||
localparam FPGA_OLDEST_COMPATIBLE_VERSION_MAJOR = 'h7; // FPGA_VERSION:FPGA_OLDEST_COMPATIBLE_VERSION_MAJOR
|
||||
localparam FPGA_VERSION_LAST_MODIFIED_TIME = 'h22012612; // FPGA_VERSION:FPGA_VERSION_LAST_MODIFIED_TIME
|
||||
localparam FPGA_VERSION_LAST_MODIFIED_TIME = 'h22022411; // FPGA_VERSION:FPGA_VERSION_LAST_MODIFIED_TIME
|
||||
|
||||
// Enumerated type RF_CORE_100M_VERSION
|
||||
localparam RF_CORE_100M_VERSION_SIZE = 7;
|
||||
|
||||
+1
-1
@@ -2289,7 +2289,7 @@ endmodule
|
||||
// <value name="FPGA_OLDEST_COMPATIBLE_VERSION_MAJOR" integer="7"/>
|
||||
// <value name="FPGA_OLDEST_COMPATIBLE_VERSION_MINOR" integer="0"/>
|
||||
// <value name="FPGA_OLDEST_COMPATIBLE_VERSION_BUILD" integer="0"/>
|
||||
// <value name="FPGA_VERSION_LAST_MODIFIED_TIME" integer="0x22012612"/>
|
||||
// <value name="FPGA_VERSION_LAST_MODIFIED_TIME" integer="0x22022411"/>
|
||||
// </enumeratedtype>
|
||||
// </group>
|
||||
//</regmap>
|
||||
|
||||
@@ -342,13 +342,18 @@ module x4xx_gpio_spi #(
|
||||
|
||||
// Register set_stb for use in 2x domain.
|
||||
reg set_stb_2x = 1'b0;
|
||||
reg ctrlport_clk_phase = 1'b0;
|
||||
reg ctrlport_clk_phase = 1'b1;
|
||||
|
||||
always @ (posedge ctrlport_clk_2x) begin
|
||||
// Assert strobe only during a single 2x cycle of the
|
||||
// 1x pulse.
|
||||
set_stb_2x <= ctrlport_clk_phase & set_stb;
|
||||
ctrlport_clk_phase <= ~ctrlport_clk_phase;
|
||||
if (ctrlport_rst) begin
|
||||
ctrlport_clk_phase <= 1'b1;
|
||||
set_stb_2x <= 1'b0;
|
||||
end else begin
|
||||
// Assert strobe only during a single 2x cycle of the
|
||||
// 1x pulse, when 1x clock is low.
|
||||
set_stb_2x <= ctrlport_clk_phase & set_stb;
|
||||
ctrlport_clk_phase <= ~ctrlport_clk_phase;
|
||||
end
|
||||
end
|
||||
|
||||
simple_spi_core #(
|
||||
|
||||
Reference in New Issue
Block a user