Groups | Search | Server Info | Login | Register


Groups > comp.lang.forth > #23981

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

From rickman <gnuarm@gmail.com>
Newsgroups comp.lang.forth
Subject Re: OT (slightly) What is the "best" processor for a new project?
Date 2013-06-27 10:58 -0400
Organization A noiseless patient Spider
Message-ID <kqhjm2$d2m$1@dont-email.me> (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


On 6/26/2013 9:08 PM, 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.

Actually, that is not really correct.  First, I think you are making the 
mistake of assuming that "PLD" means "CPLD" or "SPLD".  That is a common 
assumption, but in reality PLD includes *all* programmable logic such as 
FPGAs.  But even within the CPLD devices there are members which have 
dedicated carry logic, such as the Altera MAX V.


> 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. 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).

I think you have never actually worked with HDLs have you?  Lattice 
CPLDs are programmable in VHDL and Verilog although they still seem to 
support ABLE which is what I assume you are referring to.


> There was a lot of difficulty in getting the MiniForth to route for the Lattice 1048. Obviously, if it were possible to make a 16 by 16 addition purely in hardware, Testra would have done so --- it was only realistic to make a 4 by 4 half-adder though, so that is what was done.

First, addition is normally not referred to as 16 "by" 16 because the 
size of an adder is linear with bit length.  Multipliers are order N^2 
so they are typically referred to as N by M.  A 16 bit adder in a modern 
CPLD would take 16 logic elements because the carry is provided in 
hardware.  In an older CPLD like the one you seem to be talking about 
without carry support would use 32 logic elements.  I don't see why that 
would be prohibitive unless the delay was the problem, slowing down the 
clock cycle.  But if I understand you correctly, the clock speed was a 
blazing 50 MHz (or was it a bit faster?) but you needed 16 clock cycles 
to do a single ADD?  That is pretty unbalanced for a CPU which is doing 
motion control math.  I think the designer could have included a fast 
adder (there are other ways to speed it up than just ripple carry) and 
slowed the clock a little perhaps, but achieved a much faster design 
overall.

As to routing, it seems pretty clear that the MinForth hardware 
designers didn't have much experience in designing PLDs.  If you need to 
squeeze on the routing or speed, you need to at least do hand placement, 
a piece of cake on such a small device.  In smaller designs it is 
possible to get 90% utilization if you work with the tools rather than 
against them.


> 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. 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.

A 1 us 16 x 16 multiply doesn't sound all that fast to me.  I believe 
the 80C320 is just an 8051 variant with a slight execution speed 
advantage.  It wouldn't be hard to do a lot better than that.

>> 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.

I have no idea what you mean be primitive.  In the case of one of these 
CPUs you are talking about instructions.  But in the MinForth you seem 
to be talking about something else.  No one who uses soft cores in FPGAs 
seems to have problems with the number of "primitives".  I wonder where 
the problem really is?  Perhaps in your limited view of the problem?


> 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.

LOL.  You know so little but like to talk so big!  I don't know all the 
devices available in 1995, but I know the Xilinx XC4000 family was 
available because I was using them!  I won't try to diminish the 
significance of developing any processor on an FPGA at the time, but 
your claims of primitives and such is just nonsense.  What matters in 
the case of the MinForth is speed and you have no idea where speed comes 
from.

-- 

Rick

Back to comp.lang.forth | Previous | NextPrevious 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