[Oberon] LED in FPGA Oberon

Skulski, Wojciech skulski at pas.rochester.edu
Tue Nov 6 03:36:46 CET 2018


There is this "proper procedure" named LED on page 15 in the Oberon-07 Report dated Revision 1.10.2013 / 3.5.2016, which is the newest version of the language. 

Proper procedures:
Name Argument types Function
LED(n) INTEGER display n on LEDs

It is a very convenient procedure indeed. It is provided in both the Oberon System proper, as well as Astrobe. It is used in the core bootloader to track the progression of the code. 

However... Is it not strange that the little debugging utility geared towards just the FPGA applications has been carved into the Language Report? I would rather see it as a SYSTEM feature SYSTEM.LED(n), or as an "undocumented feature" of a particular implementation. Ideally, it would have been a separate MODULE. But I do understand that it was needed for the bootloader which is executed prior to loading the system kernel. In this situation, SYSTEM.LED would be the most appropriate, IMHO.

In my RiskFive we are not providing the FPGA pins to drive LEDS due to shortage of pins in the Artix-7 in the CSG324 package. I am rather providing an I2C pin expander with eight LEDs. We will provide for eight LEDs driven with outputting an INTEGER to a particular address, where the I2C firmware will take care of sequencing the signals. So I am not ditching the LEDs. But I do not like including such a specialized facility directly in the Language Report.


More information about the Oberon mailing list