karuta icon indicating copy to clipboard operation
karuta copied to clipboard

Path to make actual changes in HLS

Open yt76 opened this issue 4 years ago • 3 comments

IMHO, HLS technology is stuck with C/C++ for decades while software industry adopts per ecosystem new programming languages with new technology and they actually bring us improved development experience. So, the objective of this project is to explore the potential of HLS without restriction of C/C++ by designing a new language. New language should allow users to describe essentials of circuits easily. Here are some options we might consider:

  1. Continue on the current efforts to improve the quality and features. This is current plan anyway for now. However, it will take very long time to achieve production quality. Possibly I can get ask more investment in some future when I will be more confident with the direction and implementation.
  2. Build attractive IPs easily and showcase them. Attractive applications might be useful to explain the potential. This will also drive quality improvement.
  3. Let someone reuse the idea. If someone find this concept useful and implement similar language for their ecosystem, it would be nice for us as well.
  4. Let someone fork the code. As Karuta (and Iroha) is released under an Open Source license, someone with more development resource than us can improve it to production quality
  5. Let someone buy the code. This is also fine. The buyer can optionally get an engineer :p

yt76 avatar Mar 14 '20 13:03 yt76

Hi, I would like to contribute to 1 as I currently need some IPs which are really obfuscated in tools like Vivado, and which might have different implementations for other brands of FPGA (or no implementation at all). I really like the way things work in Karuta because it seems like it's a very natural way to implement concurrent logic as processes in sequential code.

I am currently developing an SD card reader using Karuta, but I think I have found a few bugs which happen here and there, which probably result from me not really understanding many constructs of the language. I think a basic syntax documentation will help (how to do conditionals, what do functions like wait do, differences between process and func, things like that).

TenzinCHW avatar Nov 05 '20 18:11 TenzinCHW

Thank you for encouraging comment again!

I see. I am going to add more description to the document about the basic structures of Karuta code. Please let me known any suspicious behaviors, unclear documentation or even your own confisions. These information should be useful to improve Karuta and for new users to use it.

As of now, my priority is on new features especially pipelining, but I am glad to get back to basic quality improvements.

yt76 avatar Nov 07 '20 12:11 yt76

:)

Alright that sounds good. Yup maybe I can help document in case I find anything that doesn't work/is confusing.

Ah yes, pipelining sounds important. Thank you for your hard work!

TenzinCHW avatar Nov 11 '20 09:11 TenzinCHW