Commit Graph

4125 Commits (4d6c45eb83e0f14de594c666b67f73dd8bce43cc)

Author SHA1 Message Date
Adrian Costina 4d6c45eb83 axi_adc_decimate: Add correction at the end of the decimation chain
The CIC filter introduces different amplifications depending on the
decimation ratio. By adding a multiplier in the decimation chain
the amplification can be compensated
2017-08-04 14:28:37 +03:00
Rejeesh Kutty cf25aeacf5 fmcomms2_bd- keep data flow format 2017-08-03 13:41:26 -04:00
Lars-Peter Clausen 7eba8326dd common: a10soc: Mark external reset as asynchronous
There is no guarantee that the external reset de-assertion is synchronous
to the sys_clk, yet the clock bridge marks the reset de-assertion as
synchronized to the clock. This can cause recovery or removal timing
violations for the registers affected by this reset signal and potentially
bring the system into an invalid state after the reset is de-asserted.

Mark the reset as not synchronized to the clock signal, this will make sure
that Qsys inserts the proper reset synchronizers where required.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2017-08-03 17:57:58 +02:00
Lars-Peter Clausen fa9d94bfe8 avl_adxcvr: Perform octet order swap
The ADI transport layer peripherals expect the first octet to be in the
LSBs and the last octet to be in the MSBs. The Altera JESD204 core orders
the octets the other way around though, first octet in the MSBs and last
octet in the LSBS.

Currently this is handled by having each transport layer peripheral swap
the octets around when it is connected to the Altera JESD204 core.

Change this so that rather than having to do the data swizzling in every in
every transport layer peripheral perform it at the input/output of the link
layer peripheral inside the generated block.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2017-08-03 17:57:58 +02:00
Lars-Peter Clausen 69a23ecde3 avl_adxcvr: Simplify TX lane mapping
Currently the TX lane mapping is implemented by having to connect tx_phy_s_* to
the tx_ip_s_* and the tx_phy_d_* to the tx_ip_d_* signals in the system
qsys file in the desired order.

Re-work things so that instead the lane mapping is provided through the
TX_LANE_MAP parameter. The parameter specifies in which order logical lanes
are mapped onto the physical lanes.

The appropriate connections are than made inside the core according to this
parameter rather than having to manually connect the signals externally.

In order to generate a 1-to-1 mapping the TX_LANE_MAP parameter can be left
empty.

This change slightly reduces the boiler-plate code that is necessary to
setup the transceiver.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2017-08-03 17:57:58 +02:00
Adrian Costina 83c1e555b1 m2k: Enable correction for the interpolation module 2017-08-03 17:24:26 +03:00
Adrian Costina f2240633b2 axi_dac_interpolate: Add correction at the begining of the interpolation chain
The CIC filter introduces different amplifications depending on the
interpolation ratio. By adding a multiplier in the interpolation chain
the amplification can be compensated
2017-08-03 17:21:37 +03:00
Istvan Csomortani 7cdb11cc34 axi_ad9361: Update the PPS receiver module
+ Add a HDL parameter for the PPS receiver module :
PPS_RECEIVER_ENABLE. By default the module is disabled.
  + Add the CMOS_OR_LVDS_N and PPS_RECEIVER_ENABLE into the CONFIG
register
  + Define a pps_status read only register, which will be asserted, if the free
running counter reach a certain fixed threshold. (2^28) The register can
be deasserted by an incomming PPS only.
2017-08-02 16:38:23 +01:00
Lars-Peter Clausen e644a99648 util_axis_fifo: Fix some data width mismatches
Make sure that the right hand side expression of assignments is not wider
than the target signal. This avoids warnings about implicit truncations.

None of these changes affect the behaviour, just fixes some warnings about
implicit signal truncation.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2017-08-01 15:22:29 +02:00
Lars-Peter Clausen 68c48d9bd4 util_axis_fifo: Switch to Verilog-2001 style parameter declaration
Verilog-2001 style module parameter declaration is the preferred coding
style for this repository.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2017-08-01 15:22:29 +02:00
Lars-Peter Clausen 95d530e7c9 axi_dmac: Set axi4lite address space size to 4k
The AXI specification that the minimum address space size is 4k, make sure
the axi_dmac adheres to this.

Internally the register space is still 2k. This means the upper and lower
2k of the axi4lite register space will map to the same internal registers.
Software must not rely on this and only access the lower 2k to enable
compatibility in case the internal space grows in the future.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2017-08-01 15:22:29 +02:00
Lars-Peter Clausen 1bf25edf77 axi_dmac: src_axi_stream: Terminate data mover m_axi_last signal
Terminate the m_axi_list signal of the data mover instance in the
src_axi_stream module. This avoids a warning about the port being
unconnected.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2017-08-01 15:22:29 +02:00
Lars-Peter Clausen 699d8970dd axi_dmac: axi_dmac_hw.tcl: Disable unused interfaces instead of not creating them
Currently the axi_dmac_hw.tcl script does not create interfaces if they
are not used in the current configuration. This has the disadvantage that
the ports belonging to these interfaces are not included in the generated
HDL wrapper. Which will generate a fair bunch of warnings when synthesizing
the HDL.

Instead always generate all interfaces, but disable those that are not used
in the current configuration. This will make sure that the ports belonging
to these interfaces are properly tied-off in the generate wrapper HDL.

This reduces the amount of false positive warnings generated and makes it
easier to spot actual issues.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2017-08-01 15:22:29 +02:00
Lars-Peter Clausen 834eb6aaa5 axi_dmac: dest_axi_mm: Use fixed wstrb signal
The DMAC currently doesn't support transfers where the length is not a
multiple of the bus width. When generating the wstrb signal we do pretend
though that we do and dynamically generate it based on the LSBs of the
transfer length.

Given that the other parts of the DMA don't support such transfers this is
unnecessary though. So remove it for now and replace it with a constant
expression where wstrb is always fully asserted.

The generated logic for the wstrb signal was quite terrible, so this
improves the timing of the core.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2017-08-01 15:22:29 +02:00
Lars-Peter Clausen aeabe91144 axi_dmac: Comment out unused src_response interface
Currently the read side of the src_response interface is not used. This
leads to warnings about signals that have a value assigned but are never
read.

To avoid this just comment out all signals that are related to the
src_response interface for now.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2017-08-01 15:22:29 +02:00
Lars-Peter Clausen 16bd0c3894 axi_dmac: Fix some data width mismatches
Make sure that the right hand side expression of assignments is not wider
than the target signal. This avoids warnings about implicit truncations.

None of these changes affect the behaviour, just fixes some warnings about
implicit signal truncation.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2017-08-01 15:22:29 +02:00
Lars-Peter Clausen de4fe30238 library: Match s_axi_{awaddr,araddr} signal width to peripheral memory map size
The external s_axi_{awaddr,araddr} signals that are connect to the core
have their width set according to the specified size of the register map.

If the s_axi_{awaddr,araddr} signal of the core is wider (as it currently
is for many cores) the MSBs of those signals are left unconnected, which
generates a warning.

To avoid this make sure that the signal width matches the declared register
map size.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2017-08-01 15:21:25 +02:00
Lars-Peter Clausen b582b9ed99 util_upack: util_upack_hw.tcl: Disable unused interfaces instead of not creating them
Currently the util_upack_hw.tcl script does not create interfaces if they
are not used in the current configuration. This has the disadvantage that
the ports belonging to these interfaces are not included in the generated
HDL wrapper. Which will generate a fair bunch of warnings when synthesizing
the HDL.

Instead always generate all interfaces, but disable those that are not used
in the current configuration. This will make sure that the ports belonging
to these interfaces are properly tied-off in the generate wrapper HDL.

This reduces the amount of false positive warnings generated and makes it
easier to spot actual issues.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2017-08-01 15:21:02 +02:00
Lars-Peter Clausen c9f46b20e7 util_cpack: util_cpack_hw.tcl: Disable unused interfaces instead of not creating them
Currently the util_cpack_hw.tcl script does not create interfaces if they
are not used in the current configuration. This has the disadvantage that
the ports belonging to these interfaces are not included in the generated
HDL wrapper. Which will generate a fair bunch of warnings when synthesizing
the HDL.

Instead always generate all interfaces, but disable those that are not used
in the current configuration. This will make sure that the ports belonging
to these interfaces are properly tied-off in the generate wrapper HDL.

This reduces the amount of false positive warnings generated and makes it
easier to spot actual issues.

While we are at it also use a loop to create the interfaces since they all
follow the same pattern.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2017-08-01 15:21:02 +02:00
Lars-Peter Clausen 154e40eaaa axi_ad9144: axi_ad9144_hw.tcl: Disable unused interfaces instead of not creating them
Currently the axi_ad9144_hw.tcl script does not create interfaces if they
are not used in the current configuration. This has the disadvantage that
the ports belonging to these interfaces are not included in the generated
HDL wrapper. Which will generate a fair bunch of warnings when synthesizing
the HDL.

Instead always generate all interfaces, but disable those that are not used
in the current configuration. This will make sure that the ports belonging
to these interfaces are properly tied-off in the generate wrapper HDL.

This reduces the amount of false positive warnings generated and makes it
easier to spot actual issues.

While we are at it also use a loop to create the interfaces since they all
follow the same pattern.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2017-08-01 15:21:02 +02:00
Lars-Peter Clausen 97083a9766 axi_ad9144: Avoid implicit signal truncation warning
The width of a ternary operator expression is the width of the wider of the
two selectable expression. This means the right side expression of the
tx_data assigment is always 256 bits. This generates an implicit truncating
warning if the tx_data signal itself is only 128 bits.

To avoid this slightly reformulate the expression to yield the correct
width depending on the configuration.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2017-08-01 15:20:42 +02:00
Lars-Peter Clausen 99a08a7b90 util_adcfifo: Avoid implicit signal truncation warning
The width of a ternary operator expression is the width of the wider of the
two selectable expression. This means depending on the selected DMA_RATIO
the right side expression of the dma_waddr_rel_s assignment can be up to
three bits wider than the dma_waddr_rel_s signal. This generates an
implicit truncation warning.

Slightly reformulate the expression without the use of the ternary operator
to avoid this warning.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2017-08-01 15:18:40 +02:00
Lars-Peter Clausen 26641576d4 axi_ad9680: axi_ad9680_hw.tcl: Fix typo
The signal is called adc_clk and not adc_clock. None of the designs is
currently using the signal, so this hasn't been an issue other that it
generates a warning.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2017-08-01 15:18:40 +02:00
Lars-Peter Clausen ce32b4a9b7 axi_adxcvr: Avoid warning about unknown synthesis attribute
Comments starting with the word altera are interpreted by the Altera tools
to be synthesis attribute assignments. In this case this is just a generic
comment though which results in a warning that the synthesis attribute is
unknown.

Slightly reword the comment to avoid this. This is not pretty, but better
than having the false positive warning show up in the log.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2017-08-01 15:18:40 +02:00
Lars-Peter Clausen 9c38fb81fb adi_project_alt.tcl: Disable a few warnings generated by standard components
Some of the standard Quartus components (especially the Merlin cores) generate
quite a few synthesis warnings. Lets assume these are false positives and
disable the warnings.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2017-08-01 15:18:40 +02:00
Rejeesh Kutty c1e990b575 ad9361/sw- current sw requires clock edge swap 2017-07-31 14:48:25 -04:00
Rejeesh Kutty 0bc5a80c0c adrv9364- ps_intr_11 used for pps 2017-07-31 09:48:33 -04:00
Rejeesh Kutty 4faa622f43 library/ad9361- gps_pps default value 2017-07-31 09:14:45 -04:00
Rejeesh Kutty 207f00a752 projects/ remove upack dma_xfer_in 2017-07-31 09:12:05 -04:00
Rejeesh Kutty adcd092ba3 library/ad9361- add pps module 2017-07-31 09:06:50 -04:00
Rejeesh Kutty 9f9955a84c hdlmake.pl updates 2017-07-31 09:02:12 -04:00
Rejeesh Kutty 19015a8199 adrv9361x/- ps_intr_11 used for pps 2017-07-31 09:00:44 -04:00
AndreiGrozav febdbe8dcb daq3/zcu102: Initial commit 2017-07-31 14:26:23 +03:00
AndreiGrozav 6b897dabe5 daq1_zed: Initial commit 2017-07-31 14:26:23 +03:00
Rejeesh Kutty 6d788ebb3a arradio- remove dma_xfer_in from upack 2017-07-28 16:19:24 -04:00
Rejeesh Kutty d3050abd3e rfifo/upack- changes 2017-07-28 16:18:54 -04:00
Rejeesh Kutty 5751cd30dc util_upack- port updates 2017-07-28 15:38:33 -04:00
Rejeesh Kutty 8a88d94553 ad_mem- syntax error fix 2017-07-28 15:26:48 -04:00
Rejeesh Kutty e9d8b969d6 util_rfifo- add valid turnaround 2017-07-28 15:26:48 -04:00
Rejeesh Kutty f81494f6c8 util_upack- add valid turnaround 2017-07-28 15:26:48 -04:00
Lars-Peter Clausen d7e87a60a9 Remove executable flag from non-executable files
All of these files are source code and are not executable standalone.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2017-07-28 17:56:07 +02:00
Lars-Peter Clausen f0655e63a6 avl_adxcvr: Derive PLL and core clock frequency from lane rate
The PLL frequency must be half of the lane rate and the core clock rate
must be lane rate divided by 40. There is no other option, otherwise things
wont work.

Instead of having to manually specify PLL and core clock frequency derive
them in the transceiver script. This reduces the risk of accidental
misconfiguration.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2017-07-28 15:11:08 +02:00
Lars-Peter Clausen a0f4adabd0 avl_adxcvr: Fix core clock bridge frequency
The clock bridge expects the clock rate to be specified in Hz, but
$m_coreclk_frequency is in MHz. Do the appropriate conversion.

Nothing seems to rely on the clock bridge reporting the correct frequency
at the moment, so this is only a cosmetic change.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2017-07-28 15:11:08 +02:00
Lars-Peter Clausen 2c83cfff7e common: a10soc: Set IO standard for differential signal negative side
While things seem to work fine with only specifying the the IO standard for
the positive side of differential signals Quartus will issue a warning
about incomplete constraints if the IO standard is not specified for the
the neagtive side as well. To avoid these warnings add the missing
constraints.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2017-07-28 15:11:08 +02:00
Lars-Peter Clausen 5ffd1e1bac common: a10soc: Fix gpio_bd_i constraints
Fix a copy and paste error and specify the IO_STANDARD for all gpio_bd_i
rather than twice for half of them.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2017-07-28 15:11:08 +02:00
Istvan Csomortani 115c8f2ba6 license: Update old license headers 2017-07-28 12:47:14 +01:00
Istvan Csomortani 2abc7278bf adrv9364z7020: Connect the gps_pps signal to the receiver 2017-07-28 08:08:27 +01:00
Istvan Csomortani be5f2ad80f adrv9361z7035: Connect the gps_pps signal to the receiver 2017-07-28 08:03:33 +01:00
Istvan Csomortani 8ffc35735a axi_ad9361: ad_pps_receiver integration
The ad_pps_receiver is instantiated at the top of core.
The rcounter is placed into adc/dac_common registers space, at the
address 0x30 (word aligned).
The interrupt mask is placed into adc/dac_common, at the address 0x04
(word aligned). Because the core has an instance of both modules, the
interrupt masks are OR-ed together.
2017-07-28 07:57:13 +01:00
Istvan Csomortani c7304922d5 ad_pps_receiver: Initial commit
Add a module to receive 1PPS signal from a GPS module. The module has a
free running counter, which runs on the device's interface clock. The
counter value is latched into a register each time when a 1PPS arrives.
An interrupt signal is also generated in every 1PPS.
2017-07-28 07:46:58 +01:00