Commit Graph

203 Commits (edbd9f7b8f5fd1f2da3a25170f31a14aa4b5acae)

Author SHA1 Message Date
Istvan Csomortani a9543bdf2c axi_dacfifo: Fix axi_dlast generation
The axi_dlast should be asserted max one data beat cycle.
2017-07-06 10:30:41 +01:00
Istvan Csomortani 2ac096cc3b axi_dacfifo: Few cosmetic changes
The width of the constant, which going to be assigned to a register,
has to be equal with the width of the register.
2017-07-06 10:29:05 +01:00
Istvan Csomortani 75a18da971 axi_dacfifo: Increase the width of axi_last_beats and wvalid_counter
Increase the width of wvalid_counter, should be equal with awlen width.
The wvalid_counter needs to count from zero to the required burst
length. The maximum burst length is 255, so the width of the counter
have to be 8 bits. axi_last_beats will get the last axi burst length.
2017-07-06 10:24:36 +01:00
Istvan Csomortani baec8a0777 axi_dacfifo: Define DMA/DAC_MEM_ADDRESS as parameter
Make the depth of the internal CDC memories parameterizable.
2017-07-06 10:11:50 +01:00
Istvan Csomortani 7340d8aa16 axi_dacfifo: DAC side CDC fifo control update
The fifo will ask for a new data from the DDR, if the current
level is lower than the high threshold. This will prevent overflow.
By deleting the lower threshold, we can avoid ocassional underflows,
when the DAC rate is closer to the max DDRx rate.
2017-07-06 10:01:27 +01:00
Istvan Csomortani a0b33898d2 axi_dacfifo: Add gray coder/decoder module
Use gray coder/decoder modules, instead of functions.
This way it can be used paramterized data width on the
coders/decoders.
2017-07-06 10:01:27 +01:00
Istvan Csomortani cfa22f36bc axi_dacfifo: Fix the dma_ready signal generation
Fix the dma_ready mux in top module, and the dma_ready_out reset
logic in axi_dacfifo_wr module. Also, both write and read addresses
of the async CDC fifo (inside the axi_dacfifo_wr) should be reset
before a dma transaction starts.
2017-07-06 10:01:17 +01:00
Lars-Peter Clausen 121e04e94e util_adxcvr: Bring back channel 8
This was accidentally deleted in commit 6d4430cfda
("axi_adxcvr/util_adxcvr: Fix non-broadcast DRP access").

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2017-06-29 13:16:48 +02:00
Lars-Peter Clausen 6d4430cfda axi_adxcvr/util_adxcvr: Fix non-broadcast DRP access
When using non-broadcast access to the GT DRP registers lane filtering is
done on both sides. The ready and data signals are filtered in the in the
axi_adxcvr module and the enable signal is filtered in the util_adxcvr
module. This works fine as long as both sides use the same transceiver IDs.
E.g. channel 0 of the axi_adxcvr module is connected to channel 0 of the
util_adxcvr module.

But this is not always the case. E.g. on the ADRV9371 platform there are
two RX axi_adxcvr modules (RX and RX_OS) connected to the same util_adxcvr.
The first axi_adxcvr uses lane 0 and 1 of the util_adxcvr, the second uses
lane 2 and 3.

Non-broadcast access for the first RX axi_adxcvr module works fine, but
always generates a timeout for the second axi_adxcvr module. This is
because lane 0/1 of the axi_adxcvr module is connected to lane 2/3 of the
util_adxcvr and when ID based filtering is done both can't match at the
same time.

To avoid this perform the filtering for all the signals in the axi_adxcvr
module. This makes sure that the same base ID is used.

This also removes the sel signal from the transceiver interfaces since it
is no longer used on the util_adxcvr side.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2017-06-28 17:30:51 +02:00
Rejeesh Kutty dd48929327 hdlmake.pl - updates 2017-06-06 12:25:35 -04:00
Istvan Csomortani 50cdb6db67 Merge branch 'jesd204' into dev 2017-05-31 20:44:32 +03:00
Istvan Csomortani 84b2ad51e2 license: Add some clarification to the header license 2017-05-31 18:18:56 +03:00
Istvan Csomortani 85ebd3ca01 license: Update license terms in hdl source files
Fix a few gramatical error, fix the path of the top level license
files.
2017-05-29 09:55:41 +03:00
Lars-Peter Clausen d883aabcc1 adi_ip.tcl: Use analog.com for interface vendor
Currently the scripts use 'analog.com' as the vendor property for IP cores,
but 'ADI' for interfaces.

Make things consistent by using 'analog.com' for both interfaces as well
as IP cores.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2017-05-24 18:10:15 +02:00
Lars-Peter Clausen 55cc5515ad adi_ip.tcl: Use analog.com for interface vendor
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2017-05-23 11:16:07 +02:00
Lars-Peter Clausen 139876d28a up_clock_mon: Remove extra hold register
Currently the clock monitor features a hold register in the monitored clock
domain. This old register is used to store a instantaneous copy of the
counter register. The value in the old register is then transferred to the
monitoring domain. Since the counter is continuously counting it is not
possible to directly transfer it since that might result in inconsistent
data.

Instead stop the counter and hold the registers stable for a duration that
is long enough for the monitoring domain to correctly capture the value.
Once the value has been transferred the counter is reset and restarted for
the next iteration.

This allows to eliminate the hold register, which slightly reduces
utilization.

The externally visible behaviour is identical before and after the patch.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2017-05-23 11:16:07 +02:00
Rejeesh Kutty 393577c911 util_adxcvr- 2016.4 gthe4 updates 2017-05-18 14:49:18 -04:00
Istvan Csomortani 9055774795 all: Update license for all hdl source files
All the hdl (verilog and vhdl) source files were updated. If a file did not
have any license, it was added into it. Files, which were generated by
a tool (like Matlab) or were took over from other source (like opencores.org),
were unchanged.

New license looks as follows:

Copyright 2014 - 2017 (c) Analog Devices, Inc. All rights reserved.

Each core or library found in this collection may have its own licensing terms.
The user should keep this in in mind while exploring these cores.

Redistribution and use in source and binary forms,
with or without modification of this file, are permitted under the terms of either
 (at the option of the user):

  1. The GNU General Public License version 2 as published by the
     Free Software Foundation, which can be found in the top level directory, or at:
https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html

OR

  2.  An ADI specific BSD license as noted in the top level directory, or on-line at:
https://github.com/analogdevicesinc/hdl/blob/dev/LICENSE
2017-05-17 11:52:08 +03:00
Rejeesh Kutty c728299e71 altera- default to latest version 2017-05-12 13:25:17 -04:00
Rejeesh Kutty cfd4e006b3 hdlmake updates 2017-04-25 15:46:26 -04:00
Istvan Csomortani 3627b892c3 xilinx/ad_cmos_in|out: Delete redundant parameter
The LVCMOS standard is a single ended IO standard. The SINGLE_ENDED
parameter is redundant in this case.
2017-04-25 11:02:35 +03:00
Istvan Csomortani 4f4ca84813 axi_dacfifo: Fix Makefile 2017-04-24 11:46:29 +03:00
Istvan Csomortani 5fe7a1b100 axi_dacfifo: Move the axi_dac_fifo_bypass module to util_dac_fifo_bypass 2017-04-21 13:23:03 +03:00
Istvan Csomortani 5b164ad4fa ad_serdes_in: Fix generate block 2017-04-20 18:50:00 +03:00
Istvan Csomortani faa5e3d667 ad_serdes_clk: Fix generate block 2017-04-20 18:49:00 +03:00
Istvan Csomortani f0da125a4e ad_mmcm_drp: Fix generate block
Can not be multiple 'if' statements inside a generate block. If there are
multiple cases use if/esle statement, but always should be one single
if/else inside a generate.
2017-04-20 18:43:37 +03:00
Lars-Peter Clausen 09ffe42603 ad_lvds_in: Allow to disable IDELAY
The IDELAY is not always required, but it eats up power when instantiated. Allow to disable it.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2017-04-18 12:17:39 +02:00
Lars-Peter Clausen 45f87b46c2 ad_lvds_in: Use "SAME_EDGE" mode
Currently the IDDRs are configured in SAME_EDGE_PIPELINED mode, but then
the negative data is delayed by an additional clock cycle. This is the same
behaviour as using the IDDR in SAME_EDGE mode.

Switching to SAME_EDGE mode removes extra pipelining registers while
maintaining the same behaviour.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2017-04-18 12:17:39 +02:00
Adrian Costina fc7f2ef11b ad_serdes_out: allow selection between DDR/SDR configuration and output single ended data 2017-04-18 12:17:39 +02:00
Adrian Costina 166a4c53d5 ad_serdes_clk: allow for single ended clock input, made BUFR_DIVIDE configurable 2017-04-18 12:17:39 +02:00
Istvan Csomortani 1c23cf4621 all: Update verilog files to verilog-2001 2017-04-13 11:59:55 +03:00
Istvan Csomortani c1bdfca4c3 library: Delete all adi_ip_constraint process call 2017-04-06 12:36:47 +03:00
Istvan Csomortani 8ba6012b6b restructure: Move xilinx specific constraints to /library/xilinx/common/ 2017-03-30 16:16:02 +03:00
Rejeesh Kutty 8063ba2b66 make updates 2017-03-20 16:05:18 -04:00
Istvan Csomortani 7478777d8d axi_dacfifo: Match the ports with util_dacfifo 2017-03-03 18:46:16 +02:00
Rejeesh Kutty 3586397f57 altera/common- add asymmetric fifo 2017-03-01 15:35:04 -05:00
Rejeesh Kutty 104e9dfcdc adc/dac-fifo altera cores 2017-02-28 13:30:50 -05:00
Istvan Csomortani 11623e79be axi_dacfifo: Fix clock for read address generation 2017-02-24 15:47:04 +02:00
Istvan Csomortani 3e596347fd axi_dacfifo: Delete unused wires 2017-02-24 15:45:51 +02:00
Istvan Csomortani ac2e5a9dac constraints: Update constraints
Xilinx recommends that all synchronizer flip-flops have
their ASYNC_REG property set to true in order to preserve the
synchronizer cells through any logic optimization during synthesis
and implementation.
2017-02-24 13:43:32 +02:00
Istvan Csomortani f326c03ff3 axi_dacfifo: Define constraint for bypass
The bypass module currently is supported, when the DMA data width
is equal with the DAC data width.
The dac_data output is enabled with dac_valid.
2017-02-24 12:35:42 +02:00
Istvan Csomortani b9d3039568 axi_dacfifo: Register the dac_valid signals 2017-02-24 12:34:58 +02:00
Istvan Csomortani debc6e2066 axi_dacfifo: Data from DMA is validated with dma_ready too 2017-02-24 12:32:25 +02:00
Istvan Csomortani dfcd5214a0 axi_dacfifo: axi_dvalid should come from dacfifo_rd module 2017-02-24 12:28:46 +02:00
Istvan Csomortani 1fce57f6c3 axi_dacfifo: Redesign the bypass functionality 2017-02-23 17:32:31 +02:00
Adrian Costina 573959c826 Makefiles: fixed axi_adxcvr/util_adxcvr Makefiles to include interfaces dependancy 2017-02-23 16:16:34 +02:00
Istvan Csomortani e3ac341aad axi_dacfifo: Fix constraints 2017-02-21 14:45:18 +02:00
Istvan Csomortani 981a61bf16 axi_dacfifo: Clean up the axi_dacfifo_wr.v module 2017-02-17 18:40:02 +02:00
Istvan Csomortani f10866e4c3 axi_*fifo: Delete/replace AXI_BYTE_WIDTH parameter 2017-02-16 19:54:41 +02:00
Istvan Csomortani 95a4ea20c8 axi_dacfifo: Delete redundant parameter BYPASS_EN 2017-02-16 19:53:44 +02:00
Istvan Csomortani 5fa6dba333 Make: Update Makefiles 2017-02-10 16:32:58 +02:00
Rejeesh Kutty 1e54b5230f axi_adxcvr- add m_axi associated clock 2017-02-02 11:17:56 -05:00
Rejeesh Kutty 806d19febc axi_adxcvr- add primitive info read 2017-02-01 13:38:29 -05:00
Rejeesh Kutty 1c9d8c4e7c axi_adxcvr- add primitive info read 2017-02-01 13:35:02 -05:00
Istvan Csomortani d5af828b9c Merge branch 'dev' into hdl_2016_r2 2017-01-30 17:10:05 +02:00
Rejeesh Kutty a2b2ebbed2 ad_lvds_in- ultrascale/ultrascale+ sim device mess 2017-01-21 20:54:21 -05:00
Rejeesh Kutty afcd11da87 adxcvr- add parameters for xcvr config 2017-01-19 12:40:26 -05:00
Istvan Csomortani 746b97dd96 xilin/axi_adxcvr: Fix clock and reset nets[C 2017-01-19 15:46:16 +02:00
Istvan Csomortani d3ed417f49 axi_adxcvr: Update the packaging script to fix infer mm issues
- Change the clock and reset port name of the AXI slave interface
to s_axi_aclk and s_axi_aresetn. This way we can use the adi_ip_properties
process to infer the interface.
  - Define an address space reference to the m_axi interface.
2017-01-19 15:16:04 +02:00
Adrian Costina 8ebc8fe4e2 updated makefiles 2016-12-09 23:06:41 +02:00
Rejeesh Kutty 025420d6f8 library/axi_xcvrlb- xcvr changes 2016-11-23 12:00:13 -05:00
Rejeesh Kutty 8f562fd069 xcvr updates- board procedure 2016-11-22 14:43:36 -05:00
Rejeesh Kutty 3dbed492b3 util_adxcvr: expose cpll/qpll as it is 2016-11-22 11:32:37 -05:00
Rejeesh Kutty 3cbe735bd8 util_adxcvr: regenerate from script 2016-11-22 11:21:04 -05:00
Rejeesh Kutty c57ffc9364 axi_adxcvr- separate pll reset from channels 2016-11-22 11:12:54 -05:00
Istvan Csomortani b9795c7033 xilinx/util_adxcvr: Update enablement dependencies 2016-11-22 17:33:40 +02:00
AndreiGrozav 9d6c93a5d8 Fix warnings 2016-11-14 15:17:15 +02:00
Rejeesh Kutty 5731ba3300 fmcomms11- xcvr updates 2016-10-24 09:51:40 -04:00
Rejeesh Kutty 0beecea02d util_adxcvr- ultrascale updates 2016-10-19 13:06:10 -04:00
Rejeesh Kutty bf949f1a88 axi_xcvrlb- xcvr updates 2016-10-17 16:16:57 -04:00
Rejeesh Kutty 1b3fcb5863 util_adxcvr- parameter defaults 2016-10-17 16:10:57 -04:00
Rejeesh Kutty cc6ca4f0f2 ad_lvds_in- ultrascale sim device 2016-10-10 10:39:47 -04:00
Istvan Csomortani ff980551e6 ad_serdes: SERDES_FACTOR handover missing
In modules ad_serdes_in/ad_serdes_out the handover of the parameter
SERDES_FACTOR did not exist, causing unwanted behavioral in case of
factors less than 8.
SERDES_FACTOR must be hand over to DATA_WIDTH parameter of the SERDES
primitive.
2016-10-10 16:38:42 +03:00
Rejeesh Kutty 39fdf11ef3 util_adxcvr- rx/tx clocks 2016-10-05 13:53:02 -04:00
Istvan Csomortani 7ec93ce8e0 util_adxcvr: Fix some typo
GTHE4_CHANNEL is instantiated in case of XCVR_TYPE == 2
2016-10-05 17:42:12 +03:00
Istvan Csomortani 4f587d2e48 util_adxcvr: Delete trailing whitespaces 2016-10-05 17:41:40 +03:00
Rejeesh Kutty 48dd4880a3 util_adxcvr- ultrascale+ initial commit 2016-10-03 16:11:45 -04:00
Rejeesh Kutty 0e8551545c util_adxcvr- ultrascale+ initial commit 2016-10-03 16:11:45 -04:00
Rejeesh Kutty b4652650e4 util_adxcvr- xcvr_type parameter 2016-10-03 16:11:45 -04:00
Rejeesh Kutty 63ddcf1e26 util_adxcvr- synthesis warnings fix 2016-10-03 16:11:45 -04:00
Rejeesh Kutty 6b956066ef xilinx/ad_lvds*- ultrascale+ 2016-09-30 11:55:10 -04:00
Rejeesh Kutty 9defccef70 dacfifo- axi address map fixes 2016-09-27 14:48:23 -04:00
Rejeesh Kutty 21b5e9c634 hdlmake- updates 2016-09-21 11:56:03 -04:00
Rejeesh Kutty 0def596b43 axi_xcvrlb- updates 2016-09-21 11:04:22 -04:00
Rejeesh Kutty d497a7b0ae axi_xcvrlb- constraints 2016-09-21 11:04:22 -04:00
Rejeesh Kutty 1860d72df6 axi_xcvrlb- updates 2016-09-19 12:39:59 -04:00
Rejeesh Kutty 5592c2780e axi_xcvrlb- loopback version 2016-09-19 12:39:59 -04:00
Istvan Csomortani 38f1521861 xilinx/ad_serdes_in : Fix some typos 2016-09-19 16:02:52 +03:00
Istvan Csomortani ff0f659a33 xilinx/ad_serdes_clk : Rename parameter MMCM_DEVICE_TYPE to DEVICE_TYPE 2016-09-19 16:02:06 +03:00
Istvan Csomortani 6510f92c12 ad_serdes : Cosmetic changes 2016-09-16 14:45:39 +03:00
Rejeesh Kutty a2d15acb89 ad_serdes- altera/xilinx sync 2016-09-15 13:33:55 -04:00
Istvan Csomortani 3b0c1e02fc axi_dacfifo: Move IP to library/xilinx 2016-09-15 11:38:16 +03:00
Istvan Csomortani 3cbbc771a8 axi_adcfifo: Move IP to library/xilinx 2016-09-15 11:36:47 +03:00
Shrutika Redkar 10b9a0e52f upadated xcvr ips 2016-08-17 15:51:55 -04:00
Rejeesh Kutty 3427965cd2 adxcvr- add u-gth bufg 2016-08-11 10:00:41 -04:00
Shrutika Redkar 829e4155ca modified transceiver configuration files 2016-08-10 14:59:38 -04:00
Istvan Csomortani 1d33d7d7ee lib_refactoring: Move the CMOS interface modules to ~/library/xilinx/common 2016-08-08 15:07:42 +03:00
Istvan Csomortani b806fa3b42 lib_refactoring: Move all the Xilinx common modules to library/xilinx/common 2016-08-08 15:06:10 +03:00
Adrian Costina 5faf4c4976 cleanup: Don't need Makefiles specific to xilinx/altera libraries. Top Makefile covers them 2016-08-05 16:27:52 +03:00
Adrian Costina d60bce654c Makefiles: Updated Makefiles so they run correctly with gnuwin32 tools 2016-08-05 15:16:04 +03:00
Rejeesh Kutty cb23ba8bb7 make- script needs update 2016-08-04 14:17:04 -04:00
Rejeesh Kutty e42b4ea378 hdlmake- updates 2016-08-04 13:28:25 -04:00
Rejeesh Kutty 2b7c976be5 xcvr- altera/xilinx split 2016-08-04 13:26:10 -04:00