A future for the MyHDL community?

@cfelton Yes, I noticed that the project activity has always been bursty : https://github.com/myhdl/myhdl/graphs/contributors. As you said, we are almost all professionals so this is not very surprising.
What is surprising is the silence of main developers.

Yes, you are right. No single project will ever show everything about MyHDL or the various ways it can be used. It also isn’t necessarily a tutorial introduction. We should have the reference manual and specific tutorials for those things.

What I’m taking about is a marquee project: an application of interest/usefulness to a wide audience that then draws them into MyHDL. That’s what misoc does for migen. (Note that I don’t advocate for popularity as an end in itself. Instead, popularity draws new people with new ideas and the brains to implement them, thus making the MyHDL ecosystem stronger.)

There is already an “Examples” section under the “Docs” on myhdl.org. We just need more stuff there and more exposure for it (IMO). Also, my offer still stands to create a “MyHDL projects” repository if anyone is interested.

As a MyHDL user, I would like to see your tutorial. I’m sure others would as well. Regarding your PDF, have you considered writing it in Markdown? Then you can use pandoc to automatically translate it to PDF, Latex, HTML, etc. Then we could have it on the website and as a downloadable PDF.

@DrPi note I used the word “professional” to indicate we all have day jobs :slight_smile: (and many of us families) and not an indication of experience / quality of work.

Along with bursty commits the communications, typically, are bursty as well.

I think it is fair to state Jan will be incommunicado for the near future (if not permanently), the other core dev/users (@jck, @cfelton, @hgomersall, and @josyb) will start to fill in the gaps but it will be slow - and my guess much slower than many would like.

I have never been good at marketing or being popular. I don’t have good advice how to make a project more popular or where we would get our greatest return on investment. I will try to be more active on this forum and gitter.

One of the areas that might help, is if the core dev/users help projects that are using myhdl. @devbisme listed projects he has released, we should be familiar with these and possibly harass him with change requests :joy:

We have had some nice projects in the past, two from my out of date list:

  1. Whitebox used myhdl for the FPGA portions, I haven’t check on the project for a long time.
  2. 10G Ethernet verification, again been a long time since I look at the files.

What might be missing is a usable “stack”, Jan originally took a minimalist approach which I think was a good idea. We need more packages (and documentation) that build on top of myhld and provide additional tools - I believe this is how @devbisme has designed the packages he mentioned.

If anyone wants to add examples or have examples they would like added let us (me) know, we can add additional examples. @DrPi we can add your examples to the examples page or we can create you an user space on the myhdl website or @devbisme can host a project page.

How to add user info

I agree with you. A “MyHDL projects” page is a good idea.
On my side, I’m afraid I can’t publish my projects since they are done at work, for a private company. However, I’m thinking about a home project.

I have still not decided which format to use. My markdown knowledge is quite limited but it may be worth the effort.
I’m also hesitating between a pure PDF like document and an on-line version. They do not deserve the same purpose.
Both are of interest but can I merge both worlds ? Any pointers on this topic are welcome.

As a reminder, I made a MyHDL cheat sheet for version 0.9 : https://bitbucket.org/nico-dev/myhdl_cheat_sheet/src
I will update it when MyHDL 0.10 is officially released.

I was not thinking of experience or quality of work. Just that we use MyHDL at work.

No blame on you Christopher. We all have our good and bad points :wink:. I’ve never been good at communication either. I am active on MyHDL now because I use it now. That will not be always the case as I have other tasks to achieve that do not imply the use of MyHDL. But I’ll always keep an eye on it.

What I started to write is more a how-to than a list of examples.

I agree with you.
Some of them already exist. They need to be referenced on MyHDL WEB site. Two of them are :

@cfelton Do you have write permission on MyHDL and WEB site github repos ?

In addition to Ovenbird, there is also Veriutils. That enforces a pretty specific workflow to testing, albeit one that has proven to work pretty well on a several large projects (it has plenty of flexibility). TBH, I’m thinking about the next iteration of Veriutils and Ovenbird, with the latter sitting on top of the Vivado Digital Programming Interface for actual cosimulation.

Even if you don’t want to use the more general testing infrastructure, Veriutils still includes a few useful convertible test blocks (clock, signal recording, random signal driver, look up table signal driver) and also a useful but not spec complete BFM for AXI-lite and AXI-stream.

I believe that is the case for many people / projects, my guess is that myhdl is used commercially much more than other alt.hdls.

@DrPi yes I can update the sites.

@hgomersall you need to create a user space on myhdl.org and have a short description of your projects. I will update my list with @devbisme and @hgomersall projects and fix all the 404s (most of them point to the old.myhdl.org, I will point them to the _ori in github).

I updated my resource and project list:
https://www.fpgarelated.com/showarticle/43.php

Hopefully, I resolved all the broken links, please let me know if you come across any other broken links.

I created a github repo to collect MyHDL-related tutorials, projects and third-party tools. Hopefully, people will use this as an easy place to list their projects without requiring actions from the MyHDL developers. They can drag stuff from this list to place in the appropriate sections of myhdl.org.

I’ll continue to add stuff as I find it.

1 Like

Thanks for the list,

I reimplemented some of the basic Verilog desings using MyHDL, with the help of this forum.

This MyHDL tutorial implements various Verilog/VHDL pieces using MyHDL. Someone may find this useful.

Added to the list. Thanks!

@pythondsp thanks for your examples and documentation! @devbisme thanks for the list, github version will be easier to to maintain.

Thanks for your work popularizing MyHDL: seems like 50% of the links are associated with you.

@devbisme doh - I don’t know if that is good or bad. I’m just stubborn and keep plugging away.

Genius is ephemeral and flits off when you most need it, but stubborn comes to work and stays all day.

1 Like

I agree the list is a very good idea. However, it would be better if this list is on MyHDL WEB site. Christopher, you said you have commit rights. The pages of the WEB site is on github. Is it possible to create a new page and put the list on it ? And give write access to Dave to let him update it ?

I want the list to have good visibility to potential MyHDL users, but I have one problem with moving it from Github to the MyHDL site: Github allows people to add and edit their own entries and issue a pull request. Then all I have to do is accept the PR. Putting it on the MyHDL site would require people to send their entries/edits to me (somehow) and then I would have to enter them on the list. The volume of adds/edits on the list is not high and may never be, so maybe that’s not a problem. I don’t know.

@devbisme If I am right MyHDL WEB site source code is here : https://github.com/myhdl/site-myhdl
So, modifying pages can be done with PRs.

I didn’t adequately read your previous reply to see that the website source was also being served off github.

I can’t find anything on github that allows fine-grained permissions on a single file or directory. You could place my project repo in the website repo as a submodule and then manage permissions for that. I don’t know how much work that is or if it’s worth it versus doing something like copying the content of my list into a page on the myhdl site every few weeks or so.