<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div><div>Even Prof. Wirth explores the behavioral description of circuits in the article "Hardware Compilation: Translating Programs into Circuits", originally published in IEEE Computer Magazine in 1998.<br></div>I've started knowing and experimenting with Oberon, LoLa and FPGAs thanks to that amazing article.<br></div><div>You could find it a version in the Tech Reports from ETHZ:<br><br><a href="ftp://ftp.inf.ethz.ch/pub/publications/tech-reports/">ftp://ftp.inf.ethz.ch/pub/publications/tech-reports/</a><br><br>Hardware Compilation:<br><a href="ftp://ftp.inf.ethz.ch/pub/publications/tech-reports/2xx/286.abstract">ftp://ftp.inf.ethz.ch/pub/publications/tech-reports/2xx/286.abstract</a><br><a href="ftp://ftp.inf.ethz.ch/pub/publications/tech-reports/2xx/286.ps">ftp://ftp.inf.ethz.ch/pub/publications/tech-reports/2xx/286.ps</a><br><br>And for LoLa:<br><a href="ftp://ftp.inf.ethz.ch/pub/publications/tech-reports/2xx/215.abstract">ftp://ftp.inf.ethz.ch/pub/publications/tech-reports/2xx/215.abstract</a><br><a href="ftp://ftp.inf.ethz.ch/pub/publications/tech-reports/2xx/236.abstract">ftp://ftp.inf.ethz.ch/pub/publications/tech-reports/2xx/236.abstract</a><br><br>and many more amazing articles of all ETH, look at the Index.long in every folder:<br><br></div><div>Hope you enjoy,<br></div><div>Pablo Cayuela<br><br></div><div><br><br><br></div>In case <br></div></div></div></div></div></div></div></div><br><div class="gmail_quote"><div class="gmail_attr" dir="ltr">On Fri, Mar 15, 2019 at 11:20 AM Skulski, Wojciech <<a href="mailto:skulski@pas.rochester.edu">skulski@pas.rochester.edu</a>> wrote:<br></div><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class="gmail_quote">Paul:<br>
<br>
> I prefer to use Lola wherever possible, it's clearer than either (System)Verilog or VHDL. <br>
<br>
Clearer is in the eyes of the beholder. I never liked Lola (sorry), because it only supports one particular coding style. Just looking at the VID.Lola I can see the RTL-style coding. I am seeing this style since the very first Lola book. In modern FPGA programming the code is more often expressed behaviorally. RTL style is used in low level modules, and not even always there. The high level constructs are coded as behavioral. VHDL is better (in my opinion) for behavioral coding than Verilog. However, both languages are exactly equivalent. They only feel different way, which is important for a programmer (myself), but fundamentally there are no restrictions to write the same code either in Verilog or in VHDL.<br>
<br>
For the laymen: Register Transfer Logic (RTL) is the style where you assign bits or vectors of bits directly by hand. Presumably this is how the flip flops and wires are connected in the FPGA. It is a low level style. Programming analogy: imagine you are coding a high level algorithm without using function calls, but rather assign many dozens of variables in one chunk of code. It gets very confusing very quickly. This is how RTL looks. (Look at VID.Lola or any other Lola module by Wirth.)<br>
<br>
An even larger reservation against RTL coding is that modern FPGAs simply are not collections of flip flops and wires. They contain many configurable blocks ("hardened logic") which can hardly be described by RTL assign statements. The "behavioral" style of coding leaves the compiler freedom to map functions "as intended" to these hardened logic blocks, using the internal compiler heuristic. You basically tell the compiler "here is what I intend, go and figure it out". Most FPGA coding is done this way these days. The RTL-style is neither capable nor intended for doing that.<br>
<br>
> If a feature requires special features not<br>
> supported by Lola, I wrap it in Verilog. The main cause of this<br>
> currently is library identifiers (e.g. "_" characters), but in fact it's<br>
> really wrapping the nonportable pieces.<br>
<br>
Is there any special reason to not change Lola such that the main cause is just eliminated?<br>
<br>
Thank you,<br>
Wojtek<br>
--<br>
<a target="_blank" href="mailto:Oberon@lists.inf.ethz.ch">Oberon@lists.inf.ethz.ch</a> mailing list for ETH Oberon and related systems<br>
<a target="_blank" rel="noreferrer" href="https://lists.inf.ethz.ch/mailman/listinfo/oberon">https://lists.inf.ethz.ch/mailman/listinfo/oberon</a><br>
</blockquote></div>