Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

Hackers are just a migratory lifeform with a tropism for computers.


devel / comp.lang.forth / Re: Proposal: Many Core Forth CPU for FPGA development.

SubjectAuthor
* Proposal: Many Core Forth CPU for FPGA development.Christopher Lozinski
+* Re: Proposal: Many Core Forth CPU for FPGA development.Jurgen Pitaske
|`* Re: Proposal: Many Core Forth CPU for FPGA development.Christopher Lozinski
| `* Re: Proposal: Many Core Forth CPU for FPGA development.Marcel Hendrix
|  `* Re: Proposal: Many Core Forth CPU for FPGA development.Christopher Lozinski
|   `* Re: Proposal: Many Core Forth CPU for FPGA development.none
|    `* Re: Proposal: Many Core Forth CPU for FPGA development.Marcel Hendrix
|     `* Re: Proposal: Many Core Forth CPU for FPGA development.dxforth
|      `* Re: Proposal: Many Core Forth CPU for FPGA development.Jurgen Pitaske
|       `* Re: Proposal: Many Core Forth CPU for FPGA development.Anton Ertl
|        `- Re: Proposal: Many Core Forth CPU for FPGA development.dxforth
`* Re: Proposal: Many Core Forth CPU for FPGA development.Matthias Koch
 `* Re: Proposal: Many Core Forth CPU for FPGA development.Christopher Lozinski
  `* Re: Proposal: Many Core Forth CPU for FPGA development.Lorem Ipsum
   `* Re: Proposal: Many Core Forth CPU for FPGA development.Christopher Lozinski
    +- Re: Proposal: Many Core Forth CPU for FPGA development.Lorem Ipsum
    +- HDL Choice was: Re: Proposal: Many Core Forth CPU for FPGAJan Coombs
    `* Re: Proposal: Many Core Forth CPU for FPGA development.Matthias Koch
     `* Re: Proposal: Many Core Forth CPU for FPGA development.Lorem Ipsum
      `* Re: Proposal: Many Core Forth CPU for FPGA development.Matthias Koch
       `* Re: Proposal: Many Core Forth CPU for FPGA development.Lorem Ipsum
        `- Re: Proposal: Many Core Forth CPU for FPGA development.Matthias Koch

1
Proposal: Many Core Forth CPU for FPGA development.

<6eb6f484-d425-4bcc-b0ca-4df1a22da14cn@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=22781&group=comp.lang.forth#22781

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:ad4:4ae3:0:b0:56e:a203:5d1f with SMTP id cp3-20020ad44ae3000000b0056ea2035d1fmr984806qvb.5.1678604866141;
Sat, 11 Mar 2023 23:07:46 -0800 (PST)
X-Received: by 2002:ac8:20b:0:b0:3bf:c315:44df with SMTP id
k11-20020ac8020b000000b003bfc31544dfmr9213957qtg.12.1678604865924; Sat, 11
Mar 2023 23:07:45 -0800 (PST)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!nntp.club.cc.cmu.edu!45.76.7.193.MISMATCH!3.us.feeder.erje.net!feeder.erje.net!border-1.nntp.ord.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Sat, 11 Mar 2023 23:07:45 -0800 (PST)
Injection-Info: google-groups.googlegroups.com; posting-host=46.134.58.66; posting-account=qOvlJAoAAAALKIuQXXxAY1xxkFpdJUbI
NNTP-Posting-Host: 46.134.58.66
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <6eb6f484-d425-4bcc-b0ca-4df1a22da14cn@googlegroups.com>
Subject: Proposal: Many Core Forth CPU for FPGA development.
From: calozin...@gmail.com (Christopher Lozinski)
Injection-Date: Sun, 12 Mar 2023 07:07:46 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 78
 by: Christopher Lozinski - Sun, 12 Mar 2023 07:07 UTC

FPGA’s are great for building parallel applications, there is a huge growth in the market for FPGA’s in the data centres, but they are a nightmare to develop for. A grid of Forth cores would be much more fun.

I had no idea how bad it was, until I recently started my masters degree in Electrical Engineering, Digital Design in Katowice Poland. I thought Verily and VHDL looked easy, but I completely failed to understand how they work under the hood. One has to study EE to understand how they convert a design into digital circuitry (synthesis), how to write good code, and how to recognize disastrous code. They take forever to create a large design. The simulators do not always work correctly, so the simulator can say it works, but in reality it does not, and then debugging on a live FPGA changes the system. Successful projects have to spend at least twice as much on verification as on design. What a nightmare!

I think it would be a lot more fun to develop prototypes on a grid of Forth CPUs. Changes could be tested instantly. Once the application was developed, optimizations could be made.

Why not just use a multicore processor running 8th????
Because then I cannot add in some custom logic blocks. Also Multicore processors are optimized for speed of each individual processor, and not for cooperation between processors. The guys who made linux run on multi-core had a very difficult time. There are caches that can become inconsistent, and messaging between cores is limited. In contrast with a grid of Forth cores on an FPGA, each gets its own memory area, and can talk to its neighbors. Much conceptually simpler. KISS.

In an ideal world, each Forth CPU would have access to its own external memory, to maximize external memory bandwidth. But in the real world, an FPGA board has just one or two memory banks, so good to do something like vision processing, where one image frame gets loaded, and shared with all of the processors. Indeed the Lattice boards even have interfaces for digital cameras.

So let us talk about a particular vision application. Vision processing in a moving vehicle. Or even when the camera is being rotated. The vision processing develops a model of the system being observed. Here are the straight edges, here are the flat surfaces, here are the curved edges. As the image moves, the model needs to be handed over to the adjacent processor to be updated. At least to calculate velocities. There is a lot of communication between adjacent nodes. So hard to do on a multicore cpu.

Next question: Which Forth core should I use?

There are so many Forth FPGA cpus, and so many versions of Forth, it is hard to choose which one to use. Many Forth CPU’s are optimized to fit on an FPGA, many forth virtual machines are optimized to run on the C programming language, or on an Intel CPU. The one person who worked equally on both FPGA’s and C compilers was Dr. Ting. I am sorry that he is now gone. But I believe that he optimized the eForth language and CPU to both work best together. So I think that the EP 32/24/16 with eForth is the right way to go. There is a large stack of eForth software out there. He also did a brilliant job documenting his designs. Makes it very accessible for the beginner. For vision with 3x8 bit color channels, the EP24 makes sense.

Let me make a few more observations. It is very difficult for a single Forth CPU to compete against commercial mainstream register machines. On the other hand, lots of small Forth cores should be able to outperform a single RISC-V cpu on parallelizable applications. In the Forth Days 2022 video, Dan Golding reports that their Forth CPU is 1/10 the size of a RISC-V cpu. I suspect that it is more than 1/10th as fast. So potentially 10 Forth cores or even 5 could outperform a single RISC core.

Clearly a dedicated FPGA application will outperform anything we can build on a grid of Forth CPU’s but I also believe that a lot of small developers will be able to release many innovative FPGA applications quickly, and then if the market is there, potentially migrate them to a more optimised implementation.

I was very discouraged that Dr. Ting passed away before I had a chance to work with him. I am very mindful that at the recent Forth2020 video conference there was a lot of grey hair. I hope that we can find a project that grows this community, before all of the expertise disengages.

And of course the dream is to build up a large enough community around such a platform, that it eventually gets built in silicon.

Re: Proposal: Many Core Forth CPU for FPGA development.

<362b13f1-f55e-40a8-bd31-282c6e510079n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=22782&group=comp.lang.forth#22782

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:a05:6214:1872:b0:577:5ef5:4cfb with SMTP id eh18-20020a056214187200b005775ef54cfbmr1095063qvb.8.1678610831922;
Sun, 12 Mar 2023 00:47:11 -0800 (PST)
X-Received: by 2002:a05:6214:8c6:b0:56e:ace8:866f with SMTP id
da6-20020a05621408c600b0056eace8866fmr1073512qvb.3.1678610831694; Sun, 12 Mar
2023 00:47:11 -0800 (PST)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Sun, 12 Mar 2023 00:47:11 -0800 (PST)
In-Reply-To: <6eb6f484-d425-4bcc-b0ca-4df1a22da14cn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2.103.52.235; posting-account=eAOrwQkAAABheFES5y-02sBOFdTlBRio
NNTP-Posting-Host: 2.103.52.235
References: <6eb6f484-d425-4bcc-b0ca-4df1a22da14cn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <362b13f1-f55e-40a8-bd31-282c6e510079n@googlegroups.com>
Subject: Re: Proposal: Many Core Forth CPU for FPGA development.
From: jpita...@gmail.com (Jurgen Pitaske)
Injection-Date: Sun, 12 Mar 2023 08:47:11 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 6337
 by: Jurgen Pitaske - Sun, 12 Mar 2023 08:47 UTC

On Sunday, 12 March 2023 at 07:07:47 UTC, Christopher Lozinski wrote:
> FPGA’s are great for building parallel applications, there is a huge growth in the market for FPGA’s in the data centres, but they are a nightmare to develop for. A grid of Forth cores would be much more fun..
>
> I had no idea how bad it was, until I recently started my masters degree in Electrical Engineering, Digital Design in Katowice Poland. I thought Verily and VHDL looked easy, but I completely failed to understand how they work under the hood. One has to study EE to understand how they convert a design into digital circuitry (synthesis), how to write good code, and how to recognize disastrous code. They take forever to create a large design. The simulators do not always work correctly, so the simulator can say it works, but in reality it does not, and then debugging on a live FPGA changes the system. Successful projects have to spend at least twice as much on verification as on design. What a nightmare!
>
> I think it would be a lot more fun to develop prototypes on a grid of Forth CPUs. Changes could be tested instantly. Once the application was developed, optimizations could be made.
>
> Why not just use a multicore processor running 8th????
> Because then I cannot add in some custom logic blocks. Also Multicore processors are optimized for speed of each individual processor, and not for cooperation between processors. The guys who made linux run on multi-core had a very difficult time. There are caches that can become inconsistent, and messaging between cores is limited. In contrast with a grid of Forth cores on an FPGA, each gets its own memory area, and can talk to its neighbors. Much conceptually simpler. KISS.
>
> In an ideal world, each Forth CPU would have access to its own external memory, to maximize external memory bandwidth. But in the real world, an FPGA board has just one or two memory banks, so good to do something like vision processing, where one image frame gets loaded, and shared with all of the processors. Indeed the Lattice boards even have interfaces for digital cameras.
>
> So let us talk about a particular vision application. Vision processing in a moving vehicle. Or even when the camera is being rotated. The vision processing develops a model of the system being observed. Here are the straight edges, here are the flat surfaces, here are the curved edges. As the image moves, the model needs to be handed over to the adjacent processor to be updated. At least to calculate velocities. There is a lot of communication between adjacent nodes. So hard to do on a multicore cpu.
>
> Next question: Which Forth core should I use?
>
> There are so many Forth FPGA cpus, and so many versions of Forth, it is hard to choose which one to use. Many Forth CPU’s are optimized to fit on an FPGA, many forth virtual machines are optimized to run on the C programming language, or on an Intel CPU. The one person who worked equally on both FPGA’s and C compilers was Dr. Ting. I am sorry that he is now gone. But I believe that he optimized the eForth language and CPU to both work best together. So I think that the EP 32/24/16 with eForth is the right way to go. There is a large stack of eForth software out there. He also did a brilliant job documenting his designs. Makes it very accessible for the beginner. For vision with 3x8 bit color channels, the EP24 makes sense.
>
> Let me make a few more observations. It is very difficult for a single Forth CPU to compete against commercial mainstream register machines. On the other hand, lots of small Forth cores should be able to outperform a single RISC-V cpu on parallelizable applications. In the Forth Days 2022 video, Dan Golding reports that their Forth CPU is 1/10 the size of a RISC-V cpu. I suspect that it is more than 1/10th as fast. So potentially 10 Forth cores or even 5 could outperform a single RISC core.
>
> Clearly a dedicated FPGA application will outperform anything we can build on a grid of Forth CPU’s but I also believe that a lot of small developers will be able to release many innovative FPGA applications quickly, and then if the market is there, potentially migrate them to a more optimised implementation.
>
> I was very discouraged that Dr. Ting passed away before I had a chance to work with him. I am very mindful that at the recent Forth2020 video conference there was a lot of grey hair. I hope that we can find a project that grows this community, before all of the expertise disengages.
>
> And of course the dream is to build up a large enough community around such a platform, that it eventually gets built in silicon.

There is one project I saw that might fit in
https://www.facebook.com/groups/1304548976637542/?multi_permalinks=1639420426483727&notif_id=1678535445817102&notif_t=group_activity&ref=notif

Re: Proposal: Many Core Forth CPU for FPGA development.

<15b6fdd6-5f5c-401b-a682-0e1723a98332n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=22787&group=comp.lang.forth#22787

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:a05:620a:1255:b0:71f:b88c:a645 with SMTP id a21-20020a05620a125500b0071fb88ca645mr2246820qkl.12.1678616685699;
Sun, 12 Mar 2023 03:24:45 -0700 (PDT)
X-Received: by 2002:a05:6214:906:b0:5a5:b7dd:e431 with SMTP id
dj6-20020a056214090600b005a5b7dde431mr108636qvb.1.1678616685428; Sun, 12 Mar
2023 03:24:45 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Sun, 12 Mar 2023 03:24:45 -0700 (PDT)
In-Reply-To: <362b13f1-f55e-40a8-bd31-282c6e510079n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=46.134.10.84; posting-account=qOvlJAoAAAALKIuQXXxAY1xxkFpdJUbI
NNTP-Posting-Host: 46.134.10.84
References: <6eb6f484-d425-4bcc-b0ca-4df1a22da14cn@googlegroups.com> <362b13f1-f55e-40a8-bd31-282c6e510079n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <15b6fdd6-5f5c-401b-a682-0e1723a98332n@googlegroups.com>
Subject: Re: Proposal: Many Core Forth CPU for FPGA development.
From: calozin...@gmail.com (Christopher Lozinski)
Injection-Date: Sun, 12 Mar 2023 10:24:45 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 2616
 by: Christopher Lozinski - Sun, 12 Mar 2023 10:24 UTC

Jurgen Pitaske wrote:
> There is one project I saw that might fit in
> https://www.facebook.com/groups/1304548976637542/?multi_permalinks=1639420426483727&notif_id=1678535445817102&notif_t=group_activity&ref=notif

I am of course quite aware of them, and in touch with one of the authors.

So how does this differ from what they are doing?
Officially they are more focused on building a tablet to make Forth accessible to more people. I am more interested in something like the GA144, a large number of tiny stack machines working together to solve computationally intensive problems.
They are Forth advocates. I am less interested in Forth itself, and more interested in advocating for lots of tiny stack processors versus fewer larger register machines . Of course the stack processors will be running Forth, but they could conceivably run something else.

They have a primary processor, maybe some more for an AI application. I am more interested
in very parallel applications divided among cores.
They are building a new processor, maybe a new Forth. I want to use existing cores, with an existing eForth user base.
They are in Verilog, EP24 is in VHDL.

and of course.
Their project exists, this is just vapor ware.

Does that explain the difference?

Re: Proposal: Many Core Forth CPU for FPGA development.

<b3e8a515-5729-45d2-86e7-ad78f669d0edn@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=22789&group=comp.lang.forth#22789

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:a05:6214:9a1:b0:56b:ee5a:89f0 with SMTP id du1-20020a05621409a100b0056bee5a89f0mr1120035qvb.7.1678618930971;
Sun, 12 Mar 2023 04:02:10 -0700 (PDT)
X-Received: by 2002:ac8:1cd:0:b0:3bf:b844:ffc7 with SMTP id
b13-20020ac801cd000000b003bfb844ffc7mr9027807qtg.12.1678618930761; Sun, 12
Mar 2023 04:02:10 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Sun, 12 Mar 2023 04:02:10 -0700 (PDT)
In-Reply-To: <15b6fdd6-5f5c-401b-a682-0e1723a98332n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2001:1c05:2f18:6d00:7cec:62d1:e951:31f3;
posting-account=-JQ2RQoAAAB6B5tcBTSdvOqrD1HpT_Rk
NNTP-Posting-Host: 2001:1c05:2f18:6d00:7cec:62d1:e951:31f3
References: <6eb6f484-d425-4bcc-b0ca-4df1a22da14cn@googlegroups.com>
<362b13f1-f55e-40a8-bd31-282c6e510079n@googlegroups.com> <15b6fdd6-5f5c-401b-a682-0e1723a98332n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <b3e8a515-5729-45d2-86e7-ad78f669d0edn@googlegroups.com>
Subject: Re: Proposal: Many Core Forth CPU for FPGA development.
From: mhx...@iae.nl (Marcel Hendrix)
Injection-Date: Sun, 12 Mar 2023 11:02:10 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 3284
 by: Marcel Hendrix - Sun, 12 Mar 2023 11:02 UTC

On Sunday, March 12, 2023 at 11:24:47 AM UTC+1, Christopher Lozinski wrote:
[..]
> So how does this differ from what they are doing?
> Officially they are more focused on building a tablet to make Forth accessible to
> more people. I am more interested in something like the GA144, a large number
> of tiny stack machines working together to solve computationally intensive problems.
> They are Forth advocates. I am less interested in Forth itself, and more interested in
> advocating for lots of tiny stack processors versus fewer larger register machines.
> Of course the stack processors will be running Forth, but they could conceivably run
> something else.
> They have a primary processor, maybe some more for an AI application. I am more
> interested in very parallel applications divided among cores.
> They are building a new processor, maybe a new Forth. I want to use existing cores,
> with an existing eForth user base.
> They are in Verilog, EP24 is in VHDL.

[..]

Epiphany multicore chips from Adapteva. The Parallella dev. board can be had for 200$
or so. ( https://www.digikey.nl/en/products/filter/evaluation-boards-embedded-mcu-dsp/786?s=N4IgTCBcDaIA4EMBOCA2qCm6EgLoF8g )

I think "stack processor" is a red herring. As any optimizing Forth compiler will show you,
stacks can be emulated on a register machine.

The important insight is that Forth may have decisive advantages on parallel hardware.
You will realize that when you have to debug a parallel program on parallel, networked,
hardware.

I almost bought the Epihany boards but found an idiotic excuse: it needs a weird power
supply :--) I have a few other Forth projects that I really want to do first.

Remember, the only projects worth doing are the ones that experts tell you
are an impossible dead end. Let me tell you, eForth is not suitable.

-marcel

Re: Proposal: Many Core Forth CPU for FPGA development.

<395ef5de-14b9-46fd-86cd-613c9fd3b66an@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=22790&group=comp.lang.forth#22790

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:ac8:410f:0:b0:3bf:b828:ab0d with SMTP id q15-20020ac8410f000000b003bfb828ab0dmr7641223qtl.11.1678623574062;
Sun, 12 Mar 2023 05:19:34 -0700 (PDT)
X-Received: by 2002:a05:6214:bc1:b0:56e:ab9d:6534 with SMTP id
ff1-20020a0562140bc100b0056eab9d6534mr971263qvb.9.1678623573803; Sun, 12 Mar
2023 05:19:33 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Sun, 12 Mar 2023 05:19:33 -0700 (PDT)
In-Reply-To: <b3e8a515-5729-45d2-86e7-ad78f669d0edn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=46.134.10.84; posting-account=qOvlJAoAAAALKIuQXXxAY1xxkFpdJUbI
NNTP-Posting-Host: 46.134.10.84
References: <6eb6f484-d425-4bcc-b0ca-4df1a22da14cn@googlegroups.com>
<362b13f1-f55e-40a8-bd31-282c6e510079n@googlegroups.com> <15b6fdd6-5f5c-401b-a682-0e1723a98332n@googlegroups.com>
<b3e8a515-5729-45d2-86e7-ad78f669d0edn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <395ef5de-14b9-46fd-86cd-613c9fd3b66an@googlegroups.com>
Subject: Re: Proposal: Many Core Forth CPU for FPGA development.
From: calozin...@gmail.com (Christopher Lozinski)
Injection-Date: Sun, 12 Mar 2023 12:19:34 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 2587
 by: Christopher Lozinski - Sun, 12 Mar 2023 12:19 UTC

Marcel Hendrix wrote:
>
> Epiphany multicore chips from Adapteva. . The Parallella dev. board can be had for 200$
> or so. ( https://www.digikey.nl/en/products/filter/evaluation-boards-embedded-mcu-dsp/786?s=N4IgTCBcDaIA4EMBOCA2qCm6EgLoF8g )
>

Hugely interesting. A friend wrote Lisp for the device. I thought Adapteva closed down. And now they have been bought, by a company in stealth mode, and the boards are once again available. HUGELY tempting.

> I think "stack processor" is a red herring.
The core 1 team reports that their stack processor is 1/10th the size of a Risc-v core. Meaning that i can fit a lot more of them on a device. And a forth instruction executes in a single clock cycle. So why is it a red herring?

> Let me tell you, eForth is not suitable.
I would love to know why. I am still learning. The Core 1 guys said th ep16 did not have an I/O op code. They started out porting the EP16 to ALtera, then ditched the design. I still have not figured out why. I wonder if Dr. Ting was an electrical engineer who knew what he was doing or not. Not at all intuitive how device synthesis works.

Re: Proposal: Many Core Forth CPU for FPGA development.

<nnd$206b6093$3fdf178e@90afe66c9962e5aa>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=22791&group=comp.lang.forth#22791

  copy link   Newsgroups: comp.lang.forth
Newsgroups: comp.lang.forth
Subject: Re: Proposal: Many Core Forth CPU for FPGA development.
References: <6eb6f484-d425-4bcc-b0ca-4df1a22da14cn@googlegroups.com> <15b6fdd6-5f5c-401b-a682-0e1723a98332n@googlegroups.com> <b3e8a515-5729-45d2-86e7-ad78f669d0edn@googlegroups.com> <395ef5de-14b9-46fd-86cd-613c9fd3b66an@googlegroups.com>
X-Newsreader: trn 4.0-test77 (Sep 1, 2010)
From: alb...@cherry (none)
Originator: albert@cherry.(none) (albert)
Message-ID: <nnd$206b6093$3fdf178e@90afe66c9962e5aa>
Organization: KPN B.V.
Date: Sun, 12 Mar 2023 13:45:24 +0100
Path: i2pn2.org!i2pn.org!usenet.goja.nl.eu.org!2.eu.feeder.erje.net!feeder.erje.net!feeder1.feed.usenet.farm!feed.usenet.farm!peer02.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!feed.abavia.com!abe005.abavia.com!abp003.abavia.com!news.kpn.nl!not-for-mail
Lines: 32
Injection-Date: Sun, 12 Mar 2023 13:45:24 +0100
Injection-Info: news.kpn.nl; mail-complaints-to="abuse@kpn.com"
X-Received-Bytes: 2554
 by: none - Sun, 12 Mar 2023 12:45 UTC

In article <395ef5de-14b9-46fd-86cd-613c9fd3b66an@googlegroups.com>,
Christopher Lozinski <calozinski@gmail.com> wrote:
>
>Marcel Hendrix wrote:
>>
>> Epiphany multicore chips from Adapteva. . The Parallella dev. board can be had for 200$
>> or so. ( https://www.digikey.nl/en/products/filter/evaluation-boards-embedded-mcu-dsp/786?s=N4IgTCBcDaIA4EMBOCA2qCm6EgLoF8g )
>>
>
>Hugely interesting. A friend wrote Lisp for the device. I thought Adapteva closed down. And now they have been
>bought, by a company in stealth mode, and the boards are once again available. HUGELY tempting.
>
>> I think "stack processor" is a red herring.
>The core 1 team reports that their stack processor is 1/10th the size of a Risc-v core. Meaning that i can fit a lot more
>of them on a device. And a forth instruction executes in a single clock cycle. So why is it a red herring?
>
>> Let me tell you, eForth is not suitable.
>I would love to know why. I am still learning. The Core 1 guys said th ep16 did not have an I/O op code. They started
>out porting the EP16 to ALtera, then ditched the design. I still have not figured out why. I wonder if Dr. Ting was an
>electrical engineer who knew what he was doing or not. Not at all intuitive how device synthesis works.
>

You misunderstood. eForth is not suitable -> the experts saying don't do it ->
that is the project you should embark in.

(Unless I misunderstood.)
--
Don't praise the day before the evening. One swallow doesn't make spring.
You must not say "hey" before you have crossed the bridge. Don't sell the
hide of the bear until you shot it. Better one bird in the hand than ten in
the air. First gain is a cat spinning. - the Wise from Antrim -

Re: Proposal: Many Core Forth CPU for FPGA development.

<67ec2de3-54e7-4941-ae2a-33cbf9dfff48n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=22793&group=comp.lang.forth#22793

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:ac8:5c48:0:b0:3c0:22e8:16eb with SMTP id j8-20020ac85c48000000b003c022e816ebmr7959421qtj.8.1678627631256;
Sun, 12 Mar 2023 06:27:11 -0700 (PDT)
X-Received: by 2002:ad4:4e74:0:b0:56e:9f09:ee58 with SMTP id
ec20-20020ad44e74000000b0056e9f09ee58mr1201660qvb.8.1678627631070; Sun, 12
Mar 2023 06:27:11 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Sun, 12 Mar 2023 06:27:10 -0700 (PDT)
In-Reply-To: <nnd$206b6093$3fdf178e@90afe66c9962e5aa>
Injection-Info: google-groups.googlegroups.com; posting-host=2001:1c05:2f18:6d00:607b:5195:889:f7fa;
posting-account=-JQ2RQoAAAB6B5tcBTSdvOqrD1HpT_Rk
NNTP-Posting-Host: 2001:1c05:2f18:6d00:607b:5195:889:f7fa
References: <6eb6f484-d425-4bcc-b0ca-4df1a22da14cn@googlegroups.com>
<15b6fdd6-5f5c-401b-a682-0e1723a98332n@googlegroups.com> <b3e8a515-5729-45d2-86e7-ad78f669d0edn@googlegroups.com>
<395ef5de-14b9-46fd-86cd-613c9fd3b66an@googlegroups.com> <nnd$206b6093$3fdf178e@90afe66c9962e5aa>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <67ec2de3-54e7-4941-ae2a-33cbf9dfff48n@googlegroups.com>
Subject: Re: Proposal: Many Core Forth CPU for FPGA development.
From: mhx...@iae.nl (Marcel Hendrix)
Injection-Date: Sun, 12 Mar 2023 13:27:11 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 1765
 by: Marcel Hendrix - Sun, 12 Mar 2023 13:27 UTC

On Sunday, March 12, 2023 at 1:45:27 PM UTC+1, none albert wrote:
[..]
> You misunderstood. eForth is not suitable -> the experts saying don't do it ->
> that is the project you should embark in.
>
> (Unless I misunderstood.)

Also remember the way ants build a bridge, and how to become
a millionaire.

-marcel

Re: Proposal: Many Core Forth CPU for FPGA development.

<tumr5b$3m6rr$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=22805&group=comp.lang.forth#22805

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
From: dxfo...@gmail.com (dxforth)
Newsgroups: comp.lang.forth
Subject: Re: Proposal: Many Core Forth CPU for FPGA development.
Date: Mon, 13 Mar 2023 20:42:05 +1100
Organization: A noiseless patient Spider
Lines: 13
Message-ID: <tumr5b$3m6rr$1@dont-email.me>
References: <6eb6f484-d425-4bcc-b0ca-4df1a22da14cn@googlegroups.com>
<15b6fdd6-5f5c-401b-a682-0e1723a98332n@googlegroups.com>
<b3e8a515-5729-45d2-86e7-ad78f669d0edn@googlegroups.com>
<395ef5de-14b9-46fd-86cd-613c9fd3b66an@googlegroups.com>
<nnd$206b6093$3fdf178e@90afe66c9962e5aa>
<67ec2de3-54e7-4941-ae2a-33cbf9dfff48n@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Mon, 13 Mar 2023 09:42:04 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="ffd66dc662ecdd4e87b38434d2fd0895";
logging-data="3873659"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+sQbH8H+utbI+t2eKK0+kp"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.8.0
Cancel-Lock: sha1:S6yr6v8kCzQa41yqYdeEWEc9nbg=
Content-Language: en-GB
In-Reply-To: <67ec2de3-54e7-4941-ae2a-33cbf9dfff48n@googlegroups.com>
 by: dxforth - Mon, 13 Mar 2023 09:42 UTC

On 13/03/2023 12:27 am, Marcel Hendrix wrote:
> On Sunday, March 12, 2023 at 1:45:27 PM UTC+1, none albert wrote:
> [..]
>> You misunderstood. eForth is not suitable -> the experts saying don't do it ->
>> that is the project you should embark in.
>>
>> (Unless I misunderstood.)
>
> Also remember the way ants build a bridge, and how to become
> a millionaire.

An expert is one who has learnt how to get others to take all the risk.

Re: Proposal: Many Core Forth CPU for FPGA development.

<bb4dc496-6b1f-4528-b040-91101c51c934n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=22808&group=comp.lang.forth#22808

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:a05:6214:9a8:b0:56e:ff38:46a2 with SMTP id du8-20020a05621409a800b0056eff3846a2mr1849502qvb.10.1678703629320;
Mon, 13 Mar 2023 03:33:49 -0700 (PDT)
X-Received: by 2002:ac8:40ce:0:b0:3bf:bba0:8816 with SMTP id
f14-20020ac840ce000000b003bfbba08816mr9866849qtm.5.1678703629136; Mon, 13 Mar
2023 03:33:49 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Mon, 13 Mar 2023 03:33:48 -0700 (PDT)
In-Reply-To: <tumr5b$3m6rr$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=2.103.52.235; posting-account=eAOrwQkAAABheFES5y-02sBOFdTlBRio
NNTP-Posting-Host: 2.103.52.235
References: <6eb6f484-d425-4bcc-b0ca-4df1a22da14cn@googlegroups.com>
<15b6fdd6-5f5c-401b-a682-0e1723a98332n@googlegroups.com> <b3e8a515-5729-45d2-86e7-ad78f669d0edn@googlegroups.com>
<395ef5de-14b9-46fd-86cd-613c9fd3b66an@googlegroups.com> <nnd$206b6093$3fdf178e@90afe66c9962e5aa>
<67ec2de3-54e7-4941-ae2a-33cbf9dfff48n@googlegroups.com> <tumr5b$3m6rr$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <bb4dc496-6b1f-4528-b040-91101c51c934n@googlegroups.com>
Subject: Re: Proposal: Many Core Forth CPU for FPGA development.
From: jpita...@gmail.com (Jurgen Pitaske)
Injection-Date: Mon, 13 Mar 2023 10:33:49 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 2287
 by: Jurgen Pitaske - Mon, 13 Mar 2023 10:33 UTC

On Monday, 13 March 2023 at 09:42:07 UTC, dxforth wrote:
> On 13/03/2023 12:27 am, Marcel Hendrix wrote:
> > On Sunday, March 12, 2023 at 1:45:27 PM UTC+1, none albert wrote:
> > [..]
> >> You misunderstood. eForth is not suitable -> the experts saying don't do it ->
> >> that is the project you should embark in.
> >>
> >> (Unless I misunderstood.)
> >
> > Also remember the way ants build a bridge, and how to become
> > a millionaire.

> An expert is one who has learnt how to get others to take all the risk.

This might be your approach in your business.

I am in our business more used to the fact,
that the expert understands the issues,
puts them all on the table for the ones involved,
and helps with expert advice to move the project forward.

Re: Proposal: Many Core Forth CPU for FPGA development.

<2023Mar13.114600@mips.complang.tuwien.ac.at>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=22809&group=comp.lang.forth#22809

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
From: ant...@mips.complang.tuwien.ac.at (Anton Ertl)
Newsgroups: comp.lang.forth
Subject: Re: Proposal: Many Core Forth CPU for FPGA development.
Date: Mon, 13 Mar 2023 10:46:00 GMT
Organization: Institut fuer Computersprachen, Technische Universitaet Wien
Lines: 24
Message-ID: <2023Mar13.114600@mips.complang.tuwien.ac.at>
References: <6eb6f484-d425-4bcc-b0ca-4df1a22da14cn@googlegroups.com> <15b6fdd6-5f5c-401b-a682-0e1723a98332n@googlegroups.com> <b3e8a515-5729-45d2-86e7-ad78f669d0edn@googlegroups.com> <395ef5de-14b9-46fd-86cd-613c9fd3b66an@googlegroups.com> <nnd$206b6093$3fdf178e@90afe66c9962e5aa> <67ec2de3-54e7-4941-ae2a-33cbf9dfff48n@googlegroups.com> <tumr5b$3m6rr$1@dont-email.me> <bb4dc496-6b1f-4528-b040-91101c51c934n@googlegroups.com>
Injection-Info: dont-email.me; posting-host="7e647597e1905824ad00cea065aa0259";
logging-data="3919851"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18xwllRQdIefr+tTd/BC9+p"
Cancel-Lock: sha1:eioYIKAfMrBM1vHl1WVOt47ZwB4=
X-newsreader: xrn 10.11
 by: Anton Ertl - Mon, 13 Mar 2023 10:46 UTC

Jurgen Pitaske <jpitaske@gmail.com> writes:
>On Monday, 13 March 2023 at 09:42:07 UTC, dxforth wrote:
>> An expert is one who has learnt how to get others to take all the risk.
>
>This might be your approach in your business.
>
>I am in our business more used to the fact,
>that the expert understands the issues,=20
>puts them all on the table for the ones involved,
>and helps with expert advice to move the project forward.

The sentence from dxforth appeared to be a typical dxforthisms,
although this appeared particularly nonsensical even among
dxforthisms. Your explanation made clear to me what I had missed,
resulting in a dxforthism with the usual portion of nonsense. What I
had missed was that dxforth probably had a setting in mind where a
decision maker seeks the advice of one or more experts to help him decide.

- anton
--
M. Anton Ertl http://www.complang.tuwien.ac.at/anton/home.html
comp.lang.forth FAQs: http://www.complang.tuwien.ac.at/forth/faq/toc.html
New standard: https://forth-standard.org/
EuroForth 2022: https://euro.theforth.net

Re: Proposal: Many Core Forth CPU for FPGA development.

<tun3d5$3oc1s$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=22811&group=comp.lang.forth#22811

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
From: dxfo...@gmail.com (dxforth)
Newsgroups: comp.lang.forth
Subject: Re: Proposal: Many Core Forth CPU for FPGA development.
Date: Mon, 13 Mar 2023 23:02:46 +1100
Organization: A noiseless patient Spider
Lines: 29
Message-ID: <tun3d5$3oc1s$1@dont-email.me>
References: <6eb6f484-d425-4bcc-b0ca-4df1a22da14cn@googlegroups.com>
<15b6fdd6-5f5c-401b-a682-0e1723a98332n@googlegroups.com>
<b3e8a515-5729-45d2-86e7-ad78f669d0edn@googlegroups.com>
<395ef5de-14b9-46fd-86cd-613c9fd3b66an@googlegroups.com>
<nnd$206b6093$3fdf178e@90afe66c9962e5aa>
<67ec2de3-54e7-4941-ae2a-33cbf9dfff48n@googlegroups.com>
<tumr5b$3m6rr$1@dont-email.me>
<bb4dc496-6b1f-4528-b040-91101c51c934n@googlegroups.com>
<2023Mar13.114600@mips.complang.tuwien.ac.at>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Mon, 13 Mar 2023 12:02:46 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="ffd66dc662ecdd4e87b38434d2fd0895";
logging-data="3944508"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+iFSxEHxW+1vbREghVNc+n"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.8.0
Cancel-Lock: sha1:6dPC2SMXSCMlJYdW9EdiFxXcbCs=
In-Reply-To: <2023Mar13.114600@mips.complang.tuwien.ac.at>
Content-Language: en-GB
 by: dxforth - Mon, 13 Mar 2023 12:02 UTC

On 13/03/2023 9:46 pm, Anton Ertl wrote:
> Jurgen Pitaske <jpitaske@gmail.com> writes:
>> On Monday, 13 March 2023 at 09:42:07 UTC, dxforth wrote:
>>> An expert is one who has learnt how to get others to take all the risk.
>>
>> This might be your approach in your business.
>>
>> I am in our business more used to the fact,
>> that the expert understands the issues,=20
>> puts them all on the table for the ones involved,
>> and helps with expert advice to move the project forward.
>
> The sentence from dxforth appeared to be a typical dxforthisms,
> although this appeared particularly nonsensical even among

We are sensitive today. As you made no comment upon them, can
we assume you took seriously the comments to which I responded?

On 13/03/2023 12:27 am, Marcel Hendrix wrote:
> On Sunday, March 12, 2023 at 1:45:27 PM UTC+1, none albert wrote:
> [..]
>> You misunderstood. eForth is not suitable -> the experts saying don't do it ->
>> that is the project you should embark in.
>>
>> (Unless I misunderstood.)
>
> Also remember the way ants build a bridge, and how to become
> a millionaire.

Re: Proposal: Many Core Forth CPU for FPGA development.

<tun8tp$3pfqt$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=22813&group=comp.lang.forth#22813

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
From: m.c...@gmx.net (Matthias Koch)
Newsgroups: comp.lang.forth
Subject: Re: Proposal: Many Core Forth CPU for FPGA development.
Date: Mon, 13 Mar 2023 14:36:56 +0100
Organization: A noiseless patient Spider
Lines: 11
Message-ID: <tun8tp$3pfqt$1@dont-email.me>
References: <6eb6f484-d425-4bcc-b0ca-4df1a22da14cn@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Mon, 13 Mar 2023 13:36:57 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="fbd14c889fb3c62f5847a07a97b7d001";
logging-data="3981149"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+T5sjEALeTIIi+nKgyF/Mx"
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101
Thunderbird/102.8.0
Cancel-Lock: sha1:qTPfkHWmVXUgGef7vS+LZ+Ljlec=
Content-Language: de-DE
In-Reply-To: <6eb6f484-d425-4bcc-b0ca-4df1a22da14cn@googlegroups.com>
 by: Matthias Koch - Mon, 13 Mar 2023 13:36 UTC

Hi Christopher,

before you embark on the huge challenge, maybe try small single core designs to dive in and get a feeling for FPGAs!

You can try Mecrisp-Ice (custom stack processor) or Mecrisp-Quintus (RISC-V processor), and you should really have a look at the tutorial by Bruno Levy that shows you the path from a simple blinky to a RISC-V processor design.

https://github.com/brunolevy/learn-fpga
https://mecrisp.sourceforge.net/

Matthias

Re: Proposal: Many Core Forth CPU for FPGA development.

<46dd7299-a6dd-4dd4-965a-b8918696e61bn@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=22888&group=comp.lang.forth#22888

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:ae9:ed8d:0:b0:742:778d:79e6 with SMTP id c135-20020ae9ed8d000000b00742778d79e6mr170124qkg.5.1678999224990;
Thu, 16 Mar 2023 13:40:24 -0700 (PDT)
X-Received: by 2002:ae9:e211:0:b0:742:9e15:3e0 with SMTP id
c17-20020ae9e211000000b007429e1503e0mr6661552qkc.5.1678999224733; Thu, 16 Mar
2023 13:40:24 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Thu, 16 Mar 2023 13:40:24 -0700 (PDT)
In-Reply-To: <tun8tp$3pfqt$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=46.134.49.194; posting-account=qOvlJAoAAAALKIuQXXxAY1xxkFpdJUbI
NNTP-Posting-Host: 46.134.49.194
References: <6eb6f484-d425-4bcc-b0ca-4df1a22da14cn@googlegroups.com> <tun8tp$3pfqt$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <46dd7299-a6dd-4dd4-965a-b8918696e61bn@googlegroups.com>
Subject: Re: Proposal: Many Core Forth CPU for FPGA development.
From: calozin...@gmail.com (Christopher Lozinski)
Injection-Date: Thu, 16 Mar 2023 20:40:24 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 2018
 by: Christopher Lozinski - Thu, 16 Mar 2023 20:40 UTC

On Monday, March 13, 2023 at 2:36:59 PM UTC+1, Matthias Koch wrote:
>
> You can try Mecrisp-Ice (custom stack processor)
That is a great idea.
i am getting educated about these issues. The EP16/24/32 seem to have two issues.
The stack uses a very large shift register, instead of some memory.
It uses latches for registers, advised against in my class.
Both issues are red flags for me.

There must be a reason the J1 CPU is so popular. I need to read more about it.
I guess I am in the process of exploring these different stack machines.

The work on the CORE-1 is also very interesting. I particularly like how they do not use a cross compiler, they just put the Forth code in a memory region to start off with.

Thank you
Chris

Re: Proposal: Many Core Forth CPU for FPGA development.

<8991030c-6d25-4987-9174-434c4fa33268n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=22889&group=comp.lang.forth#22889

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:ad4:4ae3:0:b0:56e:a203:5d1f with SMTP id cp3-20020ad44ae3000000b0056ea2035d1fmr5200944qvb.5.1679007324972;
Thu, 16 Mar 2023 15:55:24 -0700 (PDT)
X-Received: by 2002:ac8:7006:0:b0:3c0:2b0b:84c with SMTP id
x6-20020ac87006000000b003c02b0b084cmr1425562qtm.6.1679007324648; Thu, 16 Mar
2023 15:55:24 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Thu, 16 Mar 2023 15:55:24 -0700 (PDT)
In-Reply-To: <46dd7299-a6dd-4dd4-965a-b8918696e61bn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=63.114.57.174; posting-account=I-_H_woAAAA9zzro6crtEpUAyIvzd19b
NNTP-Posting-Host: 63.114.57.174
References: <6eb6f484-d425-4bcc-b0ca-4df1a22da14cn@googlegroups.com>
<tun8tp$3pfqt$1@dont-email.me> <46dd7299-a6dd-4dd4-965a-b8918696e61bn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <8991030c-6d25-4987-9174-434c4fa33268n@googlegroups.com>
Subject: Re: Proposal: Many Core Forth CPU for FPGA development.
From: gnuarm.d...@gmail.com (Lorem Ipsum)
Injection-Date: Thu, 16 Mar 2023 22:55:24 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 5629
 by: Lorem Ipsum - Thu, 16 Mar 2023 22:55 UTC

On Thursday, March 16, 2023 at 4:40:26 PM UTC-4, Christopher Lozinski wrote:
> On Monday, March 13, 2023 at 2:36:59 PM UTC+1, Matthias Koch wrote:
>
> >
> > You can try Mecrisp-Ice (custom stack processor)
> That is a great idea.
> i am getting educated about these issues. The EP16/24/32 seem to have two issues.
> The stack uses a very large shift register, instead of some memory.
> It uses latches for registers, advised against in my class.
> Both issues are red flags for me.

I don't find any evidence of either of these being true. I can't find anything that indicates the stacks are shift registers. Looking at ep16.vhd, here is the code for the entire CPU register set.

sync: process(clk,clr)
begin
if clr='1' then -- master reset
inten <='0';
slot <= 0;
sp <= "00000";
sp1 <= "00001";
rp <= "00000";
rp1 <= "00001";
t <= (others => '0');
r <= (others => '0');
a <= (others => '0');
p <= (others => '0');
i <= (others => '0');
for ii in s_stack'range loop
s_stack(ii) <= (others => '0');
r_stack(ii) <= (others => '0');
end loop;
elsif (clk'event and clk='1') then
if reset='1' or slot=3 then
slot <= 0;
else slot <= slot+1;
end if;
if intload='1' then
inten <= intset;
end if;
if iload='1' then
i <= data_i(width-1 downto 0);
end if;
if pload='1' then
p <= p_in;
end if;
if tload='1' then
t <= t_in;
end if;
if rload='1' then
r <= r_in;
end if;
if aload='1' then
a <= a_in;
end if;
if spush='1' then
s_stack(conv_integer(sp1)) <= t;
sp <= sp+1;
sp1 <= sp1+1;
elsif spopp='1' then
sp <= sp-1;
sp1 <= sp1-1;
end if;
if rpush='1' then
r_stack(conv_integer(rp1)) <= r;
rp <= rp+1;
rp1 <= rp1+1;
elsif rpopp='1' then
rp <= rp-1;
rp1 <= rp1-1;
end if;
end if;
end process sync;

Google Groups will strip the multiple spaces, so it will be a bit hard to read. I'll present the relevant bits as I talk about them.

sync: process(clk,clr)
begin
if clr='1' then -- master reset
....
elsif (clk'event and clk='1') then
....

This is the part that indicates the registers are registers, and not latches. I expect you read the document ep16inVHDL.pdf and saw all the uses of the verb latch. He is speaking generally, without distinguishing between registers or latches. He is not saying he used latches over clocked registers. Latches are hard to find in FPGAs. They have to be constructed from combinational logic. Virtually no one uses them.

Here are the bits that show the stack is a memory, not a shift register. The memories are addressed by sp1 and rp1. I didn't dig into the code to tell why the code has sp1 and sp. Maybe it is for reading the stack. The code assigns the s_stack contents to 's', which is a terrible variable name as it is so hard to search on, so I didn't bother. There's also no comments to explain any of the variables used.

if spush='1' then
s_stack(conv_integer(sp1)) <= t;
sp <= sp+1;
sp1 <= sp1+1;
....
end if;
if rpush='1' then
r_stack(conv_integer(rp1)) <= r;
rp <= rp+1;
rp1 <= rp1+1;
....
end if;

If it were a shift register, it would operate without an address, only having access to the top items on the stack through ports.

> There must be a reason the J1 CPU is so popular. I need to read more about it.
> I guess I am in the process of exploring these different stack machines.

It is small, both in lines of code and in size in the FPGA. It's also pretty well documented.

> The work on the CORE-1 is also very interesting. I particularly like how they do not use a cross compiler, they just put the Forth code in a memory region to start off with.

That is standard operating procedure for many MCUs and Forths. Cross compilers are messy and a PITA.

--

Rick C.

- Get 1,000 miles of free Supercharging
- Tesla referral code - https://ts.la/richard11209

Re: Proposal: Many Core Forth CPU for FPGA development.

<00eb977d-6d49-43aa-8465-b1f32a512cben@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=22896&group=comp.lang.forth#22896

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:ad4:5504:0:b0:5bb:ca1d:f042 with SMTP id pz4-20020ad45504000000b005bbca1df042mr441416qvb.0.1679029790127;
Thu, 16 Mar 2023 22:09:50 -0700 (PDT)
X-Received: by 2002:ad4:5184:0:b0:56e:9c3f:a49e with SMTP id
b4-20020ad45184000000b0056e9c3fa49emr497959qvp.5.1679029789891; Thu, 16 Mar
2023 22:09:49 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Thu, 16 Mar 2023 22:09:49 -0700 (PDT)
In-Reply-To: <8991030c-6d25-4987-9174-434c4fa33268n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=46.134.24.223; posting-account=qOvlJAoAAAALKIuQXXxAY1xxkFpdJUbI
NNTP-Posting-Host: 46.134.24.223
References: <6eb6f484-d425-4bcc-b0ca-4df1a22da14cn@googlegroups.com>
<tun8tp$3pfqt$1@dont-email.me> <46dd7299-a6dd-4dd4-965a-b8918696e61bn@googlegroups.com>
<8991030c-6d25-4987-9174-434c4fa33268n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <00eb977d-6d49-43aa-8465-b1f32a512cben@googlegroups.com>
Subject: Re: Proposal: Many Core Forth CPU for FPGA development.
From: calozin...@gmail.com (Christopher Lozinski)
Injection-Date: Fri, 17 Mar 2023 05:09:50 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 3996
 by: Christopher Lozinski - Fri, 17 Mar 2023 05:09 UTC

On Thursday, March 16, 2023 at 11:55:26 PM UTC+1, Lorem Ipsum wrote:
>> The EP16/24/32 seem to have two issues.
> > The stack uses a very large shift register, instead of some memory.
> > It uses latches for registers, advised against in my class.

> I don't find any evidence of either of these being true. I can't find anything that indicates the stacks are shift registers. Looking at ep16.vhd, here is the code for the entire CPU register set.

Thank you for correcting me. I got it not from the code, but from the documentation.

> "In this design, the CPU latches all data into appropriate registers and stacks on the rising edge of a single phase master clock. Such a synchronous design ensures that all instructions are executed quickly and reliably in a single clock cycle. When the master clock is held steady, the microprocessor retains all data in registers, stacks and memory, consuming very little power. It is thus possible to further reduce its power consumption by reducing the clock rate, or stopping the clock completely.
.."

I can't find the line where it said that the stacks are implemented as shift registers.

"Read the code" is good advice.
> You can try Mecrisp-Ice (custom stack processor)
I did take a look at the Mecrisp-Ice. It runs on the J1a cpu.
In the past I did look at the J1 CPU. I looked again. It now has 32 bit version, and Python simulators, and verilator to C++ compiler, and even a VHDL version. But it has two problems, one specific, one abstract. If I recall correctly, the specific problem, is that it has no interrupts. The abstract problem is that it was designed to squeeze into a tiny space for a commercial app.

I am less interested in building an end user application, and more interested in building a wonderful development environment. A grid of Forth cpu's talking to each other, maybe even interrupting each other. So i think interrupts are critical.

In other news, I have been learning Verilog, and am most unhappy with it.

Here is a large list of Verilog Gotcha's.
https://lcdm-eng.com/papers/snug06_Verilog%20Gotchas%20Part1.pdf

From the "Zen of Python"
Explicit is better than implicit.

I am not a full time EE, so an explicit language makes much more sense to me.
I think I much prefer VHDL. Of course the grass is always greener on the other side of the fence.

Thank you everyone for all of the great advice. I feel like you care about these issues. Out of caution, I do not even talk about it at school.

Re: Proposal: Many Core Forth CPU for FPGA development.

<656b2de8-651e-4e21-83d4-63bb262b91b8n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=22898&group=comp.lang.forth#22898

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:a05:620a:a44:b0:745:d589:3301 with SMTP id j4-20020a05620a0a4400b00745d5893301mr2468435qka.12.1679032067779;
Thu, 16 Mar 2023 22:47:47 -0700 (PDT)
X-Received: by 2002:a05:620a:78a:b0:743:7912:2f59 with SMTP id
10-20020a05620a078a00b0074379122f59mr4830492qka.9.1679032067502; Thu, 16 Mar
2023 22:47:47 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Thu, 16 Mar 2023 22:47:47 -0700 (PDT)
In-Reply-To: <00eb977d-6d49-43aa-8465-b1f32a512cben@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=65.207.89.54; posting-account=I-_H_woAAAA9zzro6crtEpUAyIvzd19b
NNTP-Posting-Host: 65.207.89.54
References: <6eb6f484-d425-4bcc-b0ca-4df1a22da14cn@googlegroups.com>
<tun8tp$3pfqt$1@dont-email.me> <46dd7299-a6dd-4dd4-965a-b8918696e61bn@googlegroups.com>
<8991030c-6d25-4987-9174-434c4fa33268n@googlegroups.com> <00eb977d-6d49-43aa-8465-b1f32a512cben@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <656b2de8-651e-4e21-83d4-63bb262b91b8n@googlegroups.com>
Subject: Re: Proposal: Many Core Forth CPU for FPGA development.
From: gnuarm.d...@gmail.com (Lorem Ipsum)
Injection-Date: Fri, 17 Mar 2023 05:47:47 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 7573
 by: Lorem Ipsum - Fri, 17 Mar 2023 05:47 UTC

On Friday, March 17, 2023 at 1:09:51 AM UTC-4, Christopher Lozinski wrote:
> On Thursday, March 16, 2023 at 11:55:26 PM UTC+1, Lorem Ipsum wrote:
> >> The EP16/24/32 seem to have two issues.
> > > The stack uses a very large shift register, instead of some memory.
> > > It uses latches for registers, advised against in my class.
> > I don't find any evidence of either of these being true. I can't find anything that indicates the stacks are shift registers. Looking at ep16.vhd, here is the code for the entire CPU register set.
> Thank you for correcting me. I got it not from the code, but from the documentation.
>
> > "In this design, the CPU latches all data into appropriate registers and stacks on the rising edge of a single phase master clock. Such a synchronous design ensures that all instructions are executed quickly and reliably in a single clock cycle. When the master clock is held steady, the microprocessor retains all data in registers, stacks and memory, consuming very little power. It is thus possible to further reduce its power consumption by reducing the clock rate, or stopping the clock completely.
> ."
>
> I can't find the line where it said that the stacks are implemented as shift registers.

"The T register connects parameter stack and return stack as a giant shift register.
Data can be shifted towards the return stack by a PUSH instruction, and shifted
towards the parameter stack by a POP instruction."

I suspect this is what you read. He is simply describing how the >R and R> instructions (which he calls PUSH and POP) move data back and forth. When you move a data value, it causes the rest of the data stack to move data in the same direction as well.

But even if he was using a shift register, why would that matter?

> "Read the code" is good advice.
> > You can try Mecrisp-Ice (custom stack processor)

I think you munged the attributions. This was from Matthias, not me.

> I did take a look at the Mecrisp-Ice. It runs on the J1a cpu.
> In the past I did look at the J1 CPU. I looked again. It now has 32 bit version, and Python simulators, and verilator to C++ compiler, and even a VHDL version. But it has two problems, one specific, one abstract. If I recall correctly, the specific problem, is that it has no interrupts. The abstract problem is that it was designed to squeeze into a tiny space for a commercial app.

A CPU in an FPGA often does not need interrupts. My CPU design has an interrupt. I tried to optimize my design for ease of calculating speeds, so every instruction is one clock cycle, including the interrupt. It is just a forced call instruction that also pushes the processor status word onto the data stack. It allows very fast servicing of interrupts for hard real time apps.

> I am less interested in building an end user application, and more interested in building a wonderful development environment. A grid of Forth cpu's talking to each other, maybe even interrupting each other. So i think interrupts are critical.

Chuck Moore would not agree with you. The GA144 has no interrupts. It has processors that are dedicated to tasks, so they stop and wait for data or even just synchronization.

> In other news, I have been learning Verilog, and am most unhappy with it.
>
> Here is a large list of Verilog Gotcha's.
> https://lcdm-eng.com/papers/snug06_Verilog%20Gotchas%20Part1.pdf
>
> From the "Zen of Python"
> Explicit is better than implicit.

Not sure what that means, other than I guess you are not happy with the fact that Verilog has many assumptions that you can override... if you know they are there. I've never learned Verilog, because I've never found a book that explains all the gotchas.

> I am not a full time EE, so an explicit language makes much more sense to me.
> I think I much prefer VHDL. Of course the grass is always greener on the other side of the fence.

VHDL is *very* wordy. It has relaxed a bit in the last decade or two with many new features that make life easy. I noticed the EP16 code uses (clk'event and clk='1') rather than (rising_edge(clk)). Very old school. It is deprecated, because it can trigger on odd events, such as a transition from HIGH to '1'. But it works normally. There are still gotchas. VHDL uses delta delays (think infinitesimal time intervals) to order events that happen when the clock has not advanced. Without that, you can have several FFs toggle on the same clock edge, with some being updated and feeding into others that will be evaluated next. If you run a clock through a buffer, it adds a delta delay, assuring the downstream FFs will receive data updated on the previous delta cycle. Opps! So watch out for any assignments (buffers) in clock paths.

> Thank you everyone for all of the great advice. I feel like you care about these issues. Out of caution, I do not even talk about it at school.

LOL I was in a presentation from a vendor for a new ARM MCU (back when not everyone was selling ARM MCUs). They asked about our applications and I mentioned Forth. The presenter actually laughed and said he didn't think anyone still used it! I just find it more usable than dealing with the tools of C or other HLLs.

I use VHDL, but I guess I'm used to that. Writing code for hardware design is not like writing software... exactly. I think in terms of what I want built, rather than only what it does. VHDL has code that is executed sequentially, but mostly it's concurrent... in parallel. That's the part people have trouble getting used to when they switch from software.

There are many who play/work in Forth because they like it. I guess that's why you are using it for your project. You just like it.

--

Rick C.

+ Get 1,000 miles of free Supercharging
+ Tesla referral code - https://ts.la/richard11209

HDL Choice was: Re: Proposal: Many Core Forth CPU for FPGA development.

<20230317141840.19869b6c@t530>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=22912&group=comp.lang.forth#22912

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
From: jan4comp...@murray-microft.co.uk (Jan Coombs)
Newsgroups: comp.lang.forth
Subject: HDL Choice was: Re: Proposal: Many Core Forth CPU for FPGA
development.
Date: Fri, 17 Mar 2023 18:18:19 +0000
Organization: A noiseless patient Spider
Lines: 31
Message-ID: <20230317141840.19869b6c@t530>
References: <6eb6f484-d425-4bcc-b0ca-4df1a22da14cn@googlegroups.com>
<tun8tp$3pfqt$1@dont-email.me>
<46dd7299-a6dd-4dd4-965a-b8918696e61bn@googlegroups.com>
<8991030c-6d25-4987-9174-434c4fa33268n@googlegroups.com>
<00eb977d-6d49-43aa-8465-b1f32a512cben@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Injection-Info: reader01.eternal-september.org; posting-host="e28d25b57da88412b12050e67c97467c";
logging-data="2089291"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX181ihsoggyW5v4YsHNlUAHS2k8+jPMYw6k="
Cancel-Lock: sha1:p06VSNMhgiV+OX+ovvquBt6cLH4=
X-Newsreader: Claws Mail 3.17.3 (GTK+ 2.24.32; x86_64-pc-linux-gnu)
 by: Jan Coombs - Fri, 17 Mar 2023 18:18 UTC

On Thu, 16 Mar 2023 22:09:49 -0700 (PDT)
Christopher Lozinski <calozinski@gmail.com> wrote:

> In other news, I have been learning Verilog, and am most unhappy with it.
>
> Here is a large list of Verilog Gotcha's.
> https://lcdm-eng.com/papers/snug06_Verilog%20Gotchas%20Part1.pdf

I have a few stack processors translated into MyHDL[1] if you'd like
another starting point. This Python library can simulate as fast[2]
as other free simulators, export wave traces to aid debug, and export
Verilog and VHDL for hardware synthesis.

One of the reasons for it's existence is to avoid the gotcha's and/or
verbosity of other development environments[3][4].

Jan Coombs
--

[1] MyHDL - From Python to Silicon!
https://myhdl.org/

[2] Performance
https://myhdl.org/docs/performance.html

[3] Why MyHDL?
https://myhdl.org/start/why.html

[4] What MyHDL is not
https://myhdl.org/start/whatitisnot.html

Re: Proposal: Many Core Forth CPU for FPGA development.

<tv771d$31pcs$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=22942&group=comp.lang.forth#22942

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
From: m.c...@gmx.net (Matthias Koch)
Newsgroups: comp.lang.forth
Subject: Re: Proposal: Many Core Forth CPU for FPGA development.
Date: Sun, 19 Mar 2023 15:42:53 +0100
Organization: A noiseless patient Spider
Lines: 1
Message-ID: <tv771d$31pcs$1@dont-email.me>
References: <6eb6f484-d425-4bcc-b0ca-4df1a22da14cn@googlegroups.com>
<tun8tp$3pfqt$1@dont-email.me>
<46dd7299-a6dd-4dd4-965a-b8918696e61bn@googlegroups.com>
<8991030c-6d25-4987-9174-434c4fa33268n@googlegroups.com>
<00eb977d-6d49-43aa-8465-b1f32a512cben@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 19 Mar 2023 14:42:53 -0000 (UTC)
Injection-Info: reader01.eternal-september.org; posting-host="8fac01e2b724edf213ad19676fdf9ded";
logging-data="3204508"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+0FX3vZPMsoVDUoqphDgqr"
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101
Thunderbird/102.9.0
Cancel-Lock: sha1:NOWoURRcAhkMr0zAGGYAbSooKgY=
In-Reply-To: <00eb977d-6d49-43aa-8465-b1f32a512cben@googlegroups.com>
Content-Language: de-DE
 by: Matthias Koch - Sun, 19 Mar 2023 14:42 UTC

Keep in mind that while Mecrisp-Ice (which comes in 16, 32 and 64 bits) is a direct descendant of Swapforth/J1 by James Bowman, I continued development, and it certainly has interrupts. There are also different variants of the processor, and you can use either shift registers or BRAMs for the stacks. The shift register stacks help when one is short on RAM blocks, and also allow higher maximum frequency in some cases.

Re: Proposal: Many Core Forth CPU for FPGA development.

<09b7b31f-03b0-4754-b1a0-ced3f12c95dan@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=22944&group=comp.lang.forth#22944

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:ac8:5e0b:0:b0:3e1:2295:9ec1 with SMTP id h11-20020ac85e0b000000b003e122959ec1mr349880qtx.7.1679249098333;
Sun, 19 Mar 2023 11:04:58 -0700 (PDT)
X-Received: by 2002:a05:622a:1a10:b0:3de:1720:b554 with SMTP id
f16-20020a05622a1a1000b003de1720b554mr1409070qtb.8.1679249098097; Sun, 19 Mar
2023 11:04:58 -0700 (PDT)
Path: i2pn2.org!i2pn.org!diablo1.usenet.blueworldhosting.com!usenet.blueworldhosting.com!85.12.63.49.MISMATCH!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Sun, 19 Mar 2023 11:04:57 -0700 (PDT)
In-Reply-To: <tv771d$31pcs$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=65.207.89.54; posting-account=I-_H_woAAAA9zzro6crtEpUAyIvzd19b
NNTP-Posting-Host: 65.207.89.54
References: <6eb6f484-d425-4bcc-b0ca-4df1a22da14cn@googlegroups.com>
<tun8tp$3pfqt$1@dont-email.me> <46dd7299-a6dd-4dd4-965a-b8918696e61bn@googlegroups.com>
<8991030c-6d25-4987-9174-434c4fa33268n@googlegroups.com> <00eb977d-6d49-43aa-8465-b1f32a512cben@googlegroups.com>
<tv771d$31pcs$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <09b7b31f-03b0-4754-b1a0-ced3f12c95dan@googlegroups.com>
Subject: Re: Proposal: Many Core Forth CPU for FPGA development.
From: gnuarm.d...@gmail.com (Lorem Ipsum)
Injection-Date: Sun, 19 Mar 2023 18:04:58 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 3153
 by: Lorem Ipsum - Sun, 19 Mar 2023 18:04 UTC

On Sunday, March 19, 2023 at 10:42:56 AM UTC-4, Matthias Koch wrote:
> Keep in mind that while Mecrisp-Ice (which comes in 16, 32 and 64 bits) is a direct descendant of Swapforth/J1 by James Bowman, I continued development, and it certainly has interrupts. There are also different variants of the processor, and you can use either shift registers or BRAMs for the stacks. The shift register stacks help when one is short on RAM blocks, and also allow higher maximum frequency in some cases.

When you say "shift registers", what feature in the FPGA are you referring to? Some other brands of FPGAs can use the LUT as a (memory based) shift register, by adding a counter to point to the input and output. At least I think that's what they do. It's been a long time since I've looked at Xilinx devices. Others have this as well, but I'm not sure who. Maybe the Lattice (non-iCE) parts. But the iCE40 devices do *not* use the LUTs as memory or shift registers. I see their "General Purpose FPGAs" have "distributed" RAM, which is using the LUTs. But I see no mention of shift registers.

So, are you using the fabric FFs for the stack memory, if not the BRAMs?

In devices that can use the LUTs as RAM, it's not a bad fit to the stacks. A 4LUT gives you a 16 deep stack and a 6LUT gives you a 64 deep stack. I think the 6LUT can be used as 32 x 2 bits, but don't quote me on that.

Using the features of a given line of parts can save on resource utilization, but ties the design to that architecture. For some, that's not a problem.

--

Rick C.

-- Get 1,000 miles of free Supercharging
-- Tesla referral code - https://ts.la/richard11209

Re: Proposal: Many Core Forth CPU for FPGA development.

<tvbe08$3up1c$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=22970&group=comp.lang.forth#22970

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder.eternal-september.org!.POSTED!not-for-mail
From: m.c...@gmx.net (Matthias Koch)
Newsgroups: comp.lang.forth
Subject: Re: Proposal: Many Core Forth CPU for FPGA development.
Date: Tue, 21 Mar 2023 06:06:15 +0100
Organization: A noiseless patient Spider
Lines: 25
Message-ID: <tvbe08$3up1c$1@dont-email.me>
References: <6eb6f484-d425-4bcc-b0ca-4df1a22da14cn@googlegroups.com>
<tun8tp$3pfqt$1@dont-email.me>
<46dd7299-a6dd-4dd4-965a-b8918696e61bn@googlegroups.com>
<8991030c-6d25-4987-9174-434c4fa33268n@googlegroups.com>
<00eb977d-6d49-43aa-8465-b1f32a512cben@googlegroups.com>
<tv771d$31pcs$1@dont-email.me>
<09b7b31f-03b0-4754-b1a0-ced3f12c95dan@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Tue, 21 Mar 2023 05:06:16 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="9f52c24e0f2a757af32549516984337c";
logging-data="4154412"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/wyMR26wAfLS/L08IXSK0V"
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101
Thunderbird/102.9.0
Cancel-Lock: sha1:/t2Q5UBZpz8lQgvsnO72aTvvBog=
In-Reply-To: <09b7b31f-03b0-4754-b1a0-ced3f12c95dan@googlegroups.com>
Content-Language: de-DE
 by: Matthias Koch - Tue, 21 Mar 2023 05:06 UTC

> When you say "shift registers", what feature in the FPGA are you referring to?

The normal flipflops available in fabric.

> But the iCE40 devices do *not* use the LUTs as memory or shift registers. I see their "General Purpose FPGAs" have "distributed" RAM, which is using the LUTs. But I see no mention of shift registers.

True.

> So, are you using the fabric FFs for the stack memory, if not the BRAMs?

Fabric FFs.

> Using the features of a given line of parts can save on resource utilization, but ties the design to that architecture. For some, that's not a problem.

Fabric FFs as shift register stacks are portable and run on Lattice iCE40, ECP5 and on Altera/Intel MAX10, the families I have used so far. The LUTs are not used, as Lattice iCE40 does not support the "lutram" design.

You correctly point out that using fabric FFs as memory is a waste of resources; but the smallest targets of Mecrisp-Ice come with very limited BRAM. HX1K offers 8 kb of dualport BRAM, UP5K offers 15 kb BRAM (plus 128 kb in total over four fixed-configuration single port memories), and HX8K offers 16 kb BRAM.

In these configurations I decided to give Forth the full amount of dualport BRAM memory available, and use 16 elements * 16 bits * 2 stacks = 512 LUT+FF for stack elements in the smallest HX1K, and 32*16*2=1024 LUT+FF for UP5K and HX8K.

The ports to larger FPGAs came later in time, and for these, you decide if you like shift registers, or want to use BRAMs as stacks.

Re: Proposal: Many Core Forth CPU for FPGA development.

<642ac443-73e7-4bac-b8cc-8d59e26acb38n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=22972&group=comp.lang.forth#22972

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:a05:622a:180f:b0:3df:9e4:36c6 with SMTP id t15-20020a05622a180f00b003df09e436c6mr651814qtc.3.1679377920874;
Mon, 20 Mar 2023 22:52:00 -0700 (PDT)
X-Received: by 2002:ad4:559a:0:b0:56f:80e:701b with SMTP id
f26-20020ad4559a000000b0056f080e701bmr267047qvx.2.1679377920554; Mon, 20 Mar
2023 22:52:00 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Mon, 20 Mar 2023 22:52:00 -0700 (PDT)
In-Reply-To: <tvbe08$3up1c$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=2604:b000:e210:de:8934:f779:f402:628f;
posting-account=I-_H_woAAAA9zzro6crtEpUAyIvzd19b
NNTP-Posting-Host: 2604:b000:e210:de:8934:f779:f402:628f
References: <6eb6f484-d425-4bcc-b0ca-4df1a22da14cn@googlegroups.com>
<tun8tp$3pfqt$1@dont-email.me> <46dd7299-a6dd-4dd4-965a-b8918696e61bn@googlegroups.com>
<8991030c-6d25-4987-9174-434c4fa33268n@googlegroups.com> <00eb977d-6d49-43aa-8465-b1f32a512cben@googlegroups.com>
<tv771d$31pcs$1@dont-email.me> <09b7b31f-03b0-4754-b1a0-ced3f12c95dan@googlegroups.com>
<tvbe08$3up1c$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <642ac443-73e7-4bac-b8cc-8d59e26acb38n@googlegroups.com>
Subject: Re: Proposal: Many Core Forth CPU for FPGA development.
From: gnuarm.d...@gmail.com (Lorem Ipsum)
Injection-Date: Tue, 21 Mar 2023 05:52:00 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 5053
 by: Lorem Ipsum - Tue, 21 Mar 2023 05:52 UTC

On Tuesday, March 21, 2023 at 1:06:19 AM UTC-4, Matthias Koch wrote:
> > When you say "shift registers", what feature in the FPGA are you referring to?
> The normal flipflops available in fabric.
> > But the iCE40 devices do *not* use the LUTs as memory or shift registers. I see their "General Purpose FPGAs" have "distributed" RAM, which is using the LUTs. But I see no mention of shift registers.
> True.
> > So, are you using the fabric FFs for the stack memory, if not the BRAMs?
> Fabric FFs.
> > Using the features of a given line of parts can save on resource utilization, but ties the design to that architecture. For some, that's not a problem.
> Fabric FFs as shift register stacks are portable and run on Lattice iCE40, ECP5 and on Altera/Intel MAX10, the families I have used so far. The LUTs are not used, as Lattice iCE40 does not support the "lutram" design.
>
> You correctly point out that using fabric FFs as memory is a waste of resources; but the smallest targets of Mecrisp-Ice come with very limited BRAM.. HX1K offers 8 kb of dualport BRAM, UP5K offers 15 kb BRAM (plus 128 kb in total over four fixed-configuration single port memories), and HX8K offers 16 kb BRAM.
>
> In these configurations I decided to give Forth the full amount of dualport BRAM memory available, and use 16 elements * 16 bits * 2 stacks = 512 LUT+FF for stack elements in the smallest HX1K, and 32*16*2=1024 LUT+FF for UP5K and HX8K.
>
> The ports to larger FPGAs came later in time, and for these, you decide if you like shift registers, or want to use BRAMs as stacks.

Still, when you say shift registers, you literally turn the FFs into shift registers? Yeah, I guess that's what a stack is when it comes down to it. It shifts in two directions, so each stack word needs a 2:1 mux on the input, and Bob's your uncle. Each FF has a LUT to make up the mux, so it fits well.

I don't recall ever actually using an iCE40 part in a design that came to fruition. I looked at them a lot, but mostly for their very low power. In the end, the design was more power than other ways of solving it, mostly MCUs. They can be very low power when not clocked. The iCE65 line from SiliconBlue was low double digit uA idle current, but the iCE40 line ended up being more like 100 uA. I don't know of SiBlue was being overly aggressive, or if Lattice decided it was not an important feature, and easier to produce specified at a higher number.

I believe someone told me there are more recent members of the iCE40 lines that are in the lower double digit uA again.

Have you looked at the Gowin parts? They are real and shipping in many varieties. Word is they are essentially a spin off from Lattice, but there's only so much similarity. The docs do suffer a bit from the language barrier. I was going to use one of their parts in a design I'm doing now, but my client sells a lot to the US Government and Gowin had been on a list by the US Military considered to be too close to the Chinese Military. So I'm planning to use an Efinix part.

Once I get the design done, I may spend some time rolling a stack processor for this FPGA. But I might also be so burnt out that I swear off electronics forever!

--

Rick C.

-+ Get 1,000 miles of free Supercharging
-+ Tesla referral code - https://ts.la/richard11209

Re: Proposal: Many Core Forth CPU for FPGA development.

<tvbhdo$3v7u8$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=22973&group=comp.lang.forth#22973

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder.eternal-september.org!.POSTED!not-for-mail
From: m.c...@gmx.net (Matthias Koch)
Newsgroups: comp.lang.forth
Subject: Re: Proposal: Many Core Forth CPU for FPGA development.
Date: Tue, 21 Mar 2023 07:04:40 +0100
Organization: A noiseless patient Spider
Lines: 13
Message-ID: <tvbhdo$3v7u8$1@dont-email.me>
References: <6eb6f484-d425-4bcc-b0ca-4df1a22da14cn@googlegroups.com>
<tun8tp$3pfqt$1@dont-email.me>
<46dd7299-a6dd-4dd4-965a-b8918696e61bn@googlegroups.com>
<8991030c-6d25-4987-9174-434c4fa33268n@googlegroups.com>
<00eb977d-6d49-43aa-8465-b1f32a512cben@googlegroups.com>
<tv771d$31pcs$1@dont-email.me>
<09b7b31f-03b0-4754-b1a0-ced3f12c95dan@googlegroups.com>
<tvbe08$3up1c$1@dont-email.me>
<642ac443-73e7-4bac-b8cc-8d59e26acb38n@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Tue, 21 Mar 2023 06:04:40 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="9f52c24e0f2a757af32549516984337c";
logging-data="4169672"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+RXks141ilweeyK/oBDro6"
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101
Thunderbird/102.9.0
Cancel-Lock: sha1:gBF50mYvcwotCcKGueTKXKZgICY=
Content-Language: de-DE
In-Reply-To: <642ac443-73e7-4bac-b8cc-8d59e26acb38n@googlegroups.com>
 by: Matthias Koch - Tue, 21 Mar 2023 06:04 UTC

> Still, when you say shift registers, you literally turn the FFs into shift registers? Yeah, I guess that's what a stack is when it comes down to it. It shifts in two directions, so each stack word needs a 2:1 mux on the input, and Bob's your uncle. Each FF has a LUT to make up the mux, so it fits well.

Exactly, yes. On some targets I use a 3:1 MUX for the data stack instead to drop two elements at once, useful for example in store opcode.

> Have you looked at the Gowin parts?

Might be interesting in future, I am following the progress of Project Apicula: https://github.com/YosysHQ/apicula

> But I might also be so burnt out that I swear off electronics forever!

I am sorry to read that, and I wish you the best!

1
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor