Hi All,First of all, thank you for this great work and promising results.I have several comments.1. What are the benefits of the FIRRTL over Verilog? Verilog can be used at different levels of abstraction, I believe that a Verilog could be a FIRRTL or, at least LoFIRRTL. After reading the spec I can see no real benefits for EDA tools. What you describe as a FIRRTL lowering transformations, is indeed an elaboration done by synthesis tools with some syntax tricks. For me it looks rather that FIRRTL is actualy a "lower front-end" instead of an intermediate representation. However, this opinion is based on my hardware background (instead of software). My understanding of real intermediate layer for hardware is rather combination of functional (HDL), timing (SDC) and power (UPF) requirements in a consistent form.
2. Why you decided to use Verilator? As I understand (correct me if I am wrong), the advantage of the Chisel HLS features is that actually you benefit from the functional programming syntax and therefore, producing a good quality Scala code gives you a simulation boost. Verilator-based approach seems to have a form: Scala -> FIRRTL -> HDL (Verilog) -> C++. Most simulators today work according to the scheme of translating HDL into C code.
The power I can see in Chisel is that you can write a readable and consistent HDL code more effectively than in Verilog. Moreover, this is a high-level code that can be compiled and verified without the simulator. I will be grateful, if you could explain a bit more what you intend to achieve using the approach presented in Chisel3.
Thanks and regards.Marek Ciepłucha
W dniu wtorek, 9 lutego 2016 19:14:11 UTC+1 użytkownik Edmond Cote napisał:Thank you for the update. Looking forward to hearing more.-Ed
On Monday, January 25, 2016 at 5:05:19 PM UTC-8, Jonathan Bachrach wrote:This is a good opportunity to discuss our Chisel3/FIRRTL plans. FIRRTL stands for Flexible IR for RTL and is meant to be like an LLVM for hardware. A compiler for it contains the bulk of the Chisel compiler but has a well defined file format and is implemented as a series of small passes. It opens up the possibility for other frontends like HLS, "Chixel"s in other PLs, and user contributed compilation passes. Chisel3 is a much more modular and industrial strength Chisel implementation based around a FIRRTL compiler and a very thin Scala frontend. It has a few Chisel2 incompatibilities but we have provided a chisel2 -> chisel3 migration facility within chisel2.We have currently ported the majority of our RISC-V rocket-chip generator to Chisel3 and are pushing hard to get an alpha version out within a few weeks. We're also finalizing our FIRRTL spec and should be able to get that out soon for public review and feedback. From there, we're hoping to get a beta Chisel3 out by the end of this semester. By then we will have performed a number of tape-ins and have tested it more thoroughly.Chisel3 has a number of features we hope you will appreciate. It will include much better documentation and better testing support. It will rely on Verilator (to start with anyways) for simulation. It will have improved black boxes, better memory technology mapping and control, DSP support, and multiple clock domain support. It will be much more modular and open and language neutral and support a repository of hardware components.Getting Chisel3/FIRRTL out has been an enormous effort and many people have been involved. We have an enormous amount of Chisel code written that we have to migrate forward and keep working and a number of folks have been involved during this transition. We've been working on Chisel for over five years now, but yet are more excited about Chisel than ever. We've learned a bunch and are in a great position to improve upon our strong foundation. Thanks for your patience and continued interest in Chisel.
--
You received this message because you are subscribed to the Google Groups "chisel-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chisel-users...@googlegroups.com.
To post to this group, send email to chisel...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/chisel-users/f7259c46-cb05-4178-ab45-0145d0dbe7df%40googlegroups.com.