Groups | Search | Server Info | Login | Register


Groups > comp.lang.forth > #23978

Re: OT (slightly) What is the "best" processor for a new project?

From Bernd Paysan <bernd.paysan@gmx.de>
Newsgroups comp.lang.forth
Subject Re: OT (slightly) What is the "best" processor for a new project?
Date 2013-06-27 16:32 +0200
Organization 1&1 Internet AG
Message-ID <kqhiea$b6i$1@online.de> (permalink)
References (7 earlier) <fb88f560-45a5-4ff7-9ee9-45db6b518ea8@googlegroups.com> <kq1i61$7gp$1@online.de> <9395b6eb-21c2-40f2-bcb7-cbff77d0918c@googlegroups.com> <kq6qti$p3l$1@online.de> <21d980bc-12c9-477a-8df6-bd345c884e4a@googlegroups.com>

Show all headers | View raw


hughaguilar96@yahoo.com wrote:

> On Sunday, June 23, 2013 5:49:53 AM UTC-7, Bernd Paysan wrote:
>> I don't know you spec.  Your program might have been the smallest
>> possible. I doubt it, because when you describe the adder with its
>> sequential carry
>> chain, the mind just boggles.  Do that in hardware.  If you do the carry
>> chain in software, it takes a cycle per propagated bit.  FPGAs and PLDs
>> have
>> special fast carry propagation circits.  You can have as many parallelism
>> in your assembly language, if adds are reduced to sequential carry
>> propagation,
>> your performance is very severely impacted.  Adds are quite frequent
>> operations.
> 
> I don't think that you really know what you are talking about. A PLD
> doesn't have any "special fast carry propagation circuits," or special
> anything circuits --- it is just a big Karnaugh Map.

I don't have looked into details with the PLD you used, but there are PLDs 
with carry propagation acceleration, and most FPGAs (if not all) have it, 
too.  It is too much of a benefit for making performant circuits not to have 
it.

> When you use
> ultra-high-level hardware-design languages such as VHDL or Verilog, you
> have libraries that contain functions for generating such things as 16 by
> 16 addition, and so forth, and you are apparently not aware of how the
> chip actually works internally.

Sure I am.  However, I'm not aware of how the Lattice 1048 works internally.  
The PLDs I'm familiar with are Altera's MAX PLDs, which have LEs with carry 
propagation logic, just like Alteras FPGAs.  Given how important arithmetics 
and therefore additions are for tasks like the one you were doing, I 
wouldn't even consider a PLD that doesn't have special carry propagation 
logic.

> There is no hardware-design language for
> the Lattice PLDs though, except the one that Lattice provides which is
> pretty primitive --- Testra wrote their own in UR/Forth (I wasn't involved
> in writing that).

Ouch.  Ok, given that this is a 20 years old part, it is not so much of a 
surprise.

> By far, the primary weakness of the Dallas 80c320 which was used
> previously, was that 16 by 16 multiplication was too slow. Getting rid of
> this bottleneck, was pretty much the whole point of the MiniForth project.
> It was necessary to have a 16 by 16 multiplication under 1 micro-second.

Understood, this is pretty much ruling out an 8051.  Shouldn't rule out a 
b16, as you need to run at about 25MHz to get a 16x16 multiplication in 1µs.

> As I mentioned before, the only commercial processor at the time (1994)
> that did this, was the MC6812, but Testra decided against using it. Quite
> a lot of the MiniForth hardware was devoted to providing a fast
> multiplication (which does involve addition), and the MiniForth did
> provide a 16x16 multiplication that was more than fast enough --- I don't
> think you know more about implementing arithmetic in hardware than they
> did --- I don't think you really know much about hardware at all.

Haha.  I think your knowledge is so lacking that you just can't evaluate 
what I know.

>> To me, this doesn't sound like "common sense".
> 
> The point that I'm making, is that having an assembly language is common
> sense, because this is a robust solution that can provide thousands of
> primitives. Limiting yourself to only 32 or 64 primitives, is just dumb
> --- that doesn't scale up --- you will never have anything except a toy
> processor using that technique.

And I told you that it is stupid to have a one-size-fits-all solution.  You 
don't want to comment?  The good thing about using Verilog is that the 
design is very malleable, which means changing the instruction set is really 
easy.  We have done that several times, the current b16-small is the last 
incarnation.

> The fact that you're using Verilog, implies that you are using a monster
> chip --- because those ultra-high-level hardware-design languages only
> work on monster chips. And yet, you have limited yourself to 32
> primitives! The MiniForth was developed in 1995 when chips were pretty
> small --- now, two decades later, when we have monster chips available,
> the best that you can do is a toy processor with 32 instructions --- that
> is pathetic.

More nonsense...  First of all, the b16 is 12 years old, so not "two 
decades", just one decade; it was useful in that form for a decade and 
several projects.  Second, it was deliberately done for small tasks; if you 
like a monster chip from me, use the 4stack CPU.  Third: HDLs aren't "ultra-
high-level" (some people say "unfortunately"), and you can specify very 
small stuff with them, too.  Some idiots just don't believe, the digital guy 
at Dialog once asked me about the ALU, which is based on full adders and 
multiplexers to get the logic operations out (a full adder can do ands, ors, 
and xors, too).  He understood the explanation, but argued that the high-
level tool will never compile it to the gates I mentioned.  I took the 
synthesis result netlist, and looked at the gates it had created - those 
were exactly the gates I was having in mind.

You can do small stuff with Verilog, as well, and it saves you a lot of 
time.  You can even specify each gate, and it then won't save you any time.

-- 
Bernd Paysan
"If you want it done right, you have to do it yourself"
http://bernd-paysan.de/

Back to comp.lang.forth | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Re: OT (slightly) What is the "best" processor for a new project? Hugh Aguilar <hughaguilar96@yahoo.com> - 2013-06-16 23:17 -0700
  Re: OT (slightly) What is the "best" processor for a new project? Bernd Paysan <bernd.paysan@gmx.de> - 2013-06-17 14:19 +0200
    Re: OT (slightly) What is the "best" processor for a new project? Hugh Aguilar <hughaguilar96@yahoo.com> - 2013-06-17 16:04 -0700
    Re: OT (slightly) What is the "best" processor for a new project? Hugh Aguilar <hughaguilar96@yahoo.com> - 2013-06-17 16:15 -0700
      Re: OT (slightly) What is the "best" processor for a new project? rickman <gnuarm@gmail.com> - 2013-06-18 00:01 -0400
        Re: OT (slightly) What is the "best" processor for a new project? Bernd Paysan <bernd.paysan@gmx.de> - 2013-06-19 15:33 +0200
          Re: OT (slightly) What is the "best" processor for a new project? rickman <gnuarm@gmail.com> - 2013-06-19 17:25 -0400
            Re: OT (slightly) What is the "best" processor for a new project? Hugh Aguilar <hughaguilar96@yahoo.com> - 2013-06-19 17:00 -0700
              Re: OT (slightly) What is the "best" processor for a new project? rickman <gnuarm@gmail.com> - 2013-06-20 18:35 -0400
          Re: OT (slightly) What is the "best" processor for a new project? Hugh Aguilar <hughaguilar96@yahoo.com> - 2013-06-19 17:38 -0700
            Re: OT (slightly) What is the "best" processor for a new project? Bernd Paysan <bernd.paysan@gmx.de> - 2013-06-20 12:51 +0200
              Re: OT (slightly) What is the "best" processor for a new project? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-06-20 15:28 +0000
              Re: OT (slightly) What is the "best" processor for a new project? hughaguilar96@yahoo.com - 2013-06-20 18:39 -0700
                Re: OT (slightly) What is the "best" processor for a new project? Bernd Paysan <bernd.paysan@gmx.de> - 2013-06-21 14:50 +0200
                Re: OT (slightly) What is the "best" processor for a new project? hughaguilar96@yahoo.com - 2013-06-22 18:56 -0700
                Re: OT (slightly) What is the "best" processor for a new project? "WJ" <w_a_x_man@yahoo.com> - 2013-06-23 02:35 +0000
                Re: OT (slightly) What is the "best" processor for a new project? hughaguilar96@yahoo.com - 2013-06-22 20:48 -0700
                Re: OT (slightly) What is the "best" processor for a new project? Bernd Paysan <bernd.paysan@gmx.de> - 2013-06-23 14:49 +0200
                Re: OT (slightly) What is the "best" processor for a new project? hughaguilar96@yahoo.com - 2013-06-26 18:08 -0700
                Re: OT (slightly) What is the "best" processor for a new project? Bernd Paysan <bernd.paysan@gmx.de> - 2013-06-27 16:32 +0200
                Re: OT (slightly) What is the "best" processor for a new project? hughaguilar96@yahoo.com - 2013-06-30 10:10 -0700
                Re: OT (slightly) What is the "best" processor for a new project? rickman <gnuarm@gmail.com> - 2013-06-30 15:18 -0400
                Re: OT (slightly) What is the "best" processor for a new project? hughaguilar96@yahoo.com - 2013-06-30 16:01 -0700
                Re: OT (slightly) What is the "best" processor for a new project? rickman <gnuarm@gmail.com> - 2013-06-30 20:22 -0400
                Re: OT (slightly) What is the "best" processor for a new project? Bernd Paysan <bernd.paysan@gmx.de> - 2013-06-30 21:22 +0200
                Re: OT (slightly) What is the "best" processor for a new project? hughaguilar96@yahoo.com - 2013-06-30 15:52 -0700
                Re: OT (slightly) What is the "best" processor for a new project? Bernd Paysan <bernd.paysan@gmx.de> - 2013-07-01 02:02 +0200
                Re: OT (slightly) What is the "best" processor for a new project? hughaguilar96@yahoo.com - 2013-06-30 19:25 -0700
                Re: OT (slightly) What is the "best" processor for a new project? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-07-01 02:34 -0500
                Re: OT (slightly) What is the "best" processor for a new project? rickman <gnuarm@gmail.com> - 2013-07-01 16:26 -0400
                Re: OT (slightly) What is the "best" processor for a new project? Bernd Paysan <bernd.paysan@gmx.de> - 2013-07-01 23:08 +0200
                Re: OT (slightly) What is the "best" processor for a new project? rickman <gnuarm@gmail.com> - 2013-07-01 18:10 -0400
                Re: OT (slightly) What is the "best" processor for a new project? "Elizabeth D. Rather" <erather@forth.com> - 2013-07-01 12:35 -1000
                Re: OT (slightly) What is the "best" processor for a new project? rickman <gnuarm@gmail.com> - 2013-07-01 18:42 -0400
                Re: OT (slightly) What is the "best" processor for a new project? "Elizabeth D. Rather" <erather@forth.com> - 2013-07-01 13:03 -1000
                Re: OT (slightly) What is the "best" processor for a new project? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-07-02 07:20 +0000
                Re: OT (slightly) What is the "best" processor for a new project? "Elizabeth D. Rather" <erather@forth.com> - 2013-07-02 07:38 -1000
                Re: OT (slightly) What is the "best" processor for a new project? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-07-02 07:24 +0000
                Re: OT (slightly) What is the "best" processor for a new project? Bernd Paysan <bernd.paysan@gmx.de> - 2013-07-02 13:02 +0200
                Re: OT (slightly) What is the "best" processor for a new project? "Rod Pemberton" <do_not_have@notemailnotq.cpm> - 2013-07-02 05:58 -0400
                Re: OT (slightly) What is the "best" processor for a new project? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-07-02 03:34 -0500
                Re: OT (slightly) What is the "best" processor for a new project? hughaguilar96@yahoo.com - 2013-07-01 20:01 -0700
                Re: OT (slightly) What is the "best" processor for a new project? "WJ" <w_a_x_man@yahoo.com> - 2013-07-02 04:43 +0000
                Re: OT (slightly) What is the "best" processor for a new project? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-07-02 03:41 -0500
                Re: OT (slightly) What is the "best" processor for a new project? "Rod Pemberton" <do_not_have@notemailnotq.cpm> - 2013-07-02 06:09 -0400
                Re: OT (slightly) What is the "best" processor for a new project? hughaguilar96@yahoo.com - 2013-07-02 13:51 -0700
                Re: OT (slightly) What is the "best" processor for a new project? daveyrotten <danw8804@gmail.com> - 2013-07-02 14:37 -0700
                Re: OT (slightly) What is the "best" processor for a new project? daveyrotten <danw8804@gmail.com> - 2013-07-02 14:56 -0700
                Re: OT (slightly) What is the "best" processor for a new project? Bernd Paysan <bernd.paysan@gmx.de> - 2013-07-03 00:30 +0200
                Re: OT (slightly) What is the "best" processor for a new project? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-07-03 02:19 -0500
                Re: OT (slightly) What is the "best" processor for a new project? "Rod Pemberton" <do_not_have@notemailnotq.cpm> - 2013-07-03 05:18 -0400
                Re: OT (slightly) What is the "best" processor for a new project? hughaguilar96@yahoo.com - 2013-07-03 18:10 -0700
                Re: OT (slightly) What is the "best" processor for a new project? "Rod Pemberton" <do_not_have@notemailnotq.cpm> - 2013-07-03 05:30 -0400
                Static superinstructions(was: OT (slightly) What is the "best" ...) anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-07-03 14:33 +0000
                Re: Static superinstructions(was: OT (slightly) What is the "best" ...) Bernd Paysan <bernd.paysan@gmx.de> - 2013-07-04 00:41 +0200
                Re: Static superinstructions(was: OT (slightly) What is the "best" ...) "Rod Pemberton" <do_not_have@notemailnotq.cpm> - 2013-07-07 11:32 -0400
                Re: OT (slightly) What is the "best" processor for a new project? hughaguilar96@yahoo.com - 2013-07-03 18:31 -0700
                Re: OT (slightly) What is the "best" processor for a new project? "Rod Pemberton" <do_not_have@notemailnotq.cpm> - 2013-07-07 11:28 -0400
                Re: OT (slightly) What is the "best" processor for a new project? rickman <gnuarm@gmail.com> - 2013-07-02 16:44 -0400
                Re: OT (slightly) What is the "best" processor for a new project? "Rod Pemberton" <do_not_have@notemailnotq.cpm> - 2013-07-02 05:56 -0400
                Re: OT (slightly) What is the "best" processor for a new project? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-07-02 05:58 -0500
                Re: OT (slightly) What is the "best" processor for a new project? "Rod Pemberton" <do_not_have@notemailnotq.cpm> - 2013-07-03 05:57 -0400
                Re: OT (slightly) What is the "best" processor for a new project? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-07-03 06:43 -0500
                Re: OT (slightly) What is the "best" processor for a new project? rickman <gnuarm@gmail.com> - 2013-06-30 20:29 -0400
                Re: OT (slightly) What is the "best" processor for a new project? rickman <gnuarm@gmail.com> - 2013-06-27 10:58 -0400

csiph-web