Dual-stack (Forth) processors

Well, Outlook Express is crap as a newsreader. Most newsreaders have a "single-read key" key that pages through a message, then skips to the next unread one at the end. This is why you don't see users of other newsreaders complain so much about skipping some text. Trimming the quotes is a good thing, nevertheless.

Outlook Express is crap as a newsreader. I could go on and on about it, but I bet you didn't know.

Reply to
Bengt Larsson
Loading thread data ...

What's a good newsreader?

--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Martin Euredjian

To send private email:
0_0_0_0_@pacbell.net
where
"0_0_0_0_"  =  "martineu"
Reply to
Martin Euredjian

That's a good question. Outlook Express has a pretty good interface, but it isn't very good for scanning newsgroups quickly.

You may try the reader I use - Agent - you can find it at

formatting link
It's payware, but there is a 30 day free trial.

Unfortunately, Agent is a kind of opposite to Outlook Express, not easy to learn, hard to get into. It's also limited in some ways. But it does the "core newsreading" extremely efficiently.

I have tried almost all newsreaders available for Windows, and a number of them for Unix. I haven't found the be-all and end-all.

If you want more information, you may want to check the newsgroup news.software.readers.

Reply to
Bengt Larsson

Davka asked about FPGA-based Forth chips. He has a right to have an interest and ask a question, but he probably also expected some of the usual flame bait in response.

The subject of the question was about FPGA-based Forth chips. The reason from the question is that they are a good fit to FPGA as they can provide higher performance with fewer gates than many other designs, especially when used as the control processor to interface to other user defined custom circuitry in an FPGA application.

Given that Davka obviously knows this already and is interested in using some language on an application that may include a dual-stack (Forth) processor in an FPGA he really didn't ask if he should just give up the idea because it is not what everyone else is doing.

Given the context it seems strange to suggest that 'the reality seems to be that C is the way to go.' That sounds rather strange since he asked about a particular type of FPGA-based dual-stack (Forth) chip. Are you suggesting that C would be a better choice for the software for this type of chip than Forth? What C compiler will produce better code for a Forth chip than Forth? I realize that you were probably just trying to flame Davka and trying to change the subject from asking about where people can discuss the subject of dual-stack (Forth) processors and make it clear that you don't like that subject broached in any of the above newsgroups. But after all, it wasn't cross posted to c.advocacy etc. If you stick to the technical details that Davka was interested in you find lots of examples of very small dual-stack processors implmented in programmable gate array that had very high performance. In 1988 it was 50 mips on a 32-bit processor in PGA when Intel was selling full custom VLSI 80286 that got substantially less. And today's FPGA are pretty cheap, fast, and/or big compared to what was available sixteen years ago.

What do you know about Davka's business plans regarding his use of dual-stack processors in FPGA? I suspect that you know nothing about it and were just trying to change the subject to popularity. I think he asked because he was interested in technical details on the subject, not in lectures about your idea of business equations or popularity comparisons.

Duh. (insert programming language name) is very cryptic for non- (insert same programming language name) programmers. C is very cryptic for non-C programmers. The average person is not a programmer and can't read C programs. Should we conclude that because that is what the majority of people think of C that everyone who uses C should stop using a language that is cryptic to people who haven't learned it? Duh.

(APL is so cryptic looking to non-APL programmers that it looks like it came from outer space! Take over the world? ;-)

Duh. Finding skilled (insert language name) programmers is not as easy as (insert other language name) programmers. The keyword there is skilled. Sure, not all programmers in a given language are really the ones who are labeled skilled. The qualifier makes the statement language independent.

It is easier to find C programmers than programmers of languages used by smaller numbers of people. Duh. But after all this thread was about Davka's interest in finding people who could rationally discuss the design and use dual-stack processors implemented in FPGA. I don't think that this group of people is going to be larger than the group that includes skilled and unskilled C programmers. It really has nothing to do with what he asked about.

It is interesting that you think Forth can be substantially more productive than C or assembly. Not everyone would agree with you, but in the context of the software that Davka will use with a dual-stack processor in FPGA it certainly seems like a quite reasonable statement. Maybe you were just baiting.

Davka may be only guy involved in his work, he may have a team of people, and after all he only asked were to find people who knew about the subject. He didn't ask if Forth was more popular than C in systems written in C or with programmers who prefer C.

Maintenance is generally more of an issue of code quality than anything else. There are plenty of unskilled programmers who have written, and will continue to write, code that is hard to maintain because it was baddly written in the first place. That certainly includes C and Cobol and assembler and Forth or whatever. As you say not all programmers are skilled programmers.

Well written Forth programs are as easy to maintain as any other well written programs. Some consultants who use Forth complain that they have to keep it a secret because if they tell the client that their well written program was written in Forth they won't be called in to do the maintenance, even the non-technical vice-president can read and modify their code if they know it is written in something as easy as Forth. In the cases where development 'productivity with Forth can be substantially greater than with C or Assembly' any maintenance productivity comparison would hopefully be similar. Of course there are always examples of bad and unmaintainable code being written in any language. Often unskilled programmers point to their own code as examples of code that they wrote but other people had difficulty understanding or maintaining. That is really a skill issue, or a managment issue more than a language issue.

Best Wishes, Jeff Fox

Reply to
Jeff Fox

Jeff,

Very good post. Please rest assured that my posts were made with the best of intentions and "flame baiting" isn't even close to anything in my life. I don't know which of the newsgroups you have read this from. I'm a frequent participant in comp.arch.fpga and folks in that NG can tell you that I'm not some kid getting off by starting controversy. Hell, I'm not even a kid!

Anyhow. Maybe I got off topic with my detour into the business issues involved. I'm sorry for that. I simply wanted to point out that there are issues --business issues-- with regards to using Forth (or APL, or whatever) in your work. Of course, nothing anyone says in these NG's is universally applicable. It is left to the reader to decide whether or not to attach validity and/or waste any time pondering what was said.

My own perspective is that, while I would love to use Forth for my work, I have not found that the effort required jusifies the excercise. You can almost say the same thing about assembler. You can't make such statements without explaining why. My reasoning has to do with non-technical issues. With the realities of business.

Regarding using C with an FPGA. Implementing something as simple as an 8051 core opens the door to using a large number of C compilers, tools, libraries and capable programmers to write your control code.

If efficiency or execution speed (in the context of an FPGA) is paramount, maybe a custom state-machine solution makes more sense. All of these options have advantages and disadvantages, of course.

--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Martin Euredjian

To send private email:
0_0_0_0_@pacbell.net
where
"0_0_0_0_"  =  "martineu"
Reply to
Martin Euredjian

I wonder how someone can call the 8051 "simple". On my last task, we had an 8051 (customer choice), which took about 3000LEs on an Altera FPGA (I think that's even more than the 32 bit NIOS core takes ;-). Being less than happy about that, I developed a simple Forth processor in a few days (see

formatting link
which did fit into about 600LEs. This is a 16 bit processor, and much faster than the 8051 (but too late to convince our customers). Recently, I stripped down a few not absolutely necessary features such as fast divide and add, and fast mem-mem copy, and now I'm at about 300LEs with the simplified version (for the current project, where the customer wantet a "state machine").

I'm also working on a GCC backend, but it looks like GCC 3.5's SSA tree representation will make the job much simpler to generate stack code than going through the machine description aproach.

--
Bernd Paysan
"If you want it done right, you have to do it yourself"
http://www.jwdt.com/~paysan/
Reply to
Bernd Paysan

I can buy a core today and have any 8051 code running in it tomorrow. That's simple.

Even better. If I have a design that uses an external 8051 and need to reduce BOM cost (and have FPGA resources) I can buy a core and fold the processor and peripherals into the FPGA with little if any changes to the

8051 source code. Again, that's simple. And, BTW, I have exactly that situation in one of our designs right now.

Simple isn't always smaller, faster, cheaper, less LE's, etc. "Simpler" is defined by the application and the circumstances at hand.

Now, to address your 600 vs. 3000 LE comparison. Well, of course, if you have a constraint that does not allow you the luxury of a 3000 LE processor you have to look elsewhere. This might mean adopting something like a small Forth CPU implementation (such as yours), a small state machine or simply moving the processor off-chip. I mean, these days, for two bucks you can put a tiny 25+ MHz (Cygnal and others) processor on a board.

So, yes, context is important, of course. In your context your choice made perfect sense. No question about it.

Now, in these days of 6 million gate FPGA's it might be OK to trade device utilization for time to market, flexibility, portability or other parameters. Of course, each project is different. Each company is different. Each designer is different and each circumstance is different. You have to keep an open mind. That's all.

The other interesting choice today is V2 Pro. You might, for example, want to use one to take advantage of the high-speed serial I/O capabilities and, as a result, have free PowerPC processors ready to blast away.

BTW, your b16 looks to be very useful and compact.

--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Martin Euredjian

To send private email:
0_0_0_0_@pacbell.net
where
"0_0_0_0_"  =  "martineu"
Reply to
Martin Euredjian

Does anyone know of efforts on a FPGA design for .NET bytecodes ? Any numbers on how much resource it would need, and how that might compare with a Java machine (or Forth one, for that matter..) ?

-jg

Reply to
Jim Granville

I have to scroll down to find out if you said anything interesting, and then, half the time it's just a "me too" type comment. If I jump to the end and discover that you didn't just say "me too", then I have to go back to the top and search forward to find out if you inserted something interesting rather than dumping everything at the end.

Top vs bottom posting is a perpetural source of flames on usenet.

In my opinion, the key is to trim the stuff that isn't directly relevant to what you are responding to. After that, the top/bottom part is lost in the noise and you will probably insert your text in a reasonable place.

Top "posting" may be good in an office context where new people get cc-ed and need the previous context. It gets pretty silly in the usenet context when the discussion gets about 6 layers deep and everybody has seen the first N-1 layers several times already. (But then, it might help the poor sucker on a brain-damaged news server that drops 50% of the articles. But he's probably got other troubles.) On usenet, where I do have the context, I find it very annoying.

The anti-top posters have many good sig lines. A few examples:

A. Top posters. Q. What is the most annoying thing on Usenet?

A. Because it destroys the natural flow of conversation. Q. What's wrong with top posting ?

--
The suespammers.org mail server is located in California.  So are all my
other mailboxes.  Please do not send unsolicited bulk e-mail or unsolicited
commercial e-mail to my suespammers.org address or any of my other addresses.
These are my opinions, not necessarily my employer's.  I hate spam.
Reply to
Hal Murray

Perhaps the problem isn't top- or bottom-posting per se, but that the quoting method used is inconsistent. If folks are careful to ensure the "Tom says:" lines are properly maintained and use the same quote character and indentation style, either posting style is fairly easily- parsed, in my opinion.

--
%  Randy Yates                  % "Remember the good old 1980's, when 
%% Fuquay-Varina, NC            %  things were so uncomplicated?"
%%% 919-577-9882                % 'Ticket To The Moon' 
%%%%            % *Time*, Electric Light Orchestra
http://home.earthlink.net/~yatescr
Reply to
Randy Yates

Could you give a link for that?

See you, Uwe

Reply to
Uwe Kloß

formatting link

Look at the Virtex II Pro family of devices.

--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Martin Euredjian

To send private email:
0_0_0_0_@pacbell.net
where
"0_0_0_0_"  =  "martineu"
Reply to
Martin Euredjian

experience.

Heh. Heheh.

I learned APL when I was a kid. I love it too. It taught me respect for languages that don't have an implicit order of operations.

I, too, have been programming in Forth for 20+ years. I wrote a multi-user virtual reality system that used byte-coded Forth to move virtual objects between hosts on the Internet. One of the things that struck me is that's it's less awkward to write long floating-point expressions multiplying sine and cosine terms in Forth than it is in C. That's why Forth came to mind as language for designing filters, etc. Also for physical modeling of musical instruments. It's easy to build up waveguides, etc into function blocks that can be strung together on the command line. *Everything* is better with an interactive command prompt.

The scripting language for the virtual reality objects was Forth, but the Forth interpreter itself was written in plain-vanilla C for portability. It ran fast enough (on Pentium 90s with software-only 3D rendering!) that the extra work of an assembler implementation wasn't worth it. I used Forth exactly where it made the most sense -- as a platform-independent VM-based object code -- and used C in a way that reflected _its_ strengths. I chose the languages based on their technical merits for a particular application, something I'd like to see more programmers do.

The majority of the coding that I have done, both for pay and for self-directed projects, has been in C. I have been living in the same world of wanting portability, maintainability and ease of finding programmers.

My goals for asking about DSP and Forth processors:

I'm teaching myself digital design and DSP.

My first substantial FPGA project was a minimal instruction set 16-bit Forth processor. It simulates at 90+ MIPS in a small Altera Cyclone part. It uses about 800 LEs.

Looking at the Stratix family, I see they're chock-full of optimized multiply-and-accumulate blocks. Very nice! I did a stint at Korg R&D years ago, working on a legendary unreleased synth (the OASys). It was my intro to state-of-the-art synthesis, using physical modeling of instruments. At that time, I would have very much liked to build/buy some hardware to experiment with at home, but the cost was prohibitive. Now, I have a real chance to build some music hardware.

And hardware for separating signals on the ham radio bands. And hardware to develop multi-processing ideas I've been toying with for years.

I'm going to experiment and read all the papers I can get my hands on and pursue what's interesting, and if something I do looks like it has better cost/performance than something on the market, I'll look into commercializing it.

After I have a project or two that I have physically realized, maybe someone will give me a job doing FPGA design.

-Davka

Reply to
Davka

Small World, isn't it! The other thing that's nice about APL is the ability to abstract away from the mechanics of programming and live within the problem domain.

Forth

uses about 800 LEs.

Have you consider just doing it the FPGA way? I haven't stopped to think about what's required but you can certainly create building blocks in hardware (say, filters). Also, with the Virtex 2 Pro family you have the ability to use the PowerPC processor/s as, well, processors and the rest of the FPGA is available for custom peripherals (if you want to think of it that way).

Of course, an optimized Forth machine would/could make it very interactive and fun to play with. Is there an implementation of Forth for PowerPC?

Sounds like you are going to have some fun.

--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Martin Euredjian

To send private email:
0_0_0_0_@pacbell.net
where
"0_0_0_0_"  =  "martineu"
Reply to
Martin Euredjian

for

You're not the first fellow nerd that I've met who likes both Forth and APL. :-)

hardware.

of

That's the plan. I've already put dozens of hours into learning the Altera tool and their chip families, so that's the way I will go initially. They have their own tiny RISC implementation (called NIOS), so if I don't do my own processor, I'll use that one.

The idea for the system architecture is to have a bunch of DSP modules of various flavors in the hardware which can be dynamically allocated by the software system that manages them.

:-) I think it's called Open Firmware.

-Davka

Reply to
Davka

I found a mention of a Forth for DSP called FROTH. I believe it is an open source project, but the page does not seem to have been updated in quite a while. Some of the other posters here may know more about it.

--

Rick "rickman" Collins

rick.collins@XYarius.com
Ignore the reply address. To email me use the above address with the XY
removed.

Arius - A Signal Processing Solutions Company
Specializing in DSP and FPGA design      URL http://www.arius.com
4 King Ave                               301-682-7772 Voice
Frederick, MD 21701-3110                 301-682-7666 FAX
Reply to
rickman

Hmmm...that reminds me quite a bit of the "Metatopia" project.

formatting link
formatting link

Do you still have the code? Are you doing anything with it?

Cool. You should get this added to Jeff Fox's "Forth chips" page.

Interesting. I do think that wireless processing are the "new frontier" for hardware hackers. I have scene a packat modem implemented in FPGA. I'll send you the link if you're interested. Jeff should be able to give you some info of multi-processing MISC since that's something he's worked on in the past and seems to be the focus of the latest Chuck work (25x).

Regards,

John M. Drake

Reply to
jmdrake

I wasn't aware that the "FPGA way" and a Forth processor were mutually exclusive. Certainly Forth CPUs have had DSPs built into them before.

Mops can generate PowerPC code. As for embedded PowerPC I was surprised that I didn't see a SwiftX or VFX implementation on their websites although both supported ColdFire.

Regards,

John M. Drake

Reply to
jmdrake

I believe that is because both companies are reactive rather than proactive. They port to a new platform when they are paid to do it. They don't speculate on their own dime.

--

Rick "rickman" Collins

rick.collins@XYarius.com
Ignore the reply address. To email me use the above address with the XY
removed.

Arius - A Signal Processing Solutions Company
Specializing in DSP and FPGA design      URL http://www.arius.com
4 King Ave                               301-682-7772 Voice
Frederick, MD 21701-3110                 301-682-7666 FAX
Reply to
rickman

Right. I guess I'm surprised that there (apparantly) hasn't been a request for PowerPC. Although I suppose it makes sense. Perhaps ColdFire is a better fit for embedded systems price/performance wise then PowerPC?

Anyway Forth Inc does have a PSC1000 port and Patriot Scientific does have a PSC1000 core for use in FPGAs.

Regards,

John M. Drake

Reply to
jmdrake

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.