Hi List!

I hope everyone is safe and in good health.

Even though I don't login to freenode these days, but I made it a habit to
check the channel everyday :) And what I read yesterday is the reason for
this email.

I saw some message about PilMCU so let me provide some answers here:

"... if Geo has or will ever post his FPGA picolisp code for the hardware
Pil machine he posted to youtube some years ago"
-> As of the moment, I don't recommend to post it yet because of the
following reasons:
* The code is still messy (both PilASM assembler and Verilog), contains
temporary codes for debugging
* The implementation is still unoptimized
* The Verilog code is not yet designed for portability to other FPGA vendor
and other FPGA boards

But don't worry, I will post it as soon as I get all these sorted out. BUT,
if you really want to see the code for reference, I can email it to you or
anyone interested and discuss how the development process was done as well
the whole approach.


"... Seems he stopped it"
-> I know it feels like that way because I did not provide any update for a
long time, but I would like to say that it is not yet stopped, but its
still on-hold. It's still difficult for me to find extra time for this but
I believe sometime soon I can get back on this. My motivation to have this
done is still the same as the beginning because I still believe this will
address most of my frustration on current firmware development work flow.


"... I would expect better performance, since you can in theory implement
lisp functions and run many of them in parallel"
-> This is true and this is actually one of the main motivator for me. An
analogy that can back this theory is bitcoin mining, from CPU -> GPU ->
FPGA -> ASIC, arranged as slowest to fastest. It's still difficult to
implement lisp with parallel computing in mind but I have some other ideas
that I would like to try and show that this approach is indeed interesting
to venture.

The reason why current implementation is slow is because of the following:
* The approach of implementation did not fully utilize the advantage of
FPGA over off the shelf CPU or MCU
* The implementation is not optimized due to no proper experience before
* 50Mhz clock made it feel slower :)

But as of the moment, I keep taking notes on how to resolve all these as
well as plan how to implement it.

For now, these are my goal for next PilMCU version which I want to call
uPil (u for micro):
* Cell processing directly in hardware
* Reduce primitives to a few core primitive to fit Cell processing on any
FPGA with decent logic size
* Use FRAM as storage of Pil codes in Cell format and run code from FRAM
* Use NOR Flash or external SD card as storage of Pil codes in ASCII format
with DB as filesystem
* Use internal memory of FPGA as RAM which will achieve register like speed
* Only Verilog code needed, no need PilASM assembler
* Must run on three major FPGA vendors with no code modification

Im not sure if all these are feasible but I think it will be, will see how
it goes.

I was also keeping an eye on other implementors of lisp on of the shelf
MCU, here are the latest ones:

1. http://www.ulisp.com/

2.
https://www.youtube.com/watch?v=GWr4iQfc0uw&list=PLQu9CQjHyYejctK-zxYbAC8kWUTkgcjsA&index=30&t=116s

https://icfp20.sigplan.org/details/scheme-2020-papers/3/Running-Scheme-On-Bare-Metal-Experience-Report-

3. https://lambdachip.com/index/


I was also planning to have PilMCU be remotely access during PilCon, let me
try get it back to working state and see how I can setup remote access, I
got TeamViewer on my PC so will see.

I remember there was someone trying to port PilOS on RPi?

Ok sorry for this long email, before I'll end let me comment of some recent
issue that I read also, about unstable email as well as the freenode issue?
Hmm what about developing email server and/or irc server using PicoLisp?
Would this be a nice group project? It's like hitting two birds in one
stone because: first it will address the issues, second it will serve as
another demo that can help promote PicoLisp to the outside? or instead of
centralized, how about something like those of fediverse or matrix? Anyway
just some ideas before going to bed :)

Have a good weekend everyone, stay safe always and keep in touch, cheers!


BR,
Geo

Reply via email to