From 8dd99c8843ba968c8b98a1de0dd3377a94603a9e Mon Sep 17 00:00:00 2001 From: Thomas Gessler Date: Thu, 25 Feb 2021 10:48:21 +0100 Subject: [PATCH] Squashed 'hub_test/src/tx_phase_aligner/' content from commit e92a060 git-subtree-dir: hub_test/src/tx_phase_aligner git-subtree-split: e92a060f338e99de064f09df812c65363268221b --- .gitkeep | 0 README.md | 3 + license.txt | 674 ++++++++++ run_script_tcl.bat | 12 + scripts/sim/tx_phase_aligner_simu.tcl | 69 + scripts/sim/tx_phase_aligner_simu.wcfg | 189 +++ .../gtwizard_ultrascale_0_example_top.xdc | 153 +++ .../gtwizard_ultrascale_0_example_top_sim.v | 226 ++++ .../design_tx_aligner/fifo_fill_level_acc.vhd | 240 ++++ .../design_tx_aligner/tx_phase_aligner.vhd | 409 ++++++ .../tx_phase_aligner_fsm.vhd | 455 +++++++ .../imports/design_tx_aligner/tx_pi_ctrl.vhd | 402 ++++++ ...rd_ultrascale_0_example_bit_synchronizer.v | 91 ++ ...wizard_ultrascale_0_example_checking_raw.v | 124 ++ .../gtwizard_ultrascale_0_example_init.v | 293 +++++ ..._ultrascale_0_example_reset_synchronizer.v | 101 ++ ...wizard_ultrascale_0_example_stimulus_raw.v | 111 ++ .../gtwizard_ultrascale_0_example_top.v | 1157 +++++++++++++++++ .../gtwizard_ultrascale_0_example_wrapper.v | 238 ++++ ..._ultrascale_0_example_wrapper_functions.vh | 241 ++++ .../gtwizard_ultrascale_0_prbs_any.v | 195 +++ .../example_design/rx_word_aligner.vhd | 329 +++++ source/synth/ip/gtwizard_ultrascale_0.xcix | Bin 0 -> 718286 bytes .../synth/ip/gtwizard_ultrascale_0_vio_0.xcix | Bin 0 -> 826100 bytes tx_aligner_proj.tcl | 344 +++++ tx_phase_aligner_reference_note.pdf | Bin 0 -> 6309244 bytes 26 files changed, 6056 insertions(+) create mode 100644 .gitkeep create mode 100644 README.md create mode 100644 license.txt create mode 100644 run_script_tcl.bat create mode 100644 scripts/sim/tx_phase_aligner_simu.tcl create mode 100644 scripts/sim/tx_phase_aligner_simu.wcfg create mode 100644 source/constrs/imports/example_design/gtwizard_ultrascale_0_example_top.xdc create mode 100644 source/sim/imports/example_design/gtwizard_ultrascale_0_example_top_sim.v create mode 100644 source/synth/imports/design_tx_aligner/fifo_fill_level_acc.vhd create mode 100644 source/synth/imports/design_tx_aligner/tx_phase_aligner.vhd create mode 100644 source/synth/imports/design_tx_aligner/tx_phase_aligner_fsm.vhd create mode 100644 source/synth/imports/design_tx_aligner/tx_pi_ctrl.vhd create mode 100644 source/synth/imports/example_design/gtwizard_ultrascale_0_example_bit_synchronizer.v create mode 100644 source/synth/imports/example_design/gtwizard_ultrascale_0_example_checking_raw.v create mode 100644 source/synth/imports/example_design/gtwizard_ultrascale_0_example_init.v create mode 100644 source/synth/imports/example_design/gtwizard_ultrascale_0_example_reset_synchronizer.v create mode 100644 source/synth/imports/example_design/gtwizard_ultrascale_0_example_stimulus_raw.v create mode 100644 source/synth/imports/example_design/gtwizard_ultrascale_0_example_top.v create mode 100644 source/synth/imports/example_design/gtwizard_ultrascale_0_example_wrapper.v create mode 100644 source/synth/imports/example_design/gtwizard_ultrascale_0_example_wrapper_functions.vh create mode 100644 source/synth/imports/example_design/gtwizard_ultrascale_0_prbs_any.v create mode 100644 source/synth/imports/example_design/rx_word_aligner.vhd create mode 100644 source/synth/ip/gtwizard_ultrascale_0.xcix create mode 100644 source/synth/ip/gtwizard_ultrascale_0_vio_0.xcix create mode 100644 tx_aligner_proj.tcl create mode 100644 tx_phase_aligner_reference_note.pdf diff --git a/.gitkeep b/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/README.md b/README.md new file mode 100644 index 0000000..132498e --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +Tx phase aligner core reference design + +It is recommended to read the reference note file: tx_phase_aligner_reference_note.pdf \ No newline at end of file diff --git a/license.txt b/license.txt new file mode 100644 index 0000000..e72bfdd --- /dev/null +++ b/license.txt @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. \ No newline at end of file diff --git a/run_script_tcl.bat b/run_script_tcl.bat new file mode 100644 index 0000000..3091023 --- /dev/null +++ b/run_script_tcl.bat @@ -0,0 +1,12 @@ +REM ################################################################################ +REM # Vivado 2019.1 batch file to create the HPTD Tx phase aligner +REM # This batch file uses the default Xilinx installation path. +REM ################################################################################ + +REM #call C:\EDA\Xilinx\v2016_2\Vivado\2016.2\bin\vivado.bat -mode gui -source tx_aligner_proj.tcl +call C:\EDA\Xilinx\\Vivado\\2019.1\\.\\bin\\vivado.bat -mode gui -source tx_aligner_proj.tcl + +del *.jou +del *.log + +REM pause \ No newline at end of file diff --git a/scripts/sim/tx_phase_aligner_simu.tcl b/scripts/sim/tx_phase_aligner_simu.tcl new file mode 100644 index 0000000..b9ab671 --- /dev/null +++ b/scripts/sim/tx_phase_aligner_simu.tcl @@ -0,0 +1,69 @@ +restart + +# Close if any window is opened +#close_wave_config + +# Init simulation with waves to be observed +#open_wave_config {./../tx_phase_aligner_simu.wcfg} + +# Force Initial VIO values for simulation +add_force gtwizard_ultrascale_0_example_top_sim/example_top_inst/hb_gtwiz_reset_all_vio_int 0 0; # VIO_0 +add_force gtwizard_ultrascale_0_example_top_sim/example_top_inst/hb0_gtwiz_reset_tx_pll_and_datapath_int 0 0; # VIO_1 +add_force gtwizard_ultrascale_0_example_top_sim/example_top_inst/hb0_gtwiz_reset_tx_datapath_int 0 0; # VIO_2 +add_force gtwizard_ultrascale_0_example_top_sim/example_top_inst/hb_gtwiz_reset_rx_pll_and_datapath_vio_int 0 0; # VIO_3 +add_force gtwizard_ultrascale_0_example_top_sim/example_top_inst/hb_gtwiz_reset_rx_datapath_vio_int 0 0; # VIO_4 +add_force gtwizard_ultrascale_0_example_top_sim/example_top_inst/link_down_latched_reset_vio_int 0 0; # VIO_5 +add_force gtwizard_ultrascale_0_example_top_sim/example_top_inst/rxcdrreset_int 0 0; # VIO_6 +add_force -radix bin gtwizard_ultrascale_0_example_top_sim/example_top_inst/loopback_int 000 0; # VIO_7 +add_force -radix bin gtwizard_ultrascale_0_example_top_sim/example_top_inst/txprbssel_vio_async 0000 0; # VIO_8 +add_force -radix bin gtwizard_ultrascale_0_example_top_sim/example_top_inst/rxprbssel_vio_async 0000 0; # VIO_9 +add_force gtwizard_ultrascale_0_example_top_sim/example_top_inst/txprbsforceerr_vio_async 0 0; # VIO_10 +add_force gtwizard_ultrascale_0_example_top_sim/example_top_inst/rxprbscntreset_vio_async 0 0; # VIO_11 +add_force gtwizard_ultrascale_0_example_top_sim/example_top_inst/tx_ui_align_calib 0 0; # VIO_12 +add_force gtwizard_ultrascale_0_example_top_sim/example_top_inst/tx_fine_realign 0 0; # VIO_13 +add_force -radix bin gtwizard_ultrascale_0_example_top_sim/example_top_inst/tx_pi_phase_calib 0000000 0; # VIO_14 +add_force -radix hex gtwizard_ultrascale_0_example_top_sim/example_top_inst/tx_fifo_fill_pd_max 00000400 0 ; # VIO_15 +add_force gtwizard_ultrascale_0_example_top_sim/example_top_inst/tx_data_sel_vio_async 0 0; # VIO_16 + +# --------------------------------- Fine alignment --------------------------------- +puts "==> Running iteration 0 (fine alignment)" + +# Wait for Tx to be aligned +run 1000 ns +set tx_aligned [get_value -radix bin /gtwizard_ultrascale_0_example_top_sim/example_top_inst/tx_phase_aligner_inst/tx_aligned_o] +while {!$tx_aligned} { + run 1000 ns + set tx_aligned [get_value -radix bin /gtwizard_ultrascale_0_example_top_sim/example_top_inst/tx_phase_aligner_inst/tx_aligned_o] +} +puts ">> Tx aligned (fine alignment)" + +# Wait for some time +run 10000 ns + +# Get Tx PI phase in case and run a UI align +set tx_pi_phase_calib [get_value -radix bin /gtwizard_ultrascale_0_example_top_sim/example_top_inst/tx_phase_aligner_inst/tx_pi_phase_o] + +# Run a bit longer just to make it easier to identify simulation +run 10000 ns + +# ---------------------- UI alignment config (with enabled reset) ---------------------- +add_force gtwizard_ultrascale_0_example_top_sim/example_top_inst/tx_ui_align_calib 1 0; # VIO_12 +add_force -radix bin gtwizard_ultrascale_0_example_top_sim/example_top_inst/tx_pi_phase_calib $tx_pi_phase_calib 0; # VIO_14 + +# Force a reset +add_force hb_gtwiz_reset_all 1 0 +run 1000 ns +add_force hb_gtwiz_reset_all 0 0 +run 1000 ns + +# Wait for Tx to be aligned +run 1000 ns +set tx_aligned [get_value -radix bin /gtwizard_ultrascale_0_example_top_sim/example_top_inst/tx_phase_aligner_inst/tx_aligned_o] +while {!$tx_aligned} { + run 1000 ns + set tx_aligned [get_value -radix bin /gtwizard_ultrascale_0_example_top_sim/example_top_inst/tx_phase_aligner_inst/tx_aligned_o] +} +puts ">> Tx aligned (UI alignment)" + +# Run a bit longer just to make it easier to identify simulation +run 10000 ns diff --git a/scripts/sim/tx_phase_aligner_simu.wcfg b/scripts/sim/tx_phase_aligner_simu.wcfg new file mode 100644 index 0000000..807a3ea --- /dev/null +++ b/scripts/sim/tx_phase_aligner_simu.wcfg @@ -0,0 +1,189 @@ + + + + + + + + + + + + + + + + + + + + ch0_gthxn + ch0_gthxn + + + ch0_gthxp + ch0_gthxp + + + mgtrefclk1_x0y2 + mgtrefclk1_x0y2 + + + mgtrefclk0_x0y3 + mgtrefclk0_x0y3 + + + hb_gtwiz_reset_clk_freerun + hb_gtwiz_reset_clk_freerun + + + hb_gtwiz_reset_all + hb_gtwiz_reset_all + #A0A0A4 + true + + + link_down_latched_reset + link_down_latched_reset + + + link_status + link_status + + + link_down_latched + link_down_latched + + + simulation_timeout_check + simulation_timeout_check + + + link_up_ctr[10:0] + link_up_ctr[10:0] + + + link_stable + link_stable + + + gtwiz_userclk_rx_usrclk2_int + gtwiz_userclk_rx_usrclk2_int + + + clk_sys_i + clk_sys_i + + + reset_i + reset_i + + + rx_locked_out + rx_locked_out + + + tx_aligned_o + tx_aligned_o + #FF00FF + true + + + tx_pi_phase_calib_i[6:0] + tx_pi_phase_calib_i[6:0] + #00FFFF + true + + + tx_ui_align_calib_i + tx_ui_align_calib_i + #00FFFF + true + + + tx_enable_reset_i + tx_enable_reset_i + #00FFFF + true + + + tx_fifo_fill_pd_max_i[31:0] + tx_fifo_fill_pd_max_i[31:0] + #00FFFF + true + + + tx_fine_realign_i + tx_fine_realign_i + #00FFFF + true + + + tx_pi_phase_o[6:0] + tx_pi_phase_o[6:0] + #FAAFBE + true + + + tx_fifo_fill_pd_o[31:0] + tx_fifo_fill_pd_o[31:0] + #FAAFBE + true + + + clk_txusr_i + clk_txusr_i + + + tx_fifo_fill_level_i + tx_fifo_fill_level_i + + + txpippmen_o + txpippmen_o + + + txpippmovrden_o + txpippmovrden_o + + + txpippmsel_o + txpippmsel_o + + + txpippmpd_o + txpippmpd_o + + + txpippmstepsize_o[4:0] + txpippmstepsize_o[4:0] + + + drpaddr_o[8:0] + drpaddr_o[8:0] + + + drpen_o + drpen_o + + + drpdi_o[15:0] + drpdi_o[15:0] + + + drprdy_i + drprdy_i + + + drpdo_i[15:0] + drpdo_i[15:0] + + + drpwe_o + drpwe_o + + + tx_reset_o + tx_reset_o + + diff --git a/source/constrs/imports/example_design/gtwizard_ultrascale_0_example_top.xdc b/source/constrs/imports/example_design/gtwizard_ultrascale_0_example_top.xdc new file mode 100644 index 0000000..49022dc --- /dev/null +++ b/source/constrs/imports/example_design/gtwizard_ultrascale_0_example_top.xdc @@ -0,0 +1,153 @@ +#------------------------------------------------------------------------------ +# (c) Copyright 2013-2015 Xilinx, Inc. All rights reserved. +# +# This file contains confidential and proprietary information +# of Xilinx, Inc. and is protected under U.S. and +# international copyright and other intellectual property +# laws. +# +# DISCLAIMER +# This disclaimer is not a license and does not grant any +# rights to the materials distributed herewith. Except as +# otherwise provided in a valid license issued to you by +# Xilinx, and to the maximum extent permitted by applicable +# law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +# WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +# AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +# BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +# INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +# (2) Xilinx shall not be liable (whether in contract or tort, +# including negligence, or under any other theory of +# liability) for any loss or damage of any kind or nature +# related to, arising under or in connection with these +# materials, including for any direct, or any indirect, +# special, incidental, or consequential loss or damage +# (including loss of data, profits, goodwill, or any type of +# loss or damage suffered as a result of any action brought +# by a third party) even if such damage or loss was +# reasonably foreseeable or Xilinx had been advised of the +# possibility of the same. +# +# CRITICAL APPLICATIONS +# Xilinx products are not designed or intended to be fail- +# safe, or for use in any application requiring fail-safe +# performance, such as life-support or safety devices or +# systems, Class III medical devices, nuclear facilities, +# applications related to the deployment of airbags, or any +# other applications that could lead to death, personal +# injury, or severe property or environmental damage +# (individually and collectively, "Critical +# Applications"). Customer assumes the sole risk and +# liability of any use of Xilinx products in Critical +# Applications, subject only to applicable laws and +# regulations governing limitations on product liability. +# +# THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +# PART OF THIS FILE AT ALL TIMES. +#------------------------------------------------------------------------------ + + +# UltraScale FPGAs Transceivers Wizard IP example design-level XDC file +# ---------------------------------------------------------------------------------------------------------------------- + +# ---------------------------------------------------------------------------------------------------------------------- +# ************************************************ PHYSICAL CONSTRAINTS ************************************************ +# ---------------------------------------------------------------------------------------------------------------------- +# Location constraints for differential reference clock buffers +# Note: the IP core-level XDC constrains the transceiver channel data pin locations +# ---------------------------------------------------------------------------------------------------------------------- +# MGT_SI570_CLOCK - on-board oscillator used for Rx reference clock +# Tipically, Tx and Rx share the same reference clock, in this design two +# separate clocks are used for a full proof-of-concept but this shall not be +# seen as a requirement/recommendation +set_property package_pin P5 [get_ports mgtrefclk0_x0y3_n] +set_property package_pin P6 [get_ports mgtrefclk0_x0y3_p] + +#FMC_LPC_GBTCLK0 - connect an FMC and an external generator for Tx reference clock +# example of FMC which can be used: TTC-PON FMC +set_property package_pin T5 [get_ports mgtrefclk1_x0y2_n] +set_property package_pin T6 [get_ports mgtrefclk1_x0y2_p] + +# Location and default clock constraints for differential recovered clock output buffers - direct from transceiver +# ---------------------------------------------------------------------------------------------------------------------- +# SMA_MGT_REF_CLK - ac-coupled on-board +set_property package_pin V6 [get_ports rxrecclkout_chx0y11_p] +set_property package_pin V5 [get_ports rxrecclkout_chx0y11_n] + +# Location and default clock constraints for recovered clock output buffers - going through fabric +# ---------------------------------------------------------------------------------------------------------------------- +set_property package_pin h27 [get_ports rxusrclk] +set_property iostandard lvcmos18 [get_ports rxusrclk] +set_property slew fast [get_ports rxusrclk] + +# Location constraints for other example design top-level ports +# Note: uncomment the following set_property constraints and replace "<>" with appropriate pin locations for your board +# ---------------------------------------------------------------------------------------------------------------------- +set_property package_pin G10 [get_ports hb_gtwiz_reset_clk_freerun_in_p] +set_property iostandard LVDS [get_ports hb_gtwiz_reset_clk_freerun_in_p] +set_property package_pin F10 [get_ports hb_gtwiz_reset_clk_freerun_in_n] +set_property iostandard LVDS [get_ports hb_gtwiz_reset_clk_freerun_in_n] + +#GPIO_SW_C +set_property package_pin AE10 [get_ports hb_gtwiz_reset_all_in] +set_property iostandard LVCMOS18 [get_ports hb_gtwiz_reset_all_in] + +#GPIO_SW_E +set_property package_pin AE8 [get_ports link_down_latched_reset_in] +set_property iostandard LVCMOS18 [get_ports link_down_latched_reset_in] + +#GPIO_LED_0 +set_property package_pin AP8 [get_ports link_status_out] +set_property iostandard LVCMOS18 [get_ports link_status_out] + +#GPIO_LED_1 +set_property package_pin H23 [get_ports link_down_latched_out] +set_property iostandard LVCMOS18 [get_ports link_down_latched_out] + +#GPIO_LED_2 +set_property package_pin P20 [get_ports rx_locked_out] +set_property iostandard LVCMOS18 [get_ports rx_locked_out] + +#GPIO_LED_3 +set_property package_pin P21 [get_ports tx_aligned_out] +set_property iostandard LVCMOS18 [get_ports tx_aligned_out] + +# ---------------------------------------------------------------------------------------------------------------------- +# MGT constraining of RXSLIDE to shift clock instead of data +# ---------------------------------------------------------------------------------------------------------------------- +set_property RXSLIDE_MODE PMA [get_cells -hier -filter {NAME=~*GTHE3_CHANNEL_PRIM_INST}] + +# ---------------------------------------------------------------------------------------------------------------------- +# ************************************************* TIMING CONSTRAINTS ************************************************* +# ---------------------------------------------------------------------------------------------------------------------- +# ---------------------------------------------------------------------------------------------------------------------- +# Clock constraints for clocks provided as inputs to the core +# Note: the IP core-level XDC constrains clocks produced by the core, which drive user clocks via helper blocks +# ---------------------------------------------------------------------------------------------------------------------- +create_clock -name clk_freerun -period 8.0 [get_ports hb_gtwiz_reset_clk_freerun_in_p] +create_clock -name clk_mgtrefclk0_x0y3_p -period 3.125 [get_ports mgtrefclk0_x0y3_p] +create_clock -name clk_mgtrefclk1_x0y2_p -period 3.125 [get_ports mgtrefclk1_x0y2_p] + +# Constrain the input to the OBUFDS_GTE3 primitive(s) at the maximum frequency that can be generated by the programmable +# divider for the receiver line rate. This can be changed to the exact frequency if the divider will not be modified. +create_clock -name clk_rxrecclk_chX0Y11 -period 0.39 [get_pins -filter {NAME =~ OBUFDS_GTE3_CHX0Y11_INST/I}] + +# False path constraints +# ---------------------------------------------------------------------------------------------------------------------- +# Synchronizers from example design +set_false_path -to [get_cells -hierarchical -filter {NAME =~ *bit_synchronizer*inst/i_in_meta_reg}] +set_false_path -to [get_cells -hierarchical -filter {NAME =~ *reset_synchronizer*inst/rst_in_*_reg}] + +# Synchronizers internal to rx_word_aligner +set_false_path -to [get_pins -hier -filter {NAME =~ *rx_word_aligner_inst/*meta*/D}] + +# Synchronizers internal to tx_phase_aligner +set_false_path -to [get_pins -hier -filter {NAME =~ *tx_phase_aligner_inst/*meta*/D}] + +# Latched with a done signal +set_false_path -to [get_pins -hier -filter {NAME =~ *tx_phase_aligner_inst/cmp_fifo_fill_level_acc/phase_detector_o*/D}] + +# Reset fifo fill pd after changing value of phase_detector_max from FSM +set_false_path -from [get_pins -hier -filter {NAME =~ tx_phase_aligner_inst/cmp_tx_phase_aligner_fsm/*/C}] -to [get_pins -hier -filter {NAME =~ *tx_phase_aligner_inst/cmp_fifo_fill_level_acc/phase_detector_acc_reg*/CE}] +set_false_path -from [get_pins -hier -filter {NAME =~ tx_phase_aligner_inst/cmp_tx_phase_aligner_fsm/*/C}] -to [get_pins -hier -filter {NAME =~ *tx_phase_aligner_inst/cmp_fifo_fill_level_acc/hits_acc_reg*/CE}] +set_false_path -from [get_pins -hier -filter {NAME =~ tx_phase_aligner_inst/cmp_tx_phase_aligner_fsm/*/C}] -to [get_pins -hier -filter {NAME =~ *tx_phase_aligner_inst/cmp_fifo_fill_level_acc/done_reg/D}] diff --git a/source/sim/imports/example_design/gtwizard_ultrascale_0_example_top_sim.v b/source/sim/imports/example_design/gtwizard_ultrascale_0_example_top_sim.v new file mode 100644 index 0000000..f321856 --- /dev/null +++ b/source/sim/imports/example_design/gtwizard_ultrascale_0_example_top_sim.v @@ -0,0 +1,226 @@ +//------------------------------------------------------------------------------ +// (c) Copyright 2013-2015 Xilinx, Inc. All rights reserved. +// +// This file contains confidential and proprietary information +// of Xilinx, Inc. and is protected under U.S. and +// international copyright and other intellectual property +// laws. +// +// DISCLAIMER +// This disclaimer is not a license and does not grant any +// rights to the materials distributed herewith. Except as +// otherwise provided in a valid license issued to you by +// Xilinx, and to the maximum extent permitted by applicable +// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +// (2) Xilinx shall not be liable (whether in contract or tort, +// including negligence, or under any other theory of +// liability) for any loss or damage of any kind or nature +// related to, arising under or in connection with these +// materials, including for any direct, or any indirect, +// special, incidental, or consequential loss or damage +// (including loss of data, profits, goodwill, or any type of +// loss or damage suffered as a result of any action brought +// by a third party) even if such damage or loss was +// reasonably foreseeable or Xilinx had been advised of the +// possibility of the same. +// +// CRITICAL APPLICATIONS +// Xilinx products are not designed or intended to be fail- +// safe, or for use in any application requiring fail-safe +// performance, such as life-support or safety devices or +// systems, Class III medical devices, nuclear facilities, +// applications related to the deployment of airbags, or any +// other applications that could lead to death, personal +// injury, or severe property or environmental damage +// (individually and collectively, "Critical +// Applications"). Customer assumes the sole risk and +// liability of any use of Xilinx products in Critical +// Applications, subject only to applicable laws and +// regulations governing limitations on product liability. +// +// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +// PART OF THIS FILE AT ALL TIMES. +//------------------------------------------------------------------------------ + + +`timescale 1ps/1ps + +// ===================================================================================================================== +// This example design top simulation module instantiates the example design top module, provides basic stimulus to it +// while looping back transceiver data from transmit to receive, and utilizes the PRBS checker-based link status +// indicator to demonstrate simple data integrity checking of the design. This module is for use in simulation only. +// ===================================================================================================================== + +module gtwizard_ultrascale_0_example_top_sim (); + + + // ------------------------------------------------------------------------------------------------------------------- + // Signal declarations and basic example design stimulus + // ------------------------------------------------------------------------------------------------------------------- + + // Declare wires to loop back serial data ports for transceiver channel 0 + wire ch0_gthxn; + wire ch0_gthxp; + + // Declare register to drive reference clock at location MGTREFCLK1_X0Y2 + reg mgtrefclk1_x0y2 = 1'b0; + + // Drive that reference clock at the appropriate frequency + // NOTE: the following simulation reference clock period may be up to +/- 2ps from its nominal value, due to rounding + // within Verilog timescale granularity, especially when transmitter and receiver reference clock frequencies differ + initial begin + mgtrefclk1_x0y2 = 1'b0; + forever + //mgtrefclk1_x0y2 = #1563 ~mgtrefclk1_x0y2; + mgtrefclk1_x0y2 = #1500 ~mgtrefclk1_x0y2; + end + + // Declare register to drive reference clock at location MGTREFCLK0_X0Y3 + reg mgtrefclk0_x0y3 = 1'b0; + + // Drive that reference clock at the appropriate frequency + // NOTE: the following simulation reference clock period may be up to +/- 2ps from its nominal value, due to rounding + // within Verilog timescale granularity, especially when transmitter and receiver reference clock frequencies differ + initial begin + mgtrefclk0_x0y3 = 1'b0; + forever + //mgtrefclk0_x0y3 = #1563 ~mgtrefclk0_x0y3; + mgtrefclk0_x0y3 = #1500 ~mgtrefclk0_x0y3; + end + + // Declare registers to drive reset helper block(s) + reg hb_gtwiz_reset_clk_freerun = 1'b0; + reg hb_gtwiz_reset_all = 1'b1; + + // Drive the helper block free running clock + initial begin + hb_gtwiz_reset_clk_freerun = 1'b0; + forever + hb_gtwiz_reset_clk_freerun = #4000 ~hb_gtwiz_reset_clk_freerun; + end + + // Drive the helper block "reset all" input high, then low after some time + initial begin + hb_gtwiz_reset_all = 1'b1; + #5E6; + repeat (100) + @(hb_gtwiz_reset_clk_freerun); + hb_gtwiz_reset_all = 1'b0; + end + + // Declare registers and wires to interface to the PRBS-based link status ports + reg link_down_latched_reset = 1'b0; + wire link_status; + wire link_down_latched; + + // ------------------------------------------------------------------------------------------------------------------- + // Basic data integrity checking, making use of PRBS-based link status ports + // ------------------------------------------------------------------------------------------------------------------- + + // Create a basic timeout indicator which is used to abort the simulation of no link is achieved after 2ms + reg simulation_timeout_check = 1'b0; + initial begin + simulation_timeout_check = 1'b0; + #2E9; + simulation_timeout_check = 1'b1; + end + + // Create a basic stable link monitor which is set after 2048 consecutive cycles of link up and is reset after any + // link loss + reg [10:0] link_up_ctr = 11'd0; + reg link_stable = 1'b0; + always @(posedge hb_gtwiz_reset_clk_freerun) begin + if (link_status !== 1'b1) begin + link_up_ctr <= 11'd0; + link_stable <= 1'b0; + end + else begin + if (&link_up_ctr) + link_stable <= 1'b1; + else + link_up_ctr <= link_up_ctr + 11'd1; + end + end + +// Commented by EBSM - the simulation is driven in TCL +// Checking is done in the TCL script accompanying the simulation +// // Perform basic checking of the simulation outcome based on stable link monitor +// initial begin + +// // Await de-assertion of the master reset signal +// @(negedge hb_gtwiz_reset_all); + +// // Await assertion of initial link indication or simulation timeout indicator +// @(posedge link_stable, simulation_timeout_check); + +// // If the simulation timeout indicator was asserted, the simulation failed to achieve initial link up in a +// // reasonable time, so display an error message and quit +// if (simulation_timeout_check) begin +// $display("Time : %12d ps FAIL: simulation timeout. Link never achieved.", $time); +// $display("** Error: Test did not complete successfully"); +// $finish; +// end + +// // If the initial link was achieved, display this message and continue checks as follows +// else begin +// $display("Time : %12d ps Initial link achieved across all transceiver channels.", $time); + +// // Reset the latched link down indicator, which is always set prior to initially achieving link +// $display("Time : %12d ps Resetting latched link down indicator.", $time); +// link_down_latched_reset = 1'b1; +// repeat (5) +// @(hb_gtwiz_reset_clk_freerun); +// link_down_latched_reset = 1'b0; + +// // Continue to run the simulation for long enough to detect any subsequent errors causing link loss which may +// // occur within a reasonable simulation time +// $display("Time : %12d ps Continuing simulation for 50us to check for maintenance of link.", $time); +// #5E7; + +// // At simulation completion, if the link indicator is still high and no intermittent link loss was detected, +// // display a success message. Otherwise, display a failure message. Complete the simulation in either case. +// if ((link_status === 1'b1) && (link_down_latched === 1'b0)) begin +// $display("Time : %12d ps PASS: simulation completed with maintained link.", $time); +// $display("** Test completed successfully"); +// end +// else begin +// $display("Time : %12d ps FAIL: simulation completed with subsequent link loss after after initial link.", $time); +// $display("** Error: Test did not complete successfully"); +// end + +// $finish; +// end +// end + + // ------------------------------------------------------------------------------------------------------------------- + // Instantiate example design top module as the simulation DUT + // ------------------------------------------------------------------------------------------------------------------- + + gtwizard_ultrascale_0_example_top example_top_inst ( + .mgtrefclk0_x0y3_p (mgtrefclk0_x0y3), + .mgtrefclk0_x0y3_n (~mgtrefclk0_x0y3), + .mgtrefclk1_x0y2_p (mgtrefclk1_x0y2), + .mgtrefclk1_x0y2_n (~mgtrefclk1_x0y2), + .ch0_gthrxn_in (ch0_gthxn), + .ch0_gthrxp_in (ch0_gthxp), + .ch0_gthtxn_out (ch0_gthxn), + .ch0_gthtxp_out (ch0_gthxp), + .rxrecclkout_chx0y11_p (), + .rxrecclkout_chx0y11_n (), + .rxusrclk (), // Added by EBSM + .hb_gtwiz_reset_clk_freerun_in_p (hb_gtwiz_reset_clk_freerun), + .hb_gtwiz_reset_clk_freerun_in_n (~hb_gtwiz_reset_clk_freerun), + .hb_gtwiz_reset_all_in (hb_gtwiz_reset_all), + .link_down_latched_reset_in (link_down_latched_reset), + .link_status_out (link_status), + .link_down_latched_out (link_down_latched), + .rx_locked_out(), // Added by EBSM + .tx_aligned_out() // Added by EBSM + ); + + +endmodule diff --git a/source/synth/imports/design_tx_aligner/fifo_fill_level_acc.vhd b/source/synth/imports/design_tx_aligner/fifo_fill_level_acc.vhd new file mode 100644 index 0000000..3b197d9 --- /dev/null +++ b/source/synth/imports/design_tx_aligner/fifo_fill_level_acc.vhd @@ -0,0 +1,240 @@ +--============================================================================== +-- © Copyright CERN for the benefit of the HPTD interest group 2018. All rights not +-- expressly granted are reserved. +-- +-- This file is part of tx_phase_aligner. +-- +-- tx_phase_aligner is free VHDL code: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- tx_phase_aligner is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with tx_phase_aligner. If not, see . +--============================================================================== +--! @file fifo_fill_level_acc.vhd +--============================================================================== +--! Standard library +library ieee; +--! Standard packages +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +--! Specific packages +------------------------------------------------------------------------------- +-- -- +-- CERN, EP-ESE-BE, HPTD +-- -- +------------------------------------------------------------------------------- +-- +-- unit name: Transmitter FIFO filling level phase detector (fifo_fill_level_acc) +-- +--! @brief Transmitter FIFO filling level phase detector based on the address difference of read and write pointers +--! This block accumulates the FIFO filling level flag in order to obtain a high precision phase detector +--! +--! @author Eduardo Brandao de Souza Mendes - eduardo.brandao.de.souza.mendes@cern.ch +--! @date 02\05\2018 +--! @version 1.0 +--! @details +--! +--! Dependencies:\n +--! +--! +--! References:\n +--! \n +--! +--! +--! Modified by:\n +--! Author: Eduardo Brandao de Souza Mendes +------------------------------------------------------------------------------- +--! \n\nLast changes:\n +--! 02\05\2018 - EBSM - Created\n +--! +------------------------------------------------------------------------------- +--! @todo - \n +--! \n +-- +------------------------------------------------------------------------------- + +--============================================================================== +--! Entity declaration for fifo_fill_level_acc +--============================================================================== +entity fifo_fill_level_acc is + port ( + -- User Interface + clk_sys_i : in std_logic; --! system clock input + reset_i : in std_logic; --! actived on rising edge sync. reset + done_o : out std_logic; --! latched to '1' to indicate accumulated value was reached, cleared only with clear/reset + phase_detector_o : out std_logic_vector(31 downto 0); --! phase detector accumulated output (increments for each pulse in which txfifofilllevel is 1) + phase_detector_max_i : in std_logic_vector(31 downto 0); --! phase detector accumulated max output, sets precision of phase detector + --! this is supposedly a static signal, this block shall be reset whenever this signal changes + --! the time for each phase detection after a clear is given by phase_detector_max_i * PERIOD_clk_txusr_i + -- MGT interface + -- Tx fifo fill level - see Xilinx transceiver User Guide for more information + clk_txusr_i : in std_logic; --! txusr2clk + tx_fifo_fill_level_i : in std_logic --! connect to txbufstatus[0] + ); +end fifo_fill_level_acc; + +--============================================================================== +-- architecture declaration +--============================================================================== + +architecture rtl of fifo_fill_level_acc is + + --! Attribute declaration + attribute async_reg : string; + + --! Constant declaration + + --! Signal declaration + -- clear synchronizer to txusr clk using closed loop technique with synchronizer + -- reset synchronizer using simple 2-FF + -- clk_sys + signal reset_r : std_logic; + signal reset_toggle : std_logic := '0'; + + -- clk_txusr + signal reset_toggle_txusr_meta : std_logic; + signal reset_toggle_txusr_r : std_logic; + signal reset_toggle_txusr_r2 : std_logic; + attribute async_reg of reset_toggle_txusr_meta, reset_toggle_txusr_r, reset_toggle_txusr_r2 : signal is "true"; + signal reset_txusr : std_logic; + + -- phase detector + signal phase_detector_acc : unsigned(phase_detector_o'range); + signal hits_acc : unsigned(phase_detector_max_i'range); + signal done : std_logic; + + -- sync for done + signal done_sys_meta : std_logic; + signal done_sys_r : std_logic; + signal done_sys_r2 : std_logic; + attribute async_reg of done_sys_meta, done_sys_r, done_sys_r2 : signal is "true"; + + +begin + + --============================================================================ + -- Process p_reset_toggle + --! Creates a toggle for the reset when rising edge is detected + --! read: reset_i\n + --! write: \n + --! r/w: reset_toggle\n + --============================================================================ + p_reset_toggle : process(clk_sys_i) + begin + if(rising_edge(clk_sys_i)) then + reset_r <= reset_i; + if(reset_r = '0' and reset_i = '1') then + reset_toggle <= not reset_toggle; + end if; + end if; + end process p_reset_toggle; + + --============================================================================ + -- Process p_reset_toggle_txusrsync + --! Creates a toggle for the reset when rising edge is detected + --! read: reset_toggle\n + --! write: reset_txusr\n + --! r/w: reset_toggle_txusr_meta, reset_toggle_txusr_r, reset_toggle_txusr_r2\n + --============================================================================ + p_reset_toggle_txusrsync : process(clk_txusr_i) + begin + if(rising_edge(clk_txusr_i)) then + reset_toggle_txusr_meta <= reset_toggle; + reset_toggle_txusr_r <= reset_toggle_txusr_meta; + reset_toggle_txusr_r2 <= reset_toggle_txusr_r; + reset_txusr <= reset_toggle_txusr_r2 xor reset_toggle_txusr_r; + end if; + end process p_reset_toggle_txusrsync; + + --============================================================================ + -- Process p_phase_detector + --! Creates reset toggle register with rising edge of reset + --! read: reset_txusr\n + --! write: done\n + --! r/w: hits_acc, phase_detector_acc\n + --============================================================================ + p_phase_detector : process(clk_txusr_i) + begin + if(rising_edge(clk_txusr_i)) then + if (reset_txusr = '1') then + phase_detector_acc <= to_unsigned(0, phase_detector_acc'length); + hits_acc <= to_unsigned(0, hits_acc'length); + done <= '0'; + else + if(hits_acc < unsigned(phase_detector_max_i)) then + hits_acc <= hits_acc + to_unsigned(1, hits_acc'length); + if(tx_fifo_fill_level_i = '1') then + phase_detector_acc <= phase_detector_acc + to_unsigned(1, phase_detector_acc'length); + end if; + done <= '0'; + else + done <= '1'; + end if; + end if; + end if; + end process p_phase_detector; + + --============================================================================ + -- Process p_sys_sync + --! System clock output synchronizer + --! read: done\n + --! write: done_sys_r2\n + --! r/w: done_sys_meta, done_sys_r\n + --============================================================================ + p_sys_sync : process(clk_sys_i) + begin + if(rising_edge(clk_sys_i)) then + done_sys_meta <= done; + done_sys_r <= done_sys_meta; + done_sys_r2 <= done_sys_r; + end if; + end process p_sys_sync; + + --============================================================================ + -- Process p_done_out + --! Output of done bit + --! read: done_sys_r2, done_sys_r\n + --! write: done_o\n + --! r/w: -\n + --============================================================================ + p_done_out : process(clk_sys_i) + begin + if(rising_edge(clk_sys_i)) then + if(reset_i = '1') then + done_o <= '0'; + else + if(done_sys_r2 = '0' and done_sys_r = '1') then + done_o <= '1'; + end if; + end if; + end if; + end process p_done_out; + + --============================================================================ + -- Process p_pd_out + --! Output of phase detector + --! read: done_sys_r2, done_sys_r, phase_detector_acc\n + --! write: phase_detector_o\n + --! r/w: -\n + --============================================================================ + p_pd_out : process(clk_sys_i) + begin + if(rising_edge(clk_sys_i)) then + if(done_sys_r2 = '0' and done_sys_r = '1') then + phase_detector_o <= std_logic_vector(phase_detector_acc); + end if; + end if; + end process p_pd_out; + +end architecture rtl; +--============================================================================== +-- architecture end +--============================================================================== diff --git a/source/synth/imports/design_tx_aligner/tx_phase_aligner.vhd b/source/synth/imports/design_tx_aligner/tx_phase_aligner.vhd new file mode 100644 index 0000000..085a43b --- /dev/null +++ b/source/synth/imports/design_tx_aligner/tx_phase_aligner.vhd @@ -0,0 +1,409 @@ +--============================================================================== +-- © Copyright CERN for the benefit of the HPTD interest group 2018. All rights not +-- expressly granted are reserved. +-- +-- This file is part of tx_phase_aligner. +-- +-- tx_phase_aligner is free VHDL code: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- tx_phase_aligner is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with tx_phase_aligner. If not, see . +--============================================================================== +--! @file tx_phase_aligner.vhd +--============================================================================== +--! Standard library +library ieee; +--! Standard packages +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +--! Specific packages +------------------------------------------------------------------------------- +-- -- +-- CERN, EP-ESE-BE, HPTD +-- -- +------------------------------------------------------------------------------- +-- +-- unit name: Tx Phase Aligner for usage when elastic buffer is enabled (tx_phase_aligner) +-- +--! @brief Tx Phase Aligner for usage when elastic buffer is enabled +--! - Implements tx phase alignment procedure +--! - It is recommended to keep this block in a reset state ('reset_i' = 1) until the transceiver reset procedure is completed +--! - It is also recommended to keep the transmitter user logic in a reset state while the alignment procedure is not finished ('tx_aligned_o' = 0) +--! Different flavours are possible: +--! 1) At each reset, re-align transmitter with fine PI step: +--! - When is it recommended? +--! a) applications not requiring a perfect phase determinism (~5-10 ps variation) with resets +--! b) applications using this block only as a CDC strategy with minimal latency variation +--! - How to use design? +--! - Config ports: +--! Tie tx_pi_phase_calib_i to all '0' +--! Tie tx_ui_align_calib_i to '0' +--! +--! 2) At each reset, re-align the transmitter PI to a calibrated value +--! - When is it recommended? +--! a) applications requiring a perfect phase determinism (~1 ps variation) with resets +--! b) applications where the board FPGA is not subject to large temperature variations +--! - What does it cost? +--! a) Requires a initial calibration (automatically done by block) during first reset +--! b) Monitor the tx_fifo_fill_pd_o and perform re-calibration whenever it is all zeros or all ones +--! +--! - How to use design? +--! - Config ports: +--! +--! a) during first reset: +--! Tie tx_pi_phase_calib_i to all X (dont care) +--! Tie tx_ui_align_calib_i to '0' +--! +--! b) during other resets: +--! Tie tx_pi_phase_calib_i to the value of 'tx_pi_phase_o' after the first reset +--! Tie tx_ui_align_calib_i to '1' +--! +--! @author Eduardo Brandao de Souza Mendes - eduardo.brandao.de.souza.mendes@cern.ch +--! @date 03\05\2018 +--! @version 1.0 +--! @details +--! +--! Dependencies:\n +--! +--! +--! References:\n +--! \n +--! +--! +--! Modified by:\n +--! Author: Eduardo Brandao de Souza Mendes +------------------------------------------------------------------------------- +--! \n\nLast changes:\n +--! 03\05\2018 - EBSM - Created\n +--! 13\09\2018 - EBSM - Remove unused ports\n +--! +------------------------------------------------------------------------------- +--! @todo - \n +--! \n +-- +------------------------------------------------------------------------------- + +--============================================================================== +--! Entity declaration for tx_phase_aligner +--============================================================================== +entity tx_phase_aligner is + generic( + -- User choice of DRP control or port control + -- Recommended nowadays to use in DRP control as a strange behaviour was observed using the port in PI code stepping mode + g_DRP_NPORT_CTRL : boolean := true; --! Uses DRP control of port control for the transmitter PI + g_DRP_ADDR_TXPI_PPM_CFG : std_logic_vector(8 downto 0) := ("010011010") --! Check the transceiver user guide of your device for this address + ); + port ( + --============================================================================== + --! User control/monitor ports + --============================================================================== + -- Clock / reset + clk_sys_i : in std_logic; --! system clock input + reset_i : in std_logic; --! active high sync. reset (recommended to keep reset_i=1 while transceiver reset initialization is being performed) + + -- Top level interface + tx_aligned_o : out std_logic; --! Use it as a reset for the user transmitter logic + + -- Config (for different flavours) + tx_pi_phase_calib_i : in std_logic_vector(6 downto 0); --! previous calibrated tx pi phase (tx_pi_phase_o after first reset calibration) + tx_ui_align_calib_i : in std_logic; --! align with previous calibrated tx pi phase + tx_fifo_fill_pd_max_i : in std_logic_vector(31 downto 0); --! phase detector accumulated max output, sets precision of phase detector + --! this is supposedly a static signal, this block shall be reset whenever this signal changes + --! the time for each phase detection after a clear is given by tx_fifo_fill_pd_max_i * PERIOD_clk_txusr_i + tx_fine_realign_i : in std_logic; --! A rising edge will cause the Tx to perform a fine realignment to the half-response + + -- It is only valid to re-shift clock once aligned (tx_aligned_o = '1') + ps_strobe_i : in std_logic; --! pulse synchronous to clk_sys_i to activate a shift in the phase (only captured rising edge, so a signal larger than a pulse is also fine) + ps_inc_ndec_i : in std_logic; --! 1 increments phase by phase_step_i units, 0 decrements phase by phase_step_i units + ps_phase_step_i : in std_logic_vector(3 downto 0); --! number of units to shift the phase of the receiver clock (see Xilinx transceiver User Guide to convert units in time) + ps_done_o : out std_logic; --! pulse synchronous to clk_sys_i to indicate a phase shift was performed + + -- Tx PI phase value + tx_pi_phase_o : out std_logic_vector(6 downto 0); --! phase shift accumulated + + -- Tx fifo fill level phase detector + tx_fifo_fill_pd_o : out std_logic_vector(31 downto 0); --! phase detector output, when aligned this value should be close to (0x2_0000) + + --============================================================================== + --! MGT ports + --============================================================================== + clk_txusr_i : in std_logic; --! txusr2clk + -- Tx fifo fill level - see Xilinx transceiver User Guide for more information + tx_fifo_fill_level_i : in std_logic; --! connect to txbufstatus[0] + + -- Transmitter PI ports - see Xilinx transceiver User Guide for more information + -- obs1: all txpi ports shall be connected to the transceiver even when using this block in DRP-mode + txpippmen_o : out std_logic; --! enable tx phase interpolator controller + txpippmovrden_o : out std_logic; --! enable DRP control of tx phase interpolator + txpippmsel_o : out std_logic; --! set to 1 when using tx pi ppm controler + txpippmpd_o : out std_logic; --! power down transmitter phase interpolator + txpippmstepsize_o : out std_logic_vector(4 downto 0); --! sets step size and direction of phase shift with port control PI code stepping mode + + -- DRP interface - see Xilinx transceiver User Guide for more information + -- obs2: connect clk_sys_i to drpclk + -- obs3: if using this block in port-mode, DRP output can be left floating and input connected to '0' + drpaddr_o : out std_logic_vector(8 downto 0); --! For devices with a 10-bit DRP address interface, connect MSB to '0' + drpen_o : out std_logic; --! DRP enable transaction + drpdi_o : out std_logic_vector(15 downto 0); --! DRP data write + drprdy_i : in std_logic; --! DRP finished transaction + drpdo_i : in std_logic_vector(15 downto 0); --! DRP data read; not used nowadays, write only interface + drpwe_o : out std_logic --! DRP write enable + + ); +end tx_phase_aligner; + +--============================================================================== +-- architecture declaration +--============================================================================== + +architecture rtl of tx_phase_aligner is + + --! Function declaration + + --! Constant declaration + constant c_SPEED_PD_FACTOR : integer range 0 to 19 := 7; + constant c_PI_COARSE_STEP : integer range 0 to 15 := 8; + constant c_PI_FINE_STEP : integer range 0 to 15 := 1; + + --! Signal declaration + -- tx_pi_ctrl <-> tx_phase_aligner_fsm + signal tx_aligner_tx_pi_strobe : std_logic; + signal tx_aligner_tx_pi_inc_ndec : std_logic; + signal tx_aligner_tx_pi_phase_step : std_logic_vector(3 downto 0); + signal tx_aligner_tx_pi_done : std_logic; + + signal tx_pi_strobe : std_logic; + signal tx_pi_inc_ndec : std_logic; + signal tx_pi_phase_step : std_logic_vector(3 downto 0); + signal tx_pi_done : std_logic; + + signal tx_pi_phase : std_logic_vector(6 downto 0); + + -- tx_fifo_fill_level_acc <-> tx_phase_aligner_fsm + signal tx_fifo_fill_pd_clear : std_logic; + signal tx_fifo_fill_pd_done : std_logic; + signal tx_fifo_fill_pd : std_logic_vector(31 downto 0); + signal tx_fifo_fill_pd_max : std_logic_vector(31 downto 0); + + signal reset_fifo_fill_level_acc : std_logic; + + signal tx_aligned : std_logic; + + --! Component declaration + component tx_phase_aligner_fsm is + generic( + g_SPEED_PD_FACTOR : integer range 0 to 19 := 10; --! coarse alignment procedure takes g_TX_FIFO_FILL_PD_MAX/(2**g_SPEED_PD_FACTOR) + + g_PI_COARSE_STEP : integer range 0 to 15 := 8; --! coarse PI steps + + g_PI_FINE_STEP : integer range 0 to 15 := 1 --! fine PI steps + ); + port ( + -- Clock / reset + clk_sys_i : in std_logic; --! system clock input + reset_i : in std_logic; --! active high sync. reset + + -- Top level interface + tx_aligned_o : out std_logic; --! Use it as a reset for the user transmitter logic + + -- Config (for different flavours) + tx_pi_phase_calib_i : in std_logic_vector(6 downto 0); --! previous calibrated tx pi phase + tx_ui_align_calib_i : in std_logic; --! align with previous calibrated tx pi phase + tx_enable_reset_i : in std_logic; --! enable tx reset for perfect phase alignment (only relevant if tx_ui_align_calib_i is '1') + tx_fifo_fill_pd_max_i : in std_logic_vector(31 downto 0); --! phase detector accumulated max output, sets precision of phase detector + --! this is supposedly a static signal, this block shall be reset whenever this signal changes + --! the time for each phase detection after a clear is given by tx_fifo_fill_pd_max_i * PERIOD_clk_txusr_i + tx_fine_realign_i : in std_logic; --! A rising edge will cause the Tx to perform a fine realignment to the half-response + + -- Tx pi controller interface - see user interface tx_pi_ctrl.vhd for more information + tx_pi_strobe_o : out std_logic; --! see user interface tx_pi_ctrl.vhd for more information + tx_pi_inc_ndec_o : out std_logic; --! see user interface tx_pi_ctrl.vhd for more information + tx_pi_phase_step_o : out std_logic_vector(3 downto 0); --! see user interface tx_pi_ctrl.vhd for more information + tx_pi_done_i : in std_logic; --! see user interface tx_pi_ctrl.vhd for more information + tx_pi_phase_i : in std_logic_vector(6 downto 0); --! see user interface tx_pi_ctrl.vhd for more information + + -- Tx fifo fill level phase detector interface - see user interface fifo_fill_level_acc.vhd for more information + tx_fifo_fill_pd_clear_o : out std_logic; --! see user interface fifo_fill_level_acc.vhd for more information + tx_fifo_fill_pd_done_i : in std_logic; --! see user interface fifo_fill_level_acc.vhd for more information + tx_fifo_fill_pd_i : in std_logic_vector(31 downto 0); --! see user interface fifo_fill_level_acc.vhd for more information + tx_fifo_fill_pd_max_o : out std_logic_vector(31 downto 0); --! see user interface fifo_fill_level_acc.vhd for more information + + -- Tx MGT reset (only used when tx_enable_reset_i is activated) + tx_reset_o : out std_logic + ); + end component tx_phase_aligner_fsm; + + component tx_pi_ctrl is + generic( + -- User choice of DRP control or port control + -- Recommended nowadays to use in DRP control as a strange behaviour was observed using the port in PI code stepping mode + g_DRP_NPORT_CTRL : boolean := true; --! Uses DRP control of port control for the transmitter PI + g_DRP_ADDR_TXPI_PPM_CFG : std_logic_vector(8 downto 0) := ("010011010") --! Check the transceiver user guide of your device for this address + ); + port ( + -- User Interface + clk_sys_i : in std_logic; --! system clock input + reset_i : in std_logic; --! active high sync. reset + strobe_i : in std_logic; --! pulse synchronous to clk_sys_i to activate a shift in the transmitter phase (only captured rising edge, so a signal larger than a pulse is also fine) + inc_ndec_i : in std_logic; --! 1 increments tx phase by phase_step_i units, 0 decrements tx phase by phase_step_i units + phase_step_i : in std_logic_vector(3 downto 0); --! number of units to shift the phase of the transmitter (see Xilinx transceiver User Guide to convert units in time) + done_o : out std_logic; --! pulse synchronous to clk_sys_i to indicate a transmitter phase shift was performed + phase_o : out std_logic_vector(6 downto 0); --! phase shift accumulated + + -- MGT interface + -- Transmitter PI ports - see Xilinx transceiver User Guide for more information + -- obs1: all txpi ports shall be connected to the transceiver even when using this block in DRP-mode + clk_txusr_i : in std_logic; --! txusr2clk + txpippmen_o : out std_logic; --! enable tx phase interpolator controller + txpippmovrden_o : out std_logic; --! enable DRP control of tx phase interpolator + txpippmsel_o : out std_logic; --! set to 1 when using tx pi ppm controler + txpippmpd_o : out std_logic; --! power down transmitter phase interpolator + txpippmstepsize_o : out std_logic_vector(4 downto 0); --! sets step size and direction of phase shift with port control PI code stepping mode + + -- DRP interface - see Xilinx transceiver User Guide for more information + -- obs2: connect clk_sys_i to drpclk + -- obs3: if using this block in port-mode, DRP output can be left floating and input connected to '0' + drpaddr_o : out std_logic_vector(8 downto 0); --! For devices with a 10-bit DRP address interface, connect MSB to '0' + drpen_o : out std_logic; --! DRP enable transaction + drpdi_o : out std_logic_vector(15 downto 0); --! DRP data write + drprdy_i : in std_logic; --! DRP finished transaction + drpdo_i : in std_logic_vector(15 downto 0); --! DRP data read; not used nowadays, write only interface + drpwe_o : out std_logic --! DRP write enable + ); + end component tx_pi_ctrl; + + component fifo_fill_level_acc is + port ( + -- User Interface + clk_sys_i : in std_logic; --! system clock input + reset_i : in std_logic; --! actived on rising edge sync. reset + done_o : out std_logic; --! latched to '1' to indicate accumulated value was reached, cleared only with clear/reset + phase_detector_o : out std_logic_vector(31 downto 0); --! phase detector accumulated output (increments for each pulse in which txfifofilllevel is 1) + phase_detector_max_i : in std_logic_vector(31 downto 0); --! phase detector accumulated max output, sets precision of phase detector + --! this is supposedly a static signal, this block shall be reset whenever this signal changes + --! the time for each phase detection after a clear is given by phase_detector_max_i * PERIOD_clk_txusr_i + -- MGT interface + -- Tx fifo fill level - see Xilinx transceiver User Guide for more information + clk_txusr_i : in std_logic; --! txusr2clk + tx_fifo_fill_level_i : in std_logic --! connect to txbufstatus[0] + ); + end component fifo_fill_level_acc; + +begin + + cmp_tx_phase_aligner_fsm : tx_phase_aligner_fsm + generic map( + g_SPEED_PD_FACTOR => c_SPEED_PD_FACTOR , + g_PI_COARSE_STEP => c_PI_COARSE_STEP , + g_PI_FINE_STEP => c_PI_FINE_STEP + ) + port map( + -- Clock / reset + clk_sys_i => clk_sys_i, + reset_i => reset_i , + + -- Top level interface + tx_aligned_o => tx_aligned , + + -- Config (for different flavours) + tx_pi_phase_calib_i => tx_pi_phase_calib_i, + tx_ui_align_calib_i => tx_ui_align_calib_i, + tx_enable_reset_i => '0', -- this special mode is not being used to simplify user integration + tx_fifo_fill_pd_max_i => tx_fifo_fill_pd_max_i, + tx_fine_realign_i => tx_fine_realign_i, + + -- Tx pi controller interface - see user interface tx_pi_ctrl.vhd for more information + tx_pi_strobe_o => tx_aligner_tx_pi_strobe, + tx_pi_inc_ndec_o => tx_aligner_tx_pi_inc_ndec, + tx_pi_phase_step_o => tx_aligner_tx_pi_phase_step, + tx_pi_done_i => tx_aligner_tx_pi_done, + tx_pi_phase_i => tx_pi_phase, + + -- Tx fifo fill level phase detector interface - see user interface fifo_fill_level_acc.vhd for more information + tx_fifo_fill_pd_clear_o => tx_fifo_fill_pd_clear, + tx_fifo_fill_pd_done_i => tx_fifo_fill_pd_done, + tx_fifo_fill_pd_i => tx_fifo_fill_pd, + tx_fifo_fill_pd_max_o => tx_fifo_fill_pd_max, + + -- Tx MGT reset (only used when tx_enable_reset_i is activated) + tx_reset_o => open -- this special mode is not being used to simplify user integration + ); + + cmp_tx_pi_ctrl : tx_pi_ctrl + generic map( + -- User choice of DRP control or port control + -- Recommended nowadays to use in DRP control as a strange behaviour was observed using the port in PI code stepping mode + g_DRP_NPORT_CTRL => g_DRP_NPORT_CTRL, + g_DRP_ADDR_TXPI_PPM_CFG => g_DRP_ADDR_TXPI_PPM_CFG + ) + port map( + -- User Interface + clk_sys_i => clk_sys_i, + reset_i => reset_i , + strobe_i => tx_pi_strobe, + inc_ndec_i => tx_pi_inc_ndec, + phase_step_i => tx_pi_phase_step, + done_o => tx_pi_done, + phase_o => tx_pi_phase, + + -- MGT interface + -- Transmitter PI ports - see Xilinx transceiver User Guide for more information + -- obs1: all txpi ports shall be connected to the transceiver even when using this block in DRP-mode + clk_txusr_i => clk_txusr_i, + txpippmen_o => txpippmen_o, + txpippmovrden_o => txpippmovrden_o, + txpippmsel_o => txpippmsel_o, + txpippmpd_o => txpippmpd_o, + txpippmstepsize_o => txpippmstepsize_o, + + -- DRP interface - see Xilinx transceiver User Guide for more information + -- obs2: connect clk_sys_i to drpclk + -- obs3: if using this block in port-mode, DRP output can be left floating and input connected to '0' + drpaddr_o => drpaddr_o, + drpen_o => drpen_o, + drpdi_o => drpdi_o, + drprdy_i => drprdy_i, + drpdo_i => drpdo_i, + drpwe_o => drpwe_o + ); + + tx_pi_phase_o <= tx_pi_phase; + + tx_aligned_o <= tx_aligned; + tx_pi_strobe <= ps_strobe_i when tx_aligned = '1' else tx_aligner_tx_pi_strobe; + tx_pi_inc_ndec <= ps_inc_ndec_i when tx_aligned = '1' else tx_aligner_tx_pi_inc_ndec; + tx_pi_phase_step <= ps_phase_step_i when tx_aligned = '1' else tx_aligner_tx_pi_phase_step; + ps_done_o <= tx_pi_done when tx_aligned = '1' else '0'; + tx_aligner_tx_pi_done <= tx_pi_done when tx_aligned = '0' else '0'; + + cmp_fifo_fill_level_acc : fifo_fill_level_acc + port map( + -- User Interface + clk_sys_i => clk_sys_i, + reset_i => reset_fifo_fill_level_acc, + done_o => tx_fifo_fill_pd_done, + phase_detector_o => tx_fifo_fill_pd, + phase_detector_max_i => tx_fifo_fill_pd_max, + + -- MGT interface + -- Tx fifo fill level - see Xilinx transceiver User Guide for more information + clk_txusr_i => clk_txusr_i, + tx_fifo_fill_level_i => tx_fifo_fill_level_i + ); + reset_fifo_fill_level_acc <= reset_i or tx_fifo_fill_pd_clear; + + tx_fifo_fill_pd_o <= tx_fifo_fill_pd; + +end architecture rtl; +--============================================================================== +-- architecture end +--============================================================================== diff --git a/source/synth/imports/design_tx_aligner/tx_phase_aligner_fsm.vhd b/source/synth/imports/design_tx_aligner/tx_phase_aligner_fsm.vhd new file mode 100644 index 0000000..6df86da --- /dev/null +++ b/source/synth/imports/design_tx_aligner/tx_phase_aligner_fsm.vhd @@ -0,0 +1,455 @@ +--============================================================================== +-- © Copyright CERN for the benefit of the HPTD interest group 2018. All rights not +-- expressly granted are reserved. +-- +-- This file is part of tx_phase_aligner. +-- +-- tx_phase_aligner is free VHDL code: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- tx_phase_aligner is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with tx_phase_aligner. If not, see . +--============================================================================== +--! @file tx_phase_aligner_fsm.vhd +--============================================================================== +--! Standard library +library ieee; +--! Standard packages +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +--! Specific packages +------------------------------------------------------------------------------- +-- -- +-- CERN, EP-ESE-BE, HPTD +-- -- +------------------------------------------------------------------------------- +-- +-- unit name: Tx Phase Aligner FSM logic (tx_phase_aligner_fsm) +-- +--! @brief Tx Phase Aligner FSM logic +--! - Implements control algorithm for transmitter phase alignment acting on tx_pi_ctrl and fifo_fill_level_acc +--! - Many algorithm flavour and alignment strategies are possible and those are further explained in the reference note containing this design +--! +--! @author Eduardo Brandao de Souza Mendes - eduardo.brandao.de.souza.mendes@cern.ch +--! @date 02\05\2018 +--! @version 1.0 +--! @details +--! +--! Dependencies:\n +--! +--! +--! References:\n +--! \n +--! +--! +--! Modified by:\n +--! Author: Eduardo Brandao de Souza Mendes +------------------------------------------------------------------------------- +--! \n\nLast changes:\n +--! 02\05\2018 - EBSM - Created\n +--! 13\09\2018 - EBSM - register tx_aligned_o output\n +--! +------------------------------------------------------------------------------- +--! @todo - \n +--! \n +-- +------------------------------------------------------------------------------- + +--============================================================================== +--! Entity declaration for tx_phase_aligner_fsm +--============================================================================== +entity tx_phase_aligner_fsm is + generic( + g_SPEED_PD_FACTOR : integer range 0 to 19 := 10; --! coarse alignment procedure takes tx_fifo_fill_pd_max_i/(2**g_SPEED_PD_FACTOR) + + g_PI_COARSE_STEP : integer range 0 to 15 := 8; --! coarse PI steps + + g_PI_FINE_STEP : integer range 0 to 15 := 1 --! fine PI steps + ); + port ( + -- Clock / reset + clk_sys_i : in std_logic; --! system clock input + reset_i : in std_logic; --! active high sync. reset + + -- Top level interface + tx_aligned_o : out std_logic; --! Use it as a reset for the user transmitter logic + + -- Config (for different flavours) + tx_pi_phase_calib_i : in std_logic_vector(6 downto 0); --! previous calibrated tx pi phase + tx_ui_align_calib_i : in std_logic; --! align with previous calibrated tx pi phase + tx_enable_reset_i : in std_logic; --! enable tx reset for perfect phase alignment (only relevant if tx_ui_align_calib_i is '1') + tx_fifo_fill_pd_max_i : in std_logic_vector(31 downto 0); --! phase detector accumulated max output, sets precision of phase detector + --! this is supposedly a static signal, this block shall be reset whenever this signal changes + --! the time for each phase detection after a clear is given by tx_fifo_fill_pd_max_i * PERIOD_clk_txusr_i + tx_fine_realign_i : in std_logic; --! A rising edge will cause the Tx to perform a fine realignment to the half-response + + -- Tx pi controller interface - see user interface tx_pi_ctrl.vhd for more information + tx_pi_strobe_o : out std_logic; --! see user interface tx_pi_ctrl.vhd for more information + tx_pi_inc_ndec_o : out std_logic; --! see user interface tx_pi_ctrl.vhd for more information + tx_pi_phase_step_o : out std_logic_vector(3 downto 0); --! see user interface tx_pi_ctrl.vhd for more information + tx_pi_done_i : in std_logic; --! see user interface tx_pi_ctrl.vhd for more information + tx_pi_phase_i : in std_logic_vector(6 downto 0); --! see user interface tx_pi_ctrl.vhd for more information + + -- Tx fifo fill level phase detector interface - see user interface fifo_fill_level_acc.vhd for more information + tx_fifo_fill_pd_clear_o : out std_logic; --! see user interface fifo_fill_level_acc.vhd for more information + tx_fifo_fill_pd_done_i : in std_logic; --! see user interface fifo_fill_level_acc.vhd for more information + tx_fifo_fill_pd_i : in std_logic_vector(31 downto 0); --! see user interface fifo_fill_level_acc.vhd for more information + tx_fifo_fill_pd_max_o : out std_logic_vector(31 downto 0); --! see user interface fifo_fill_level_acc.vhd for more information + + -- Tx MGT reset (only used when tx_enable_reset_i is activated) + tx_reset_o : out std_logic + ); +end tx_phase_aligner_fsm; + +--============================================================================== +-- architecture declaration +--============================================================================== + +architecture rtl of tx_phase_aligner_fsm is + + --! Function declaration + function fcn_reduce_or(arg : std_logic_vector) return std_logic is + variable result : std_logic; + begin + result := '0'; + for i in arg'range loop + result := result or arg(i); + end loop; + return result; + end; + + --! Constant declaration + + --! Signal declaration + -- FSM to control the phase alignment + -- The phase alignment is divided into four steps: + -- COARSE : Initial coarse and fast alignment to optimize time of routine, aligns to 1.0 as phase detector response + -- FINE : Fine alignment to find the ideal position where phase detector gives 0.5 as response + -- UI_ALIGN : Fine UI alignment to ensure PI position is always the same + -- ALIGNED : Keeps checking phase detector response + type t_PHASE_ALIGNER_FSM is (IDLE, -- | + -- | + COARSE_SET_CONFIG , -- | + -- v + COARSE_SHIFT_PI , -- | <--. + -- v | + COARSE_WAIT_PD , -- | | + -- |----. + -- v + FINE_SET_CONFIG , -- | <----------------------------------------------------------. + -- v | + FINE_CHECK_DIRECTION,-- | | + -- v | + FINE_SHIFT_PI , -- |<---. | + -- v | | + FINE_WAIT_PD , -- |----. | + -- v | + FINE_ALIGNED , -- | | + -- | ----------. | + -- v | | + UI_SET_OFFSET , -- | | | + -- v | | + UI_CHECK_SHIFT_PI , -- |-----------. | + -- v ^ | | | + UI_SHIFT_PI , -- ---| | | | + -- | | - IF NOT ENABLE UI ALIGNMENT | + UI_RESET_TX , -- <-----. | | + -- | | + -- | | + ALIGNED_CLEAR_PD , -- <------------. - ALIGNED | + -- | ^ ------------------------------------ + ALIGNED_WAIT_PD -- v------| - ALIGNED + ); + + signal phase_aligner_state : t_PHASE_ALIGNER_FSM; + + -- Identify rising edge of 'tx_fine_realign_i' and realign (only capture if already aligned) + signal tx_fine_realign_r : std_logic; + + -- Set configuration of PI and PD + signal tx_pi_inc_ndec : std_logic; + signal tx_pi_phase_step : std_logic_vector(tx_pi_phase_step_o'range); + signal tx_fifo_fill_pd_max : std_logic_vector(tx_fifo_fill_pd_max_o'range); + + -- half_response is used to indicate whether the + signal half_response : std_logic; + signal half_response_mem : std_logic; + + -- UI algorithm math + signal ref_dist_mod64 : unsigned(tx_pi_phase_i'left-1 downto 0); + signal ui_align_cntr : unsigned(tx_pi_phase_i'left-1 downto 0); + + -- Reset Tx pipeline + signal reset_tx_pipe : std_logic_vector(4 downto 0); + + -- Tx aligned combinatorial + signal tx_aligned : std_logic; +begin + + --============================================================================ + -- Main FSM algorithm + --============================================================================ + --============================================================================ + -- Process p_phase_aligner_fsm + --! Main FSM for the algorithm flow control + --! read: \n + --! write: -\n + --! r/w: drp_tx_pi_state\n + --============================================================================ + p_phase_aligner_fsm : process(clk_sys_i) + begin + if(rising_edge(clk_sys_i)) then + if(reset_i = '1') then + phase_aligner_state <= IDLE; + else + case phase_aligner_state is + + when IDLE => + phase_aligner_state <= COARSE_SET_CONFIG; + + when COARSE_SET_CONFIG => + phase_aligner_state <= COARSE_SHIFT_PI; + + when COARSE_SHIFT_PI => + if(tx_pi_done_i = '1') then + phase_aligner_state <= COARSE_WAIT_PD; + end if; + + when COARSE_WAIT_PD => + if(tx_fifo_fill_pd_done_i = '1') then + if(tx_fifo_fill_pd_i(tx_fifo_fill_pd_i'left - g_SPEED_PD_FACTOR downto 0) = tx_fifo_fill_pd_max_i(tx_fifo_fill_pd_max_i'left downto g_SPEED_PD_FACTOR))then + phase_aligner_state <= FINE_SET_CONFIG; --reached full PD response (1.0) + else + phase_aligner_state <= COARSE_SHIFT_PI; + end if; + end if; + + when FINE_SET_CONFIG => + phase_aligner_state <= FINE_CHECK_DIRECTION; + + when FINE_CHECK_DIRECTION => + if(tx_fifo_fill_pd_done_i = '1') then + phase_aligner_state <= FINE_SHIFT_PI; + end if; + + when FINE_SHIFT_PI => + if(tx_pi_done_i = '1') then + phase_aligner_state <= FINE_WAIT_PD; + end if; + + when FINE_WAIT_PD => + if(tx_fifo_fill_pd_done_i = '1') then + if(half_response /= half_response_mem) then --reached half PD response 0.5 + phase_aligner_state <= FINE_ALIGNED; + else + phase_aligner_state <= FINE_SHIFT_PI; + end if; + end if; + + when FINE_ALIGNED => + if(tx_ui_align_calib_i = '1') then -- go to UI mod-shift if user wants this option + phase_aligner_state <= UI_SET_OFFSET; + else + phase_aligner_state <= ALIGNED_CLEAR_PD; + end if; + + when UI_SET_OFFSET => + phase_aligner_state <= UI_CHECK_SHIFT_PI; + + when UI_CHECK_SHIFT_PI => + if(to_integer(ui_align_cntr) /= 0) then + phase_aligner_state <= UI_SHIFT_PI; + else + if(tx_enable_reset_i = '1') then + if(tx_pi_phase_i(tx_pi_phase_i'left) = tx_pi_phase_calib_i(tx_pi_phase_calib_i'left)) then --perfect alignment (mod 128) + phase_aligner_state <= ALIGNED_WAIT_PD; + else -- reset the transmitter to try to achieve perfect alignment + phase_aligner_state <= UI_RESET_TX; + end if; + else + phase_aligner_state <= ALIGNED_CLEAR_PD; + end if; + end if; + + when UI_SHIFT_PI => + if(tx_pi_done_i = '1') then + phase_aligner_state <= UI_CHECK_SHIFT_PI; + end if; + + when UI_RESET_TX => + if (reset_tx_pipe(reset_tx_pipe'left) = '1') then + phase_aligner_state <= IDLE; + end if; + + when ALIGNED_CLEAR_PD => + if(tx_fine_realign_i = '1' and tx_fine_realign_r = '0') then + phase_aligner_state <= FINE_SET_CONFIG; + else + phase_aligner_state <= ALIGNED_WAIT_PD; + end if; + + when ALIGNED_WAIT_PD => + if(tx_fine_realign_i = '1' and tx_fine_realign_r = '0') then + phase_aligner_state <= FINE_SET_CONFIG; + elsif(tx_fifo_fill_pd_done_i = '1') then + phase_aligner_state <= ALIGNED_CLEAR_PD; + end if; + + when others => + phase_aligner_state <= IDLE; + + end case; + end if; + end if; + end process p_phase_aligner_fsm; + + -- register for rising edge identification + tx_fine_realign_r <= tx_fine_realign_i when rising_edge(clk_sys_i); + + --============================================================================ + -- PI and PD control + --============================================================================ + --============================================================================ + -- Process p_set_config + --! Sets config for Tx PI and phase detector depending on part of algorithm + --! read: phase_aligner_state, tx_fifo_fill_pd_max_i, ref_dist_mod64\n + --! write: \n + --! r/w: tx_pi_inc_ndec, tx_pi_phase_step, tx_fifo_fill_pd_max\n + --============================================================================ + p_set_config : process(clk_sys_i) + begin + if(rising_edge(clk_sys_i)) then + if(reset_i = '1') then + tx_pi_inc_ndec <= '0'; + tx_pi_phase_step <= (others => '0'); + tx_fifo_fill_pd_max <= (others => '0'); + else + case phase_aligner_state is + when COARSE_SET_CONFIG => + tx_pi_inc_ndec <= '1'; + tx_pi_phase_step <= std_logic_vector(to_unsigned(g_PI_COARSE_STEP, tx_pi_phase_step'length)); + tx_fifo_fill_pd_max(tx_fifo_fill_pd_max_i'left-g_SPEED_PD_FACTOR downto 0) <= tx_fifo_fill_pd_max_i(tx_fifo_fill_pd_max_i'left downto g_SPEED_PD_FACTOR); + tx_fifo_fill_pd_max(tx_fifo_fill_pd_max_i'left downto tx_fifo_fill_pd_max_i'left-g_SPEED_PD_FACTOR+1) <= (others => '0'); + + when FINE_SET_CONFIG => + tx_pi_inc_ndec <= tx_pi_inc_ndec; + tx_pi_phase_step <= std_logic_vector(to_unsigned(g_PI_FINE_STEP, tx_pi_phase_step'length)); + tx_fifo_fill_pd_max <= tx_fifo_fill_pd_max_i; + + when FINE_CHECK_DIRECTION => + tx_pi_inc_ndec <= half_response; + tx_pi_phase_step <= tx_pi_phase_step; + tx_fifo_fill_pd_max <= tx_fifo_fill_pd_max; + + when UI_SET_OFFSET => + tx_pi_inc_ndec <= not ref_dist_mod64(ref_dist_mod64'left); --not bigger than half UI + tx_pi_phase_step <= tx_pi_phase_step; + tx_fifo_fill_pd_max <= tx_fifo_fill_pd_max; + + when others => + tx_pi_inc_ndec <= tx_pi_inc_ndec; + tx_pi_phase_step <= tx_pi_phase_step; + tx_fifo_fill_pd_max <= tx_fifo_fill_pd_max; + end case; + end if; + end if; + end process p_set_config; + + tx_pi_strobe_o <= '1' when (phase_aligner_state = COARSE_SHIFT_PI or phase_aligner_state = FINE_SHIFT_PI or phase_aligner_state = UI_SHIFT_PI) else '0'; + tx_pi_inc_ndec_o <= tx_pi_inc_ndec; + tx_pi_phase_step_o <= tx_pi_phase_step; + + tx_fifo_fill_pd_clear_o <= '1' when (tx_pi_done_i = '1' or phase_aligner_state = ALIGNED_CLEAR_PD or phase_aligner_state = FINE_SET_CONFIG) else '0'; + tx_fifo_fill_pd_max_o <= tx_fifo_fill_pd_max; + + --============================================================================ + -- Math + --============================================================================ + ref_dist_mod64 <= unsigned(tx_pi_phase_calib_i(tx_pi_phase_i'left-1 downto 0)) - unsigned(tx_pi_phase_i(tx_pi_phase_i'left-1 downto 0)); + + --============================================================================ + -- Process p_half_response_mem + --! Saves half response from PD + --! read: half_response\n + --! write: half_response_mem\n + --! r/w: \n + --============================================================================ + half_response <= '1' when (unsigned(tx_fifo_fill_pd_i) <= unsigned('0'&tx_fifo_fill_pd_max_i(tx_fifo_fill_pd_max_i'left downto 1))) else '0'; + p_half_response_mem : process(clk_sys_i) + begin + if (rising_edge(clk_sys_i)) then + if (tx_fifo_fill_pd_done_i = '1') then + half_response_mem <= half_response; + end if; + end if; + end process p_half_response_mem; + + --============================================================================ + -- Process p_ui_align_cntr + --! Sets config for Tx PI and phase detector depending on part of algorithm + --! read: phase_aligner_state, ref_dist_mod64, tx_pi_done_i\n + --! write: \n + --! r/w: ui_align_cntr\n + --============================================================================ + p_ui_align_cntr : process(clk_sys_i) + begin + if(rising_edge(clk_sys_i)) then + if(reset_i = '1') then + ui_align_cntr <= (others => '0'); + else + case phase_aligner_state is + when UI_SET_OFFSET => + if(ref_dist_mod64(ref_dist_mod64'left) = '1') then -- bigger than half-UI + ui_align_cntr <= (not ref_dist_mod64) + to_unsigned(1, ref_dist_mod64'length); + else + ui_align_cntr <= ref_dist_mod64; + end if; + when UI_SHIFT_PI => + if(tx_pi_done_i = '1') then + ui_align_cntr <= ui_align_cntr - 1; + end if; + when others => + ui_align_cntr <= ui_align_cntr; + end case; + end if; + end if; + end process p_ui_align_cntr; + + --============================================================================ + -- Process p_reset_tx_pipe + --! Resets transmitter pipe + --! read: phase_aligner_state\n + --! write: tx_reset_o\n + --! r/w: reset_tx_pipe\n + --============================================================================ + p_reset_tx_pipe : process(clk_sys_i) + begin + if(rising_edge(clk_sys_i)) then + if(phase_aligner_state = UI_RESET_TX) then + reset_tx_pipe(0) <= '1'; + else + reset_tx_pipe(0) <= '0'; + end if; + reset_tx_pipe(reset_tx_pipe'left downto 1) <= reset_tx_pipe(reset_tx_pipe'left-1 downto 0); + + tx_reset_o <= fcn_reduce_or(reset_tx_pipe); + end if; + end process p_reset_tx_pipe; + + --============================================================================ + -- Alignment condition + --============================================================================ + tx_aligned <= '1' when (phase_aligner_state = ALIGNED_CLEAR_PD or phase_aligner_state = ALIGNED_WAIT_PD) else '0'; + tx_aligned_o <= tx_aligned when rising_edge(clk_sys_i); +end architecture rtl; +--============================================================================== +-- architecture end +--============================================================================== diff --git a/source/synth/imports/design_tx_aligner/tx_pi_ctrl.vhd b/source/synth/imports/design_tx_aligner/tx_pi_ctrl.vhd new file mode 100644 index 0000000..556e55b --- /dev/null +++ b/source/synth/imports/design_tx_aligner/tx_pi_ctrl.vhd @@ -0,0 +1,402 @@ +--============================================================================== +-- © Copyright CERN for the benefit of the HPTD interest group 2018. All rights not +-- expressly granted are reserved. +-- +-- This file is part of tx_phase_aligner. +-- +-- tx_phase_aligner is free VHDL code: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- tx_phase_aligner is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with tx_phase_aligner. If not, see . +--============================================================================== +--! @file tx_pi_ctrl.vhd +--============================================================================== +--! Standard library +library ieee; +--! Standard packages +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +--! Specific packages +------------------------------------------------------------------------------- +-- -- +-- CERN, EP-ESE-BE, HPTD +-- -- +------------------------------------------------------------------------------- +-- +-- unit name: Tx Phase Interpolator Controller (tx_pi_ctrl) +-- +--! @brief Transmitter phase interpolator controller for GTH/GTY (Ultrascale/Ultrascale plus - UG576 and UG578) and GTH (7-series - UG476) +--! - This block provides a simple interface for controlling the phase interpolator of Xilinx devices +--! - The control can be made via DRP or via PORT (selectable through attribute g_DRP_NPORT_CTRL) +--! g_DRP_NPORT_CONTROL = true uses DRP control +--! g_DRP_NPORT_CONTROL = false uses port control (a unexpected behaviour was observed in a GTH Ultrascale plus when using port control, this is the reason why the default is DRP control) +--! - The address of DRP control is different for Ultrascale/Ultrascale plus (0x009A) and 7-series devices (0x0095) +--! Default is the address of Ultrascale as this is what was tested +--! +--! @author Eduardo Brandao de Souza Mendes - eduardo.brandao.de.souza.mendes@cern.ch +--! @date 02\05\2018 +--! @version 1.0 +--! @details +--! +--! Dependencies:\n +--! +--! +--! References:\n +--! \n +--! +--! +--! Modified by:\n +--! Author: Eduardo Brandao de Souza Mendes +------------------------------------------------------------------------------- +--! \n\nLast changes:\n +--! 02\05\2018 - EBSM - Created\n +--! +------------------------------------------------------------------------------- +--! @todo - \n +--! \n +-- +------------------------------------------------------------------------------- + +--============================================================================== +--! Entity declaration for tx_pi_ctrl +--============================================================================== +entity tx_pi_ctrl is + generic( + -- User choice of DRP control or port control + -- Recommended nowadays to use in DRP control as a strange behaviour was observed using the port in PI code stepping mode + g_DRP_NPORT_CTRL : boolean := true; --! Uses DRP control of port control for the transmitter PI + g_DRP_ADDR_TXPI_PPM_CFG : std_logic_vector(8 downto 0) := ("010011010") --! Check the transceiver user guide of your device for this address + ); + port ( + -- User Interface + clk_sys_i : in std_logic; --! system clock input + reset_i : in std_logic; --! active high sync. reset + strobe_i : in std_logic; --! pulse synchronous to clk_sys_i to activate a shift in the transmitter phase (only captured rising edge, so a signal larger than a pulse is also fine) + inc_ndec_i : in std_logic; --! 1 increments tx phase by phase_step_i units, 0 decrements tx phase by phase_step_i units + phase_step_i : in std_logic_vector(3 downto 0); --! number of units to shift the phase of the transmitter (see Xilinx transceiver User Guide to convert units in time) + done_o : out std_logic; --! pulse synchronous to clk_sys_i to indicate a transmitter phase shift was performed + phase_o : out std_logic_vector(6 downto 0); --! phase shift accumulated + + -- MGT interface + -- Transmitter PI ports - see Xilinx transceiver User Guide for more information + -- obs1: all txpi ports shall be connected to the transceiver even when using this block in DRP-mode + clk_txusr_i : in std_logic; --! txusr2clk + txpippmen_o : out std_logic; --! enable tx phase interpolator controller + txpippmovrden_o : out std_logic; --! enable DRP control of tx phase interpolator + txpippmsel_o : out std_logic; --! set to 1 when using tx pi ppm controler + txpippmpd_o : out std_logic; --! power down transmitter phase interpolator + txpippmstepsize_o : out std_logic_vector(4 downto 0); --! sets step size and direction of phase shift with port control PI code stepping mode + + -- DRP interface - see Xilinx transceiver User Guide for more information + -- obs2: connect clk_sys_i to drpclk + -- obs3: if using this block in port-mode, DRP output can be left floating and input connected to '0' + drpaddr_o : out std_logic_vector(8 downto 0); --! For devices with a 10-bit DRP address interface, connect MSB to '0' + drpen_o : out std_logic; --! DRP enable transaction + drpdi_o : out std_logic_vector(15 downto 0); --! DRP data write + drprdy_i : in std_logic; --! DRP finished transaction + drpdo_i : in std_logic_vector(15 downto 0); --! DRP data read; not used nowadays, write only interface + drpwe_o : out std_logic --! DRP write enable + ); +end tx_pi_ctrl; + +--============================================================================== +-- architecture declaration +--============================================================================== + +architecture rtl of tx_pi_ctrl is + + --! Attribute declaration + attribute async_reg : string; + + --! Constant declaration + + --! Signal declaration + + -- ============================================================================== + -- ======================== Common: PORT/DRP interface ========================== + -- ============================================================================== + -- phase accumulator + signal phase_acc : unsigned(phase_o'range); + signal strobe_r : std_logic; --rising edge detector for strobe + + -- ============================================================================== + -- ======================== Interface 1: DRP interface ========================== + -- ============================================================================== + -- FSM to control Tx PI via DRP control + -- obs: Two write a new phase value for the transmitter PI via DRP: + -- The bits 6:0 of the corresponding DRP register have to be asserted + -- The bit 7 has to be asserted high (REGISTER_1PHASE_DRP) and then low (REGISTER_0PHASE_DRP) + type t_DRP_TX_PI_FSM is (IDLE, PHASE_ACCU, PRE_REGISTER_0PHASE_DRP, WAIT_PRE_REGISTER_0PHASE_DRP, REGISTER_1PHASE_DRP, WAIT_REGISTER_1PHASE_DRP, REGISTER_0PHASE_DRP, WAIT_REGISTER_0PHASE_DRP, DONE_DRP); + signal drp_tx_pi_state : t_DRP_TX_PI_FSM; + + -- ============================================================================== + -- ======================== Interface 2: PORT interface ========================= + -- ============================================================================== + -- Closed-loop strobe_toggle strategy + -- sync to clk_sys_i + signal strobe_toggle : std_logic := '0'; + + -- sync to clk_txusr_i + signal strobe_toggle_txusr_meta : std_logic; + signal strobe_toggle_txusr_r : std_logic; + signal strobe_toggle_txusr_r2 : std_logic; + attribute async_reg of strobe_toggle_txusr_meta, strobe_toggle_txusr_r, strobe_toggle_txusr_r2 : signal is "true"; + + signal strobe_txusr : std_logic; + signal strobe_txusr_r : std_logic; + signal strobe_txusr_extend : std_logic; + signal done_toggle : std_logic := '0'; + + -- sync to clk_sys_i + signal done_toggle_sys_meta : std_logic; + signal done_toggle_sys_r : std_logic; + signal done_toggle_sys_r2 : std_logic; + attribute async_reg of done_toggle_sys_meta, done_toggle_sys_r, done_toggle_sys_r2 : signal is "true"; + + signal done : std_logic; + +begin + + -- ============================================================================== + -- ======================== Interface 1: DRP interface ========================== + -- ============================================================================== + -- Only generated if user chooses to use port control + gen_drp_interface : if g_DRP_NPORT_CTRL generate + + -- Tie Tx PI port signals + txpippmen_o <= '0'; + txpippmovrden_o <= '1'; + txpippmsel_o <= '1'; + txpippmpd_o <= '0'; + txpippmstepsize_o(4 downto 0) <= (others => '0'); + + --============================================================================ + -- Process p_strobe_r + --! Delays strobe + --! read: strobe_i\n + --! write: strobe_r\n + --! r/w: \n + --============================================================================ + p_strobe_r : process(clk_sys_i) + begin + if(rising_edge(clk_sys_i)) then + strobe_r <= strobe_i; + end if; + end process p_strobe_r; + + --============================================================================ + -- Process p_drp_tx_pi_fsm + --! FSM for Tx PI control via DRP + --! read: strobe_i, drprdy_i\n + --! write: -\n + --! r/w: drp_tx_pi_state\n + --============================================================================ + p_drp_tx_pi_fsm : process(clk_sys_i) + begin + if(rising_edge(clk_sys_i)) then + if(reset_i = '1') then + drp_tx_pi_state <= IDLE; + else + case drp_tx_pi_state is + when IDLE => + if(strobe_i = '1' and strobe_r = '0') then + drp_tx_pi_state <= PHASE_ACCU; + end if; + when PHASE_ACCU => + drp_tx_pi_state <= PRE_REGISTER_0PHASE_DRP; + when PRE_REGISTER_0PHASE_DRP => + drp_tx_pi_state <= WAIT_PRE_REGISTER_0PHASE_DRP; + when WAIT_PRE_REGISTER_0PHASE_DRP => + if(drprdy_i = '1') then + drp_tx_pi_state <= REGISTER_1PHASE_DRP; + end if; + when REGISTER_1PHASE_DRP => + drp_tx_pi_state <= WAIT_REGISTER_1PHASE_DRP; + when WAIT_REGISTER_1PHASE_DRP => + if(drprdy_i = '1') then + drp_tx_pi_state <= REGISTER_0PHASE_DRP; + end if; + when REGISTER_0PHASE_DRP => + drp_tx_pi_state <= WAIT_REGISTER_0PHASE_DRP; + when WAIT_REGISTER_0PHASE_DRP => + if(drprdy_i = '1') then + drp_tx_pi_state <= DONE_DRP; + end if; + when DONE_DRP => + drp_tx_pi_state <= IDLE; + when others => drp_tx_pi_state <= IDLE; + end case; + end if; + end if; + end process p_drp_tx_pi_fsm; + + -- Tie static DRP signals + drpaddr_o <= g_DRP_ADDR_TXPI_PPM_CFG; + drpdi_o(15 downto 8) <= (others => '0'); + + -- DRP signals controlled via FSM + drpdi_o(7) <= '1' when drp_tx_pi_state = REGISTER_1PHASE_DRP else '0'; + drpdi_o(6 downto 0) <= std_logic_vector(phase_acc); + drpen_o <= '1' when (drp_tx_pi_state = REGISTER_1PHASE_DRP or drp_tx_pi_state = REGISTER_0PHASE_DRP or drp_tx_pi_state = PRE_REGISTER_0PHASE_DRP) else '0'; + drpwe_o <= '1' when (drp_tx_pi_state = REGISTER_1PHASE_DRP or drp_tx_pi_state = REGISTER_0PHASE_DRP or drp_tx_pi_state = PRE_REGISTER_0PHASE_DRP) else '0'; + + --============================================================================ + -- Process p_phase_acc + --! Increments or decrements phase accumulator + --! read: drp_tx_pi_state, inc_ndec_i, phase_step_i\n + --! write: \n + --! r/w: phase_acc\n + --============================================================================ + p_phase_acc : process(clk_sys_i) + begin + if(rising_edge(clk_sys_i)) then + if(reset_i = '1') then + phase_acc <= to_unsigned(0, phase_acc'length); + else + if(drp_tx_pi_state = PHASE_ACCU) then + if(inc_ndec_i = '1') then + phase_acc <= phase_acc + unsigned(phase_step_i); + else + phase_acc <= phase_acc - unsigned(phase_step_i); + end if; + else + phase_acc <= phase_acc; + end if; + end if; + end if; + end process p_phase_acc; + + phase_o <= std_logic_vector(phase_acc); + done_o <= '1' when (drp_tx_pi_state = DONE_DRP) else '0'; + + end generate gen_drp_interface; + + + -- ============================================================================== + -- ======================== Interface 2: PORT interface ========================= + -- ============================================================================== + -- Only generated if user chooses to use port control + gen_port_interface : if not g_DRP_NPORT_CTRL generate + -- Tie to zero unused DRP signals + drpaddr_o <= (others => '0'); + drpen_o <= '0'; + drpdi_o <= (others => '0'); + drpwe_o <= '0'; + + + -- Closed-loop clock-domain crossing strategy for strobe pulse and done as acknowledgment + --============================================================================ + -- Process p_strobe_toggle + --! Creates strobe toggle register with rising edge of strobe + --! read: strobe_i\n + --! write: -\n + --! r/w: strobe_r, strobe_toggle\n + --============================================================================ + p_strobe_toggle : process(clk_sys_i) + begin + if(rising_edge(clk_sys_i)) then + strobe_r <= strobe_i; + if(strobe_i = '1' and strobe_r = '0') then + strobe_toggle <= not strobe_toggle; + end if; + end if; + end process p_strobe_toggle; + + --============================================================================ + -- Process p_strobe_toggle_txusrsync + --! Creates a rising edge sync to clk_txusr_i when strobe_toggle changes level and generates acknowledgment + --! read: strobe_toggle\n + --! write: done_toggle\n + --! r/w: strobe_txusr_r, strobe_txusr, strobe_toggle_txusr_r2, strobe_toggle_txusr_r, strobe_toggle_txusr_meta\n + --============================================================================ + p_strobe_toggle_txusrsync : process(clk_txusr_i) + begin + if(rising_edge(clk_txusr_i)) then + -- capture strobe + strobe_toggle_txusr_meta <= strobe_toggle; + strobe_toggle_txusr_r <= strobe_toggle_txusr_meta; + strobe_toggle_txusr_r2 <= strobe_toggle_txusr_r; + strobe_txusr <= strobe_toggle_txusr_r2 xor strobe_toggle_txusr_r; + strobe_txusr_r <= strobe_txusr; + strobe_txusr_extend <= strobe_txusr or strobe_txusr_r; + + -- acknowledgment (done) + if(strobe_txusr_r = '1') then + done_toggle <= not done_toggle; + end if; + end if; + end process p_strobe_toggle_txusrsync; + + -- Pulses txpippmen for two clock cycles - see Xilinx transceiver User Guide (reason for extension of strobe pulse in txusr domain) + txpippmen_o <= strobe_txusr_extend; + + -- Tie other signals + txpippmovrden_o <= '0'; + txpippmsel_o <= '1'; + txpippmpd_o <= '0'; + txpippmstepsize_o(4) <= inc_ndec_i; -- obs: those signals should be stable between strobe->done, the latency of the closed-loop CDC ensures a proper capture + txpippmstepsize_o(3 downto 0) <= phase_step_i; -- obs: those signals should be stable between strobe->done, the latency of the closed-loop CDC ensures a proper capture + + --============================================================================ + -- Process p_done_toggle_syssync + --! Creates a rising edge sync to clk_sys_i when done_toggle changes level + --! read: done_toggle\n + --! write: done_toggle_sys_r2\n + --! r/w: done_toggle_sys_meta, done_toggle_sys_r\n + --============================================================================ + p_done_toggle_syssync : process(clk_sys_i) + begin + if(rising_edge(clk_sys_i)) then + done_toggle_sys_meta <= done_toggle; + done_toggle_sys_r <= done_toggle_sys_meta; + done_toggle_sys_r2 <= done_toggle_sys_r; + end if; + end process p_done_toggle_syssync; + done <= done_toggle_sys_r2 xor done_toggle_sys_r; + + --============================================================================ + -- Process p_phase_acc + --! Increments or decrements phase accumulator + --! read: done, inc_ndec_i, phase_step_i\n + --! write: done_o\n + --! r/w: phase_acc\n + --============================================================================ + p_phase_acc : process(clk_sys_i) + begin + if(rising_edge(clk_sys_i)) then + if(reset_i = '1') then + phase_acc <= to_unsigned(0, phase_acc'length); + done_o <= '0'; + else + if(done = '1') then + if(inc_ndec_i = '1') then + phase_acc <= phase_acc + unsigned(phase_step_i); + else + phase_acc <= phase_acc - unsigned(phase_step_i); + end if; + done_o <= '1'; + else + phase_acc <= phase_acc; + done_o <= '0'; + end if; + end if; + end if; + end process p_phase_acc; + phase_o <= std_logic_vector(phase_acc); + + end generate gen_port_interface; + + +end architecture rtl; +--============================================================================== +-- architecture end +--============================================================================== diff --git a/source/synth/imports/example_design/gtwizard_ultrascale_0_example_bit_synchronizer.v b/source/synth/imports/example_design/gtwizard_ultrascale_0_example_bit_synchronizer.v new file mode 100644 index 0000000..e98272a --- /dev/null +++ b/source/synth/imports/example_design/gtwizard_ultrascale_0_example_bit_synchronizer.v @@ -0,0 +1,91 @@ +//------------------------------------------------------------------------------ +// (c) Copyright 2013-2015 Xilinx, Inc. All rights reserved. +// +// This file contains confidential and proprietary information +// of Xilinx, Inc. and is protected under U.S. and +// international copyright and other intellectual property +// laws. +// +// DISCLAIMER +// This disclaimer is not a license and does not grant any +// rights to the materials distributed herewith. Except as +// otherwise provided in a valid license issued to you by +// Xilinx, and to the maximum extent permitted by applicable +// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +// (2) Xilinx shall not be liable (whether in contract or tort, +// including negligence, or under any other theory of +// liability) for any loss or damage of any kind or nature +// related to, arising under or in connection with these +// materials, including for any direct, or any indirect, +// special, incidental, or consequential loss or damage +// (including loss of data, profits, goodwill, or any type of +// loss or damage suffered as a result of any action brought +// by a third party) even if such damage or loss was +// reasonably foreseeable or Xilinx had been advised of the +// possibility of the same. +// +// CRITICAL APPLICATIONS +// Xilinx products are not designed or intended to be fail- +// safe, or for use in any application requiring fail-safe +// performance, such as life-support or safety devices or +// systems, Class III medical devices, nuclear facilities, +// applications related to the deployment of airbags, or any +// other applications that could lead to death, personal +// injury, or severe property or environmental damage +// (individually and collectively, "Critical +// Applications"). Customer assumes the sole risk and +// liability of any use of Xilinx products in Critical +// Applications, subject only to applicable laws and +// regulations governing limitations on product liability. +// +// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +// PART OF THIS FILE AT ALL TIMES. +//------------------------------------------------------------------------------ + + +`timescale 1ps/1ps + +// ********************************************************************************************************************* +// IMPORTANT +// This block is delivered within the example design. If you wish to modify its behavior, be careful to understand the +// existing behavior and the effects of any modifications you may choose to make. +// ********************************************************************************************************************* + +module gtwizard_ultrascale_0_example_bit_synchronizer # ( + + parameter INITIALIZE = 5'b00000, + parameter FREQUENCY = 512 + +)( + + input wire clk_in, + input wire i_in, + output wire o_out + +); + + // Use 5 flip-flops as a single synchronizer, and tag each declaration with the appropriate synthesis attribute to + // enable clustering. Their GSR default values are provided by the INITIALIZE parameter. + + (* ASYNC_REG = "TRUE" *) reg i_in_meta = INITIALIZE[0]; + (* ASYNC_REG = "TRUE" *) reg i_in_sync1 = INITIALIZE[1]; + (* ASYNC_REG = "TRUE" *) reg i_in_sync2 = INITIALIZE[2]; + (* ASYNC_REG = "TRUE" *) reg i_in_sync3 = INITIALIZE[3]; + reg i_in_out = INITIALIZE[4]; + + always @(posedge clk_in) begin + i_in_meta <= i_in; + i_in_sync1 <= i_in_meta; + i_in_sync2 <= i_in_sync1; + i_in_sync3 <= i_in_sync2; + i_in_out <= i_in_sync3; + end + + assign o_out = i_in_out; + + +endmodule diff --git a/source/synth/imports/example_design/gtwizard_ultrascale_0_example_checking_raw.v b/source/synth/imports/example_design/gtwizard_ultrascale_0_example_checking_raw.v new file mode 100644 index 0000000..8a351a8 --- /dev/null +++ b/source/synth/imports/example_design/gtwizard_ultrascale_0_example_checking_raw.v @@ -0,0 +1,124 @@ +//------------------------------------------------------------------------------ +// (c) Copyright 2013-2015 Xilinx, Inc. All rights reserved. +// +// This file contains confidential and proprietary information +// of Xilinx, Inc. and is protected under U.S. and +// international copyright and other intellectual property +// laws. +// +// DISCLAIMER +// This disclaimer is not a license and does not grant any +// rights to the materials distributed herewith. Except as +// otherwise provided in a valid license issued to you by +// Xilinx, and to the maximum extent permitted by applicable +// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +// (2) Xilinx shall not be liable (whether in contract or tort, +// including negligence, or under any other theory of +// liability) for any loss or damage of any kind or nature +// related to, arising under or in connection with these +// materials, including for any direct, or any indirect, +// special, incidental, or consequential loss or damage +// (including loss of data, profits, goodwill, or any type of +// loss or damage suffered as a result of any action brought +// by a third party) even if such damage or loss was +// reasonably foreseeable or Xilinx had been advised of the +// possibility of the same. +// +// CRITICAL APPLICATIONS +// Xilinx products are not designed or intended to be fail- +// safe, or for use in any application requiring fail-safe +// performance, such as life-support or safety devices or +// systems, Class III medical devices, nuclear facilities, +// applications related to the deployment of airbags, or any +// other applications that could lead to death, personal +// injury, or severe property or environmental damage +// (individually and collectively, "Critical +// Applications"). Customer assumes the sole risk and +// liability of any use of Xilinx products in Critical +// Applications, subject only to applicable laws and +// regulations governing limitations on product liability. +// +// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +// PART OF THIS FILE AT ALL TIMES. +//------------------------------------------------------------------------------ + + +`timescale 1ps/1ps + +// ===================================================================================================================== +// This example design checking module checks PRBS31 data at the appropriate parallel data width from the receiver, +// along with performing any data manipulation or sideband signaling necessary for the selected data decoding. This +// module instance checks data from a single transceiver channel for data reception demonstration purposes. +// ===================================================================================================================== + +module gtwizard_ultrascale_0_example_checking_raw ( + input wire gtwiz_reset_all_in, + input wire gtwiz_userclk_rx_usrclk2_in, + input wire gtwiz_userclk_rx_active_in, + input wire [29:0] rxdata_in, + output reg prbs_match_out = 1'b0 +); + + + // ------------------------------------------------------------------------------------------------------------------- + // Reset synchronizer + // ------------------------------------------------------------------------------------------------------------------- + + // Synchronize the example stimulus reset condition into the rxusrclk2 domain + wire example_checking_reset_int = gtwiz_reset_all_in || ~gtwiz_userclk_rx_active_in; + wire example_checking_reset_sync; + + (* DONT_TOUCH = "TRUE" *) + gtwizard_ultrascale_0_example_reset_synchronizer example_checking_reset_synchronizer_inst ( + .clk_in (gtwiz_userclk_rx_usrclk2_in), + .rst_in (example_checking_reset_int), + .rst_out (example_checking_reset_sync) + ); + + + // ------------------------------------------------------------------------------------------------------------------- + // PRBS checker enable and sideband control generation + // ------------------------------------------------------------------------------------------------------------------- + + // For raw mode data reception, the PRBS checker is always enabled + wire prbs_any_chk_en_int = 1'b1; + + + // ------------------------------------------------------------------------------------------------------------------- + // PRBS checker block + // ------------------------------------------------------------------------------------------------------------------- + + // The prbs_any block, described in Xilinx Application Note 884 (XAPP884), "An Attribute-Programmable PRBS Generator + // and Checker", generates or checks a parameterizable PRBS sequence. Instantiate and parameterize a prbs_any block + // to check a PRBS31 sequence with parallel data sized to the receiver user data width. + wire [29:0] prbs_any_chk_error_int; + + gtwizard_ultrascale_0_prbs_any # ( + .CHK_MODE (1), + .INV_PATTERN (0), // non-inverting EBSM + .POLY_LENGHT (31), + .POLY_TAP (28), + .NBITS (30) + ) prbs_any_chk_inst ( + .RST (example_checking_reset_sync), + .CLK (gtwiz_userclk_rx_usrclk2_in), + .DATA_IN (rxdata_in), + .EN (prbs_any_chk_en_int), + .DATA_OUT (prbs_any_chk_error_int) + ); + + // The prbs_any block indicates a match of the parallel PRBS data when all DATA_OUT bits are 0. Register the result + // of the NOR function as the PRBS match indicator. + always @(posedge gtwiz_userclk_rx_usrclk2_in) begin + if (example_checking_reset_sync) + prbs_match_out <= 1'b0; + else + prbs_match_out <= ~(|prbs_any_chk_error_int); + end + + +endmodule diff --git a/source/synth/imports/example_design/gtwizard_ultrascale_0_example_init.v b/source/synth/imports/example_design/gtwizard_ultrascale_0_example_init.v new file mode 100644 index 0000000..b9f1b87 --- /dev/null +++ b/source/synth/imports/example_design/gtwizard_ultrascale_0_example_init.v @@ -0,0 +1,293 @@ +//------------------------------------------------------------------------------ +// (c) Copyright 2013-2015 Xilinx, Inc. All rights reserved. +// +// This file contains confidential and proprietary information +// of Xilinx, Inc. and is protected under U.S. and +// international copyright and other intellectual property +// laws. +// +// DISCLAIMER +// This disclaimer is not a license and does not grant any +// rights to the materials distributed herewith. Except as +// otherwise provided in a valid license issued to you by +// Xilinx, and to the maximum extent permitted by applicable +// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +// (2) Xilinx shall not be liable (whether in contract or tort, +// including negligence, or under any other theory of +// liability) for any loss or damage of any kind or nature +// related to, arising under or in connection with these +// materials, including for any direct, or any indirect, +// special, incidental, or consequential loss or damage +// (including loss of data, profits, goodwill, or any type of +// loss or damage suffered as a result of any action brought +// by a third party) even if such damage or loss was +// reasonably foreseeable or Xilinx had been advised of the +// possibility of the same. +// +// CRITICAL APPLICATIONS +// Xilinx products are not designed or intended to be fail- +// safe, or for use in any application requiring fail-safe +// performance, such as life-support or safety devices or +// systems, Class III medical devices, nuclear facilities, +// applications related to the deployment of airbags, or any +// other applications that could lead to death, personal +// injury, or severe property or environmental damage +// (individually and collectively, "Critical +// Applications"). Customer assumes the sole risk and +// liability of any use of Xilinx products in Critical +// Applications, subject only to applicable laws and +// regulations governing limitations on product liability. +// +// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +// PART OF THIS FILE AT ALL TIMES. +//------------------------------------------------------------------------------ + + +`timescale 1ps/1ps + +// ===================================================================================================================== +// This example design initialization module provides a demonstration of how initialization logic can be constructed to +// interact with and enhance the reset controller helper block in order to assist with successful system bring-up. This +// example initialization logic monitors for timely reset completion, retrying resets as necessary to mitigate problems +// with system bring-up such as clock or data connection readiness. This is an example and can be modified as necessary. +// ===================================================================================================================== + +module gtwizard_ultrascale_0_example_init # ( + + parameter real P_FREERUN_FREQUENCY = 125, + parameter real P_TX_TIMER_DURATION_US = 30000 + 200000, + parameter real P_RX_TIMER_DURATION_US = 130000 + 200000 + +)( + + input wire clk_freerun_in, + input wire reset_all_in, + input wire tx_init_done_in, + input wire rx_init_done_in, + input wire rx_data_good_in, + output reg reset_all_out = 1'b0, + output reg reset_rx_out = 1'b0, + output reg init_done_out = 1'b0, + output reg [3:0] retry_ctr_out = 4'd0 + +); + + + // ------------------------------------------------------------------------------------------------------------------- + // Synchronizers + // ------------------------------------------------------------------------------------------------------------------- + + // Synchronize the "reset all" input signal into the free-running clock domain + // The reset_all_in input should be driven by the master "reset all" example design input + wire reset_all_sync; + (* DONT_TOUCH = "TRUE" *) + gtwizard_ultrascale_0_example_reset_synchronizer reset_synchronizer_reset_all_inst ( + .clk_in (clk_freerun_in), + .rst_in (reset_all_in), + .rst_out (reset_all_sync) + ); + + // Synchronize the TX initialization done indicator into the free-running clock domain + // The tx_init_done_in input should be driven by the signal or logical combination of signals that represents a + // completed TX initialization process; for example, the reset helper block gtwiz_reset_tx_done_out signal, or the + // logical AND of gtwiz_reset_tx_done_out with gtwiz_buffbypass_tx_done_out if the TX buffer is bypassed. + wire tx_init_done_sync; + (* DONT_TOUCH = "TRUE" *) + gtwizard_ultrascale_0_example_bit_synchronizer bit_synchronizer_tx_init_done_inst ( + .clk_in (clk_freerun_in), + .i_in (tx_init_done_in), + .o_out (tx_init_done_sync) + ); + + // Synchronize the RX initialization done indicator into the free-running clock domain + // The rx_init_done_in input should be driven by the signal or logical combination of signals that represents a + // completed RX initialization process; for example, the reset helper block gtwiz_reset_rx_done_out signal, or the + // logical AND of gtwiz_reset_rx_done_out with gtwiz_buffbypass_rx_done_out if the RX elastic buffer is bypassed. + wire rx_init_done_sync; + (* DONT_TOUCH = "TRUE" *) + gtwizard_ultrascale_0_example_bit_synchronizer bit_synchronizer_rx_init_done_inst ( + .clk_in (clk_freerun_in), + .i_in (rx_init_done_in), + .o_out (rx_init_done_sync) + ); + + // Synchronize the RX data good indicator into the free-running clock domain + // The rx_data_good_in input should be driven the user application's indication of continual good data reception. + // The example design drives rx_data_good_in high when no PRBS checker errors are seen in the 8 most recent + // consecutive clock cycles of data reception. + wire rx_data_good_sync; + (* DONT_TOUCH = "TRUE" *) + gtwizard_ultrascale_0_example_bit_synchronizer bit_synchronizer_rx_data_good_inst ( + .clk_in (clk_freerun_in), + .i_in (rx_data_good_in), + .o_out (rx_data_good_sync) + ); + + + // ------------------------------------------------------------------------------------------------------------------- + // Timer + // ------------------------------------------------------------------------------------------------------------------- + + // Declare registers and local parameters used for the shared TX and RX initialization timer + // The free-running clock frequency is specified by the P_FREERUN_FREQUENCY parameter. The TX initialization timer + // duration is specified by the P_TX_TIMER_DURATION_US parameter (default 30,000us), and the resulting terminal count + // is assigned to p_tx_timer_term_cyc_int. The RX initialization timer duration is specified by the + // P_RX_TIMER_DURATION_US parameter (default 130,000us), and the resulting terminal count is assigned to + // p_rx_timer_term_cyc_int. + reg timer_clr = 1'b1; + reg [24:0] timer_ctr = 25'd0; + reg tx_timer_sat = 1'b0; + reg rx_timer_sat = 1'b0; + wire [24:0] p_tx_timer_term_cyc_int = P_TX_TIMER_DURATION_US * P_FREERUN_FREQUENCY; + wire [24:0] p_rx_timer_term_cyc_int = P_RX_TIMER_DURATION_US * P_FREERUN_FREQUENCY; + + // When the timer is enabled by the initialization state machine, increment the timer_ctr counter until its value + // reaches p_rx_timer_term_cyc_int RX terminal count and rx_timer_sat is asserted. Assert tx_timer_sat when the + // counter value reaches the p_tx_timer_term_cyc_int TX terminal count. Clear the timer and remove assertions when the + // timer is disabled by the initialization state machine. + always @(posedge clk_freerun_in) begin + if (timer_clr) begin + timer_ctr <= 25'd0; + tx_timer_sat <= 1'b0; + rx_timer_sat <= 1'b0; + end + else begin + if (timer_ctr == p_tx_timer_term_cyc_int) + tx_timer_sat <= 1'b1; + + if (timer_ctr == p_rx_timer_term_cyc_int) + rx_timer_sat <= 1'b1; + else + timer_ctr <= timer_ctr + 25'd1; + end + end + + + // ------------------------------------------------------------------------------------------------------------------- + // Retry counter + // ------------------------------------------------------------------------------------------------------------------- + + // Increment the retry_ctr_out register for each TX or RX reset asserted by the initialization state machine until the + // register saturates at 4'd15. This value, which is initialized on device programming and is never reset, could be + // useful for debugging purposes. The initialization state machine will continue to retry as needed beyond the retry + // register saturation point indicated, so 4'd15 should be interpreted as "15 or more attempts since programming." + reg retry_ctr_incr = 1'b0; + + always @(posedge clk_freerun_in) begin + if ((retry_ctr_incr == 1'b1) && (retry_ctr_out != 4'd15)) + retry_ctr_out <= retry_ctr_out + 4'd1; + end + + + // ------------------------------------------------------------------------------------------------------------------- + // Initialization state machine + // ------------------------------------------------------------------------------------------------------------------- + + // Declare local parameters and state register for the initialization state machine + localparam [1:0] ST_START = 2'd0; + localparam [1:0] ST_TX_WAIT = 2'd1; + localparam [1:0] ST_RX_WAIT = 2'd2; + localparam [1:0] ST_MONITOR = 2'd3; + reg [1:0] sm_init = ST_START; + reg sm_init_active = 1'b0; + + // Implement the initialization state machine control and its outputs as a single sequential process. The state + // machine is reset by the synchronized reset_all_in input, and does not begin operating until its first use. Note + // that this state machine is designed to interact with and enhance the reset controller helper block. + always @(posedge clk_freerun_in) begin + if (reset_all_sync) begin + timer_clr <= 1'b1; + reset_all_out <= 1'b0; + reset_rx_out <= 1'b0; + retry_ctr_incr <= 1'b0; + init_done_out <= 1'b0; + sm_init_active <= 1'b1; + sm_init <= ST_START; + end + else begin + case (sm_init) + + // When starting the initialization procedure, clear the timer and remove reset outputs, then proceed to wait + // for completion of TX initialization + ST_START: begin + if (sm_init_active) begin + timer_clr <= 1'b1; + reset_all_out <= 1'b0; + reset_rx_out <= 1'b0; + retry_ctr_incr <= 1'b0; + if(tx_init_done_sync == 1'b0) begin // EBSM: After a reset the tx init done should necessarily go to 0 before being asserted to 1 + sm_init <= ST_TX_WAIT; + end + end + end + + // Enable the timer. If TX initialization completes before the counter's TX terminal count, clear the timer and + // proceed to wait for RX initialization. If the TX terminal count is reached, clear the timer, assert the + // reset_all_out output (which in this example causes a master reset_all assertion), and increment the retry + // counter. Completion conditions for TX initialization are described above. + ST_TX_WAIT: begin + if (tx_init_done_sync) begin + timer_clr <= 1'b1; + reset_rx_out <= 1'b0; + sm_init <= ST_RX_WAIT; + end + else begin + if (tx_timer_sat) begin + timer_clr <= 1'b1; + reset_all_out <= 1'b1; + reset_rx_out <= 1'b0; + retry_ctr_incr <= 1'b1; + sm_init <= ST_START; + end + else begin + timer_clr <= 1'b0; + reset_rx_out <= 1'b1; + end + end + end + + // Enable the timer. When the RX terminal count is reached, check whether RX initialization has completed and + // whether the data good indicator is high. If both conditions are met, transition to the MONITOR state. If + // either condition is not met, then clear the timer, assert the reset_rx_out output (which in this example + // either drives gtwiz_reset_rx_pll_and_datapath_in or gtwiz_reset_rx_datapath_in, depending on PLL sharing), + // and increnent the retry counter. + ST_RX_WAIT: begin + if (rx_timer_sat) begin + if (rx_init_done_sync && rx_data_good_sync) begin + init_done_out <= 1'b1; + sm_init <= ST_MONITOR; + end + else begin + timer_clr <= 1'b1; + reset_rx_out <= 1'b1; + retry_ctr_incr <= 1'b1; + sm_init <= ST_START; + end + end + else begin + timer_clr <= 1'b0; + end + end + + // In this MONITOR state, assert the init_done_out output for use as desired. If RX initialization or the data + // good indicator is lost while in this state, reset the RX components as described in the ST_RX_WAIT state. + ST_MONITOR: begin + if (~rx_init_done_sync || ~rx_data_good_sync) begin + init_done_out <= 1'b0; + timer_clr <= 1'b1; + reset_rx_out <= 1'b1; + retry_ctr_incr <= 1'b1; + sm_init <= ST_START; + end + end + + endcase + end + end + + +endmodule diff --git a/source/synth/imports/example_design/gtwizard_ultrascale_0_example_reset_synchronizer.v b/source/synth/imports/example_design/gtwizard_ultrascale_0_example_reset_synchronizer.v new file mode 100644 index 0000000..4ecfcbf --- /dev/null +++ b/source/synth/imports/example_design/gtwizard_ultrascale_0_example_reset_synchronizer.v @@ -0,0 +1,101 @@ +//------------------------------------------------------------------------------ +// (c) Copyright 2013-2015 Xilinx, Inc. All rights reserved. +// +// This file contains confidential and proprietary information +// of Xilinx, Inc. and is protected under U.S. and +// international copyright and other intellectual property +// laws. +// +// DISCLAIMER +// This disclaimer is not a license and does not grant any +// rights to the materials distributed herewith. Except as +// otherwise provided in a valid license issued to you by +// Xilinx, and to the maximum extent permitted by applicable +// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +// (2) Xilinx shall not be liable (whether in contract or tort, +// including negligence, or under any other theory of +// liability) for any loss or damage of any kind or nature +// related to, arising under or in connection with these +// materials, including for any direct, or any indirect, +// special, incidental, or consequential loss or damage +// (including loss of data, profits, goodwill, or any type of +// loss or damage suffered as a result of any action brought +// by a third party) even if such damage or loss was +// reasonably foreseeable or Xilinx had been advised of the +// possibility of the same. +// +// CRITICAL APPLICATIONS +// Xilinx products are not designed or intended to be fail- +// safe, or for use in any application requiring fail-safe +// performance, such as life-support or safety devices or +// systems, Class III medical devices, nuclear facilities, +// applications related to the deployment of airbags, or any +// other applications that could lead to death, personal +// injury, or severe property or environmental damage +// (individually and collectively, "Critical +// Applications"). Customer assumes the sole risk and +// liability of any use of Xilinx products in Critical +// Applications, subject only to applicable laws and +// regulations governing limitations on product liability. +// +// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +// PART OF THIS FILE AT ALL TIMES. +//------------------------------------------------------------------------------ + + +`timescale 1ps/1ps + +// ********************************************************************************************************************* +// IMPORTANT +// This block is delivered within the example design. If you wish to modify its behavior, be careful to understand the +// existing behavior and the effects of any modifications you may choose to make. +// ********************************************************************************************************************* + +module gtwizard_ultrascale_0_example_reset_synchronizer # ( + + parameter FREQUENCY = 512 + +)( + + input wire clk_in, + input wire rst_in, + output wire rst_out + +); + + // Use 5 flip-flops as a single synchronizer, and tag each declaration with the appropriate synthesis attribute to + // enable clustering. Each flip-flop in the synchronizer is asynchronously reset so that the downstream logic is also + // asynchronously reset but encounters no reset assertion latency. The removal of reset is synchronous, so that the + // downstream logic is also removed from reset synchronously. This module is designed for active-high reset use. + + (* ASYNC_REG = "TRUE" *) reg rst_in_meta = 1'b0; + (* ASYNC_REG = "TRUE" *) reg rst_in_sync1 = 1'b0; + (* ASYNC_REG = "TRUE" *) reg rst_in_sync2 = 1'b0; + (* ASYNC_REG = "TRUE" *) reg rst_in_sync3 = 1'b0; + reg rst_in_out = 1'b0; + + always @(posedge clk_in, posedge rst_in) begin + if (rst_in) begin + rst_in_meta <= 1'b1; + rst_in_sync1 <= 1'b1; + rst_in_sync2 <= 1'b1; + rst_in_sync3 <= 1'b1; + rst_in_out <= 1'b1; + end + else begin + rst_in_meta <= 1'b0; + rst_in_sync1 <= rst_in_meta; + rst_in_sync2 <= rst_in_sync1; + rst_in_sync3 <= rst_in_sync2; + rst_in_out <= rst_in_sync3; + end + end + + assign rst_out = rst_in_out; + + +endmodule diff --git a/source/synth/imports/example_design/gtwizard_ultrascale_0_example_stimulus_raw.v b/source/synth/imports/example_design/gtwizard_ultrascale_0_example_stimulus_raw.v new file mode 100644 index 0000000..dadd8bb --- /dev/null +++ b/source/synth/imports/example_design/gtwizard_ultrascale_0_example_stimulus_raw.v @@ -0,0 +1,111 @@ +//------------------------------------------------------------------------------ +// (c) Copyright 2013-2015 Xilinx, Inc. All rights reserved. +// +// This file contains confidential and proprietary information +// of Xilinx, Inc. and is protected under U.S. and +// international copyright and other intellectual property +// laws. +// +// DISCLAIMER +// This disclaimer is not a license and does not grant any +// rights to the materials distributed herewith. Except as +// otherwise provided in a valid license issued to you by +// Xilinx, and to the maximum extent permitted by applicable +// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +// (2) Xilinx shall not be liable (whether in contract or tort, +// including negligence, or under any other theory of +// liability) for any loss or damage of any kind or nature +// related to, arising under or in connection with these +// materials, including for any direct, or any indirect, +// special, incidental, or consequential loss or damage +// (including loss of data, profits, goodwill, or any type of +// loss or damage suffered as a result of any action brought +// by a third party) even if such damage or loss was +// reasonably foreseeable or Xilinx had been advised of the +// possibility of the same. +// +// CRITICAL APPLICATIONS +// Xilinx products are not designed or intended to be fail- +// safe, or for use in any application requiring fail-safe +// performance, such as life-support or safety devices or +// systems, Class III medical devices, nuclear facilities, +// applications related to the deployment of airbags, or any +// other applications that could lead to death, personal +// injury, or severe property or environmental damage +// (individually and collectively, "Critical +// Applications"). Customer assumes the sole risk and +// liability of any use of Xilinx products in Critical +// Applications, subject only to applicable laws and +// regulations governing limitations on product liability. +// +// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +// PART OF THIS FILE AT ALL TIMES. +//------------------------------------------------------------------------------ + + +`timescale 1ps/1ps + +// ===================================================================================================================== +// This example design stimulus module generates PRBS31 data at the appropriate parallel data width for the transmitter, +// along with any sideband signaling necessary for the selected data encoding. The stimulus provided by this module +// instance drives a single transceiver channel for data transmission demonstration purposes. +// ===================================================================================================================== + +module gtwizard_ultrascale_0_example_stimulus_raw ( + input wire gtwiz_reset_all_in, + input wire gtwiz_userclk_tx_usrclk2_in, + input wire gtwiz_userclk_tx_active_in, + output wire [29:0] txdata_out +); + + + // ------------------------------------------------------------------------------------------------------------------- + // Reset synchronizer + // ------------------------------------------------------------------------------------------------------------------- + + // Synchronize the example stimulus reset condition into the txusrclk2 domain + wire example_stimulus_reset_int = gtwiz_reset_all_in || ~gtwiz_userclk_tx_active_in; + wire example_stimulus_reset_sync; + + (* DONT_TOUCH = "TRUE" *) + gtwizard_ultrascale_0_example_reset_synchronizer example_stimulus_reset_synchronizer_inst ( + .clk_in (gtwiz_userclk_tx_usrclk2_in), + .rst_in (example_stimulus_reset_int), + .rst_out (example_stimulus_reset_sync) + ); + + + // ------------------------------------------------------------------------------------------------------------------- + // PRBS generator output enable and sideband control generation + // ------------------------------------------------------------------------------------------------------------------- + + // For raw mode data transmission, the PRBS generator is always enabled + wire prbs_any_gen_en_int = 1'b1; + + + // ------------------------------------------------------------------------------------------------------------------- + // PRBS generator block + // ------------------------------------------------------------------------------------------------------------------- + + // The prbs_any block, described in Xilinx Application Note 884 (XAPP884), "An Attribute-Programmable PRBS Generator + // and Checker", generates or checks a parameterizable PRBS sequence. Instantiate and parameterize a prbs_any block + // to generate a PRBS31 sequence with parallel data sized to the transmitter user data width. + gtwizard_ultrascale_0_prbs_any # ( + .CHK_MODE (0), + .INV_PATTERN (0), // non-inverting EBSM + .POLY_LENGHT (31), + .POLY_TAP (28), + .NBITS (30) + ) prbs_any_gen_inst ( + .RST (example_stimulus_reset_sync), + .CLK (gtwiz_userclk_tx_usrclk2_in), + .DATA_IN (30'b0), + .EN (prbs_any_gen_en_int), + .DATA_OUT (txdata_out) + ); + +endmodule diff --git a/source/synth/imports/example_design/gtwizard_ultrascale_0_example_top.v b/source/synth/imports/example_design/gtwizard_ultrascale_0_example_top.v new file mode 100644 index 0000000..b33887a --- /dev/null +++ b/source/synth/imports/example_design/gtwizard_ultrascale_0_example_top.v @@ -0,0 +1,1157 @@ +//------------------------------------------------------------------------------ +// (c) Copyright 2013-2015 Xilinx, Inc. All rights reserved. +// +// This file contains confidential and proprietary information +// of Xilinx, Inc. and is protected under U.S. and +// international copyright and other intellectual property +// laws. +// +// DISCLAIMER +// This disclaimer is not a license and does not grant any +// rights to the materials distributed herewith. Except as +// otherwise provided in a valid license issued to you by +// Xilinx, and to the maximum extent permitted by applicable +// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +// (2) Xilinx shall not be liable (whether in contract or tort, +// including negligence, or under any other theory of +// liability) for any loss or damage of any kind or nature +// related to, arising under or in connection with these +// materials, including for any direct, or any indirect, +// special, incidental, or consequential loss or damage +// (including loss of data, profits, goodwill, or any type of +// loss or damage suffered as a result of any action brought +// by a third party) even if such damage or loss was +// reasonably foreseeable or Xilinx had been advised of the +// possibility of the same. +// +// CRITICAL APPLICATIONS +// Xilinx products are not designed or intended to be fail- +// safe, or for use in any application requiring fail-safe +// performance, such as life-support or safety devices or +// systems, Class III medical devices, nuclear facilities, +// applications related to the deployment of airbags, or any +// other applications that could lead to death, personal +// injury, or severe property or environmental damage +// (individually and collectively, "Critical +// Applications"). Customer assumes the sole risk and +// liability of any use of Xilinx products in Critical +// Applications, subject only to applicable laws and +// regulations governing limitations on product liability. +// +// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +// PART OF THIS FILE AT ALL TIMES. +//------------------------------------------------------------------------------ + + +`timescale 1ps/1ps + +// ===================================================================================================================== +// This example design top module instantiates the example design wrapper; slices vectored ports for per-channel +// assignment; and instantiates example resources such as buffers, pattern generators, and pattern checkers for core +// demonstration purposes +// ===================================================================================================================== + +module gtwizard_ultrascale_0_example_top ( + + // Differential reference clock inputs + input wire mgtrefclk0_x0y3_p, + input wire mgtrefclk0_x0y3_n, + input wire mgtrefclk1_x0y2_p, + input wire mgtrefclk1_x0y2_n, + + // Differential recovered clock outputs + output wire rxrecclkout_chx0y11_p, + output wire rxrecclkout_chx0y11_n, + + output wire rxusrclk, // Added by EBSM (this clock goes through the fabric) + + // Serial data ports for transceiver channel 0 + input wire ch0_gthrxn_in, + input wire ch0_gthrxp_in, + output wire ch0_gthtxn_out, + output wire ch0_gthtxp_out, + + // User-provided ports for reset helper block(s) + input wire hb_gtwiz_reset_clk_freerun_in_p, + input wire hb_gtwiz_reset_clk_freerun_in_n, + input wire hb_gtwiz_reset_all_in, + + // PRBS-based link status ports + input wire link_down_latched_reset_in, + output wire link_status_out, + output reg link_down_latched_out = 1'b1, + + // Link locking status + output wire rx_locked_out, + output wire tx_aligned_out + +); + + + // =================================================================================================================== + // PER-CHANNEL SIGNAL ASSIGNMENTS + // =================================================================================================================== + + // The core and example design wrapper vectorize ports across all enabled transceiver channel and common instances for + // simplicity and compactness. This example design top module assigns slices of each vector to individual, per-channel + // signal vectors for use if desired. Signals which connect to helper blocks are prefixed "hb#", signals which connect + // to transceiver common primitives are prefixed "cm#", and signals which connect to transceiver channel primitives + // are prefixed "ch#", where "#" is the sequential resource number. + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] gthrxn_int; + assign gthrxn_int[0:0] = ch0_gthrxn_in; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] gthrxp_int; + assign gthrxp_int[0:0] = ch0_gthrxp_in; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] gthtxn_int; + assign ch0_gthtxn_out = gthtxn_int[0:0]; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] gthtxp_int; + assign ch0_gthtxp_out = gthtxp_int[0:0]; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] gtwiz_userclk_tx_reset_int; + wire [0:0] hb0_gtwiz_userclk_tx_reset_int; + assign gtwiz_userclk_tx_reset_int[0:0] = hb0_gtwiz_userclk_tx_reset_int; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] gtwiz_userclk_tx_srcclk_int; + wire [0:0] hb0_gtwiz_userclk_tx_srcclk_int; + assign hb0_gtwiz_userclk_tx_srcclk_int = gtwiz_userclk_tx_srcclk_int[0:0]; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] gtwiz_userclk_tx_usrclk_int; + wire [0:0] hb0_gtwiz_userclk_tx_usrclk_int; + assign hb0_gtwiz_userclk_tx_usrclk_int = gtwiz_userclk_tx_usrclk_int[0:0]; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] gtwiz_userclk_tx_usrclk2_int; + wire [0:0] hb0_gtwiz_userclk_tx_usrclk2_int; + assign hb0_gtwiz_userclk_tx_usrclk2_int = gtwiz_userclk_tx_usrclk2_int[0:0]; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] gtwiz_userclk_tx_active_int; + wire [0:0] hb0_gtwiz_userclk_tx_active_int; + assign hb0_gtwiz_userclk_tx_active_int = gtwiz_userclk_tx_active_int[0:0]; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] gtwiz_userclk_rx_reset_int; + wire [0:0] hb0_gtwiz_userclk_rx_reset_int; + assign gtwiz_userclk_rx_reset_int[0:0] = hb0_gtwiz_userclk_rx_reset_int; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] gtwiz_userclk_rx_srcclk_int; + wire [0:0] hb0_gtwiz_userclk_rx_srcclk_int; + assign hb0_gtwiz_userclk_rx_srcclk_int = gtwiz_userclk_rx_srcclk_int[0:0]; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] gtwiz_userclk_rx_usrclk_int; + wire [0:0] hb0_gtwiz_userclk_rx_usrclk_int; + assign hb0_gtwiz_userclk_rx_usrclk_int = gtwiz_userclk_rx_usrclk_int[0:0]; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] gtwiz_userclk_rx_usrclk2_int; + wire [0:0] hb0_gtwiz_userclk_rx_usrclk2_int; + assign hb0_gtwiz_userclk_rx_usrclk2_int = gtwiz_userclk_rx_usrclk2_int[0:0]; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] gtwiz_userclk_rx_active_int; + wire [0:0] hb0_gtwiz_userclk_rx_active_int; + assign hb0_gtwiz_userclk_rx_active_int = gtwiz_userclk_rx_active_int[0:0]; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] gtwiz_buffbypass_rx_reset_int; + wire [0:0] hb0_gtwiz_buffbypass_rx_reset_int; + assign gtwiz_buffbypass_rx_reset_int[0:0] = hb0_gtwiz_buffbypass_rx_reset_int; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] gtwiz_buffbypass_rx_start_user_int; + wire [0:0] hb0_gtwiz_buffbypass_rx_start_user_int = 1'b0; + assign gtwiz_buffbypass_rx_start_user_int[0:0] = hb0_gtwiz_buffbypass_rx_start_user_int; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] gtwiz_buffbypass_rx_done_int; + wire [0:0] hb0_gtwiz_buffbypass_rx_done_int; + assign hb0_gtwiz_buffbypass_rx_done_int = gtwiz_buffbypass_rx_done_int[0:0]; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] gtwiz_buffbypass_rx_error_int; + wire [0:0] hb0_gtwiz_buffbypass_rx_error_int; + assign hb0_gtwiz_buffbypass_rx_error_int = gtwiz_buffbypass_rx_error_int[0:0]; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] gtwiz_reset_clk_freerun_int; + wire [0:0] hb0_gtwiz_reset_clk_freerun_int = 1'b0; + assign gtwiz_reset_clk_freerun_int[0:0] = hb0_gtwiz_reset_clk_freerun_int; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] gtwiz_reset_all_int; + wire [0:0] hb0_gtwiz_reset_all_int = 1'b0; + assign gtwiz_reset_all_int[0:0] = hb0_gtwiz_reset_all_int; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] gtwiz_reset_tx_pll_and_datapath_int; + wire [0:0] hb0_gtwiz_reset_tx_pll_and_datapath_int; + //assign gtwiz_reset_tx_pll_and_datapath_int[0:0] = hb0_gtwiz_reset_tx_pll_and_datapath_int; //commented by EBSM, tx reset can also be issued by tx_phase_aligner + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] gtwiz_reset_tx_datapath_int; + wire [0:0] hb0_gtwiz_reset_tx_datapath_int; + assign gtwiz_reset_tx_datapath_int[0:0] = hb0_gtwiz_reset_tx_datapath_int; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] gtwiz_reset_rx_pll_and_datapath_int; + wire [0:0] hb0_gtwiz_reset_rx_pll_and_datapath_int = 1'b0; + assign gtwiz_reset_rx_pll_and_datapath_int[0:0] = hb0_gtwiz_reset_rx_pll_and_datapath_int; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] gtwiz_reset_rx_datapath_int; + wire [0:0] hb0_gtwiz_reset_rx_datapath_int = 1'b0; + assign gtwiz_reset_rx_datapath_int[0:0] = hb0_gtwiz_reset_rx_datapath_int; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] gtwiz_reset_rx_cdr_stable_int; + wire [0:0] hb0_gtwiz_reset_rx_cdr_stable_int; + assign hb0_gtwiz_reset_rx_cdr_stable_int = gtwiz_reset_rx_cdr_stable_int[0:0]; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] gtwiz_reset_tx_done_int; + wire [0:0] hb0_gtwiz_reset_tx_done_int; + assign hb0_gtwiz_reset_tx_done_int = gtwiz_reset_tx_done_int[0:0]; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] gtwiz_reset_rx_done_int; + wire [0:0] hb0_gtwiz_reset_rx_done_int; + assign hb0_gtwiz_reset_rx_done_int = gtwiz_reset_rx_done_int[0:0]; + + //-------------------------------------------------------------------------------------------------------------------- + wire [31:0] gtwiz_userdata_tx_int; + wire [31:0] hb0_gtwiz_userdata_tx_int; + wire tx_data_sel; + assign gtwiz_userdata_tx_int[31:0] = (tx_data_sel) ? (32'b00000000000000011111111111111110) : hb0_gtwiz_userdata_tx_int; //modified by EBSM to include clock pattern + + //-------------------------------------------------------------------------------------------------------------------- + wire [31:0] gtwiz_userdata_rx_int; + wire [31:0] hb0_gtwiz_userdata_rx_int; + assign hb0_gtwiz_userdata_rx_int = gtwiz_userdata_rx_int[31:0]; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] gtrefclk00_int; + wire [0:0] cm0_gtrefclk00_int; + assign gtrefclk00_int[0:0] = cm0_gtrefclk00_int; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] gtrefclk01_int; + wire [0:0] cm0_gtrefclk01_int; + assign gtrefclk01_int[0:0] = cm0_gtrefclk01_int; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] qpll0outclk_int; + wire [0:0] cm0_qpll0outclk_int; + assign cm0_qpll0outclk_int = qpll0outclk_int[0:0]; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] qpll0outrefclk_int; + wire [0:0] cm0_qpll0outrefclk_int; + assign cm0_qpll0outrefclk_int = qpll0outrefclk_int[0:0]; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] qpll1outclk_int; + wire [0:0] cm0_qpll1outclk_int; + assign cm0_qpll1outclk_int = qpll1outclk_int[0:0]; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] qpll1outrefclk_int; + wire [0:0] cm0_qpll1outrefclk_int; + assign cm0_qpll1outrefclk_int = qpll1outrefclk_int[0:0]; + + //-------------------------------------------------------------------------------------------------------------------- + wire [8:0] drpaddr_int; + //wire [8:0] ch0_drpaddr_int = 9'b000000000; //commented by EBSM - controlled by phase aligner + //assign drpaddr_int[8:0] = ch0_drpaddr_int; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] drpclk_int; + //wire [0:0] ch0_drpclk_int = 1'b0; //commented by EBSM - use clk_sys for drp for phase aligner + //assign drpclk_int[0:0] = ch0_drpclk_int; + + //-------------------------------------------------------------------------------------------------------------------- + wire [15:0] drpdi_int; + //wire [15:0] ch0_drpdi_int = 16'b0000000000000000; //commented by EBSM - controlled by phase aligner + //assign drpdi_int[15:0] = ch0_drpdi_int; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] drpen_int; + //wire [0:0] ch0_drpen_int = 1'b0; //commented by EBSM - controlled by phase aligner + //assign drpen_int[0:0] = ch0_drpen_int; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] drpwe_int; + //wire [0:0] ch0_drpwe_int = 1'b0; //commented by EBSM - controlled by phase aligner + //assign drpwe_int[0:0] = ch0_drpwe_int; + + //-------------------------------------------------------------------------------------------------------------------- + wire [2:0] loopback_int; + // This vector is not sliced because it is directly assigned in a debug core instance below + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] rxcdrreset_int; + // This vector is not sliced because it is directly assigned in a debug core instance below + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] rxpolarity_int; + wire [0:0] ch0_rxpolarity_int = 1'b0; + assign rxpolarity_int[0:0] = ch0_rxpolarity_int; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] rxprbscntreset_int; + // This vector is not sliced because it is directly assigned in a debug core instance below + + //-------------------------------------------------------------------------------------------------------------------- + wire [3:0] rxprbssel_int; + // This vector is not sliced because it is directly assigned in a debug core instance below + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] rxslide_int; + //wire [0:0] ch0_rxslide_int = 1'b0; //commented by EBSM - controlled by word aligner + //assign rxslide_int[0:0] = ch0_rxslide_int; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] txpippmen_int; + //wire [0:0] ch0_txpippmen_int = 1'b0; //commented by EBSM - controlled by phase aligner + //assign txpippmen_int[0:0] = ch0_txpippmen_int; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] txpippmovrden_int; + //wire [0:0] ch0_txpippmovrden_int = 1'b0; //commented by EBSM - controlled by phase aligner + //assign txpippmovrden_int[0:0] = ch0_txpippmovrden_int; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] txpippmpd_int; + //wire [0:0] ch0_txpippmpd_int = 1'b0; //commented by EBSM - controlled by phase aligner + //assign txpippmpd_int[0:0] = ch0_txpippmpd_int; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] txpippmsel_int; + //wire [0:0] ch0_txpippmsel_int = 1'b0; //commented by EBSM - controlled by phase aligner + //assign txpippmsel_int[0:0] = ch0_txpippmsel_int; + + //-------------------------------------------------------------------------------------------------------------------- + wire [4:0] txpippmstepsize_int; + //wire [4:0] ch0_txpippmstepsize_int = 5'b00000; //commented by EBSM - controlled by phase aligner + //assign txpippmstepsize_int[4:0] = ch0_txpippmstepsize_int; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] txpolarity_int; + wire [0:0] ch0_txpolarity_int = 1'b0; + assign txpolarity_int[0:0] = ch0_txpolarity_int; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] txprbsforceerr_int; + // This vector is not sliced because it is directly assigned in a debug core instance below + + //-------------------------------------------------------------------------------------------------------------------- + wire [3:0] txprbssel_int; + // This vector is not sliced because it is directly assigned in a debug core instance below + + //-------------------------------------------------------------------------------------------------------------------- + wire [15:0] drpdo_int; + wire [15:0] ch0_drpdo_int; + assign ch0_drpdo_int = drpdo_int[15:0]; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] drprdy_int; + wire [0:0] ch0_drprdy_int; + assign ch0_drprdy_int = drprdy_int[0:0]; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] rxcdrlock_int; + wire [0:0] ch0_rxcdrlock_int; + assign ch0_rxcdrlock_int = rxcdrlock_int[0:0]; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] rxoutclk_int; + wire [0:0] ch0_rxoutclk_int; + assign ch0_rxoutclk_int = rxoutclk_int[0:0]; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] rxoutclkpcs_int; + wire [0:0] ch0_rxoutclkpcs_int; + assign ch0_rxoutclkpcs_int = rxoutclkpcs_int[0:0]; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] rxpmaresetdone_int; + wire [0:0] ch0_rxpmaresetdone_int; + assign ch0_rxpmaresetdone_int = rxpmaresetdone_int[0:0]; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] rxprbserr_int; + wire [0:0] ch0_rxprbserr_int; + assign ch0_rxprbserr_int = rxprbserr_int[0:0]; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] rxprbslocked_int; + wire [0:0] ch0_rxprbslocked_int; + assign ch0_rxprbslocked_int = rxprbslocked_int[0:0]; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] rxrecclkout_int; + wire [0:0] ch0_rxrecclkout_int; + assign ch0_rxrecclkout_int = rxrecclkout_int[0:0]; + + //-------------------------------------------------------------------------------------------------------------------- + wire [1:0] txbufstatus_int; + wire [1:0] ch0_txbufstatus_int; + assign ch0_txbufstatus_int = txbufstatus_int[1:0]; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] txoutclk_int; + wire [0:0] ch0_txoutclk_int; + assign ch0_txoutclk_int = txoutclk_int[0:0]; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] txoutclkfabric_int; + wire [0:0] ch0_txoutclkfabric_int; + assign ch0_txoutclkfabric_int = txoutclkfabric_int[0:0]; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] txoutclkpcs_int; + wire [0:0] ch0_txoutclkpcs_int; + assign ch0_txoutclkpcs_int = txoutclkpcs_int[0:0]; + + //-------------------------------------------------------------------------------------------------------------------- + wire [0:0] txpmaresetdone_int; + wire [0:0] ch0_txpmaresetdone_int; + assign ch0_txpmaresetdone_int = txpmaresetdone_int[0:0]; + + + // =================================================================================================================== + // BUFFERS + // =================================================================================================================== + + // Buffer the hb_gtwiz_reset_all_in input and logically combine it with the internal signal from the example + // initialization block as well as the VIO-sourced reset + wire hb_gtwiz_reset_all_vio_int; + wire hb_gtwiz_reset_all_buf_int; + wire hb_gtwiz_reset_all_init_int; + wire hb_gtwiz_reset_all_int; + + IBUF ibuf_hb_gtwiz_reset_all_inst ( + .I (hb_gtwiz_reset_all_in), + .O (hb_gtwiz_reset_all_buf_int) + ); + + assign hb_gtwiz_reset_all_int = hb_gtwiz_reset_all_buf_int || hb_gtwiz_reset_all_init_int || hb_gtwiz_reset_all_vio_int; + + // Globally buffer the free-running input clock + wire hb_gtwiz_reset_clk_freerun_buf_int; + + //Modified by EBSM - use differential buffer for free-running clock + // IBUFDS: Differential Input Buffer + // UltraScale + // Xilinx HDL Libraries Guide, version 2014.1 + IBUFDS #( + .DQS_BIAS("FALSE") // (FALSE, TRUE) + ) + IBUFDS_inst ( + .O(hb_gtwiz_reset_clk_freerun_buf_int), // 1-bit output: Buffer output + .I(hb_gtwiz_reset_clk_freerun_in_p), // 1-bit input: Diff_p buffer input (connect directly to top-level port) + .IB(hb_gtwiz_reset_clk_freerun_in_n) // 1-bit input: Diff_n buffer input (connect directly to top-level port) + ); + // End of IBUFDS_inst instantiation + + //BUFG bufg_clk_freerun_inst ( + // .I (hb_gtwiz_reset_clk_freerun_in), + // .O (hb_gtwiz_reset_clk_freerun_buf_int) + //); + + // Instantiate a differential reference clock buffer for each reference clock differential pair in this configuration, + // and assign the single-ended output of each differential reference clock buffer to the appropriate PLL input signal + + // Differential reference clock buffer for MGTREFCLK0_X0Y3 + wire mgtrefclk0_x0y3_int; + + IBUFDS_GTE3 #( + .REFCLK_EN_TX_PATH (1'b0), + .REFCLK_HROW_CK_SEL (2'b00), + .REFCLK_ICNTL_RX (2'b00) + ) IBUFDS_GTE3_MGTREFCLK0_X0Y3_INST ( + .I (mgtrefclk0_x0y3_p), + .IB (mgtrefclk0_x0y3_n), + .CEB (1'b0), + .O (mgtrefclk0_x0y3_int), + .ODIV2 () + ); + + // Differential reference clock buffer for MGTREFCLK1_X0Y2 + wire mgtrefclk1_x0y2_int; + + IBUFDS_GTE3 #( + .REFCLK_EN_TX_PATH (1'b0), + .REFCLK_HROW_CK_SEL (2'b00), + .REFCLK_ICNTL_RX (2'b00) + ) IBUFDS_GTE3_MGTREFCLK1_X0Y2_INST ( + .I (mgtrefclk1_x0y2_p), + .IB (mgtrefclk1_x0y2_n), + .CEB (1'b0), + .O (mgtrefclk1_x0y2_int), + .ODIV2 () + ); + + assign cm0_gtrefclk00_int = mgtrefclk1_x0y2_int; + assign cm0_gtrefclk01_int = mgtrefclk0_x0y3_int; + + // Instantiate a differential recovered clock output buffer for each channel which drives out its recovered clock + + // Differential recovered clock buffer for channel X0Y11 + OBUFDS_GTE3 #( + .REFCLK_EN_TX_PATH (1'b1), + .REFCLK_ICNTL_TX (5'b00111) + ) OBUFDS_GTE3_CHX0Y11_INST ( + .O (rxrecclkout_chx0y11_p), + .OB (rxrecclkout_chx0y11_n), + .CEB (1'b0), + .I (ch0_rxrecclkout_int) + ); + + // Added by EBSM - output the recovered clock which goes through the fabric + wire rxusrclk_oddr; + + // ODDRE1: Dedicated Dual Data Rate (DDR) Output Register + // Ultrascale + // Xilinx HDL Libraries Guide, version 2014.1 + ODDRE1 #( + .IS_C_INVERTED(1'b0) // Optional inversion for C + ,.IS_D1_INVERTED(1'b0) // Optional inversion for D1 + ,.IS_D2_INVERTED(1'b0) // Optional inversion for D2 + ,.SRVAL(1'b0) // Initializes the ODDRE1 Flip-Flops to the specified value ('0', '1') + ) + ODDRE1_rxusrclk_inst( + .Q(rxusrclk_oddr) // 1-bit output: Data output to IOB + ,.C(hb0_gtwiz_userclk_rx_usrclk2_int[0]) // 1-bit input: High-speed clock input + ,.D1(1'b0) // 1-bit input: Parallel data input 1 + ,.D2(1'b1) // 1-bit input: Parallel data input 2 + ,.SR(1'b0) // 1-bit input: Active High Async Reset + ); + // End of ODDRE1_rxoutclk_inst instantiation + + assign rxusrclk = rxusrclk_oddr; + + //// OBUFDS: Differential Output Buffer + //// UltraScale + //// Xilinx HDL Libraries Guide, version 2014.1 + //OBUFDS #( + //) OBUFDS_rxoutclk_inst ( + // .O(rxusrclk_p), // 1-bit output: Diff_p output (connect directly to top-level port) + // .OB(rxusrclk_n), // 1-bit output: Diff_n output (connect directly to top-level port) + // .I(rxusrclk_oddr) // 1-bit input: Buffer input + // ); + // End of OBUFDS_rxoutclk_inst instantiation + + + // =================================================================================================================== + // USER CLOCKING RESETS + // =================================================================================================================== + + // The TX user clocking helper block should be held in reset until the clock source of that block is known to be + // stable. The following assignment is an example of how that stability can be determined, based on the selected TX + // user clock source. Replace the assignment with the appropriate signal or logic to achieve that behavior as needed. + assign hb0_gtwiz_userclk_tx_reset_int = ~(&txpmaresetdone_int); + + // The RX user clocking helper block should be held in reset until the clock source of that block is known to be + // stable. The following assignment is an example of how that stability can be determined, based on the selected RX + // user clock source. Replace the assignment with the appropriate signal or logic to achieve that behavior as needed. + assign hb0_gtwiz_userclk_rx_reset_int = ~(&rxpmaresetdone_int); + + + // =================================================================================================================== + // BUFFER BYPASS CONTROLLER RESETS + // =================================================================================================================== + + // The RX buffer bypass controller helper block should be held in reset until the RX user clocking network helper + // block which drives it is active + (* DONT_TOUCH = "TRUE" *) + gtwizard_ultrascale_0_example_reset_synchronizer reset_synchronizer_gtwiz_buffbypass_rx_reset_inst ( + .clk_in (hb0_gtwiz_userclk_rx_usrclk2_int), + .rst_in (~hb0_gtwiz_userclk_rx_active_int), + .rst_out (hb0_gtwiz_buffbypass_rx_reset_int) + ); + + + // =================================================================================================================== + // PRBS STIMULUS, CHECKING, AND LINK MANAGEMENT + // =================================================================================================================== + + // PRBS stimulus + // ------------------------------------------------------------------------------------------------------------------- + //The block gtwizard_ultrascale_0_example_stimulus_raw was modified by EBSM - 30b prbs generation + // PRBS-based data stimulus module for transceiver channel 0 + (* DONT_TOUCH = "TRUE" *) + gtwizard_ultrascale_0_example_stimulus_raw example_stimulus_inst0 ( + .gtwiz_reset_all_in (hb_gtwiz_reset_all_int), + .gtwiz_userclk_tx_usrclk2_in (hb0_gtwiz_userclk_tx_usrclk2_int), + .gtwiz_userclk_tx_active_in (tx_aligned), //hb0_gtwiz_userclk_tx_active_int), + .txdata_out (hb0_gtwiz_userdata_tx_int[31:2]) + ); + + assign hb0_gtwiz_userdata_tx_int[1:0] = 2'b10; // 2b header for word alignment + + // PRBS checking + // ------------------------------------------------------------------------------------------------------------------- + + // Declare a signal vector of PRBS match indicators, with one indicator bit per transceiver channel + wire [0:0] prbs_match_int; + + //The block gtwizard_ultrascale_0_example_checking_raw was modified by EBSM - 30b prbs checking + // PRBS-based data checking module for transceiver channel 0 + gtwizard_ultrascale_0_example_checking_raw example_checking_inst0 ( + .gtwiz_reset_all_in (hb_gtwiz_reset_all_int || ~hb0_gtwiz_reset_rx_done_int || ~hb0_gtwiz_buffbypass_rx_done_int), + .gtwiz_userclk_rx_usrclk2_in (hb0_gtwiz_userclk_rx_usrclk2_int), + .gtwiz_userclk_rx_active_in (hb0_gtwiz_userclk_rx_active_int), + .rxdata_in (hb0_gtwiz_userdata_rx_int[31:2]), + .prbs_match_out (prbs_match_int[0]) + ); + + // Added Rx word alignment by EBSM + // Rx word alignment + wire reset_word_aligner = ~(gtwiz_reset_rx_done_int && gtwiz_buffbypass_rx_done_int); + wire header; + assign header = hb0_gtwiz_userdata_rx_int[1] & (~hb0_gtwiz_userdata_rx_int[0]); + wire rx_locked; + wire rx_reset_from_word_aligner; + + rx_word_aligner rx_word_aligner_inst + ( + .clk_rxusr_i(hb0_gtwiz_userclk_rx_usrclk2_int) + ,.reset_i(reset_word_aligner) + ,.enable_i(1'b1) + ,.header_i(header) + ,.rx_locked_o(rx_locked) + ,.rx_slide_o(rxslide_int[0]) + ,.clk_sys_i(hb_gtwiz_reset_clk_freerun_buf_int) + ,.rx_reset_o(rx_reset_from_word_aligner) + ); + + assign rx_locked_out = rx_locked; + + // PRBS match and related link management + // ------------------------------------------------------------------------------------------------------------------- + + // Perform a bitwise NAND of all PRBS match indicators, creating a combinatorial indication of any PRBS mismatch + // across all transceiver channels + wire prbs_error_any_async = ~(&prbs_match_int); + wire prbs_error_any_sync; + + // Synchronize the PRBS mismatch indicator the free-running clock domain, using a reset synchronizer with asynchronous + // reset and synchronous removal + (* DONT_TOUCH = "TRUE" *) + gtwizard_ultrascale_0_example_reset_synchronizer reset_synchronizer_prbs_match_all_inst ( + .clk_in (hb_gtwiz_reset_clk_freerun_buf_int), + .rst_in (prbs_error_any_async), + .rst_out(prbs_error_any_sync) + ); + + // Implement an example link status state machine using a simple leaky bucket mechanism. The link status indicates + // the continual PRBS match status to both the top-level observer and the initialization state machine, while being + // tolerant of occasional bit errors. This is an example and can be modified as necessary. + localparam ST_LINK_DOWN = 1'b0; + localparam ST_LINK_UP = 1'b1; + reg sm_link = ST_LINK_DOWN; + reg [6:0] link_ctr = 7'd0; + + always @(posedge hb_gtwiz_reset_clk_freerun_buf_int) begin + case (sm_link) + // The link is considered to be down when the link counter initially has a value less than 67. When the link is + // down, the counter is incremented on each cycle where all PRBS bits match, but reset whenever any PRBS mismatch + // occurs. When the link counter reaches 67, transition to the link up state. + ST_LINK_DOWN: begin + if (prbs_error_any_sync !== 1'b0 ) begin + link_ctr <= 7'd0; + end + else begin + if (link_ctr < 7'd67) + link_ctr <= link_ctr + 7'd1; + else + sm_link <= ST_LINK_UP; + end + end + + // When the link is up, the link counter is decreased by 34 whenever any PRBS mismatch occurs, but is increased by + // only 1 on each cycle where all PRBS bits match, up to its saturation point of 67. If the link counter reaches + // 0 (including rollover protection), transition to the link down state. + ST_LINK_UP: begin + if (prbs_error_any_sync !== 1'b0) begin + if (link_ctr > 7'd33) begin + link_ctr <= link_ctr - 7'd34; + if (link_ctr == 7'd34) + sm_link <= ST_LINK_DOWN; + end + else begin + link_ctr <= 7'd0; + sm_link <= ST_LINK_DOWN; + end + end + else begin + if (link_ctr < 7'd67) + link_ctr <= link_ctr + 7'd1; + end + end + + endcase + end + + // Synchronize the latched link down reset input and the VIO-driven signal into the free-running clock domain + wire link_down_latched_reset_vio_int; + wire link_down_latched_reset_sync; + + (* DONT_TOUCH = "TRUE" *) + gtwizard_ultrascale_0_example_bit_synchronizer bit_synchronizer_link_down_latched_reset_inst ( + .clk_in (hb_gtwiz_reset_clk_freerun_buf_int), + .i_in (link_down_latched_reset_in || link_down_latched_reset_vio_int), + .o_out (link_down_latched_reset_sync) + ); + + // Reset the latched link down indicator when the synchronized latched link down reset signal is high. Otherwise, set + // the latched link down indicator upon losing link. This indicator is available for user reference. + always @(posedge hb_gtwiz_reset_clk_freerun_buf_int) begin + if (link_down_latched_reset_sync) + link_down_latched_out <= 1'b0; + else if (!sm_link) + link_down_latched_out <= 1'b1; + end + + // Assign the link status indicator to the top-level two-state output for user reference + assign link_status_out = sm_link; + + // =================================================================================================================== + // TX_PHASE_ALIGNER signals - EBSM + // =================================================================================================================== + wire tx_aligned; // The Transmitter reset is only considered to be finished once the phase aligner has finished alignment + wire reset_tx_phase_aligner; + assign reset_tx_phase_aligner = ~gtwiz_reset_tx_done_vio_sync; + + wire [6:0] tx_pi_phase; + wire [31:0] tx_fifo_fill_pd; + + wire tx_ui_align_calib; + wire [6:0] tx_pi_phase_calib; + wire [31:0] tx_fifo_fill_pd_max; + wire tx_fine_realign; + + assign gtwiz_reset_tx_pll_and_datapath_int[0:0] = hb0_gtwiz_reset_tx_pll_and_datapath_int; + + assign tx_aligned_out = tx_aligned; + + // =================================================================================================================== + // INITIALIZATION + // =================================================================================================================== + + // Declare the receiver reset signals that interface to the reset controller helper block. For this configuration, + // which uses different PLL types for transmitter and receiver, the "reset RX datapath" feature is not used. + wire hb_gtwiz_reset_rx_pll_and_datapath_int; + wire hb_gtwiz_reset_rx_datapath_int = 1'b0; + + // Declare signals which connect the VIO instance to the initialization module for debug purposes + wire init_done_int; + wire [3:0] init_retry_ctr_int; + + // Combine the receiver reset signals form the initialization module and the VIO to drive the appropriate reset + // controller helper block reset input + wire hb_gtwiz_reset_rx_pll_and_datapath_vio_int; + wire hb_gtwiz_reset_rx_datapath_vio_int; + wire hb_gtwiz_reset_rx_pll_and_datapath_init_int; + + assign hb_gtwiz_reset_rx_pll_and_datapath_int = hb_gtwiz_reset_rx_pll_and_datapath_init_int || hb_gtwiz_reset_rx_pll_and_datapath_vio_int || rx_reset_from_word_aligner; //Included also reset from word aligner (EBSM) + + // The block gtwizard_ultrascale_0_example_init and its connections were modified by EBSM + // The example initialization module interacts with the reset controller helper block and other example design logic + // to retry failed reset attempts in order to mitigate bring-up issues such as initially-unavilable reference clocks + // or data connections. It also resets the receiver in the event of link loss in an attempt to regain link, so please + // note the possibility that this behavior can have the effect of overriding or disturbing user-provided inputs that + // destabilize the data stream. It is a demonstration only and can be modified to suit your system needs. + gtwizard_ultrascale_0_example_init example_init_inst ( + .clk_freerun_in (hb_gtwiz_reset_clk_freerun_buf_int), + .reset_all_in (hb_gtwiz_reset_all_int), + .tx_init_done_in (tx_aligned),//(gtwiz_reset_tx_done_int), The Transmitter reset is only considered to be finished once the phase aligner has finished alignment + .rx_init_done_in (rx_locked), //(gtwiz_reset_rx_done_int && gtwiz_buffbypass_rx_done_int), The receiver is only considered locked when the word aligner has finished + .rx_data_good_in (1'b1), //(sm_link), do not reset if seeing prbs errors + .reset_all_out (hb_gtwiz_reset_all_init_int), + .reset_rx_out (hb_gtwiz_reset_rx_pll_and_datapath_init_int), + .init_done_out (init_done_int), + .retry_ctr_out (init_retry_ctr_int) + ); + + + // =================================================================================================================== + // VIO FOR HARDWARE BRING-UP AND DEBUG + // =================================================================================================================== + + // Synchronize txpmaresetdone into the free-running clock domain for VIO usage + wire [0:0] txpmaresetdone_vio_sync; + + (* DONT_TOUCH = "TRUE" *) + gtwizard_ultrascale_0_example_bit_synchronizer bit_synchronizer_vio_txpmaresetdone_0_inst ( + .clk_in (hb_gtwiz_reset_clk_freerun_buf_int), + .i_in (txpmaresetdone_int[0]), + .o_out (txpmaresetdone_vio_sync[0]) + ); + + // Synchronize rxpmaresetdone into the free-running clock domain for VIO usage + wire [0:0] rxpmaresetdone_vio_sync; + + (* DONT_TOUCH = "TRUE" *) + gtwizard_ultrascale_0_example_bit_synchronizer bit_synchronizer_vio_rxpmaresetdone_0_inst ( + .clk_in (hb_gtwiz_reset_clk_freerun_buf_int), + .i_in (rxpmaresetdone_int[0]), + .o_out (rxpmaresetdone_vio_sync[0]) + ); + + // Synchronize gtwiz_reset_tx_done into the free-running clock domain for VIO usage + wire [0:0] gtwiz_reset_tx_done_vio_sync; + + (* DONT_TOUCH = "TRUE" *) + gtwizard_ultrascale_0_example_bit_synchronizer bit_synchronizer_vio_gtwiz_reset_tx_done_0_inst ( + .clk_in (hb_gtwiz_reset_clk_freerun_buf_int), + .i_in (gtwiz_reset_tx_done_int[0]), + .o_out (gtwiz_reset_tx_done_vio_sync[0]) + ); + + // Synchronize gtwiz_reset_rx_done into the free-running clock domain for VIO usage + wire [0:0] gtwiz_reset_rx_done_vio_sync; + + (* DONT_TOUCH = "TRUE" *) + gtwizard_ultrascale_0_example_bit_synchronizer bit_synchronizer_vio_gtwiz_reset_rx_done_0_inst ( + .clk_in (hb_gtwiz_reset_clk_freerun_buf_int), + .i_in (gtwiz_reset_rx_done_int[0]), + .o_out (gtwiz_reset_rx_done_vio_sync[0]) + ); + + // Synchronize gtwiz_buffbypass_rx_done into the free-running clock domain for VIO usage + wire [0:0] gtwiz_buffbypass_rx_done_vio_sync; + + (* DONT_TOUCH = "TRUE" *) + gtwizard_ultrascale_0_example_bit_synchronizer bit_synchronizer_vio_gtwiz_buffbypass_rx_done_0_inst ( + .clk_in (hb_gtwiz_reset_clk_freerun_buf_int), + .i_in (gtwiz_buffbypass_rx_done_int[0]), + .o_out (gtwiz_buffbypass_rx_done_vio_sync[0]) + ); + + // Synchronize gtwiz_buffbypass_rx_error into the free-running clock domain for VIO usage + wire [0:0] gtwiz_buffbypass_rx_error_vio_sync; + + (* DONT_TOUCH = "TRUE" *) + gtwizard_ultrascale_0_example_bit_synchronizer bit_synchronizer_vio_gtwiz_buffbypass_rx_error_0_inst ( + .clk_in (hb_gtwiz_reset_clk_freerun_buf_int), + .i_in (gtwiz_buffbypass_rx_error_int[0]), + .o_out (gtwiz_buffbypass_rx_error_vio_sync[0]) + ); + + // Synchronize rxprbserr into the free-running clock domain for VIO usage + wire [0:0] rxprbserr_vio_sync; + + (* DONT_TOUCH = "TRUE" *) + gtwizard_ultrascale_0_example_bit_synchronizer bit_synchronizer_vio_rxprbserr_0_inst ( + .clk_in (hb_gtwiz_reset_clk_freerun_buf_int), + .i_in (rxprbserr_int[0]), + .o_out (rxprbserr_vio_sync[0]) + ); + + // Synchronize rxprbslocked into the free-running clock domain for VIO usage + wire [0:0] rxprbslocked_vio_sync; + + (* DONT_TOUCH = "TRUE" *) + gtwizard_ultrascale_0_example_bit_synchronizer bit_synchronizer_vio_rxprbslocked_0_inst ( + .clk_in (hb_gtwiz_reset_clk_freerun_buf_int), + .i_in (rxprbslocked_int[0]), + .o_out (rxprbslocked_vio_sync[0]) + ); + + // Synchronize rx_locked into the free-running clock domain for VIO usage (EBSM) + wire [0:0] rx_locked_vio_sync; + + (* DONT_TOUCH = "TRUE" *) + gtwizard_ultrascale_0_example_bit_synchronizer bit_synchronizer_vio_rx_locked_inst ( + .clk_in (hb_gtwiz_reset_clk_freerun_buf_int), + .i_in (rx_locked), + .o_out (rx_locked_vio_sync[0]) + ); + + // Synchronize txprbssel into the TXUSRCLK2 clock domain from VIO usage + wire [3:0] txprbssel_vio_async; + + (* DONT_TOUCH = "TRUE" *) + gtwizard_ultrascale_0_example_bit_synchronizer bit_synchronizer_vio_txprbssel_0_inst ( + .clk_in (hb0_gtwiz_userclk_tx_usrclk2_int), + .i_in (txprbssel_vio_async[0]), + .o_out (txprbssel_int[0]) + ); + (* DONT_TOUCH = "TRUE" *) + gtwizard_ultrascale_0_example_bit_synchronizer bit_synchronizer_vio_txprbssel_1_inst ( + .clk_in (hb0_gtwiz_userclk_tx_usrclk2_int), + .i_in (txprbssel_vio_async[1]), + .o_out (txprbssel_int[1]) + ); + (* DONT_TOUCH = "TRUE" *) + gtwizard_ultrascale_0_example_bit_synchronizer bit_synchronizer_vio_txprbssel_2_inst ( + .clk_in (hb0_gtwiz_userclk_tx_usrclk2_int), + .i_in (txprbssel_vio_async[2]), + .o_out (txprbssel_int[2]) + ); + (* DONT_TOUCH = "TRUE" *) + gtwizard_ultrascale_0_example_bit_synchronizer bit_synchronizer_vio_txprbssel_3_inst ( + .clk_in (hb0_gtwiz_userclk_tx_usrclk2_int), + .i_in (txprbssel_vio_async[3]), + .o_out (txprbssel_int[3]) + ); + + // Synchronize rxprbssel into the RXUSRCLK2 clock domain from VIO usage + wire [3:0] rxprbssel_vio_async; + + (* DONT_TOUCH = "TRUE" *) + gtwizard_ultrascale_0_example_bit_synchronizer bit_synchronizer_vio_rxprbssel_0_inst ( + .clk_in (hb0_gtwiz_userclk_rx_usrclk2_int), + .i_in (rxprbssel_vio_async[0]), + .o_out (rxprbssel_int[0]) + ); + (* DONT_TOUCH = "TRUE" *) + gtwizard_ultrascale_0_example_bit_synchronizer bit_synchronizer_vio_rxprbssel_1_inst ( + .clk_in (hb0_gtwiz_userclk_rx_usrclk2_int), + .i_in (rxprbssel_vio_async[1]), + .o_out (rxprbssel_int[1]) + ); + (* DONT_TOUCH = "TRUE" *) + gtwizard_ultrascale_0_example_bit_synchronizer bit_synchronizer_vio_rxprbssel_2_inst ( + .clk_in (hb0_gtwiz_userclk_rx_usrclk2_int), + .i_in (rxprbssel_vio_async[2]), + .o_out (rxprbssel_int[2]) + ); + (* DONT_TOUCH = "TRUE" *) + gtwizard_ultrascale_0_example_bit_synchronizer bit_synchronizer_vio_rxprbssel_3_inst ( + .clk_in (hb0_gtwiz_userclk_rx_usrclk2_int), + .i_in (rxprbssel_vio_async[3]), + .o_out (rxprbssel_int[3]) + ); + + // Synchronize txprbsforceerr into the TXUSRCLK2 clock domain from VIO usage + wire [0:0] txprbsforceerr_vio_async; + + (* DONT_TOUCH = "TRUE" *) + gtwizard_ultrascale_0_example_bit_synchronizer bit_synchronizer_vio_txprbsforceerr_0_inst ( + .clk_in (hb0_gtwiz_userclk_tx_usrclk2_int), + .i_in (txprbsforceerr_vio_async[0]), + .o_out (txprbsforceerr_int[0]) + ); + + // Synchronize rxprbscntreset into the RXUSRCLK2 clock domain from VIO usage + wire [0:0] rxprbscntreset_vio_async; + + (* DONT_TOUCH = "TRUE" *) + gtwizard_ultrascale_0_example_bit_synchronizer bit_synchronizer_vio_rxprbscntreset_0_inst ( + .clk_in (hb0_gtwiz_userclk_rx_usrclk2_int), + .i_in (rxprbscntreset_vio_async[0]), + .o_out (rxprbscntreset_int[0]) + ); + + // Synchronize tx_data_sel into the TXUSRCLK2 clock domain from VIO usage (EBSM) + wire tx_data_sel_vio_async; + (* DONT_TOUCH = "TRUE" *) + gtwizard_ultrascale_0_example_bit_synchronizer bit_synchronizer_vio_tx_data_sel_0_inst ( + .clk_in (hb0_gtwiz_userclk_tx_usrclk2_int), + .i_in (tx_data_sel_vio_async), + .o_out (tx_data_sel) + ); + // Instantiate the VIO IP core for hardware bring-up and debug purposes, connecting relevant debug and analysis + // signals which have been enabled during Wizard IP customization. This initial set of connected signals is + // provided as a convenience and example, but more or fewer ports can be used as needed; simply re-customize and + // re-generate the VIO instance, then connect any exposed signals that are needed. Signals which are synchronous to + // clocks other than the free-running clock will require synchronization. For usage, refer to Vivado Design Suite + // User Guide: Programming and Debugging (UG908) + gtwizard_ultrascale_0_vio_0 gtwizard_ultrascale_0_vio_0_inst ( + .clk (hb_gtwiz_reset_clk_freerun_buf_int) + ,.probe_in0 (link_status_out) + ,.probe_in1 (link_down_latched_out) + ,.probe_in2 (init_done_int) + ,.probe_in3 (init_retry_ctr_int) + ,.probe_in4 (txpmaresetdone_vio_sync) + ,.probe_in5 (rxpmaresetdone_vio_sync) + ,.probe_in6 (gtwiz_reset_tx_done_vio_sync) + ,.probe_in7 (gtwiz_reset_rx_done_vio_sync) + ,.probe_in8 (gtwiz_buffbypass_rx_done_vio_sync) + ,.probe_in9 (gtwiz_buffbypass_rx_error_vio_sync) + ,.probe_in10 (rxprbserr_vio_sync) + ,.probe_in11 (rxprbslocked_vio_sync) + + ,.probe_in12 (tx_aligned) //Added for the phase aligner exdsg (EBSM) + ,.probe_in13 (tx_pi_phase) //Added for the phase aligner exdsg (EBSM) + ,.probe_in14 (tx_fifo_fill_pd) //Added for the phase aligner exdsg (EBSM) + ,.probe_in15 (rx_locked_vio_sync) //Added to check receiver is properly word locked (EBSM) + + ,.probe_out0 (hb_gtwiz_reset_all_vio_int) + ,.probe_out1 (hb0_gtwiz_reset_tx_pll_and_datapath_int) + ,.probe_out2 (hb0_gtwiz_reset_tx_datapath_int) + ,.probe_out3 (hb_gtwiz_reset_rx_pll_and_datapath_vio_int) + ,.probe_out4 (hb_gtwiz_reset_rx_datapath_vio_int) + ,.probe_out5 (link_down_latched_reset_vio_int) + ,.probe_out6 (rxcdrreset_int) + ,.probe_out7 (loopback_int) + ,.probe_out8 (txprbssel_vio_async) + ,.probe_out9 (rxprbssel_vio_async) + ,.probe_out10 (txprbsforceerr_vio_async) + ,.probe_out11 (rxprbscntreset_vio_async) + + ,.probe_out12 (tx_ui_align_calib) //Added for the phase aligner exdsg (EBSM) + ,.probe_out13 (tx_fine_realign) //Added for the phase aligner exdsg (EBSM) + ,.probe_out14 (tx_pi_phase_calib) //Added for the phase aligner exdsg (EBSM) + ,.probe_out15 (tx_fifo_fill_pd_max) //Added for the phase aligner exdsg (EBSM) + ,.probe_out16 (tx_data_sel_vio_async) //Added for the phase aligner exdsg (EBSM) + ); + + // =================================================================================================================== + // EXAMPLE WRAPPER INSTANCE + // =================================================================================================================== + + // Instantiate the example design wrapper, mapping its enabled ports to per-channel internal signals and example + // resources as appropriate + gtwizard_ultrascale_0_example_wrapper example_wrapper_inst ( + .gthrxn_in (gthrxn_int) + ,.gthrxp_in (gthrxp_int) + ,.gthtxn_out (gthtxn_int) + ,.gthtxp_out (gthtxp_int) + ,.gtwiz_userclk_tx_reset_in (gtwiz_userclk_tx_reset_int) + ,.gtwiz_userclk_tx_srcclk_out (gtwiz_userclk_tx_srcclk_int) + ,.gtwiz_userclk_tx_usrclk_out (gtwiz_userclk_tx_usrclk_int) + ,.gtwiz_userclk_tx_usrclk2_out (gtwiz_userclk_tx_usrclk2_int) + ,.gtwiz_userclk_tx_active_out (gtwiz_userclk_tx_active_int) + ,.gtwiz_userclk_rx_reset_in (gtwiz_userclk_rx_reset_int) + ,.gtwiz_userclk_rx_srcclk_out (gtwiz_userclk_rx_srcclk_int) + ,.gtwiz_userclk_rx_usrclk_out (gtwiz_userclk_rx_usrclk_int) + ,.gtwiz_userclk_rx_usrclk2_out (gtwiz_userclk_rx_usrclk2_int) + ,.gtwiz_userclk_rx_active_out (gtwiz_userclk_rx_active_int) + ,.gtwiz_buffbypass_rx_reset_in (gtwiz_buffbypass_rx_reset_int) + ,.gtwiz_buffbypass_rx_start_user_in (gtwiz_buffbypass_rx_start_user_int) + ,.gtwiz_buffbypass_rx_done_out (gtwiz_buffbypass_rx_done_int) + ,.gtwiz_buffbypass_rx_error_out (gtwiz_buffbypass_rx_error_int) + ,.gtwiz_reset_clk_freerun_in ({1{hb_gtwiz_reset_clk_freerun_buf_int}}) + ,.gtwiz_reset_all_in ({1{hb_gtwiz_reset_all_int}}) + ,.gtwiz_reset_tx_pll_and_datapath_in (gtwiz_reset_tx_pll_and_datapath_int) + ,.gtwiz_reset_tx_datapath_in (gtwiz_reset_tx_datapath_int) + ,.gtwiz_reset_rx_pll_and_datapath_in ({1{hb_gtwiz_reset_rx_pll_and_datapath_int}}) + ,.gtwiz_reset_rx_datapath_in ({1{hb_gtwiz_reset_rx_datapath_int}}) + ,.gtwiz_reset_rx_cdr_stable_out (gtwiz_reset_rx_cdr_stable_int) + ,.gtwiz_reset_tx_done_out (gtwiz_reset_tx_done_int) + ,.gtwiz_reset_rx_done_out (gtwiz_reset_rx_done_int) + ,.gtwiz_userdata_tx_in (gtwiz_userdata_tx_int) + ,.gtwiz_userdata_rx_out (gtwiz_userdata_rx_int) + ,.gtrefclk00_in (gtrefclk00_int) + ,.gtrefclk01_in (gtrefclk01_int) + ,.qpll0outclk_out (qpll0outclk_int) + ,.qpll0outrefclk_out (qpll0outrefclk_int) + ,.qpll1outclk_out (qpll1outclk_int) + ,.qpll1outrefclk_out (qpll1outrefclk_int) + ,.drpaddr_in (drpaddr_int) + ,.drpclk_in (hb_gtwiz_reset_clk_freerun_buf_int)//(drpclk_int) (EBSM) + ,.drpdi_in (drpdi_int) + ,.drpen_in (drpen_int) + ,.drpwe_in (drpwe_int) + ,.loopback_in (loopback_int) + ,.rxcdrreset_in (rxcdrreset_int) + ,.rxpolarity_in (rxpolarity_int) + ,.rxprbscntreset_in (rxprbscntreset_int) + ,.rxprbssel_in (rxprbssel_int) + ,.rxslide_in (rxslide_int) + ,.txpippmen_in (txpippmen_int) + ,.txpippmovrden_in (txpippmovrden_int) + ,.txpippmpd_in (txpippmpd_int) + ,.txpippmsel_in (txpippmsel_int) + ,.txpippmstepsize_in (txpippmstepsize_int) + ,.txpolarity_in (txpolarity_int) + ,.txprbsforceerr_in (txprbsforceerr_int) + ,.txprbssel_in (txprbssel_int) + ,.drpdo_out (drpdo_int) + ,.drprdy_out (drprdy_int) + ,.rxcdrlock_out (rxcdrlock_int) + ,.rxoutclk_out (rxoutclk_int) + ,.rxoutclkpcs_out (rxoutclkpcs_int) + ,.rxpmaresetdone_out (rxpmaresetdone_int) + ,.rxprbserr_out (rxprbserr_int) + ,.rxprbslocked_out (rxprbslocked_int) + ,.rxrecclkout_out (rxrecclkout_int) + ,.txbufstatus_out (txbufstatus_int) + ,.txoutclk_out (txoutclk_int) + ,.txoutclkfabric_out (txoutclkfabric_int) + ,.txoutclkpcs_out (txoutclkpcs_int) + ,.txpmaresetdone_out (txpmaresetdone_int) +); + + wire tx_ps_done; + + //============================================================================== + // Phase aligner instantiation + //============================================================================== + tx_phase_aligner tx_phase_aligner_inst( + //============================================================================== + // User control/monitor ports + //============================================================================== + // Clock / reset + .clk_sys_i(hb_gtwiz_reset_clk_freerun_buf_int) // system clock input + ,.reset_i(reset_tx_phase_aligner) // active high sync. reset + + // Top level interface + ,.tx_aligned_o(tx_aligned) // Use it as a reset for the user transmitter logic + + // Config (for different flavours) + ,.tx_pi_phase_calib_i(tx_pi_phase_calib) // previous calibrated tx pi phase (tx_pi_phase_o after first reset calibration) + ,.tx_ui_align_calib_i(tx_ui_align_calib) // align with previous calibrated tx pi phase + ,.tx_fifo_fill_pd_max_i(tx_fifo_fill_pd_max) // phase detector accumulated max output, sets precision of phase detector + // this is supposedly a static signal, this block shall be reset whenever this signal changes + // the time for each phase detection after a clear is given by tx_fifo_fill_pd_max_i * PERIOD_clk_txusr_i + ,.tx_fine_realign_i(tx_fine_realign) + + // It is only valid to re-shift clock once aligned (tx_aligned_o = '1') + ,.ps_strobe_i(1'b0) + ,.ps_inc_ndec_i(1'b0) + ,.ps_phase_step_i(4'h0) + ,.ps_done_o(tx_ps_done) + + // Tx PI phase value + ,.tx_pi_phase_o(tx_pi_phase) // phase shift accumulated + + // Tx fifo fill level phase detector + ,.tx_fifo_fill_pd_o(tx_fifo_fill_pd) // phase detector output, when aligned this value should be close to (0x2_0000) + + //============================================================================== + // MGT ports + //============================================================================== + ,.clk_txusr_i(hb0_gtwiz_userclk_tx_usrclk2_int) // txusr2clk + // Tx fifo fill level - see Xilinx transceiver User Guide for more information + ,.tx_fifo_fill_level_i(txbufstatus_int[0]) // connect to txbufstatus[0] + + // Transmitter PI ports - see Xilinx transceiver User Guide for more information + // obs1: all txpi ports shall be connected to the transceiver even when using this block in DRP-mode + ,.txpippmen_o(txpippmen_int) // enable tx phase interpolator controller + ,.txpippmovrden_o(txpippmovrden_int) // enable DRP control of tx phase interpolator + ,.txpippmsel_o(txpippmsel_int) // set to 1 when using tx pi ppm controler + ,.txpippmpd_o(txpippmpd_int) // power down transmitter phase interpolator + ,.txpippmstepsize_o(txpippmstepsize_int) // sets step size and direction of phase shift with port control PI code stepping mode + + // DRP interface - see Xilinx transceiver User Guide for more information + // obs2: connect clk_sys_i to drpclk + // obs3: if using this block in port-mode, DRP output can be left floating and input connected to '0' + ,.drpaddr_o(drpaddr_int) // For devices with a 10-bit DRP address interface, connect MSB to '0' + ,.drpen_o(drpen_int) // DRP enable transaction + ,.drpdi_o(drpdi_int) // DRP data write + ,.drprdy_i(drprdy_int) // DRP finished transaction + ,.drpdo_i(drpdo_int) // DRP data read; not used nowadays, write only interface + ,.drpwe_o(drpwe_int) // DRP write enable + ); + +endmodule diff --git a/source/synth/imports/example_design/gtwizard_ultrascale_0_example_wrapper.v b/source/synth/imports/example_design/gtwizard_ultrascale_0_example_wrapper.v new file mode 100644 index 0000000..1773680 --- /dev/null +++ b/source/synth/imports/example_design/gtwizard_ultrascale_0_example_wrapper.v @@ -0,0 +1,238 @@ +//------------------------------------------------------------------------------ +// (c) Copyright 2013-2015 Xilinx, Inc. All rights reserved. +// +// This file contains confidential and proprietary information +// of Xilinx, Inc. and is protected under U.S. and +// international copyright and other intellectual property +// laws. +// +// DISCLAIMER +// This disclaimer is not a license and does not grant any +// rights to the materials distributed herewith. Except as +// otherwise provided in a valid license issued to you by +// Xilinx, and to the maximum extent permitted by applicable +// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +// (2) Xilinx shall not be liable (whether in contract or tort, +// including negligence, or under any other theory of +// liability) for any loss or damage of any kind or nature +// related to, arising under or in connection with these +// materials, including for any direct, or any indirect, +// special, incidental, or consequential loss or damage +// (including loss of data, profits, goodwill, or any type of +// loss or damage suffered as a result of any action brought +// by a third party) even if such damage or loss was +// reasonably foreseeable or Xilinx had been advised of the +// possibility of the same. +// +// CRITICAL APPLICATIONS +// Xilinx products are not designed or intended to be fail- +// safe, or for use in any application requiring fail-safe +// performance, such as life-support or safety devices or +// systems, Class III medical devices, nuclear facilities, +// applications related to the deployment of airbags, or any +// other applications that could lead to death, personal +// injury, or severe property or environmental damage +// (individually and collectively, "Critical +// Applications"). Customer assumes the sole risk and +// liability of any use of Xilinx products in Critical +// Applications, subject only to applicable laws and +// regulations governing limitations on product liability. +// +// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +// PART OF THIS FILE AT ALL TIMES. +//------------------------------------------------------------------------------ + + +`timescale 1ps/1ps + +// ===================================================================================================================== +// This example design wrapper module instantiates the core and any helper blocks which the user chose to exclude from +// the core, connects them as appropriate, and maps enabled ports +// ===================================================================================================================== + +module gtwizard_ultrascale_0_example_wrapper ( + input wire [0:0] gthrxn_in + ,input wire [0:0] gthrxp_in + ,output wire [0:0] gthtxn_out + ,output wire [0:0] gthtxp_out + ,input wire [0:0] gtwiz_userclk_tx_reset_in + ,output wire [0:0] gtwiz_userclk_tx_srcclk_out + ,output wire [0:0] gtwiz_userclk_tx_usrclk_out + ,output wire [0:0] gtwiz_userclk_tx_usrclk2_out + ,output wire [0:0] gtwiz_userclk_tx_active_out + ,input wire [0:0] gtwiz_userclk_rx_reset_in + ,output wire [0:0] gtwiz_userclk_rx_srcclk_out + ,output wire [0:0] gtwiz_userclk_rx_usrclk_out + ,output wire [0:0] gtwiz_userclk_rx_usrclk2_out + ,output wire [0:0] gtwiz_userclk_rx_active_out + ,input wire [0:0] gtwiz_buffbypass_rx_reset_in + ,input wire [0:0] gtwiz_buffbypass_rx_start_user_in + ,output wire [0:0] gtwiz_buffbypass_rx_done_out + ,output wire [0:0] gtwiz_buffbypass_rx_error_out + ,input wire [0:0] gtwiz_reset_clk_freerun_in + ,input wire [0:0] gtwiz_reset_all_in + ,input wire [0:0] gtwiz_reset_tx_pll_and_datapath_in + ,input wire [0:0] gtwiz_reset_tx_datapath_in + ,input wire [0:0] gtwiz_reset_rx_pll_and_datapath_in + ,input wire [0:0] gtwiz_reset_rx_datapath_in + ,output wire [0:0] gtwiz_reset_rx_cdr_stable_out + ,output wire [0:0] gtwiz_reset_tx_done_out + ,output wire [0:0] gtwiz_reset_rx_done_out + ,input wire [31:0] gtwiz_userdata_tx_in + ,output wire [31:0] gtwiz_userdata_rx_out + ,input wire [0:0] gtrefclk00_in + ,input wire [0:0] gtrefclk01_in + ,output wire [0:0] qpll0outclk_out + ,output wire [0:0] qpll0outrefclk_out + ,output wire [0:0] qpll1outclk_out + ,output wire [0:0] qpll1outrefclk_out + ,input wire [8:0] drpaddr_in + ,input wire [0:0] drpclk_in + ,input wire [15:0] drpdi_in + ,input wire [0:0] drpen_in + ,input wire [0:0] drpwe_in + ,input wire [2:0] loopback_in + ,input wire [0:0] rxcdrreset_in + ,input wire [0:0] rxpolarity_in + ,input wire [0:0] rxprbscntreset_in + ,input wire [3:0] rxprbssel_in + ,input wire [0:0] rxslide_in + ,input wire [0:0] txpippmen_in + ,input wire [0:0] txpippmovrden_in + ,input wire [0:0] txpippmpd_in + ,input wire [0:0] txpippmsel_in + ,input wire [4:0] txpippmstepsize_in + ,input wire [0:0] txpolarity_in + ,input wire [0:0] txprbsforceerr_in + ,input wire [3:0] txprbssel_in + ,output wire [15:0] drpdo_out + ,output wire [0:0] drprdy_out + ,output wire [0:0] rxcdrlock_out + ,output wire [0:0] rxoutclk_out + ,output wire [0:0] rxoutclkpcs_out + ,output wire [0:0] rxpmaresetdone_out + ,output wire [0:0] rxprbserr_out + ,output wire [0:0] rxprbslocked_out + ,output wire [0:0] rxrecclkout_out + ,output wire [1:0] txbufstatus_out + ,output wire [0:0] txoutclk_out + ,output wire [0:0] txoutclkfabric_out + ,output wire [0:0] txoutclkpcs_out + ,output wire [0:0] txpmaresetdone_out +); + + + // =================================================================================================================== + // PARAMETERS AND FUNCTIONS + // =================================================================================================================== + + // Declare and initialize local parameters and functions used for HDL generation + localparam [191:0] P_CHANNEL_ENABLE = 192'b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000; + `include "gtwizard_ultrascale_0_example_wrapper_functions.vh" + localparam integer P_TX_MASTER_CH_PACKED_IDX = f_calc_pk_mc_idx(11); + localparam integer P_RX_MASTER_CH_PACKED_IDX = f_calc_pk_mc_idx(11); + + + // =================================================================================================================== + // HELPER BLOCKS + // =================================================================================================================== + + // Any helper blocks which the user chose to exclude from the core will appear below. In addition, some signal + // assignments related to optionally-enabled ports may appear below. + + wire [0:0] txoutclk_int; + + // Required assignment to expose the TXOUTCLK port per user request + assign txoutclk_out = txoutclk_int; + + wire [0:0] rxoutclk_int; + + // Required assignment to expose the RXOUTCLK port per user request + assign rxoutclk_out = rxoutclk_int; + wire [0:0] rxcdrlock_int; + + // Required assignment to expose the RXCDRLOCK port per user request + assign rxcdrlock_out = rxcdrlock_int; + + + // =================================================================================================================== + // CORE INSTANCE + // =================================================================================================================== + + // Instantiate the core, mapping its enabled ports to example design ports and helper blocks as appropriate + gtwizard_ultrascale_0 gtwizard_ultrascale_0_inst ( + .gthrxn_in (gthrxn_in) + ,.gthrxp_in (gthrxp_in) + ,.gthtxn_out (gthtxn_out) + ,.gthtxp_out (gthtxp_out) + ,.gtwiz_userclk_tx_reset_in (gtwiz_userclk_tx_reset_in) + ,.gtwiz_userclk_tx_srcclk_out (gtwiz_userclk_tx_srcclk_out) + ,.gtwiz_userclk_tx_usrclk_out (gtwiz_userclk_tx_usrclk_out) + ,.gtwiz_userclk_tx_usrclk2_out (gtwiz_userclk_tx_usrclk2_out) + ,.gtwiz_userclk_tx_active_out (gtwiz_userclk_tx_active_out) + ,.gtwiz_userclk_rx_reset_in (gtwiz_userclk_rx_reset_in) + ,.gtwiz_userclk_rx_srcclk_out (gtwiz_userclk_rx_srcclk_out) + ,.gtwiz_userclk_rx_usrclk_out (gtwiz_userclk_rx_usrclk_out) + ,.gtwiz_userclk_rx_usrclk2_out (gtwiz_userclk_rx_usrclk2_out) + ,.gtwiz_userclk_rx_active_out (gtwiz_userclk_rx_active_out) + ,.gtwiz_buffbypass_rx_reset_in (gtwiz_buffbypass_rx_reset_in) + ,.gtwiz_buffbypass_rx_start_user_in (gtwiz_buffbypass_rx_start_user_in) + ,.gtwiz_buffbypass_rx_done_out (gtwiz_buffbypass_rx_done_out) + ,.gtwiz_buffbypass_rx_error_out (gtwiz_buffbypass_rx_error_out) + ,.gtwiz_reset_clk_freerun_in (gtwiz_reset_clk_freerun_in) + ,.gtwiz_reset_all_in (gtwiz_reset_all_in) + ,.gtwiz_reset_tx_pll_and_datapath_in (gtwiz_reset_tx_pll_and_datapath_in) + ,.gtwiz_reset_tx_datapath_in (gtwiz_reset_tx_datapath_in) + ,.gtwiz_reset_rx_pll_and_datapath_in (gtwiz_reset_rx_pll_and_datapath_in) + ,.gtwiz_reset_rx_datapath_in (gtwiz_reset_rx_datapath_in) + ,.gtwiz_reset_rx_cdr_stable_out (gtwiz_reset_rx_cdr_stable_out) + ,.gtwiz_reset_tx_done_out (gtwiz_reset_tx_done_out) + ,.gtwiz_reset_rx_done_out (gtwiz_reset_rx_done_out) + ,.gtwiz_userdata_tx_in (gtwiz_userdata_tx_in) + ,.gtwiz_userdata_rx_out (gtwiz_userdata_rx_out) + ,.gtrefclk00_in (gtrefclk00_in) + ,.gtrefclk01_in (gtrefclk01_in) + ,.qpll0outclk_out (qpll0outclk_out) + ,.qpll0outrefclk_out (qpll0outrefclk_out) + ,.qpll1outclk_out (qpll1outclk_out) + ,.qpll1outrefclk_out (qpll1outrefclk_out) + ,.drpaddr_in (drpaddr_in) + ,.drpclk_in (drpclk_in) + ,.drpdi_in (drpdi_in) + ,.drpen_in (drpen_in) + ,.drpwe_in (drpwe_in) + ,.loopback_in (loopback_in) + ,.rxcdrreset_in (rxcdrreset_in) + ,.rxpolarity_in (rxpolarity_in) + ,.rxprbscntreset_in (rxprbscntreset_in) + ,.rxprbssel_in (rxprbssel_in) + ,.rxslide_in (rxslide_in) + ,.txpippmen_in (txpippmen_in) + ,.txpippmovrden_in (txpippmovrden_in) + ,.txpippmpd_in (txpippmpd_in) + ,.txpippmsel_in (txpippmsel_in) + ,.txpippmstepsize_in (txpippmstepsize_in) + ,.txpolarity_in (txpolarity_in) + ,.txprbsforceerr_in (txprbsforceerr_in) + ,.txprbssel_in (txprbssel_in) + ,.drpdo_out (drpdo_out) + ,.drprdy_out (drprdy_out) + ,.rxcdrlock_out (rxcdrlock_int) + ,.rxoutclk_out (rxoutclk_int) + ,.rxoutclkpcs_out (rxoutclkpcs_out) + ,.rxpmaresetdone_out (rxpmaresetdone_out) + ,.rxprbserr_out (rxprbserr_out) + ,.rxprbslocked_out (rxprbslocked_out) + ,.rxrecclkout_out (rxrecclkout_out) + ,.txbufstatus_out (txbufstatus_out) + ,.txoutclk_out (txoutclk_int) + ,.txoutclkfabric_out (txoutclkfabric_out) + ,.txoutclkpcs_out (txoutclkpcs_out) + ,.txpmaresetdone_out (txpmaresetdone_out) +); + +endmodule diff --git a/source/synth/imports/example_design/gtwizard_ultrascale_0_example_wrapper_functions.vh b/source/synth/imports/example_design/gtwizard_ultrascale_0_example_wrapper_functions.vh new file mode 100644 index 0000000..66767a7 --- /dev/null +++ b/source/synth/imports/example_design/gtwizard_ultrascale_0_example_wrapper_functions.vh @@ -0,0 +1,241 @@ +//------------------------------------------------------------------------------ +// (c) Copyright 2013-2015 Xilinx, Inc. All rights reserved. +// +// This file contains confidential and proprietary information +// of Xilinx, Inc. and is protected under U.S. and +// international copyright and other intellectual property +// laws. +// +// DISCLAIMER +// This disclaimer is not a license and does not grant any +// rights to the materials distributed herewith. Except as +// otherwise provided in a valid license issued to you by +// Xilinx, and to the maximum extent permitted by applicable +// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +// (2) Xilinx shall not be liable (whether in contract or tort, +// including negligence, or under any other theory of +// liability) for any loss or damage of any kind or nature +// related to, arising under or in connection with these +// materials, including for any direct, or any indirect, +// special, incidental, or consequential loss or damage +// (including loss of data, profits, goodwill, or any type of +// loss or damage suffered as a result of any action brought +// by a third party) even if such damage or loss was +// reasonably foreseeable or Xilinx had been advised of the +// possibility of the same. +// +// CRITICAL APPLICATIONS +// Xilinx products are not designed or intended to be fail- +// safe, or for use in any application requiring fail-safe +// performance, such as life-support or safety devices or +// systems, Class III medical devices, nuclear facilities, +// applications related to the deployment of airbags, or any +// other applications that could lead to death, personal +// injury, or severe property or environmental damage +// (individually and collectively, "Critical +// Applications"). Customer assumes the sole risk and +// liability of any use of Xilinx products in Critical +// Applications, subject only to applicable laws and +// regulations governing limitations on product liability. +// +// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +// PART OF THIS FILE AT ALL TIMES. +//------------------------------------------------------------------------------ + + +// ===================================================================================================================== +// This file contains functions available for example design HDL generation as required +// ===================================================================================================================== + +// Function to populate a bit mapping of enabled transceiver common blocks to transceiver quads +function [47:0] f_pop_cm_en ( + input integer in_null +); +begin : main_f_pop_cm_en + integer i; + reg [47:0] tmp; + for (i = 0; i < 192; i = i + 4) begin + if ((P_CHANNEL_ENABLE[i] == 1'b1) || + (P_CHANNEL_ENABLE[i+1] == 1'b1) || + (P_CHANNEL_ENABLE[i+2] == 1'b1) || + (P_CHANNEL_ENABLE[i+3] == 1'b1)) + tmp[i/4] = 1'b1; + else + tmp[i/4] = 1'b0; + end + f_pop_cm_en = tmp; +end +endfunction + +// Function to calculate a pointer to a master channel's packed index +function integer f_calc_pk_mc_idx ( + input integer idx_mc +); +begin : main_f_calc_pk_mc_idx + integer i, j; + integer tmp; + j = 0; + for (i = 0; i < 192; i = i + 1) begin + if (P_CHANNEL_ENABLE[i] == 1'b1) begin + if (i == idx_mc) + tmp = j; + else + j = j + 1; + end + end + f_calc_pk_mc_idx = tmp; +end +endfunction + +// Function to calculate the upper bound of a transceiver common-related signal within a packed vector, for a given +// signal width and unpacked common index +function integer f_ub_cm ( + input integer width, + input integer index +); +begin : main_f_ub_cm + integer i, j; + j = 0; + for (i = 0; i <= index; i = i + 4) begin + if (P_CHANNEL_ENABLE[i] == 1'b1 || + P_CHANNEL_ENABLE[i+1] == 1'b1 || + P_CHANNEL_ENABLE[i+2] == 1'b1 || + P_CHANNEL_ENABLE[i+3] == 1'b1) + j = j + 1; + end + f_ub_cm = (width * j) - 1; +end +endfunction + +// Function to calculate the lower bound of a transceiver common-related signal within a packed vector, for a given +// signal width and unpacked common index +function integer f_lb_cm ( + input integer width, + input integer index +); +begin : main_f_lb_cm + integer i, j; + j = 0; + for (i = 0; i < index; i = i + 4) begin + if (P_CHANNEL_ENABLE[i] == 1'b1 || + P_CHANNEL_ENABLE[i+1] == 1'b1 || + P_CHANNEL_ENABLE[i+2] == 1'b1 || + P_CHANNEL_ENABLE[i+3] == 1'b1) + j = j + 1; + end + f_lb_cm = (width * j); +end +endfunction + +// Function to calculate the packed vector index of a transceiver common, provided the packed vector index of the +// associated transceiver channel +function integer f_idx_cm ( + input integer index +); +begin : main_f_idx_cm + integer i, j, k, flag, result; + j = 0; + k = 0; + flag = 0; + for (i = 0; (i < 192) && (flag == 0); i = i + 4) begin + if (P_CHANNEL_ENABLE[i] == 1'b1 || + P_CHANNEL_ENABLE[i+1] == 1'b1 || + P_CHANNEL_ENABLE[i+2] == 1'b1 || + P_CHANNEL_ENABLE[i+3] == 1'b1) begin + k = k + 1; + if (P_CHANNEL_ENABLE[i+3] == 1'b1) + j = j + 1; + if (P_CHANNEL_ENABLE[i+2] == 1'b1) + j = j + 1; + if (P_CHANNEL_ENABLE[i+1] == 1'b1) + j = j + 1; + if (P_CHANNEL_ENABLE[i] == 1'b1) + j = j + 1; + end + + if (j >= (index + 1)) begin + flag = 1; + result = k; + end + end + f_idx_cm = result - 1; +end +endfunction + +// Function to calculate the packed vector index of the upper bound transceiver channel which is associated with the +// provided transceiver common packed vector index +function integer f_idx_ch_ub ( + input integer index +); +begin : main_f_idx_ch_ub + integer i, j, k, flag, result; + j = 0; + k = 0; + flag = 0; + for (i = 0; (i < 192) && (flag == 0); i = i + 4) begin + + if (P_CHANNEL_ENABLE[i] == 1'b1 || + P_CHANNEL_ENABLE[i+1] == 1'b1 || + P_CHANNEL_ENABLE[i+2] == 1'b1 || + P_CHANNEL_ENABLE[i+3] == 1'b1) begin + k = k + 1; + if (P_CHANNEL_ENABLE[i] == 1'b1) + j = j + 1; + if (P_CHANNEL_ENABLE[i+1] == 1'b1) + j = j + 1; + if (P_CHANNEL_ENABLE[i+2] == 1'b1) + j = j + 1; + if (P_CHANNEL_ENABLE[i+3] == 1'b1) + j = j + 1; + if (k == index + 1) begin + flag = 1; + result = j; + end + end + + end + f_idx_ch_ub = result - 1; +end +endfunction + +// Function to calculate the packed vector index of the lower bound transceiver channel which is associated with the +// provided transceiver common packed vector index +function integer f_idx_ch_lb ( + input integer index +); +begin : main_f_idx_ch_lb + integer i, j, k, flag, result; + j = 0; + k = 0; + flag = 0; + for (i = 0; (i < 192) && (flag == 0); i = i + 4) begin + + if (P_CHANNEL_ENABLE[i] == 1'b1 || + P_CHANNEL_ENABLE[i+1] == 1'b1 || + P_CHANNEL_ENABLE[i+2] == 1'b1 || + P_CHANNEL_ENABLE[i+3] == 1'b1) begin + k = k + 1; + if (k == index + 1) begin + flag = 1; + result = j + 1; + end + else begin + if (P_CHANNEL_ENABLE[i] == 1'b1) + j = j + 1; + if (P_CHANNEL_ENABLE[i+1] == 1'b1) + j = j + 1; + if (P_CHANNEL_ENABLE[i+2] == 1'b1) + j = j + 1; + if (P_CHANNEL_ENABLE[i+3] == 1'b1) + j = j + 1; + end + end + + end + f_idx_ch_lb = result - 1; +end +endfunction diff --git a/source/synth/imports/example_design/gtwizard_ultrascale_0_prbs_any.v b/source/synth/imports/example_design/gtwizard_ultrascale_0_prbs_any.v new file mode 100644 index 0000000..c7e4f7b --- /dev/null +++ b/source/synth/imports/example_design/gtwizard_ultrascale_0_prbs_any.v @@ -0,0 +1,195 @@ +//------------------------------------------------------------------------------ +// File Name: PRBS_ANY.v +// Version: 1.0 +// Date: 6-jul-10 +//------------------------------------------------------------------------------ +//------------------------------------------------------------------------------ +// (c) Copyright 2013-2015 Xilinx, Inc. All rights reserved. +// +// This file contains confidential and proprietary information +// of Xilinx, Inc. and is protected under U.S. and +// international copyright and other intellectual property +// laws. +// +// DISCLAIMER +// This disclaimer is not a license and does not grant any +// rights to the materials distributed herewith. Except as +// otherwise provided in a valid license issued to you by +// Xilinx, and to the maximum extent permitted by applicable +// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +// (2) Xilinx shall not be liable (whether in contract or tort, +// including negligence, or under any other theory of +// liability) for any loss or damage of any kind or nature +// related to, arising under or in connection with these +// materials, including for any direct, or any indirect, +// special, incidental, or consequential loss or damage +// (including loss of data, profits, goodwill, or any type of +// loss or damage suffered as a result of any action brought +// by a third party) even if such damage or loss was +// reasonably foreseeable or Xilinx had been advised of the +// possibility of the same. +// +// CRITICAL APPLICATIONS +// Xilinx products are not designed or intended to be fail- +// safe, or for use in any application requiring fail-safe +// performance, such as life-support or safety devices or +// systems, Class III medical devices, nuclear facilities, +// applications related to the deployment of airbags, or any +// other applications that could lead to death, personal +// injury, or severe property or environmental damage +// (individually and collectively, "Critical +// Applications"). Customer assumes the sole risk and +// liability of any use of Xilinx products in Critical +// Applications, subject only to applicable laws and +// regulations governing limitations on product liability. +// +// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +// PART OF THIS FILE AT ALL TIMES. +//------------------------------------------------------------------------------ + +//-------------------------------------------------------------------------- +// DESCRIPTION +//-------------------------------------------------------------------------- +// This module generates or check a PRBS pattern. The following table shows how +// to set the PARAMETERS for compliance to ITU-T Recommendation O.150 Section 5. +// +// When the CHK_MODE is "false", it uses a LFSR strucure to generate the +// PRBS pattern. +// When the CHK_MODE is "true", the incoming data are loaded into prbs registers +// and compared with the locally generated PRBS +// +//-------------------------------------------------------------------------- +// PARAMETERS +//-------------------------------------------------------------------------- +// CHK_MODE : true => check mode +// false => generate mode +// INV_PATTERN : true : invert prbs pattern +// in "generate mode" the generated prbs is inverted bit-wise at outputs +// in "check mode" the input data are inverted before processing +// POLY_LENGHT : length of the polynomial (= number of shift register stages) +// POLY_TAP : intermediate stage that is xor-ed with the last stage to generate to next prbs bit +// NBITS : bus size of DATA_IN and DATA_OUT +// +//-------------------------------------------------------------------------- +// NOTES +//-------------------------------------------------------------------------- +// +// +// Set paramaters to the following values for a ITU-T compliant PRBS +//------------------------------------------------------------------------------ +// POLY_LENGHT POLY_TAP INV_PATTERN || nbr of bit seq. max 0 feedback +// || stages length sequence stages +//------------------------------------------------------------------------------ +// 7 6 false || 7 127 6 ni 6, 7 (*) +// 9 5 false || 9 511 8 ni 5, 9 +// 11 9 false || 11 2047 10 ni 9,11 +// 15 14 true || 15 32767 15 i 14,15 +// 20 3 false || 20 1048575 19 ni 3,20 +// 23 18 true || 23 8388607 23 i 18,23 +// 29 27 true || 29 536870911 29 i 27,29 +// 31 28 true || 31 2147483647 31 i 28,31 +// +// i=inverted, ni= non-inverted +// (*) non standard +//---------------------------------------------------------------------------- +// +// In the generated parallel PRBS, LSB is the first generated bit, for example +// if the PRBS serial stream is : 000001111011... then +// the generated PRBS with a parallelism of 3 bit becomes: +// data_out(2) = 0 1 1 1 ... +// data_out(1) = 0 0 1 1 ... +// data_out(0) = 0 0 1 0 ... +// In the received parallel PRBS, LSB is oldest bit received +// +// RESET pin is not needed for power-on reset : all registers are properly inizialized +// in the source code. +// +//------------------------------------------------------------------------------ +// PINS DESCRIPTION +//------------------------------------------------------------------------------ +// +// RST : in : syncronous reset active high +// CLK : in : system clock +// DATA_IN : in : inject error (in generate mode) +// data to be checked (in check mode) +// EN : in : enable/pause pattern generation/check +// DATA_OUT : out: generated prbs pattern (in generate mode) +// error found (in check mode) +// +//------------------------------------------------------------------------------------------------- +// History: +// Version : 1.0 +// Date : 6-jul-10 +// Author : Daniele Riccardi +// Description: First release +// +// Subsequent cosmetic modifications by Xilinx for integration into the UltraScale FPGAs +// Transceivers Wizard example design. +//------------------------------------------------------------------------------------------------- + +`timescale 1ps/1ps + +module gtwizard_ultrascale_0_prbs_any(RST, CLK, DATA_IN, EN, DATA_OUT); + + //-------------------------------------------- + // Configuration parameters + //-------------------------------------------- + parameter CHK_MODE = 0; + parameter INV_PATTERN = 0; + parameter POLY_LENGHT = 31; + parameter POLY_TAP = 3; + parameter NBITS = 16; + + //-------------------------------------------- + // Input/Outputs + //-------------------------------------------- + + input wire RST; + input wire CLK; + input wire [NBITS - 1:0] DATA_IN; + input wire EN; + output reg [NBITS - 1:0] DATA_OUT = {NBITS{1'b1}}; + + //-------------------------------------------- + // Internal variables + //-------------------------------------------- + + wire [1:POLY_LENGHT] prbs[NBITS:0]; + wire [NBITS - 1:0] data_in_i; + wire [NBITS - 1:0] prbs_xor_a; + wire [NBITS - 1:0] prbs_xor_b; + wire [NBITS:1] prbs_msb; + reg [1:POLY_LENGHT]prbs_reg = {(POLY_LENGHT){1'b1}}; + + //-------------------------------------------- + // Implementation + //-------------------------------------------- + + assign data_in_i = INV_PATTERN == 0 ? DATA_IN : ( ~DATA_IN); + assign prbs[0] = prbs_reg; + + genvar I; + generate for (I=0; IDependencies:\n +--! +--! +--! References:\n +--! \n +--! +--! +--! Modified by:\n +--! Author: Eduardo Brandao de Souza Mendes +------------------------------------------------------------------------------- +--! \n\nLast changes:\n +--! 22\05\2018 - EBSM - Created\n +--! +------------------------------------------------------------------------------- +--! @todo - \n +--! \n +-- +------------------------------------------------------------------------------- + +--============================================================================== +--! Entity declaration for rx_word_aligner +--============================================================================== +entity rx_word_aligner is + generic( + g_HDR_GOOD_TO_LOCK : integer := 64; --! number of consecutive good headers to lock + g_HDR_BAD_TO_UNLOCK : integer := 4; --! number of consecutive bad headers to unlock + g_DATA_WORD_WIDTH : integer := 32; --! rx data word width + g_SKIP_PULSE_DURATION : integer := 2; --! duration of the skip pulse (for K7, it is one clock cycle, for KU it is 2) + g_WAIT_BETWEEN_SKIP : integer := 32 --! minimum number of clock cycles (rxusrclk2) to wait between rx_slide pulses + ); + port ( + clk_rxusr_i : in std_logic; --! rxusrclk2 + reset_i : in std_logic; --! active high sync. reset + enable_i : in std_logic; --! control scheduling + header_i : in std_logic; --! input header + rx_locked_o : out std_logic; --! rx locked was achieved + rx_slide_o : out std_logic; --! rx slide used for alignment + + clk_sys_i : in std_logic; --! clock system input (free-running) + rx_reset_o : out std_logic --! reset transceiver to avoid odd bitslip number + ); +end rx_word_aligner; + +--============================================================================== +-- architecture declaration +--============================================================================== + +architecture rtl of rx_word_aligner is + + --! Function declaration + function fcn_reduce_or(arg: std_logic_vector) return std_logic is + variable result: std_logic; + begin + result := '0'; + for i in arg'range loop + result := result or arg(i); + end loop; + return result; + end; + + function fcn_log2( input:integer ) return integer is +  variable temp,log:integer; +  begin +  temp:=input; +  log:=0; +  while (temp /= 0) loop +   temp:=temp/2; +   log:=log+1; +   end loop; +   return log; +  end function fcn_log2; + + --! Constant declaration + constant c_MAX_SKIP_WAIT : integer := g_SKIP_PULSE_DURATION+g_WAIT_BETWEEN_SKIP; + + --! Signal declaration + + -- FSM HDR-framing + -- principle: + -- HUNT : received a correct HDR -> GOING_SYNC + -- received a wrong HDR -> SKIP CYCLE + -- SKIP CYCLE : slips a bit and then -> SKIP_CYCLE_WAIT + -- SKIP_CYCLE_WAIT : waits the slip to be finished and then -> HUNT + -- GOING_SYNC : received a consecutive number of correct HDR and bit slip is even -> SYNC + -- received a consecutive number of correct HDR and bit slip is odd -> RESET_RX + -- received a wrong HDR -> HUNT + -- RESET_RX : basically waits forever (until the reset takes effect) + -- SYNC : received a wrong HDR -> GOING_HUNT + -- GOING_HUNT : received a consecutive number of wrong HDR -> HUNT + -- received a correct HDR -> SYNC + type t_FRAMING_FSM_STATE is (HUNT, SKIP_CYCLE, SKIP_CYCLE_WAIT, GOING_SYNC, SYNC, RESET_RX, GOING_HUNT); + signal framing_state : t_FRAMING_FSM_STATE; + + signal correct_hdr_count : integer range 0 to (g_HDR_GOOD_TO_LOCK + 1); + signal wrong_hdr_count : integer range 0 to (g_HDR_BAD_TO_UNLOCK + 1); + + signal skip_cycle_pipe : std_logic_vector(g_SKIP_PULSE_DURATION-1 downto 0); + signal skip_cycle_s : std_logic; + signal skip_cycle_cntr : integer range 0 to g_DATA_WORD_WIDTH-1; + signal skip_wait_cntr : integer range 0 to c_MAX_SKIP_WAIT; + + signal reset_rx_latch : std_logic; + signal reset_rx_sys_meta : std_logic; + signal reset_rx_sys_r : std_logic; + signal reset_rx_sys_r2 : std_logic; + signal reset_rx_pipe : std_logic_vector(4 downto 0); + +begin + + --============================================================================ + -- Process p_hdr_framing_fsm + --! FSM for HDR-framing locking procedure + --! read: enable_i, header_i, correct_hdr_count, wrong_hdr_count\n + --! write: -\n + --! r/w: framing_state \n + --============================================================================ + p_hdr_framing_fsm : process(clk_rxusr_i, reset_i) -- asynchronous + begin + if(reset_i = '1') then + framing_state <= HUNT; + elsif(clk_rxusr_i'event and clk_rxusr_i='1') then + case framing_state is + when HUNT => + if(enable_i='1') then + if(header_i='1') then + framing_state <= GOING_SYNC; + else + framing_state <= SKIP_CYCLE; + end if; + end if; + + when SKIP_CYCLE => + framing_state <= SKIP_CYCLE_WAIT; + + when SKIP_CYCLE_WAIT => + if(skip_wait_cntr >= g_WAIT_BETWEEN_SKIP) then + framing_state <= HUNT; + end if; + + when GOING_SYNC => + if(enable_i='1') then + if(correct_hdr_count >= g_HDR_GOOD_TO_LOCK) then + if( to_unsigned(skip_cycle_cntr,fcn_log2(g_DATA_WORD_WIDTH))(0) = '0' ) then + framing_state <= SYNC; + else + framing_state <= RESET_RX; + end if; + elsif(header_i='0') then + framing_state <= HUNT; + end if; + end if; + + when SYNC => + if(enable_i='1') then + if(header_i='0') then + framing_state <= GOING_HUNT; + end if; + end if; + + when RESET_RX => + framing_state <= RESET_RX; + + when GOING_HUNT => + if(enable_i='1') then + if(wrong_hdr_count >= g_HDR_BAD_TO_UNLOCK) then + framing_state <= HUNT; + elsif(header_i='1') then + framing_state <= SYNC; + end if; + end if; + + when others => framing_state <= HUNT; + end case; + end if; + end process p_hdr_framing_fsm; + + --============================================================================ + -- Process p_hdr_framing_fsm_aux + --! counters for consecutive correct/wrong HDR frame + --! read: clk_i, reset_i, nibble_sent_i, framing_state\n + --! write: - \n + --! r/w: correct_hdr_count, wrong_hdr_count \n + --============================================================================ + p_hdr_framing_fsm_aux : process(clk_rxusr_i) + begin + if(clk_rxusr_i'event and clk_rxusr_i='1') then + if(reset_i='1') then + correct_hdr_count <= 0; + wrong_hdr_count <= 0; + elsif(enable_i='1') then + if(framing_state=GOING_HUNT) then + if(header_i='0') then + wrong_hdr_count <= wrong_hdr_count + 1; + end if; + else + wrong_hdr_count <= 0; + end if; + + if(framing_state=GOING_SYNC) then + if(header_i='1') then + correct_hdr_count <= correct_hdr_count + 1; + end if; + else + correct_hdr_count <= 0; + end if; + end if; + end if; + end process p_hdr_framing_fsm_aux; + + --============================================================================ + -- Process p_skip_cycle + --! skip cycle related functions (counters, pulse generation) + --! read: framing_state\n + --! write: - \n + --! r/w: skip_cycle_cntr, skip_wait_cntr, skip_cycle_pipe, skip_cycle_s \n + --============================================================================ + p_skip_cycle : process(clk_rxusr_i) + begin + if(clk_rxusr_i'event and clk_rxusr_i='1') then + -- skip_cycle (rx_slide) generation + if(framing_state = SKIP_CYCLE) then + skip_cycle_pipe(0) <= '1'; + else + skip_cycle_pipe(0) <= '0'; + end if; + skip_cycle_pipe(skip_cycle_pipe'left downto 1) <= skip_cycle_pipe(skip_cycle_pipe'left - 1 downto 0); + + skip_cycle_s <= fcn_reduce_or(skip_cycle_pipe); + + -- skip_cycle counter to keep track of even/odd bitslip + -- the author of the code is aware that a single bit here is needed but in future it might be interesting to know how many skips were issued + if(reset_i='1') then + skip_cycle_cntr <= 0; + elsif(framing_state = SKIP_CYCLE) then + if(skip_cycle_cntr < g_DATA_WORD_WIDTH-1) then + skip_cycle_cntr <= skip_cycle_cntr + 1; + else + skip_cycle_cntr <= 0; + end if; + end if; + + -- wait between skip pulses counter + if(framing_state = SKIP_CYCLE_WAIT) then + if(skip_wait_cntr < c_MAX_SKIP_WAIT) then + skip_wait_cntr <= skip_wait_cntr + 1; + end if; + else + skip_wait_cntr <= 0; + end if; + + end if; + end process p_skip_cycle; + rx_slide_o <= skip_cycle_s; + + -- create the reset latched whose rising edge will be used in the clk sys domain + p_reset_rx : process(clk_rxusr_i) + begin + if(clk_rxusr_i'event and clk_rxusr_i='1') then + if(framing_state = RESET_RX) then + reset_rx_latch <= '1'; + else + reset_rx_latch <= '0'; + end if; + end if; + end process p_reset_rx; + + -- reset is issued with the clk_sys_i (free-running) to ensure stability + p_reset_sync : process(clk_sys_i) + begin + if(clk_sys_i'event and clk_sys_i='1') then + reset_rx_sys_meta <= reset_rx_latch; + reset_rx_sys_r <= reset_rx_sys_meta; + reset_rx_sys_r2 <= reset_rx_sys_r; + if(reset_rx_sys_r = '1' and reset_rx_sys_r2 = '0') then + reset_rx_pipe(0) <= '1'; + else + reset_rx_pipe(0) <= '0'; + end if; + reset_rx_pipe(reset_rx_pipe'left downto 1) <= reset_rx_pipe(reset_rx_pipe'left-1 downto 0); + rx_reset_o <= fcn_reduce_or(reset_rx_pipe); + end if; + end process p_reset_sync; + + + -- rx locked condition + p_rx_locked : process(clk_rxusr_i, reset_i) + begin + if(reset_i='1') then + rx_locked_o <= '0'; + elsif(clk_rxusr_i'event and clk_rxusr_i='1') then + if(framing_state = SYNC or framing_state = GOING_HUNT) then + rx_locked_o <= '1'; + else + rx_locked_o <= '0'; + end if; + end if; + end process p_rx_locked; + +end architecture rtl; +--============================================================================== +-- architecture end +--============================================================================== diff --git a/source/synth/ip/gtwizard_ultrascale_0.xcix b/source/synth/ip/gtwizard_ultrascale_0.xcix new file mode 100644 index 0000000000000000000000000000000000000000..d238259ae7497018fe0fdbabf125bfc3b4c94df1 GIT binary patch literal 718286 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%0AM`UTkpMDvVYKc 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%0A<@9d;DKQ@Z+qp)7h=6aYD8h#kK$=+(wM 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

GW4#%23;*=;286*w~|>kin5ISU^e6{#>0jlgngQ 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

Mmn?_rs=eCnKBJBE6l{na&>bc9%A3zh>*! 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

*}{^EV5`6C!m*LtU;n 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

c3K;s=u7+#Ye_90 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