Commit Graph

131 Commits (bad1d0367891999b376782f89f5609fd543c0408)

Author SHA1 Message Date
caosjr bad1d03678
spi_engine: Fixup param ranges and CPHA info (#1239)
Set validation ranges for DATA_WIDTH and NUM_OF_CS for the expected
min/max values in the verilog source code.
Also, fix swapped description for CPHA in the documentation.

Signed-off-by: Carlos Oliveira <caosjr8@gmail.com>
2023-12-18 10:52:26 -03:00
LBFFilho becc035ba9
SPI Engine: Fixed delay behaviour on Chip-Select and Sleep instructions (#1200)
Fixed wrong behaviour on chip select instruction:
- previously, a sleep time happened before the chip select change
- the intended behaviour was for another sleep time, of equal amount, to happen after the chip select change as well
- additionally, the counter logic implementation was creating an additional factor of 2 on the sleep time

All of the above points were fixed. The changes introduced also fix another issue where the sleep instruction was likewise happening with a duration larger than intended by a factor of 2


Signed-off-by: Laez Barbosa <laez.barbosa@analog.com>
2023-10-30 09:52:04 -03:00
Iulia Moldovan c9a7d4d927 Add copyright and license to .tcl, .ttcl files
Signed-off-by: Iulia Moldovan <Iulia.Moldovan@analog.com>
2023-07-25 15:22:26 +03:00
Iulia Moldovan 27bb69b44c Add copyright and license to .sdc files
Signed-off-by: Iulia Moldovan <Iulia.Moldovan@analog.com>
2023-07-25 10:41:40 +03:00
Iulia Moldovan 28c06d505f Add/edit copyright and license for .v, .sv files
Signed-off-by: Iulia Moldovan <Iulia.Moldovan@analog.com>
2023-07-11 15:17:41 +03:00
Sergiu Arpadi cf3bd8528d spi_engine_offload: Update hw.tcl
Define trigger input signal as if_pwm interface type. This ensures
compatibility with axi_pwm_gen pwm outputs.
2023-03-30 14:55:59 +03:00
laurent-19 2ae09c9808 Check guidelines. Remove redundancies
* Removed empty/commented lines
 * Regenerated Makefiles
 * Removed redundancies adc channels data width
 * Set data width 32-bit: max resolution and CRC header

Signed-off-by: laurent-19 <laurentiu.popa@analog.com>
2023-03-29 15:08:07 +03:00
Sergiu Arpadi 445cca61ef SPI Engine: Update spi_engine.tcl
The SPI Engine cores were named directly inside the script and this
would mean that for multiple SPI Engine instances IPs with the same
name would appear. These updates will introduce the hierarchy name
into the name given to the cores and will therefore allow for
multiple instances of SPI Engine to be added to the same Xilinx
project.

Projects which use spi_engine.tcl will be updated to account for
these changes.
2023-03-29 15:08:07 +03:00
Iulia Moldovan db94628cc6 library & projects: Update Makefiles
Signed-off-by: Iulia Moldovan <Iulia.Moldovan@analog.com>
2023-01-27 11:54:05 +02:00
Iacob_Liviu 482f0489a3 scripts: Merge adi_env.tcl into a single file
Move the new adi_env.tcl file from hdl/projects/scripts into hdl/scrips
2022-08-08 13:52:54 +03:00
Iulia Moldovan 0c0617d49e libraries: Update modules according to guideline
* Added header license for the files that didn't have
* Modified parentheses
* Removed extra spaces at the end of lines
* Fixed parameters list to be each parameter on its line
* Deleted lines after endmodule and consecutive empty lines
* Fixed indentation

Signed-off-by: Iulia Moldovan <iulia.moldovan@analog.com>
2022-06-28 18:06:56 +03:00
Nick Pillitteri c1721e18dd account for ADI_VIVADO_IP_LIBRARY global variable when adding subcores 2022-03-24 16:29:49 +02:00
LIacob106 076e81a17c library: Add link to wiki for IPs 2021-10-25 10:44:53 +03:00
Istvan Csomortani 5ac64b021f spi_engine_execution: Delete control loop-back in sdi_data_valid generation 2021-10-18 16:13:31 +03:00
sergiu arpadi 6570c23a76 axi_spi_engine: Add generic config params
The 4 parameters are added to facilitate transmiting project
related information to the software. They act as read-only
memory which is written in Vivado when the project builds.
Set 31 to SDI FIFO's almost full threshold
2021-10-18 16:13:31 +03:00
Istvan Csomortani f86ae28e50 spi_engine/data_reorder: Initial commit
In case of multiple SDI (MISO) lanes, the samples arrives in a parallel
fashion. For example in case of 4 MISO line, at the first latching clock
edge 4 bits of a sample will be saved, one bit into each shift register.

The data reorder module reconstruct the incoming samples from the AXI
stream of the offload module.
2021-10-18 16:13:31 +03:00
Laszlo Nagy 51b643b978 Makefile: Fix misc makefiles from projects and library 2021-10-05 14:24:48 +03:00
Adrian Costina 591a23156b Makefiles: Update header with the appropriate license 2021-09-16 16:50:53 +03:00
Iacob_Liviu 6763ddcda9 spi_engine_execution: Fix cs signal generation
The cs signal can now accept the IOB TRUE attribute.
2021-09-13 11:39:02 +03:00
Istvan Csomortani 93044adddf axi_spi_engine: almost full and almost empty is generated by the util_axis_fifo 2021-03-18 18:53:35 +02:00
Istvan Csomortani d91b50071f axi_spi_engine: Fix IRQ generation 2021-03-18 18:53:35 +02:00
Istvan Csomortani 22ce3ef9ce axi_spi_engine: Fix level/room width for the CDC FIFOs 2021-03-18 18:53:35 +02:00
stefan.raus 4a772265a9 Update Quartus Prime version from 19.3.0 to 20.1.0
adi_project_intel.tcl: Change quartus version to 20.1.0.
library: Set qsys version so that IP instances won't require a specific version.
2021-03-08 11:29:33 +02:00
Istvan Csomortani 93f46ef6e3 spi_engine_execution: Add constraints file 2021-02-04 11:04:32 +02:00
Istvan Csomortani ab10bd136e spi_engine_execution: Add echoed SCLK support
There are boards (e.g. AD4630-24) which take the SCLK and echo back to
the FPGA through a level shifter - doing this removes the effect of
round-trip timing delays from the level shifter. This is commonly done
whenever isolators are used since they are very slow.

By setting the ECHO_SCLK parameter to 1, the IP will use the incoming
echoed SCLK clock to latch the SDI line(s). The sdi_data_valid is still
synchronous to the SPI clock, and it's generated after the last valid
SDI latch.

The designer's responsibility is to time the SDI shift registers in order to
respect the design requirements.
2021-02-04 11:04:32 +02:00
Istvan Csomortani b989ba36d1 axi_spi_engine: Fix util_axis_fifo instance related issues 2021-01-08 12:29:26 +02:00
Istvan Csomortani eb7e533d66 spi_engine: Update util_axis_fifo instances 2020-12-04 11:00:53 +02:00
Istvan Csomortani 7732a365b5 Revert "axi_spi_engine: Add pulse_width and pulse_period registers"
This reverts commit 0402ce85e4
and reverts commit 164aa97ec3.

The trigger pulse generation must be handled outside of the
SPI Engine framework.

It is recommanded to be done in system level using a PWM
generator or an external signal.
2020-10-21 09:59:26 +03:00
Istvan Csomortani 37254358dd makefile: Regenerate make files 2020-10-20 12:51:10 +03:00
Sergiu Arpadi 33f612091b spi_engine: Add spi_engine.tcl 2020-09-25 16:41:33 +03:00
Istvan Csomortani cba3c0f4f1 spi_engine_offload: Define status_sync interface 2020-09-15 18:14:23 +03:00
Istvan Csomortani 780579f3e9 spi_engine_offload: Delete trailing whitespaces 2020-09-15 18:14:23 +03:00
Istvan Csomortani b827322917 spi_engine_execution: Add missing parameter definition into hw.tcl script 2020-09-15 18:14:23 +03:00
Istvan Csomortani f67209e125 axi_spi_engine: Fix the hw.tcl script
Define both AXI4 Memory Mapped and microprocessor interface for the
reigster map, then activate/deactive one of it in fucntion of the memory
interface type parameter.

Define the missing status_sync interface, which should be connected to
the offload.
2020-09-15 18:14:23 +03:00
Istvan Csomortani f934ff7e4e axi_spi_engine: Add missing ports to every sub-module instance 2020-09-15 18:14:23 +03:00
Istvan Csomortani a5326cb3d2 axi_spi_engine: Refactoring sdi_fifo read outs
Context switching with a parameter is not a good idea. The simulator
may evaluate both branch of the IF statement, even though the inactive
branch may not be valid.

Use if..generate to make the code more robust for both synthesizers and
simulators.
2020-09-15 18:14:23 +03:00
Istvan Csomortani 85aeb915b4 spi_engine_offload: Start offload when DMA is ready 2020-09-15 12:03:48 +03:00
Istvan Csomortani 121ac2e97a spi_engine_interconnect: always construct must not contains mixed assignment types 2020-09-15 12:01:58 +03:00
Istvan Csomortani 3bd8b73028 axi_spi_engine: Fix value range for ID parameter 2020-08-24 16:45:02 +03:00
Istvan Csomortani 46419f8d09 spi_engine: Fix ip scripts for regmap, offload and execution
Fix the *_ip.tcl scripts for axi_spi_engine and spi_engine_offload
module.

In case of a bool parameters the value_format and value properties must
be set for both user and hdl paramters. If not, in the generated verilog
code the tool will use "true" or "false" strings, instead of 0 or 1.
2020-08-24 16:45:02 +03:00
Istvan Csomortani 1c7043c707 axi_spi_engine: Update IPXACT GUI layout 2020-08-19 10:46:46 +03:00
Istvan Csomortani c8fb3a1846 spi_engine_execution: Update IPXACT GUI layout 2020-08-18 08:53:32 +03:00
Istvan Csomortani d1a6f87adb spi_engine_interconnect: Update IPXACT GUI layout 2020-08-18 08:53:14 +03:00
Istvan Csomortani eaf3e97450 spi_engine_offload: Update IPXACT GUI layout 2020-08-18 08:52:58 +03:00
Stanca Pop 5d4d34477c spi_engine: Add Intel Support 2020-08-17 16:37:21 +03:00
Istvan Csomortani 11947f2e7e spi_engine_execution: code refactoring
The added modification do not chnage the functionality of the module.
2020-08-13 10:01:16 +03:00
Istvan Csomortani 45d806ff11 spi_engine_execution: Fix sdi_shift_reg reset and command latching 2020-08-13 10:01:16 +03:00
Istvan Csomortani 51ebe6b35d spi_engine_execution: Latch sdx_enabled
The sdo_enabled and sdi_enabled control lines are generated from the
current state of the CMD bus.

In case of a delayed SDI latching the sdi_enabled can be deasserted at
the moment of the last valid bit, losing the generation of the sdi_data_valid
signal, which eventually cause a data loss, or even deadlock  on software driver.

To make the logic mode robust, latch the value of the CMD[9:8] at every
transfer command. Doing so the sdo_enabled and sdi_enabled control lines will
store the last active transfer command state and they will be
independent of the current state of the CMD bus. This way we can add
longer time delay to the SDI latching if it's necessary.
2020-06-18 15:46:06 +03:00
Istvan Csomortani e0d47645de spi_engine_execution: Optimize SDI latch delay logic 2020-06-18 15:46:06 +03:00
Istvan Csomortani 0402ce85e4 axi_spi_engine: Add pulse_width to the CNV configuration interface
The conversion start configuration interface can be used to configure
a PWM generator (util_pulse_gen) to generate CNV for a precission ADC.
2020-05-19 14:18:21 +03:00