Commit Graph

1927 Commits (d8916e681eb2aadf9d90ccf7c124db97643d0624)

Author SHA1 Message Date
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
Lars-Peter Clausen 2b914d33c1 Move Altera IP core dependency tracking to library Makefiles
Currently the individual IP core dependencies are tracked inside the
library Makefile for Xilinx IPs and the project Makefiles only reference
the IP cores.

For Altera on the other hand the individual dependencies are tracked inside
the project Makefile. This leads to a lot of duplicated lists and also
means that the project Makefiles need to be regenerated when one of the IP
cores changes their files.

Change the Altera projects to a similar scheme than the Xilinx projects.
The projects themselves only reference the library as a whole as their
dependency while the library Makefile references the individual source
dependencies.

Since on Altera there is no target that has to be generated create a dummy
target called ".timestamp_altera" who's only purpose is to have a timestamp
that is greater or equal to the timestamp of all of the IP core files. This
means the project Makefile can have a dependency on this file and make sure
that the project will be rebuild if any of the files in the library
changes.

This patch contains quite a bit of churn, but hopefully it reduces the
amount of churn in the future when modifying Altera IP cores.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2018-04-11 15:09:54 +03:00
Lars-Peter Clausen 48ef19ec60 library: Track additional file types as dependency in Makefile
Re-generate the Makefile with some additional file types added as
dependencies to the IP cores.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2018-04-11 15:09:54 +03:00
Lars-Peter Clausen 3dac544d0a axi_dmac_ip.tcl: Add include files to file list
The include files are currently only implicitly added to the component file
list. Do it explicitly as this will make sure that they show up in the
generated Makefile dependency list.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2018-04-11 15:09:54 +03:00
Adrian Costina dd69836473 util_dacfifo: Infer clock and reset signals 2018-04-11 15:09:54 +03:00
Adrian Costina 3436210429 axi_adcfifo: Infer clock and reset signals 2018-04-11 15:09:54 +03:00
Lars-Peter Clausen b7f8345f17 library: Remove unreferenced files from IP file lists
Some IP core have files in their file list for common modules that are not
used by the IP itself. Remove those.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2018-04-11 15:09:54 +03:00
Lars-Peter Clausen dec0661f87 Move Xilinx specific DC filter implementation to library/xilinx/common/
The DC filter implementation in library/common/dc_filter.v is Xilinx
specific as it uses the Xilinx DSP48 hard-macro. There is a matching Altera
specific implementation in library/altera/common/dc_filter.v.

Move the Xilinx specific implementation from the generic common folder to
the Xilinx specific common folder in library/xilinx/common/ since that is
where all other Xilinx specific common modules reside.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2018-04-11 15:09:54 +03:00
Lars-Peter Clausen 89ad5f7836 Makefile: Change IP component dependency to component definition file
Currently the IP component dependency in the Makefile system is the Vivado
project file. The project file is only a intermediary product in producing
the IP component definition file.

If building the component definition file fails or the process is aborted
half way through it is possible that the Vivado project file for the IP
component exists, but the IP component definition file does not.

In this case there will be no attempt to build the IP component definition
file when building a project that has a dependency on the IP component.
Building the project will fail in this case.

To avoid this update the Makefile rules so that the IP component definition
file is used as the dependency. In this case the IP component will be
re-build if the component definition file does not exist, even if the
project file exists.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2018-04-11 15:09:54 +03:00
Lars-Peter Clausen 35a39ba2e6 Regenerate library Makefiles using the new shared Makefile include
This reduces the amount of boilerplate code that is present in these
Makefiles by a lot.

It also makes it possible to update the Makefile rules in future without
having to re-generate all the Makefiles.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2018-04-11 15:09:54 +03:00
Lars-Peter Clausen 2b108c63db Add common library Makefile
The library Makefiles for share most of their code.  The only difference is
the list of project dependencies.

Create a file that has the common parts and can be included
by the library Makefiles.

This drastically reduces the size of the library Makefiles and also allows
to change the Makefile implementation without having to re-generate all
Makefiles.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2018-04-11 15:09:54 +03:00
Laszlo Nagy bfc8ec28c3 util_axis_fifo: instantiate block ram in async mode
In cases when a shallow FIFO is requested the synthesizer infers distributed RAM
instead of block RAMs. This can be an issue when the clocks of the FIFO are
asynchronous since a timing path is created though the LUTs which implement the
memory, resulting in timing failures. Ignoring timing through the path is not a
solution since would lead to metastability.
This does not happens with block RAMs.

The solution is to use the ad_mem (block RAM) in case of async clocks and letting
the synthesizer do it's job in case of sync clocks for optimal resource utilization.
2018-04-11 15:09:54 +03:00
Istvan Csomortani 3277ea4be0 ad_dcfilter: Enable output registers in DSP48E1
Pipelining the DSP48 output will improve performance and often saves power so
it is suggested whenever possible to fully pipeline this function.
2018-04-11 15:09:54 +03:00
Istvan Csomortani 09a6eb5360 up_dac_common: Explicitly define boolean parameter as a 1 bit value 2018-04-11 15:09:54 +03:00
Istvan Csomortani a1e2b60cb3 ad_xcvr_rx_if: rx_ip_sof_d register has a width of 4 bits 2018-04-11 15:09:54 +03:00
Istvan Csomortani b6770effc5 avl_dacfifo: Add missing wire declaration 2018-04-11 15:09:54 +03:00
Istvan Csomortani f100a6bf21 avl_dacfifo: Delete deprecated false path definition 2018-04-11 15:09:54 +03:00
Istvan Csomortani 425e803364 license: Fix a spelling mistake 2018-04-11 15:09:54 +03:00
Istvan Csomortani 34994222b4 license: Update old license headers 2018-04-11 15:09:54 +03:00
Laszlo Nagy ee79ba5686 axi_hdmi_tx: removed unused registers 2018-04-11 15:09:54 +03:00
Istvan Csomortani 9a76bd4536 axi_adxcvr: Set the init value of the configuration registers 2018-04-11 15:09:54 +03:00
Istvan Csomortani 571b721274 util_adxcvr: CPLLPD should be used for reset
For CPLL reset the CPLLPD ports should be used, instead of the
CPLLRESET. The recommended reset width is above 2us.
See UG576 pg. 60 for more detail.
2018-04-11 15:09:54 +03:00
Istvan Csomortani 4e60f15e7f axi_clkgen: Add a parameter to control the clock source options
Add a parameter to the control the clock source option of the MMCM. If
the MMCM has only one clock source the CLKSEL pin will be tied to VDD.

The previous version added a redundant path between the CLKSEL port and
register map.
2018-04-11 15:09:54 +03:00
Rejeesh Kutty 72431ff952 a10soc: Connect AXI register reset 2018-04-11 15:09:54 +03:00
Adrian Costina a5407702bb util_adxcvr: Don't show reset ports for disabled lanes 2018-04-11 15:09:54 +03:00
Laszlo Nagy 0d01c08b00 util_[c|u]pack_dsf: clear syntehsis warnings
Remove unused registers and move register definitions to the generate block
that is actually using it.
2018-04-11 15:09:54 +03:00
Laszlo Nagy bce0cf8e22 util_[w|r]fifo: Reduce synthesis warnings 2018-04-11 15:09:54 +03:00
Laszlo Nagy eedd8ed5d8 up_delay_cntrl: Fix synthesis warnings, no functional changes
Reduce the number of synthesis warnings with the help of a generate
statement. When the block is disabled do not generate any logic.
2018-04-11 15:09:54 +03:00
Laszlo Nagy b4ab639db5 up_[adc|dac]_common: Define the DPR registers only when the interface is enabled 2018-04-11 15:09:54 +03:00
Laszlo Nagy 5cba46165a axi_dmac: fix synthesis warnings
Separated the 2D transfer registers to a separate generate block
2018-04-11 15:09:54 +03:00
Laszlo Nagy 4bcf45a17a common: clean up synthesis warnings
Removed unused registers and define registers only when they are in use.
2018-04-11 15:09:54 +03:00
Laszlo Nagy b6d2def504 axi_ad9361: clear synthesis warnings
Defined the delay registers only when they are used.
2018-04-11 15:09:54 +03:00
Adrian Costina 5bfc585524 axi_dmac: Added MAX_BYTES_PER_BURST and DISABLE_DEBUG_REGISTERS parameters to Intel IP 2018-04-11 15:09:54 +03:00
Adrian Costina 25ffb91dc6 axi_hdmi_tx: Updated .sdc constraints 2018-04-11 15:09:54 +03:00
Adrian Costina a0cb3af11d axi_hdmi_tx: Use abstract multiplier module supporting both Xilinx and Intel FPGAs 2018-04-11 15:09:54 +03:00
Istvan Csomortani d13ff8df1e axi_dmac: In SDP mode REGCEB is connected to GND
In newer version of Vivado (e.g. 2017.4) the REGCEB pin of the block ram
macro is connected to ground. So the following false path became
redundant.
2018-04-11 15:09:54 +03:00
Istvan Csomortani fcbc977cd8 axi_ad7616: Add missing port to instantiation 2018-04-11 15:09:54 +03:00
Istvan Csomortani f605b428fc spi_engine:axi_spi_engine: Add missing port to instantiations 2018-04-11 15:09:54 +03:00
Istvan Csomortani 7d0b162eda axi_ad9963: Fix port dependency definition 2018-04-11 15:09:54 +03:00
Istvan Csomortani a7b98c397a ad_tdd_control: Fix the tdd_burst_counter implementation 2018-04-11 15:09:54 +03:00
Istvan Csomortani cd94f2f249 util_axis_upscale: Initial commit
This module upscale an n*sample_width data bus into a 16 or 32*n data
bus. The samples are right aligned and supports offset binary or two's
complement data format.
2018-04-11 15:09:54 +03:00
Istvan Csomortani 269ae40f66 spi_engine: Add support for 8 SDI lines 2018-04-11 15:09:54 +03:00
Istvan Csomortani e16f45c792 util_pulse_gen: Use equal-to for counter reset 2018-04-11 15:09:54 +03:00
Adrian Costina 017dcaed82 up_[adc|dac]_common: DRP_DISABLE should be boolean 2018-04-11 15:09:54 +03:00
Adrian Costina d3bfb33871 constraints: up_xfer_cntrl and up_xfer_status have its own constraints
The up_xfer_cntrl and up_xfer_status modules have its own constraints files
in library/xilinx/common. Each IP which has an instance of these
modules, have to use these constraints files.

The following IPs were modified:
  - axi_adc_decimate
  - axi_adc_trigger
  - axi_dac_interpolate
  - axi_logic_analyzer
2018-04-11 15:09:54 +03:00
Laszlo Nagy ae02773480 axi_dacfifo: Rewrote constraints to be more specific
Some of the wildcards matched too many paths and disabled the timing
checks on intraclock paths.
2018-04-11 15:09:54 +03:00
Adrian Costina b2d63bf9e0 axi_ad9434: Make adc_enable controllable from the channel register map 2018-04-11 15:09:54 +03:00
Adrian Costina 493fc1d48b axi_*: Fix instantiation of up_[adc|dac]_[common|channel]
A couple of new parameters and new ports are missing in several
up_[adc|dac]_[common|channel] instance, and generates warnings. The rule of
thumb is to use full instantiations, defining all the existing parameter and
ports of the module.

Fix all the instantiation of up_[adc|dac]_[common|channel], by defining all its
parameters and ports.
2018-04-11 15:09:54 +03:00
Adrian Costina 74b922f9f8 axi_*: Infer clock and reset signals of an IP
A clock sink must be connected to clock source, and a reset sink to
reset source, otherwise the tool will throw a synthesis warning.
By properly inferring all the reset and clock signals of an IP, we can
get rid of unwanted warning messages.

The following IPs tcl script was updated:
  - axi_ad9434
  - axi_hdmi_tx
  - util_cpack
  - util_adxcvr
  - axi_ad6676
  - axi_ad9625
  - axi_ad9379
  - axi_ad9265
  - util_tdd_sync
  - util_rfifo
  - util_wfifo
  - axi_ad9361
  - axi_ad9467
  - util_upack
  - axi_dacfifo
  - axi_ad9152
  - axi_ad9680
  - util_clkdiv
  - axi_ad9122
  - axi_ad9684
  - axi_mc_speed
  - axi_mc_current_monitor
  - axi_mc_controller
  - util_gmii_to_rgmii
  - util_adxcvr
  - axi_ad9379
  - axi_hdmi
  - library
  - axi_fmcadc5_sync
  - util_adcfifo
  - util_mfifo
  - axi_jesd204_rx
  - axi_jesd204_tx
  - axi_ad9361
  - axi_adxcvr_ip
2018-04-11 15:09:54 +03:00