Commit Graph

5160 Commits (5f1cb18c9b385931113fe78a26640f96f3a82573)

Author SHA1 Message Date
Lars-Peter Clausen 30c3f8244c jesd204_soft_pcs_rx: Add support for lane polarity inversion
Some designs choose to swap the positive and negative side of the of the
JESD204 lanes. One reason for this would be because it can simplify the
PCB layout.

To support this add a parameter to the jesd204_soft_pcs_rx module that
allows to specify whether the lane polarity is inverted or not.

The way the polarity inversion is implemented it is for free since it will
only invert the input mapping of the 8b10b decoder LUT tables.

The pattern align module does not care whether the polarity is inverted or
not since the pattern align symbols look the same in both cases.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2018-05-02 09:37:23 +02:00
Lars-Peter Clausen ee57f869f1 axi_dmac: Fix bus resize block reset
When the source and destination bus widths don't match a resize block is
inserted on the side of the narrower bus. This resize block can contain
partial data.

To ensure that there is no residual partial data is left in the resize
block after a transfer shutdown the resize block is reset when the DMA is
disabled.

Currently this is implemented by tying the reset signal of the resize block
to the enable signal of the DMA. This enable signal is only a indicator
though that the DMA should shutdown. For a proper shutdown outstanding
transactions still need to be completed.

The data that is in the resize block might be required to complete those
transactions. So performing the reset when the enable signal goes low can
lead to a situation where the DMA tries to complete a transaction but can't
do it because the data required to do so has been erased by resetting the
resize block. This leads to a dead lock and the system has to be rebooted
to recover from it.

To solve this use the sync_id signal to reset the resize block. The sync_id
signal will only be asserted when both the destination and source side
module have indicated that they are ready to be reset and there are no more
pending transactions.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2018-05-02 09:37:02 +02:00
Adrian Costina e4d579726d Renamed ad9379 to adrv9009 2018-04-26 18:19:11 +03:00
Adrian Costina 96c5cc9a66 adrv9379:zcu102: Update to new revision of the board 2018-04-26 18:19:11 +03:00
Adrian Costina fe4278d2ea adrv9379:zcu102: Move to FMC1 2018-04-26 18:19:11 +03:00
Adrian Costina c24025c8d5 adrv9379:zcu102: Cleanup constraints 2018-04-26 18:19:11 +03:00
Adrian Costina 47ad04697d adrv9379:zcu102: Fix constraints, from ZCU102 rev B to ZCU102 rev D 2018-04-26 18:19:11 +03:00
Adrian Costina e4c4559b6d adrv9379:ZCU102: Initial commit 2018-04-26 18:19:11 +03:00
Lars-Peter Clausen f3102eea5a axi_dmac: Limit MAX_BYTES_PER_BURST to maximum supported value
The MAX_BYTES_PER_BURST option allows to configure the maximum bytes that
are part of a burst. This can be an arbitrary value.

At the same time there is a limit of how many bytes can be supported by the
memory buses. A AXI3 interface supports a maximum of 16 beats per burst
and a AXI4 interface supports a maximum of 256 beats per burst.

At the moment the it is possible to specify a MAX_BYTES_PER_BURST value
that exceeds what can be supported by the AXI memory-mapped bus. If that is
the case undefined behavior will occur and the DMAC will function
incorrectly.

To avoid this make sure that the MAX_BYTES_PER_BURST value does not exceed
the maximum that can be supported by the interfaces.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2018-04-24 12:49:24 +02:00
Lars-Peter Clausen 5418dfeb50 axi_dmac: axi_dmac_hw.tcl: Fix indention
Fix some slight indentation issues in the axi_dmac_hw.tcl.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2018-04-24 12:49:24 +02:00
Lars-Peter Clausen e609c7fd3b axi_dmac: Prevent destination AXI burst length truncation
The width of the AXI burst length field depends on the AXI standard
version. For AXI3 the width is 4 bits allowing a maximum burst length of 16
beats, for AXI4 it is 8 bits wide allowing a maximum burst length of 256
beats.

At the moment the width of the length signals are determined by type of the
source AXI interface, even if the source interface type is not AXI. This
means if the source interface is set to AXI3 and the destination interface
is set to AXI4 the internal width of the signal for all interfaces will be
4 bits. This leads to a truncation of the destination bus length field,
which is supposed to be 8 bits.

If burst are generated that are longer than 16 beats the upper bits of the
length signal will be truncated. The result of this will be that the
external AXI slave interface (e.g. the DDR memory) and the internal logic
in the DMA disagree about burst length.  The DMA will eventually lock up
when its internal buffers are full.

To avoid this issue have different configuration parameters for the source
and destination interface that configure the AXI bus length field width.

This way one of the interfaces can be configured for AXI3 and the other for
AXI4 without interfering with each other.

Fixes: commit 495d2f3056 ("axi_dmac: Propagate awlen/arlen width through the core")
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2018-04-24 12:49:24 +02:00
Laszlo Nagy a3cd70ff1d adi_ip.tcl: reorder synthesis files in the file group
This commit fixes the following warning from the IP packaging flow:
"[IP_Flow 19-801] The last file in file group "Synthesis" should be an HDL file:
"axi_dmac_constr.ttcl".  During generation the IP Flow uses the last file to
determine library and other information when generating the top wrapper file.
If possible, please make sure that non-HDL files are located earlier in the list
of files for this file group."

Having the ttcl or other non HDL file at the end of the file group causes issues
when the project preferred language is set to VHDL. Since the synthesis file group
is set to "xilinx_anylanguagesynthesis" the tool tries to guess the type of wrapper
to be generated for that IP based on the last file from the file group.
If the file is non HDL then he defaults to the preferred language (this case VHDL)

Due some issue when the tool tries to create a VHDL wrapper for an IP that has
a Verilog top file with boolean parameters set from the IP packager he fails.
After we reorder the files after each non HDL file addition
he will create a correct Verilog wrapper for it with all parameters
which can be integrated in a VHDL system top file without issues.
2018-04-24 11:46:52 +03:00
Adrian Costina bbb5a31994 Reviewed pinout of ZCU102 projects. fmcomms5 pin gpio_ad5355_lock location changed 2018-04-21 15:28:13 +03:00
Lars-Peter Clausen 8e90d5db20 axi_ad9162: Infer clock signal for tx_clk port
Fixes the following warning:
  [BD 41-1731] Type mismatch between connected pins: /util_fmcomms11_xcvr/tx_out_clk_0(clk) and /axi_ad9162_core/tx_clk(undef)

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2018-04-18 15:16:13 +02:00
Laszlo Nagy bfac56199e axi_dmac: adding missing dependency for Intel flow
When the DMAC is used in async clock domains the data FIFO instantiate
an ad_mem component to handle properly the clock crossing.
For Intel, this mode is used only in FMCJESDADC1 designs but without this
an error could appear in other projects too if the user reconfigures the core.
2018-04-17 16:34:41 +03:00
Laszlo Nagy c42ed7dd52 axi_dmac: removed harmful SDC constraint
The set_false_path constraint targeted to the *ram* cells of the dmac
matched several intra clock domain paths where the timing analysis got
ignored resulting in intermitent data integrity issues.
2018-04-17 16:34:41 +03:00
Laszlo Nagy ad05a5ecc1 axi_dmac: AXI3 support on Intel qsys
Exposed AXI3 interface on the Intel version of the IP for UI and feature consistency.
Some of the signals that are defined as optional in the AMBA standard
are marked as mandatory in Qsys in case of AXI3. Because of this such signals
were added to the interface of the DMAC and driven with default values.

For Xilinx in order to keep existing behavior the newly added signals
are hidden from the interface.

New parameters are added to define the width of the AXI transaction IDs;
these are hidden from the UI; We can add them to the UI if the fixed size
of the IDs will cause port incompatibility issues.
2018-04-17 15:12:01 +03:00
Istvan Csomortani 3ce9f55c39 fmcjesdadc1:a10: Move block design into feature branch
Move block design file into the fmcjesdadc1_a10 feature branch.
2018-04-13 17:37:17 +01:00
Istvan Csomortani c794cbb49d daq3: Connect the DAC data underflow
Connect the DAC data underflow pin (fifo_rd_underflow) of the DMA
to the dunf pin of the device core. This way the software can detect
underflows in the DAC data path.
2018-04-13 18:46:29 +03:00
Istvan Csomortani 5075be8bff daq2: Connect the DAC data underflow
Connect the DAC data underflow pin (fifo_rd_underflow) of the DMA
to the dunf pin of the device core. This way the software can detect
underflows in the DAC data path.
2018-04-13 18:46:29 +03:00
Istvan Csomortani 992011c3a3 fmcomms5: Connect the DAC data underflow
Connect the DAC data underflow pin (fifo_rd_underflow) of the DMA
to the dunf pin of the device core. This way the software can detect
underflows in the DAC data path.
2018-04-13 18:46:29 +03:00
Istvan Csomortani 6458e825e9 fmcomms7: Move project to a feature branch 2018-04-13 18:22:15 +03:00
Istvan Csomortani 05ce6dea26 usdrx1: Move project to a feature branch 2018-04-13 18:22:15 +03:00
Istvan Csomortani ae1ec06ce6 fmcomms2:pr: Move project to a feature branch 2018-04-13 18:22:15 +03:00
Istvan Csomortani 43496cf80a fmcomms11: Move project to a feature branch 2018-04-13 18:22:15 +03:00
Istvan Csomortani 6419de60c4 fmcjesdadc1:altera: Move projects to a feature branch 2018-04-13 18:22:15 +03:00
Istvan Csomortani 18bdf91254 daq1: Move project to a feature branch 2018-04-13 18:22:15 +03:00
Istvan Csomortani 1c959a8f85 usrpe31x: Delete deprecated project 2018-04-13 18:22:15 +03:00
Istvan Csomortani 9ea6652cba adrv9364z7020:ccusb: Delete deprecated project 2018-04-13 18:22:15 +03:00
Istvan Csomortani 748b4598fc adrv9361z7035:ccusb: Delete deprecated project 2018-04-13 18:22:15 +03:00
Istvan Csomortani 62c7ecbbff adrv9361z7035:ccpci: Delete deprecated project 2018-04-13 18:22:15 +03:00
Istvan Csomortani e940b375c8 adv7511:kcu105: Delete deprecated project 2018-04-13 18:22:15 +03:00
Istvan Csomortani 85913c1b00 adv7511:vc707: Delete deprecated project 2018-04-13 18:22:15 +03:00
Istvan Csomortani a277d55c35 adv7511:kc705: Delete deprecated project 2018-04-13 18:22:15 +03:00
Lars-Peter Clausen c5b1b905e3 ad_sysref_gen: Fix quartus warnings
Fix the following warnings that are generated by Quartus:
	Warning (10230): Verilog HDL assignment warning at ad_sysref_gen.v(68): truncated value with size 32 to match size of target (8)

No functional changes.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2018-04-13 11:32:57 +02:00
Lars-Peter Clausen 162248375c ad_datafmt: Fix Quartus warnings
Fix the following warnings that are generated by Quartus:
	Warning (10036): Verilog HDL or VHDL warning at ad_datafmt.v(69): object "sign_s" assigned a value but never read

Move the sign_s and signext_s signals into the generate block in which
they are used.

No functional changes.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2018-04-13 11:32:57 +02:00
Lars-Peter Clausen b555218152 util_dacfifo: Fix Quartus warnings
Fix the following warnings that are generated by Quartus:
	Warning (10236): Verilog HDL Implicit Net warning at util_dacfifo.v(257): created implicit net for "dac_mem_ren_s"
	Warning (10230): Verilog HDL assignment warning at util_dacfifo.v(166): truncated value with size 32 to match size of target (10)
	Warning (10230): Verilog HDL assignment warning at util_dacfifo.v(266): truncated value with size 32 to match size of target (10)
	Warning (10230): Verilog HDL assignment warning at util_dacfifo.v(268): truncated value with size 32 to match size of target (10)

No functional changes.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2018-04-13 11:32:57 +02:00
Lars-Peter Clausen db7b7c5194 quiet.mk: Fix newline generation in error message
Not all echo implementations support escape characters and newline
insertion. Make sure quiet.mk does not use escape characters to generate
newlines and instead split the output over multiple echo commands to get
the same effect.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2018-04-12 18:19:43 +02:00
Lars-Peter Clausen 2f5a4a2428 de10: license: Fix a spelling mistake
Same as commit 425e8033 ("license: Fix a spelling mistake").

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2018-04-12 10:54:12 +02:00
Lars-Peter Clausen 2c4d81a221 axi_dmac: Disable 2D transfer support by default
The primary use-case of the DMA controller is in non-2D mode. Make this the
default, since allows projects to instantiate the controller with the
default configuration without having to explicitly disable 2D support.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2018-04-11 15:09:54 +03:00
Lars-Peter Clausen 05e8604ea7 axi_dmac: Remove unused pause signal from address generator
The pause signal is not used inside the address generator module. Remove
it.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2018-04-11 15:09:54 +03:00
Lars-Peter Clausen 2b2c1f6a1e axi_dmac: Fix some indentation errors
Purely cosmetic.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2018-04-11 15:09:54 +03:00
Istvan Csomortani 8b8d346193 jesd204: Update testbench with the new file names 2018-04-11 15:09:54 +03:00
Istvan Csomortani 09ff1f3a77 jesd204: Fix file names
All the file names must have the same name as its module. Change all the
files, which did not respect this rule.
Update all the make files and Tcl scripts.
2018-04-11 15:09:54 +03:00
Istvan Csomortani 6e4ad871a4 avl_dacfifo: Fix 'blocking statement in always block' issue 2018-04-11 15:09:54 +03:00
Istvan Csomortani 0fe3d4423d avl_dacfifo: Delete unused files 2018-04-11 15:09:54 +03:00
Lars-Peter Clausen 5b58fb67f0 library: Remove empty constraint files
Most of the cores are fully covered by the generic constraint files. When
the constraints where moved from the core specific to the generic
constraint files some empty core constraints files where left around. These
don't do anything, so remove them.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2018-04-11 15:09:54 +03:00
Lars-Peter Clausen 1ea3ad28ae Add quiet mode to the Makefile system
The standard Makefile output is very noisy and it can be difficult to
filter the interesting information from this noise.

In quiet mode the standard Makefile output will be suppressed and instead a
short human readable description of the current task is shown.

E.g.
	> make adv7511.zed
	Building axi_clkgen library [library/axi_clkgen/axi_clkgen_ip.log] ... OK
	Building axi_hdmi_tx library [library/axi_hdmi_tx/axi_hdmi_tx_ip.log] ... OK
	Building axi_i2s_adi library [library/axi_i2s_adi/axi_i2s_adi_ip.log] ... OK
	Building axi_spdif_tx library [library/axi_spdif_tx/axi_spdif_tx_ip.log] ... OK
	Building util_i2c_mixer library [library/util_i2c_mixer/util_i2c_mixer_ip.log] ... OK
	Building adv7511_zed project [projects/adv7511/zed/adv7511_zed_vivado.log] ... OK

Quiet mode is enabled by default since it generates a more human readable
output. It can be disabled by passing VERBOSE=1 to make or setting the
VERBOSE environment variable to 1 before calling make.

E.g.
	> make adv7511.zed VERBOSE=1
	make[1]: Entering directory 'library/axi_clkgen'
	rm -rf *.cache *.data *.xpr *.log component.xml *.jou xgui
	*.ip_user_files *.srcs *.hw *.sim .Xil .timestamp_altera
	vivado -mode batch -source axi_clkgen_ip.tcl >> axi_clkgen_ip.log 2>&1
	...

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2018-04-11 15:09:54 +03:00
Laszlo Nagy d8916e681e axi_ad9144: Infer clock signal 2018-04-11 15:09:54 +03:00
Laszlo Nagy 7ae0167a4d axi_ad9250: Infer clock signals 2018-04-11 15:09:54 +03:00