Commit Graph

122 Commits

Author SHA1 Message Date
naichewa
987015a2a7 Fix SPI Delay1 behavior 2024-11-07 12:14:23 -08:00
naichewa
7964358651 Fix erroneous implicit sckcs and cssck phase delays 2024-11-07 10:47:51 -08:00
naichewa
7637f3e33b Fix erroneous implicit sckcs and cssck phase delays 2024-11-07 10:19:55 -08:00
naichewa
927398a017 Fix SPI state skipping sck-cs delay when at end of transmission 2024-11-07 10:17:22 -08:00
Jacob Pease
507c1dad1c Removed impossible condition in receive register logic. 2024-11-04 16:15:42 -06:00
Jacob Pease
120b21d7d5 More SPI optimizations. 2024-11-04 15:38:12 -06:00
Jacob Pease
a9e6962cd4 Removed unused signals and renamed other signals. Removed a bunch of delay counters and simply reuse one counter for all delay types. Tested on FPGA and it also passes regression. 2024-11-03 00:35:40 -05:00
Jacob Pease
674d008f23 Added headers to files. 2024-11-02 14:31:05 -05:00
Jacob Pease
c197d4a3c6 Cleaned up some code. Still more work to do there. 2024-11-01 17:35:55 -05:00
Jacob Pease
e881bd3120 Changed the condition for TransmitStart fsm to avoid edge condition. 2024-11-01 17:04:07 -05:00
Jacob Pease
eddae8e1a6 Fixed ShiftEdge and SampleEdge to not always include PhaseOneOffset. Before, it worked in simulation, but not on the FPGA. 2024-11-01 13:02:17 -05:00
Jacob Pease
56a6ad3376 Fixed lint issues. 2024-10-31 15:56:16 -05:00
Jacob Pease
3ee5fffe02 Fixing latches. 2024-10-31 13:54:56 -05:00
Jacob Pease
72a854eb07 Refactored SPI passes regression save for hardware interlock tests. 2024-10-31 13:01:25 -05:00
Jacob Pease
419030bc33 Fixed FSM to continue transmitting after delay. 2024-10-31 10:41:38 -05:00
Jacob Pease
35c9fe7648 Added changed SPI controller module. New signal TransmitStartD that starts the FSM based on SCLKenable. TransmitStart is responsible for resetting SCLKenable and loading the Transmit Shift Register. 2024-10-30 18:45:54 -05:00
Jacob Pease
4e7e311b26 Fixed issues relating to SCLKenable and TransmitStart. Works at multiple dividers now, instead of just SckDiv = 0. 2024-10-30 18:39:04 -05:00
Jacob Pease
4f0723f236 Fixed enabling of TransmitFIFOReadIncrement and ReceiveFIFOWriteIncrement 2024-10-30 16:19:46 -05:00
Jacob Pease
b667581ffa Refactored SPI peripheral based on SPI controller module. Works in tests/custom/spitest. 2024-10-29 17:50:36 -05:00
Jacob Pease
784630b945 Added wally header to spi_controller. 2024-10-29 10:53:33 -05:00
Jacob Pease
37d2f3220e Added a new spi controller design. Designed as a proof of concept to see if timing issues can be fixed. I intend to work it into existing SPI peripheral. 2024-10-29 10:30:08 -05:00
David Harris
1c1acc467e Tweaked SPI to avoid breaking VCS, but the SCLK divider still doesn't produce the right frequency and SCLKenableEarly looks like it wouldn't work for SckDiv = 0 2024-10-26 02:01:09 -07:00
Rose Thompson
a4cda877ef Fixed bit position of SPI fifo receive and transmit flags. 2024-10-21 14:52:40 -05:00
Rose Thompson
32624bc6ee Relocated a logic in a file to avoid a future merge conflict. 2024-09-05 12:50:09 -07:00
Rose Thompson
005ea52b72 Added missing signal declaration for SPI. 2024-09-05 12:20:06 -07:00
Rose Thompson
ac047a04fa Fixed bug in SPI with the help of Naiche and Jacob. Have yet to test
if SPI will now run correctly with div=0 (SYSTEMCLOCK/2), but the SPI
flash card now correctly loads into the Linux OS and mount and is
reading and writting without error.
2024-09-04 17:51:48 -07:00
naichewa
3b7661dfd5 SckDiv Zero bug fixes 2024-09-03 14:58:46 -07:00
Jacob Pease
938879c5a4 Update PREADY signal to not stall during transmission on reads to read only registers. 2024-08-21 12:39:01 -05:00
Jacob Pease
b7edffdfd4 Removed now inaccurate comments. 2024-08-20 16:38:15 -05:00
Jacob Pease
d8b75440b6 With Naiche's help, we fixed the SPI controllers clock polarity and phase settings. Added conditions to the SPI regression tests. 2024-08-20 16:24:37 -05:00
Jacob Pease
43b17b5058 Update SPI peripheral to accept writes to FIFO always. Worked on this together with Naiche and Rose. 2024-08-20 14:40:50 -05:00
Jacob Pease
11a057b0b3 Updated wally source files for zsbl testing. 2024-08-02 15:33:57 -05:00
Jacob Pease
336a413f31 Added ability to split boot.memfile into boot.mem and data.mem. 2024-07-25 11:19:15 -05:00
Jacob Pease
f1cc7dd5a3 Fixed verilog bugs. 2024-07-23 17:26:39 -05:00
Jacob Pease
a506d76149 Removed the old SDC. Added a second SPI peripheral that now will be used to control the SD card. SPI peripheral now outputs SPICLK. Removed references to the now non-existent external SDC in uncore. Removed all of the AXI Xilinx IP. 2024-07-22 12:36:39 -05:00
Ross Thompson
7f0ba87231 Updated comments in uart. 2024-06-19 13:51:30 -07:00
David Harris
cb563e8018 Clean up unused signals 2024-06-18 08:07:14 -07:00
David Harris
c1fd7a9589 Removed unused signals 2024-06-18 07:28:52 -07:00
David Harris
3fa37b0233 Lint cleanup 2024-06-18 06:15:17 -07:00
David Harris
7509e856df Removed asynchronous reset causing lint issue in peripherals 2024-06-18 05:49:12 -07:00
David Harris
4a4bbdfc43 More code cleanup 2024-06-14 09:50:07 -07:00
David Harris
53477b2c85 Code cleanup 2024-06-14 07:08:17 -07:00
David Harris
8f09240e6c Simplified outdated documentation pointers 2024-06-14 03:42:15 -07:00
David Harris
3f195884e9 Defined bit sizes more precisely to help VCS lint and conform to coding style 2024-04-21 08:40:11 -07:00
David Harris
0419b5484a parameterized register names in peripherals 2024-04-21 07:43:01 -07:00
slmnemo
39ae26a897 Added documentation for known Verilator hierarchy bug 2024-04-15 15:58:09 -07:00
slmnemo
4b80457f3e Fixed issue with Verilator hierarchical referencing by changing module names, moved run-imperas-linux to correct directory 2024-04-12 21:58:20 -07:00
David Harris
79cccfca82 Progress toward run_vcs 2024-04-03 14:05:07 -07:00
Kunlin Han
22b59138f0 Remove all #delay from non-testbench. 2024-03-16 11:20:32 -07:00
Kunlin Han
8c67a76912 Remove all #delay from non-testbench. 2024-03-13 10:31:40 -07:00