# Xilinx library for MyHDL

**URL:** <https://discourse.myhdl.org/t/xilinx-library-for-myhdl/129>\
**Category:** Showcase\
**Created:** [October 17, 2016, 10:04am UTC](https://discourse.myhdl.org/t/xilinx-library-for-myhdl/129 "2016-10-17T10:04:42Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![DrPi](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.myhdl.org/drpi/32/36_2.png) [@DrPi](https://discourse.myhdl.org/u/DrPi)\
**Post date:** [October 17, 2016, 10:04am UTC](https://discourse.myhdl.org/t/xilinx-library-for-myhdl/129/1 "2016-10-17T10:04:42Z")

</div>

Hi,

I have created a XILINX primitive components library to be used with MyHDL.  
Here it is : [https://bitbucket.org/nico-dev/myhdl\_xilinx\_unisim\_lib/](https://bitbucket.org/nico-dev/myhdl_xilinx_unisim_lib/)

Nicolas

---

<div class="post-metadata">

**Author:** ![cfelton](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.myhdl.org/cfelton/32/3_2.png) [@cfelton](https://discourse.myhdl.org/u/cfelton)\
**Post date:** [October 17, 2016, 1:34pm UTC](https://discourse.myhdl.org/t/xilinx-library-for-myhdl/129/2 "2016-10-17T13:34:10Z")

</div>

Thanks for sharing! This is a comment request / need from users this will be useful. I will check it out when I have some free time.

---

<div class="post-metadata">

**Author:** ![DrPi](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.myhdl.org/drpi/32/36_2.png) [@DrPi](https://discourse.myhdl.org/u/DrPi)\
**Post date:** [October 17, 2016, 2:05pm UTC](https://discourse.myhdl.org/t/xilinx-library-for-myhdl/129/3 "2016-10-17T14:05:01Z")

</div>

@cfelton : This is still work in progress. I have not tried a full design with it. Also, simple examples have been written only for the demo. So, they have not been tested.

---

<div class="post-metadata">

**Author:** ![DrPi](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.myhdl.org/drpi/32/36_2.png) [@DrPi](https://discourse.myhdl.org/u/DrPi)\
**Post date:** [October 17, 2016, 2:05pm UTC](https://discourse.myhdl.org/t/xilinx-library-for-myhdl/129/4 "2016-10-17T14:05:37Z")

</div>

Of course, comments are welcome.

---

<div class="post-metadata">

**Author:** ![hgomersall](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.myhdl.org/hgomersall/32/10_2.png) [@hgomersall](https://discourse.myhdl.org/u/hgomersall)\
**Post date:** [October 19, 2016, 11:40am UTC](https://discourse.myhdl.org/t/xilinx-library-for-myhdl/129/5 "2016-10-19T11:40:49Z")

</div>

@DrPI It looks like a really interesting approach. It would be really interesting to see if this can feed into the [Ovenbird project](https://github.com/hgomersall/Ovenbird) for integrating with Vivado.

---

<div class="post-metadata">

**Author:** ![DrPi](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.myhdl.org/drpi/32/36_2.png) [@DrPi](https://discourse.myhdl.org/u/DrPi)\
**Post date:** [October 20, 2016, 8:53am UTC](https://discourse.myhdl.org/t/xilinx-library-for-myhdl/129/6 "2016-10-20T08:53:56Z")

</div>

@hgomersall Xilinx Unisim Library is the opposite of Ovenbird. It manages “raw” elements like bufg, dll, GTX…  
As you know, “raw” does not mean simple and some elements are so complex (gtx, pcie…) that they can’t be managed directly. Then comes Xilinx IPs and Ovenbird.  
I’ll have to read again the example and source code to fully understand how it works.

---

<div class="post-metadata">

**Author:** ![hgomersall](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.myhdl.org/hgomersall/32/10_2.png) [@hgomersall](https://discourse.myhdl.org/u/hgomersall)\
**Post date:** [October 20, 2016, 10:41am UTC](https://discourse.myhdl.org/t/xilinx-library-for-myhdl/129/7 "2016-10-20T10:41:32Z")

</div>

@DrPi I don’t quite know what you mean by opposite, but I agree they are not the same. Ovenbird is concerned with representing Vivado “aware” concepts through MyHDL. At the minute this is simulation and IP (crucially, encrypted IP). A separate task is to actually create those representations 🙂.

---

<div class="post-metadata">

**Author:** ![DrPi](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.myhdl.org/drpi/32/36_2.png) [@DrPi](https://discourse.myhdl.org/u/DrPi)\
**Post date:** [October 20, 2016, 12:28pm UTC](https://discourse.myhdl.org/t/xilinx-library-for-myhdl/129/8 "2016-10-20T12:28:29Z")

</div>

> [@hgomersall](#):
>
> I don’t quite know what you mean by opposite, but I agree they are not the same.

Well, I mean, Xilinx Unisim library describes silicon primary elements while Ovenbird is used to describe high level IPs.

> [@hgomersall](#):
>
> A separate task is to actually create those representations 🙂.

Will these representations be added to Ovenbird or will you create a separate repository for them ?

I am especially interested in FIFOs since this is the IP I use the most.

---

<div class="post-metadata">

**Author:** ![hgomersall](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.myhdl.org/hgomersall/32/10_2.png) [@hgomersall](https://discourse.myhdl.org/u/hgomersall)\
**Post date:** [October 20, 2016, 12:46pm UTC](https://discourse.myhdl.org/t/xilinx-library-for-myhdl/129/9 "2016-10-20T12:46:42Z")

</div>

> [@DrPi](#):
>
> Will these representations be added to Ovenbird or will you create a separate repository for them ?
> 
> I am especially interested in FIFOs since this is the IP I use the most.

No plans at the moment, but keen to begin one if it’s useful. I’m sure you’ve noted, only the DSP48E1 exists at the moment…

---

<div class="post-metadata">

**Author:** ![DrPi](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.myhdl.org/drpi/32/36_2.png) [@DrPi](https://discourse.myhdl.org/u/DrPi)\
**Post date:** [October 20, 2016, 3:14pm UTC](https://discourse.myhdl.org/t/xilinx-library-for-myhdl/129/10 "2016-10-20T15:14:02Z")

</div>

> [@hgomersall](#):
>
> I’m sure you’ve noted, only the DSP48E1 exists at the moment…

Sure. That disappointed me 😁

---

<div class="post-metadata">

**Author:** ![hgomersall](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.myhdl.org/hgomersall/32/10_2.png) [@hgomersall](https://discourse.myhdl.org/u/hgomersall)\
**Post date:** [October 20, 2016, 4:13pm UTC](https://discourse.myhdl.org/t/xilinx-library-for-myhdl/129/11 "2016-10-20T16:13:42Z")

</div>

Actually, that’s not quite correct - I have a bit of a block ram implementation.
