"E.S." <emu@ecubics.com> wrote in message
news:ui3tc.160$UP5.83@fe39.usenetserver.com...
>
> Sitting long nights to get the tools working ?
> priceless ;-)
>
> cheers
>
Yeah, but once you figure out all the quirks you're Super Man! Able to
drive any nail with your new hammer!
(at least that's what I keep telling myself , but then comes along version
2,3,4... plus XP updates :)
Some of my favorite efforts in delving into this world of fpga's and soft
cores has been separating the truly usefull feature/tools from the marketing
checkoffs. Altera support told me that to bring out internal signals using
Signal Probe would require placing the signal into a register. But wasn't
the whole point of SP to avoid full rebuilds? :)
(I'm sure SP is extremely usefull once mastered, just don't have "priceless"
hours right now and no one here is letting loose with the secrets)
:)
Ken
Reply by Kenneth Land●May 26, 20042004-05-26
"rickman" <spamgoeshere4@yahoo.com> wrote in message
news:40B4A67A.FBE59F51@yahoo.com...
> Kenneth Land wrote:
> >
> > "Jon Beniston" <jon@beniston.com> wrote in message
> > news:e87b9ce8.0405251505.5b6713a8@posting.google.com...
> > <snip>
> > >
> > > You say it like it doesn't matter. Maybe it doesn't with FPGA CPUs as
> > > you're obviously not concerned about price anyway ;)
> > >
> > > Cheers,
> > > JonB
> >
> > Hard to imagine an embedded project without an fpga. Might as well have
> > only one chip (fpga + softcore cpu) and save the board space since
you're
> > most likely going to require an fpga anyway. (board space == $$$, parts
> > count == $$$)
> >
> > The reason you would want to use a softcore over hard is because it can
be
> > *exactly* customized to any application. Need 27 serial ports and
timers?
> > no problem. Need none? don't waste the pins or money. Need more
> > processing power? add custom instructions/external parrallel logic or
> > another softcore cpu (or 8!).
> >
> > I've seen hard core projects fail, but a soft core project can only fail
> > from early abandonment. More/harder work can always find a solution,
> > because the hardware can become anything you're willing to realize.
>
> Ok, how about an 8 bit CPU with an 8 input, 10 bit ADC and a brown out
> detector? I think this costs less than $3 and comes in a 28 pin TSSOP
> or a 5 x 5 mm QFN. MCUs often have advantages since they are typically
> mixed signal chips, not just digital. It can be pretty hard to beat an
> MCU with an FPGA when you need even just a little bit of analog.
>
> --
>
> Rick "rickman" Collins
>
> rick.collins@XYarius.com
If you didn't know you needed an ADC before you started then yes you are out
of luck. Not so much because there's no ADC on your board, but because you
can't produce an initial design that's in the ballpark. But yes you are
literally correct. There are many things that an FPGA can't do. I was
thinking more in the realm of what processing you might want to do on those
8 input channels - especially after the customer or salesmen started with
the post production design ideas :)
You sound like one of my kids "What if Godzilla shows up and steps on your
board?"
enough :)
Ken
Reply by Kenneth Land●May 26, 20042004-05-26
"E.S." <emu@ecubics.com> wrote in message
news:v33tc.124$UP5.25@fe39.usenetserver.com...
> Kenneth Land wrote:
> > "E.S." <emu@ecubics.com> wrote in message
> > news:GsOsc.20467$zs2.931@fe39.usenetserver.com...
Microblaze (no grapes) - so you say "They are probably sour anyway")
>
> OK, I got it. Thanks ;-)
>
> But I wasn't even thinking about the NIOS <--> MicroBlaze
> competition (?)
>
> More along the lines, how I like to expand my processors. And
> my software guys are trying to kill me each time we invent a new
> instruction ;-)
>
> Cheers
>
You'd be treated better here!
I'm more of a software guy, but I'd be very happy if my hardware guy took
the initiative to add instructions to my NiosI/II!
Take care
Reply by Goran Bilski●May 26, 20042004-05-26
>Can you explain how it "blows away" custom instructions? I don't know what
>the FSL interface is, so I can't compare them myself.
>
>
>
You should take a look at xilinx app.note529
http://direct.xilinx.com/bvdocs/appnotes/xapp529.pdf
It will explain FSL a little more and also why FSL interfaces are better
for HW acceleration that custom instructions.
G�ran
Reply by E.S.●May 26, 20042004-05-26
Kenneth Land wrote:
> "Jon Beniston" <jon@beniston.com> wrote in message
> news:e87b9ce8.0405251505.5b6713a8@posting.google.com...
> <snip>
>
>>You say it like it doesn't matter. Maybe it doesn't with FPGA CPUs as
>>you're obviously not concerned about price anyway ;)
I don't think it is so easy to calculate. Having a chance to change
"hardware" at a very late stage of a project, can save you a lot of
money.
BTW, how many poeple in this group are really selling millions of
boards, so it make sense to cut a dollar on the chip, but spend it
in software instead ?
> Hard to imagine an embedded project without an fpga. Might as well have
> only one chip (fpga + softcore cpu) and save the board space since you're
> most likely going to require an fpga anyway. (board space == $$$, parts
> count == $$$)
Sitting long nights to get the tools working ?
priceless ;-)
> The reason you would want to use a softcore over hard is because it can be
> *exactly* customized to any application. Need 27 serial ports and timers?
> no problem. Need none? don't waste the pins or money. Need more
> processing power? add custom instructions/external parrallel logic or
> another softcore cpu (or 8!).
But probably you didn't spent enough time to get the
requirements/specification straight in the first place ?
> I've seen hard core projects fail, but a soft core project can only fail
> from early abandonment.
Or delays ...
> More/harder work can always find a solution,
> because the hardware can become anything you're willing to realize.
But you need a boss with a good sense of humour ;-)
cheers
Reply by E.S.●May 26, 20042004-05-26
Kenneth Land wrote:
> "E.S." <emu@ecubics.com> wrote in message
> news:GsOsc.20467$zs2.931@fe39.usenetserver.com...
>>>Ever heard the term "Sour Grapes" ?
>>
>>Heard before, but why in this context ?
>
> Uh.. Because you're saying you don't want something you can't have, even
> though it's of great value. (Custom Instructions with Nios (the grapes) vs.
> Microblaze (no grapes) - so you say "They are probably sour anyway")
OK, I got it. Thanks ;-)
But I wasn't even thinking about the NIOS <--> MicroBlaze
competition (?)
More along the lines, how I like to expand my processors. And
my software guys are trying to kill me each time we invent a new
instruction ;-)
Cheers
Reply by Nicholas C. Weaver●May 26, 20042004-05-26
In article <bf780a06.0405252226.60e2d1f0@posting.google.com>,
Stifler <seannstifler69@hotmail.com> wrote:
>Also, custom instuctions are probably as stupid as a window register
>file. Why do you need a custom instuction so bad? I believe it's
>simply hardware acceleration. There's several ways to accomplish
>hardware acceleration. Altera's custom instuction can bog down your
>processor Fmax. It goes right into the middle of the pipe. Why not
>simply have your processor launch off a separate process while it
>continues to grind away at top speed?
Likewise, this is the whole BLEEPING point of having a coprocessor
interface: it gives you a separate pipeline for your instructions, etc
etc etc, so you can have the advantages of a "custom" extention to
your instruction set, without having it in the pipeline or even
necessarily in the critical path...
Chimaera (a hard processor design with an in-the-pipeline
reconfigurable unit for custom instructions) was, IMO, a failure
compared to GARP (a hard processor design with a reconfigurable unit
as a MIPS coprocessor, with its own specialized memory interfaces).
Yet Chimaera was a useful failure, an incredibly valuable negative
result: showing just how little one could achive with in-the-pipeline
custom instructions.
Especially since, for custom instructions, you are often dealing with
large working sets (otherwise you don't really benefit in the first
place), so having a coprocessor with its own optimized (eg, streaming,
strided-streaming) memory access ports is a huge win over
"in-the-pipeline" custom instructions.
--
Nicholas C. Weaver nweaver@cs.berkeley.edu
Reply by rickman●May 26, 20042004-05-26
Kenneth Land wrote:
>
> "Jon Beniston" <jon@beniston.com> wrote in message
> news:e87b9ce8.0405251505.5b6713a8@posting.google.com...
> <snip>
> >
> > You say it like it doesn't matter. Maybe it doesn't with FPGA CPUs as
> > you're obviously not concerned about price anyway ;)
> >
> > Cheers,
> > JonB
>
> Hard to imagine an embedded project without an fpga. Might as well have
> only one chip (fpga + softcore cpu) and save the board space since you're
> most likely going to require an fpga anyway. (board space == $$$, parts
> count == $$$)
>
> The reason you would want to use a softcore over hard is because it can be
> *exactly* customized to any application. Need 27 serial ports and timers?
> no problem. Need none? don't waste the pins or money. Need more
> processing power? add custom instructions/external parrallel logic or
> another softcore cpu (or 8!).
>
> I've seen hard core projects fail, but a soft core project can only fail
> from early abandonment. More/harder work can always find a solution,
> because the hardware can become anything you're willing to realize.
Ok, how about an 8 bit CPU with an 8 input, 10 bit ADC and a brown out
detector? I think this costs less than $3 and comes in a 28 pin TSSOP
or a 5 x 5 mm QFN. MCUs often have advantages since they are typically
mixed signal chips, not just digital. It can be pretty hard to beat an
MCU with an FPGA when you need even just a little bit of analog.
--
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 by David Brown●May 26, 20042004-05-26
"Stifler" <seannstifler69@hotmail.com> wrote in message
news:bf780a06.0405252226.60e2d1f0@posting.google.com...
> Landman,
>
> Also, custom instuctions are probably as stupid as a window register
> file. Why do you need a custom instuction so bad? I believe it's
> simply hardware acceleration. There's several ways to accomplish
> hardware acceleration. Altera's custom instuction can bog down your
> processor Fmax. It goes right into the middle of the pipe. Why not
> simply have your processor launch off a separate process while it
> continues to grind away at top speed?
>
> I can think of several ways to stomp a custom instruction depending on
> what it is. How about using a dual port ram and write a bunch of data
> to it. Have my user logic attached to the other side and process it.
> Tell me when it's done. Or, use a DMA to transfer a burst of data to a
> user peripheral.
>
What's next, "My dad could beat up your dad" ? You are arguing about
something you aparently neither know about nor care about, so why bother?
I've got no idea about what an FSL interface is, having not looked closely
at the MicroBlaze, so I don't know how it compares to other solutions -
certainly not enough to declare it "stupid". But there are many ways to do
hardware acceleration of a soft cpu on an fpga, and there are many sorts of
tasks that could be accelerated - what is the big problem with Altera
offering one more? I'm sure it is possible to cause yourself problems by
using it badly, such as trying to do a slow process in a single clock cycle
and thus reducing your fMax, or stalling the processor for hundreds of
cycles - that's bad design on the user's part, not the fault of the custom
instruction concept. If your application calls for fast, simple custom
operations, however, then the custom instruction mechanism cuts down the
overhead quite significantly. You choose the hardware acceleration method
that matches the requirements.
> Altera hypes this custom instruction crap. It's the same hype as the
> windowed register file. It's the same joke. It's probably as stupid of
> an idea as having a windowed register file. Which they just chucked.
> Along with the 16 bit instructions.
>
Windowed register files have some advantages over traditional register
banks, and some disadvantages - and how they affect you depends on the
application. Sun's SPARC processors are good for some uses, and poor on
others. There are lots of choices when designing processors - register
setup and instruction formats are two of them. What makes the "best" design
will depend on many factors, such as application, speed, fpga size, fpga
design, code density - and it will also change over time, as the developers
come up with better designs, and as development tools improve. But just
because the Nios II is in many ways better than the Nios I, doesn't make the
Nios I suddenly "crap" or "a joke". When your favourite crisp manufacturer
comes out with a "new, even tastier" variety - does that mean that the old
type is suddenly terrible, and that the company should be condemed for ever
advertising it?
> As someone already mentioned, MicroBlaze has an FSL interface for
> hardware acceleration. It probably blows away Altera's custom
> instruction.
>
Can you explain how it "blows away" custom instructions? I don't know what
the FSL interface is, so I can't compare them myself.
>
> "Kenneth Land" <kland1@neuralog1.com1> wrote in message
news:<10b7qg7fqd1cod1@news.supernews.com>...
> > "Jon Beniston" <jon@beniston.com> wrote in message
> > news:e87b9ce8.0405251505.5b6713a8@posting.google.com...
> > <snip>
> > >
> > > You say it like it doesn't matter. Maybe it doesn't with FPGA CPUs as
> > > you're obviously not concerned about price anyway ;)
> > >
> > > Cheers,
> > > JonB
> >
> > Hard to imagine an embedded project without an fpga. Might as well have
> > only one chip (fpga + softcore cpu) and save the board space since
you're
> > most likely going to require an fpga anyway. (board space == $$$, parts
> > count == $$$)
> >
> > The reason you would want to use a softcore over hard is because it can
be
> > *exactly* customized to any application. Need 27 serial ports and
timers?
> > no problem. Need none? don't waste the pins or money. Need more
> > processing power? add custom instructions/external parrallel logic or
> > another softcore cpu (or 8!).
> >
> > I've seen hard core projects fail, but a soft core project can only fail
> > from early abandonment. More/harder work can always find a solution,
> > because the hardware can become anything you're willing to realize.
> >
> > Ken
Reply by David Brown●May 26, 20042004-05-26
"E.S." <emu@ecubics.com> wrote in message
news:4KLsc.19641$zs2.4918@fe39.usenetserver.com...
> Uncle Noah wrote:
>
> > In Microblaze there is no way to add your own custom instructions. It
> > is not an extensible processor but just provides the means to add
> > peripherals to a small SoC. Correct me if i am wrong. I just hope that
> > the tools (assembler, simulator, debugger) can be retargeted for the
> > new ISA. Or be able to use inline assembly with the new instructions.
> > The corresponding hardware should be built by some RTL description i
> > would give.
>
> Sorry, but I think that "custom instructions" are the worst idea.
> Than you have to update (with new versions/revisions) not only your
> design, but also the whole toolchain ? (assembler/linker/cc ?)
>
The custom instructions are already available in the toolchain, with
pre-defined macros for the assembly instructions. When you want to actually
use them for something, you can define new names that make more sense in
your application. Gcc does a pretty good job of optomising such assembly
macros, so you don't lose anything. I don't know about Nios II (I haven't
looked in detail yet), but on the Nios I you can also tell gcc to use custom
instructions automatically for certain operations. For example, if you know
your code requires a lot of divisions, you can make a custom hardware
divider and tell gcc to use it for all divisions.
> And there is still tha chance, that the whole CPU slows down, because
> of your new instruction, so you even loose, not gaining anything :(
>
That would be the case if your custom instructions execute too slowly, so
that your cpu's max frequency were reduced. The obvious answer then would
be to use multi-cycle custom instructions.
> Much simpler to access a "accelarator" memory mapped, or as a
> peripheral, or whatever interface you have for it.
>
Sometimes that is the case - it depends on what you are doing. Memory
mapped peripherals require memory-style access, however, including loads,
stores and address calculations, whereas custom instructions get their data
immediately. For fast peripherals, custom instructions will save a lot of
overhead.