Getting started with FPGAs at home

Now I am no longer studying at the University of Pennsylvania, I no longer have the privilege to use their FPGA boards and CAD tools. Luckily, AMD Vivado has a free version, Vivado ML Standard Edition. It supports fewer devices however. The large ZCU102 board is not supported, but support for smaller evaluation boards like the Ultra96 and ZedBoard is available.

I will also have to purchase an FPGA board. Below are the current prices of some evaluation boards that I have used in the past:

BoardPrice
MicroZed$214
Ultra96$249
Zybo$299
Pynq-Z1$299
ZedBoard$589
ZCU102$3,234

Graduated & looking for Job!!!

After years of hard work, I have finally completed the Ph.D. program at the University of Pennsylvania. As of May 11th, I am no longer Hans, but dr. Hans. Just kidding. Please call me Hans.

I am currently scouring LinkedIn to find the perfect job. I would love to continue my career with research in the FPGA field. I am particularly excited about using machine learning algorithms to obtain better hardware mappings. More broadly, I am interested in anything near the intersection of hardware and software, such as digital hardware design, computer architecture, and electronic design automation.

My PhD thesis research involved design space exploration of C/C++ application mappings onto reconfigurable SoCs using high-level synthesis (HLS). Prior to that, I researched an on-line method to locate and repair timing errors caused by aging and process variation in FPGAs. Moreover, I have about 5 years of industrial experience designing FPGAs and ASICs in RTL, and about 2 years of industrial experience in software development.

For more information, please refer to my LinkedIn profile. If you think I am a good match for your company, feel free to reach out to me by e-mail.

Coronavirus update

Sadly, the COVID-19 has not spared Philadelphia. Although the lab has been closed, I will continue to work on new innovations from home.

I sincerely hope that everybody remains in good health. Please take the disease seriously and refrain from unnecessary activities that may expose other people, whether your government forbids them or not. Thank you.

Following is a map that shows the progress of the outbreak in Philadelphia. I am located in zipcode 19104, where the university is located as well. At the time of writing, this area was especially hit hard by the virus.

I found this coronavirus map of the world also very useful. It shows that America is not alone in its fight against the virus. People all over the world are suffering. I expect that especially developing countries will be hit hard due to a lack of medical equipment and staff.

Cannot build project in SDSoC 2018.2 on Ubuntu

A problem that is commonly observed in SDSoC 2018.2 on Ubuntu 16.04 installations is that projects fail to build. I don’t know whether this problem is also observed in SDSoC 2018.1. The cause of this issue is that the sh shell is linked to the dash shell in Ubuntu, while SDSoC 2018.2 wrongly expects sh to behave as bash. I presume that this can be solved by replacing the references to sh in the corresponding SDSoC scripts with references to bash, but I leave that to Xilinx. An easier solution is to replace the link to dash with a link to bash using the following command:

sudo dpkg-reconfigure dash

In addition, I would like to remark that you should also always consult the release notes to make sure that your operating system is supported and to find out which additional packages must be installed. If you are using a newer version of an operating system that is mentioned, be aware that Xilinx software is not always compatible with newer operating systems despite what you might expect.

How to create a website with minimal effort

Having a website to show your portfolio can help with securing an internship or job. It helps to stand out of the crowd in a competitive job market. However, many of us students are already overloaded with lectures, assignments, projects, office hours, etc. etc. We don’t have time to learn what it takes to make a nice website. We have to learn HTML to compose the web pages, image editing for the images, Java for interactive web elements, CSS to customize the layout, etc. To make the website pleasant to visit on a variety of browsers and devices, you almost have to be a full-time web designer.

Luckily, there is another solution. With the help of a content management system (CMS), we don’t have to write raw HTML, CSS, or Java anymore. The CMS allows us to add content and change layout via graphical user interface, the backend. Writing a new page has become similar to writing a document in Microsoft Word.

For engineering students from the University of Pennsylvania, I recommend WordPress as CMS. This website was also developed in WordPress. The instructions for setting up WordPress on your personal space on the university webservers can be found here.

Equivalent commands for GIT, SVN, and CVS

In our lab, we are maintaining software and documents in CVS, Subversion, and GIT repositories. Often, I find myself looking up commands online for tasks like looking up a particular version of a file or dealing with conflicting versions. To save myself (and hopefully others) some time, I started a small table with equivalent commands for the different repositories.

DescriptionGITSVNCVS
Show status of repository.git statussvn statuscvs status
Add new <files> to repository.git add <files>svn add <files>cvs add <files>
Commit changes in existing <files> to repository.git add -u <files> && git commit && git pushsvn commit cvs commit
Retrieve changes from repository.git pullsvn updatecvs update
Show log of changes to <file>.git log <file>svn log <file>cvs log <file>
Show changes in <commit> / <revision>.git show <commit>svn diff -c <revision>
Resolve conflicts in <files&gt;Fix conflicts in <files>. git add <files>Choose "postpone" when conflict is found by svn update. Fix conflicts in <files>. svn resolve --accept=working <files>

So far, I have only put a few commands that I remember from the top of my head. I haven’t double-checked them all, so using these commands is at your own risk. If you have any commands to add, feel free to leave a reply.